function openPopup(url, name, width, height)
{
  var oTarget = window.open(url, name, 'scrollbars=yes, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=250, left=350');
  oTarget.focus();
  return false;
}

function openScrolledPopup(url, name, width, height)
{
  var oTarget = window.open(url, name, 'scrollbars=yes, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=250, left=350');
  oTarget.focus();
  return false;
}

function openScrolledPopupPos(url, name, width, height, xpos, ypos)
{
  var oTarget = window.open(url, name, 'scrollbars=yes, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=' + ypos + ', left=' + xpos);
  oTarget.focus();
  return false;
}

function openPopupNoScroll(url, name, width, height)
{
  var oTarget = window.open(url, name, 'scrollbars=no, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=250, left=350');
  oTarget.focus();
  return false;
}


function showErrorAlert(controlID, message)
{
  document.getElementById(controlID).select();
  document.getElementById(controlID).focus();
  alert(message);
  return false;
}

function ShowErrorSummary(sender, args)
{
  ValidatorUpdateIsValid();
  args.IsValid = Page_IsValid;
  if ( !Page_IsValid )
    alert("Not all the required fields have been comlpeted. Please check your data and re-submit.");
}

function GetSelectValue(controlID)
{
  return document.getElementById(controlID).options[document.getElementById(controlID).options.selectedIndex].value;
}

function nextFieldFocus(curObj, prevObj, nextObj, length, event)
{
  if( event.keyCode == '37' || event.keyCode == '39' )
  {
    return;
  }
  if(nextObj != null && curObj.value.length == length && event.keyCode != '9' && event.keyCode != '16')
  {
    nextObj.focus();
    nextObj.select();
  }
  if(event.keyCode == '8' && curObj.value.length == 0)
  {
    prevObj.focus();
    rng = prevObj.createTextRange(); 
    rng.collapse(false); 
    rng.select(); 
    prevObj.click(); 
  }
}


function newImage(arg) {
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

function changeImages() {
  if (document.images) {
    for (var i=0; i<changeImages.arguments.length; i+=2) {
      document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
    }
  }
}

//************************************************************* 
function Trim (str)  
{ 
  return RTrim(LTrim(str)); 
} 
//*************************************************************   
function LTrim (str) { 
var ret_str = str; 
for (var i=0; i<str.length; i++){ 
  if (str.charAt(i) == ' ') {;} 
  else  
  { 
    ret_str = str.substring(i); 
    return ret_str; 
  } 
} 
ret_str=''; 
return ret_str; 
} 
//************************************************************* 
function RTrim (str) { 
  var ret_str = str; 
  for (var i=(str.length-1); i>=0; i--) 
  { 
    if (str.charAt(i) == ' ') {;} 
    else  
    { 
      ret_str = str.substring(0,(i+1)); 
      return ret_str; 
    } 
  } 
  ret_str=''; 
  return ret_str; 
} 

function ShowPopupText(form,field)
{
  var url = "PopupText.aspx?form="+form+"&field=" + field;
  newwindow = window.open(url,'HelpPopup','height=150,width=400,scrollbars=yes,resizable=yes top=100 left=300');
  if (window.focus) {newwindow.focus()}
  
}

function GetCurrencyValue ( value )
{
	var r = new RegExp(",", "g");    
	var d = /\$/g;    
	var z = /\.\d+/g;    
	var s = String(value);
	s = s.replace(d, "");
	return s.replace(r, "");
}


function SetCurrencyValue( value )
{   
    var oldstr = Trim(GetCurrencyValue(String(value)));
    var indx = oldstr.indexOf( "." );
    var newstr;
    var beg;
	
    if (indx>=0)
    {
        newstr = oldstr.substring(indx);
        beg = indx;
    }
    else
    {
        newstr = "";
        beg = oldstr.length;
    }
    //alert("value="+value+"  indx="+indx +" newstr="+newstr);
    var threecount = 0;
    
    
for(i = beg-1; i>=0; i--)
    {
	if (oldstr.charAt(i) != ",")
            {
                    newstr = oldstr.charAt(i) + newstr;
            
                    threecount++;
                    if (threecount == 3)
                    {
			if (i != 0)
                                    newstr = "," + newstr;
                            threecount = 0;
                    }
            }
    }
    return newstr;
}

function SetMonthlyMIPayment( loan_amount ) 
{
    var la = loan_amount + 0.00;
    var mi_factor = document.getElementById('loan_mi_factor').value + 0.0;
    var mi_pmt = (la * mi_factor / 100.00 / 12.00).toFixed(2);
    document.getElementById('roMI').value = SetCurrencyValue( mi_pmt );

    
}

function UpdateCharge( field, loan_amount, update_type)
{
    var points;
    var fee;

    switch ( field )
	{
	case "discount":
	    {
		points = document.getElementById('loan_discount_points').value;
		fee = document.getElementById('doc_order_discount_fee').value;
		if ( update_type == 'points' ) {
		    document.getElementById('loan_discount_points').value = fee / loan_amount * 100.00;
		} else {
		    document.getElementById('doc_order_discount_fee').value = points * loan_amount / 100.00;
		}
	    }
	case "origination":
	    {
		points = document.getElementById('loan_points_charged').value;
		fee = document.getElementById('orig_fee').value;
		if ( update_type == 'points' ) {
		    document.getElementById('loan_points_charged').value = fee / loan_amount * 100.00;
		} else {
		    document.getElementById('orig_fee').value = points * loan_amount / 100.00;
		}
	    }
	}
}
    

function showPage(field)
{
    switch ( field )
        {
	case "lender":
	    {
		Element.hide('loan_fees_div');
		Element.hide('settlement_div');
		Element.hide('misc_div');
		Element.show('lender_div');
		Element.setStyle('link_settlement','background-color: blue; color: white;');
		Element.setStyle('link_fees','background-color: blue; color: white;');
		Element.setStyle('link_misc','background-color: blue; color: white;');
		Element.setStyle('link_lender', 'background-color: white; color: blue;');
		break;
	    }

	case "fees":
	    {
		Element.hide('settlement_div');
		Element.hide('misc_div');
		Element.hide('lender_div');
		Element.show('loan_fees_div');
		Element.setStyle('link_settlement','background-color: blue; color: white;');
		Element.setStyle('link_fees','background-color: white; color: blue;');
		Element.setStyle('link_misc','background-color: blue; color: white;');
		Element.setStyle('link_lender', 'background-color: blue; color: white;');
		break;
	    }

	case "settlement":
	    {
		Element.hide('loan_fees_div');
		Element.hide('misc_div');
		Element.hide('lender_div');
		Element.show('settlement_div');

		Element.setStyle('link_settlement','background-color: white; color: blue;');
		Element.setStyle('link_fees', 'background-color: blue; color: white;');
		Element.setStyle('link_misc','background-color: blue; color: white;');
		Element.setStyle('link_lender', 'background-color: blue; color: white;');
		break;
	    }

	case "misc":
	    {
		Element.hide('loan_fees_div');
		Element.hide('settlement_div');
		Element.hide('lender_div');
		Element.show('misc_div');

		Element.setStyle('link_settlement','background-color: blue; color: white;');
		Element.setStyle('link_fees', 'background-color: blue; color: white;');
		Element.setStyle('link_misc','background-color: white; color: blue;');
		Element.setStyle('link_lender', 'background-color: blue; color: white;');
		break;
	    }

	}
}


function validateScenario()
{
       	var valid = true;
	var loan_info_page = false;

       	if ( $F('loan_loan_amount') == '')
       	{
       		Element.show('loan_amount_error');
       		valid = false;
		loan_info_page = true;
       	}
       	else
       	{
       		Element.hide('loan_amount_error');
       	}

       	if ( $F('loan_appraised_value') == '')
       	{
       		Element.show('appraised_value_error');
       		valid = false;
		loan_info_page = true;
       	}
       	else
       	{
       		Element.hide('appraised_value_error');
       	}

       	if (  $F('loan_state') == 'None' )
       	{
       		Element.show('state_error');
       		valid = false;
       	}
       	else
       	{
       		Element.hide('state_error');
       	}


       	if (  $F('loan_first') == '' )
       	{
       		Element.show('first_name_error');
       		valid = false;
       	}
       	else
       	{
       		Element.hide('first_name_error');
       	}

       	if (  $F('loan_last') == '' )
       	{
       		Element.show('last_name_error');
       		valid = false;
       	}
       	else
       	{
       		Element.hide('last_name_error');
       	}

       	if (  $F('loan_address') == '' )
       	{
       		Element.show('address_error');
       		valid = false;
       	}
       	else
       	{
       		Element.hide('address_error');
       	}

       	if ( $F('loan_fico') == '' || ! IsFICO( $F('loan_fico')))
       	{
       		Element.show('fico_error');
       		valid = false;
       	}
       	else
       	{
       		Element.hide('fico_error');
       	}    		

	if ( $F('loan_finance_type_id') == 1 )
	{
       	    if ( $F('loan_purchase_price') == '')
       	    {
       		Element.show('purchase_price_error');
       		valid = false;
		loan_info_page = true;
       	    }
       	    else
       	    {
       		Element.hide('purchase_price_error');
       	    }
	}
	if ( $F('loan_finance_type_id') == 3 )
	{
       	    if ( $F('loan_co_amount') == '')
       	    {
       		Element.show('co_amount_error');
       		valid = false;
		loan_info_page = true;
       	    }
       	    else
       	    {
       		Element.hide('co_amount_error');
       	    }
	}


        if (valid == false)
        {
               alert('Some information on the page is missing or needs to be modified.  Please correct the fields and submit again.');
	       if (loan_info_page == true) {
		   showPage('lender');
	       } else {
		   showPage('fees');
	       }
               return false;
       	} 
	else
        {
               return true;
        }
}


