// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function check_for_rejected_status(){
  if(($('ledger_line_line_type').value == 'payment') && ($('ledger_line_status').value == 'rejected')) {
    $('ledger_line_status_code').enable();
    Effect.SlideDown('fees', { duration : 0.25});
    $('ledger_line_status_code').focus();
  } else {
    $('ledger_line_status_code').disable();
    if($('fees').visible()) {
      Effect.SlideUp('fees', { duration : 0.25});
    } 
  }
}
      
function check_required_fields() {
  arr = $$('input.required');

  for(i = 0; i < arr.length; i++) {
    if(arr[i].value.length == 0) {
      alert("Please fill in all requird fields to continue;")
      return false;
    }
  }
  return true;
}

function calculate_total(selector, field_to_update_id) {
  try {
    amount = 0.00;
    $$(selector).each( function(elem){
      if(elem.innerHTML != "&nbsp;") {
        str = elem.innerHTML;
        str = str.replace("$", "");
        str = str.replace(',', '');
        amount += parseFloat(str);
      }
    });
    $(field_to_update_id).innerHTML = number_with_delimiter(amount, ',', '.');
  } catch(e) {
    console.log(e.printStackTrace());
    alert("Unable to recalculate total.")
    return "$0.00";
  }
}

function number_with_delimiter(number, delimiter, separator) {
  try {
    var delimiter = delimiter || ",";
    var separator = separator || ".";
    number = number.toFixed(2);
    if(number < 0) {
      var parts = number.toString().split('.');
      parts[0] = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter);
      str = parts.join(separator);
      str = str.replace('-', '');
      return "-$" + str;
    } else {
      var parts = number.toString().split('.');
      parts[0] = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter);
      str = parts.join(separator);
      return "$" + str;
    }
  } catch(e) {
    console.log(e);
    return number
  }
}