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

// set preapproval date to today
function set_today(model, atrib)
{
  var dt = new Date();
  set_date_select_date (model, atrib, dt);
}

// set maturity date 5 years from closing
function set_5year(model, cd_atrib, md_atrib)
{
  d = get_date_select_date(model, cd_atrib)['value'];  // get closing date
  d['year'] = d['year'] + 5;                           // add 5 years
  dt = convert_input_date_to_js_date(d);        
  set_date_select_date (model, md_atrib, dt);          // set maturity date
}

// set preapproval end date 120 days from preapproval date
function set_120days(model, pd_atrib, ped_atrib)
{
  d = get_date_select_date(model, pd_atrib)['value']; // get preapproval date
  d['day'] = d['day'] + 119;                          // add 120 days
  dt = convert_input_date_to_js_date(d);        
  set_date_select_date (model, ped_atrib, dt);        // set preapproval end date
}

// set the date of a group of date select inputs
function set_date_select_date(model, atrib, dt)
{
  d = get_date_select_date(model, atrib)['obj'];
  set_option_value(d['day'], dt.getDate());
  set_option_value(d['month'], dt.getMonth() + 1); // js dates are behind by 1.
  set_option_value(d['year'], dt.getFullYear());
}

// get date objects and values
function get_date_select_date(model, atrib)
{
  var d = new Array();
  d['obj'] = new Array();
  d['obj']['day'] = document.getElementsByName(model + '[' + atrib + '(3i)]')[0];
  d['obj']['month'] = document.getElementsByName(model + '[' + atrib + '(2i)]')[0];
  d['obj']['year'] = document.getElementsByName(model + '[' + atrib + '(1i)]')[0];

  d['value'] = new Array();
  d['value']['day'] = get_option_value(d['obj']['day']);
  d['value']['month'] = get_option_value(d['obj']['month']);
  d['value']['year'] = get_option_value(d['obj']['year']);

  return d;
}

// get javascript date based on input date
function convert_input_date_to_js_date(d)
{
  dt = new Date();
  // javascript months go from 0 to 11, so minus 1 from month
  dt.setFullYear(d['year'], d['month'] - 1, d['day']); 
  return dt;
}

// use selected index to get value of selected option
function get_option_value(select_list)
{
  return parseInt(select_list.options[select_list.selectedIndex].value);
}

// set selected index based on option value
function set_option_value(select_list, value)
{
  for (var i=0; i < select_list.length; i++)
  {
    if (select_list .options[i].value == value)
    {
      select_list.selectedIndex = i;
    }
  }
}

function copy_from_underwriter()
{
  $('lender_bdm_name').value = $('lender_underwriter_name').value;
  $('lender_bdm_phone').value = $('lender_underwriter_phone').value;
  $('lender_bdm_fax').value = $('lender_underwriter_fax').value;
  $('lender_bdm_email').value = $('lender_underwriter_email').value;
}

function show_add(el)
{
  var input = $('add_'+el+'_input');
  if (input != undefined) input.value = ''; 

  var textarea = $('add_'+el+'_textarea');
  if (input != undefined) text_area.value = ''; 
  
  Effect.BlindDown('add_'+el+'_form', { afterFinish: function() { $('add_'+el+'_input').focus() } });
  return false;
}

function hide_add(el)
{
  Effect.BlindUp('add_'+el+'_form');
  return false;
}

function toggle_correspondence(id)
{
  $('correspondence_'+id).toggle();
  return false;
}

// scroll to section and highlight
function goto(id)
{
  var el = $(id);
  if (el != undefined) {
    el.scrollTo(); 
    var body = $(id+'-body');
    if (body != undefined) new Effect.Highlight(body, { startcolor: '#ffff99'}); 
    else                   new Effect.Highlight(el, { startcolor: '#ffff99'}); 
  }
  return false;
}

function toggle_archived_deals(scrollTo)
{
  
/*
  WHY won't blind up and down work?
  if ($('list_of_archived_deals').style.display == 'none') {
    Effect.BlindDown('list_of_archived_deals');
  } else {
    //  Element.scrollTo('list_archived_deals')
    Effect.BlindUp('list_of_archived_deals');
  }
*/

  var list = $('list_of_archived_deals')

  if (list != undefined)
  {
    $('show_archived_deals').toggle();
    $('hide_archived_deals').toggle();
    list.toggle();

    if (scrollTo) list.scrollTo();
  }
  
}

// set option list to first option (blank).  
// This will cause the referral to be removed
function remove_referred_by ()
{
  $('person_referral_id').selectedIndex = 0;
}

// set option list to first option (blank).  
// This will cause the referral to be removed
function remove_referred_to(idx)
{
  $('referral_' + idx + '_id').selectedIndex = 0;
}

function show_remove_referral()
{
  referral = get_option_value($('person_referral_id'))

  if (referral) display = 'inline';
  else          display = 'none'
  
  $('remove_referral').style.display = display
}

// update lender link based on what is selected in lender dropdown (on deal)
function update_lender_link(id)
{
  var lender = $('deal_' + id + '_lender_id').value
  var lender_link = $('lender_link_' + id);
  
  if (lender.length) {
    lender_link.href = "/lender/edit/" + lender; 
    lender_link.show();
   } else {
    lender_link.href = ""; 
    lender_link.hide();
   }
}

// update rate label based on what rate type radio button is selected
function update_rate_label(id)
{
  if ( $('deal_' + id + '_fixed_rate_indicator_true').checked ) 
  {
    $('prime_label_' + id).hide();   
  } else {
    $('prime_label_' + id).show();   
  }
}

// show updating button
function show_reconcile()
{
  $('reconcile_button').hide();
  progress = $('reconcile_progress_button');
  progress.show();
  progress.src = "/images/update_subscribers_progress.gif";
}

// show requesting button
function show_requesting()
{
  $('request_newsletter_button').hide();
  progress = $('request_newsletter_progress_button');
  progress.show();
  progress.src = "/images/request_newsletter_progress.gif";
}

// hide requesting button
function hide_requesting()
{
  $('request_newletter_progress_button').hide();
  $('request_newsletter_button').show();
}

function validates_presence_of(id) {
  var el = $(id);
  if (el != undefined && el.value != undefined && el.value.length > 0)
    return true;
  else
    return false;
}

// use current address for textarea to print envelopes
function add_current_address(id) {
  location.href = $(id + '_link').href + '?address=' + escape($(id).value);
}
