var blnHomeOwner = false;
//-------------------------------------------------------------------------------------------
function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100,10);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}
function PercentFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100,10);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.0'; }
	if(s.indexOf('.') == (s.length - 1)) { s += '0'; }
	s = minus + s;
	return s;
}
//-------------------------------------------------------------------------------------------
// isIntegerInRange tests whether an integer passed into the procedure as 's' is between the range
// greater than a and less than b. If 's' is not an integer the procedure returns false, if the value
// of 's' is preceded by 0 it is stripped from the value before testing if it lies between a and b.
function isFloatInRange(s, a, b) 
{
	var ss = parseInt(s,10);
	var aa = parseInt(a,10);
	var bb = parseInt(b,10);	
	if ( ss < aa ) {return false;}
	if ( ss > bb ) {return false;}	
	return true;
}
//-------------------------------------------------------------------------------------------
function GetXmlHttpObject() 
{
	var xmlHttp=null;
	try
    {   // Firefox, Opera 8.0+, Safari
	    xmlHttp=new XMLHttpRequest(); 
    }
	catch (e)
    {   // Internet Explorer
	    try
	    { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
	    catch (e)
        { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
    }
	return xmlHttp;
}
//-------------------------------------------------------------------------------------------
function popup1(content)
{
    var AjaxDisplay = document.getElementById("AjaxDisplay");
    if (AjaxDisplay) 
    {   AjaxDisplay.style.visibility = "visible"; 
        AjaxDisplay.style.display = "block"; 
        AjaxDisplay.innerHTML = content; 
    }
    var SubmitButton = document.getElementById("SubmitButton");
    if (SubmitButton) 
    {   SubmitButton.style.visibility = "hidden"; 
        SubmitButton.style.display = "none"; 
    }
    var ProceedButton = document.getElementById("ProceedButton");
    if (ProceedButton) 
    {   ProceedButton.style.visibility = "visible"; 
        ProceedButton.style.display = "block";
    }
    try 
    {   if (document.getElementById("maincontentbothads") )
	    {   document.getElementById("maincontentbothads").style.height = "1800px"; }
	}
	catch(e){}
}
//-------------------------------------------------------------------------------------------
function popup2()
{
    var AjaxDisplay = document.getElementById("AjaxDisplay");
    if (AjaxDisplay) 
    {   AjaxDisplay.style.visibility = "hidden"; 
        AjaxDisplay.style.display = "none";
    }
    var SubmitButton = document.getElementById("SubmitButton");
    if (SubmitButton) 
    {   SubmitButton.style.visibility = "visible"; 
        SubmitButton.style.display = "block";
    } 
    var ProceedButton = document.getElementById("ProceedButton");
    if (ProceedButton) 
    {   ProceedButton.style.visibility = "hidden"; 
        ProceedButton.style.display = "none";
    }
    try 
    {   if (document.getElementById("maincontentbothads") )
	    {   document.getElementById("maincontentbothads").style.height = "1600px"; }
	}
	catch(e){}
}
//-------------------------------------------------------------------------------------------
function validateDDL(Id, NotSelectedValue, Msg)
{
	if (document.getElementById(Id).value == NotSelectedValue)
	{   alert(Msg);
		document.getElementById(Id).focus();
		return false;
	}
	return true;
}
//-------------------------------------------------------------------------------------------
//  Prevent <label> tags from clearing the form element when clicked.
function selectElement(Id)
{
	if (document.getElementById(Id))
	{   document.getElementById(Id).focus();
		if (document.getElementById(Id).click) document.getElementById(Id).click();
	}
	return false;
}
//-------------------------------------------------------------------------------------------
// Validation.
function validateQS()
{
	// Loan amount.
	if (!isFieldValidAndFocus(document.QuickSearch.Amount, 'Integer', false, 'Loan amount'))
	{   return false; }
	else
	{   
	    if ((document.QuickSearch.Amount.value.charAt(0) == '0') && (document.QuickSearch.Amount.value.length > 1))
	    {
	        alert ("Loan value cannot begin with a 0");
	        return false;
	    }
	    else if (!isIntegerInRange(document.QuickSearch.Amount.value, 50, 250000))
		{   alert ("Loan amount must be between £50 and £250,000");
			return false;
		}
	}	    
	// Term.
	if (!validateDDL("Term", "select", "Please select the repayment period"))
	{   return false; }
	// Residential status.
	if (!validateDDL("C9", "", "Please select your current residential status"))
	{   return false; }
	// No validation errors.
	return true;
}
//-------------------------------------------------------------------------------------------
//  Outstanding Debt Total.
function ODTotal()
{
    var xODT = 0.00
    var m = ' Outstanding Debt';
    
    if (!isFieldValidAndFocus(document.SmartSearch.cc1, 'Integer', false, 'Credit Card' + m))
    {   document.SmartSearch.cc1.value=0; return false;}
    
    if (!isFieldValidAndFocus(document.SmartSearch.el1, 'Integer', false, 'Existing Loans' + m))
    {   document.SmartSearch.el1.value=0; return false;}

    if (!isFieldValidAndFocus(document.SmartSearch.sc1, 'Integer', false, 'Store Cards' + m))
    {   document.SmartSearch.sc1.value=0; return false;}
   
    if (!isFieldValidAndFocus(document.SmartSearch.cl1, 'Integer', false, 'Car Loan/Hire Purchase' + m))
    {   document.SmartSearch.cl1.value=0; return false;}

    if (!isFieldValidAndFocus(document.SmartSearch.od1, 'Integer', false, 'Other Debts' + m))
    {   document.SmartSearch.od1.value=0; return false;}
    
    xODT = parseInt(document.SmartSearch.cc1.value,10) + parseInt(document.SmartSearch.el1.value,10) + parseInt(document.SmartSearch.sc1.value,10) + parseInt(document.SmartSearch.cl1.value,10) + parseInt(document.SmartSearch.od1.value,10);
            
    document.SmartSearch.ct1.value = xODT ;
    popup2() ;
}
//-------------------------------------------------------------------------------------------
// Repay Each Month Total.
function REMTotal()
{
    var xREM = 0
    var m = ' Repay Each Month';

    if (!isFieldValidAndFocus(document.SmartSearch.cc2, 'Integer', false, 'Credit Card' + m))
    {   document.SmartSearch.cc2.value=0; return false;}
    
    if (!isFieldValidAndFocus(document.SmartSearch.el2, 'Integer', false, 'Existing Loans' + m))
    {   document.SmartSearch.el2.value=0; return false;}

    if (!isFieldValidAndFocus(document.SmartSearch.sc2, 'Integer', false, 'Store Cards' + m))
    {   document.SmartSearch.sc2.value=0; return false;}
   
    if (!isFieldValidAndFocus(document.SmartSearch.cl2, 'Integer', false, 'Car Loan/Hire Purchase' + m))
    {   document.SmartSearch.cl2.value=0; return false;}

    if (!isFieldValidAndFocus(document.SmartSearch.od2, 'Integer', false, 'Other Debts' + m))
    {   document.SmartSearch.od2.value=0; return false;}

    xREM = parseInt(document.SmartSearch.cc2.value,10) +  parseInt(document.SmartSearch.el2.value,10) +  parseInt(document.SmartSearch.sc2.value,10) +  parseInt(document.SmartSearch.cl2.value,10) + parseInt(document.SmartSearch.od2.value,10);         
    document.SmartSearch.ct2.value = xREM ;
    popup2() ;  
}
//-------------------------------------------------------------------------------------------
function CallUnsecuredLoans2() 
{
    var ict1 = parseInt(document.SmartSearch.ct1.value,10) ;
	var iRT = document.SmartSearch.RepaymentTerm.value ;
    var iC92 = document.SmartSearch.C92.value ;
    var bitHomeowner = 0;
    var iCP0 = 4 ;
	
	if (iC92 == 1 || iC92 == 2) 
    {   bitHomeowner = 1;}
	
    if ( document.SmartSearch.CP1.checked )
    {   iCP0 =document.SmartSearch.CP1.value; } 
        
    if ( document.SmartSearch.CP2.checked )
    {   iCP0 =document.SmartSearch.CP2.value; }   
        
    if ( document.SmartSearch.CP3.checked )
    {   iCP0 =document.SmartSearch.CP3.value; } 
       
    var url = "LoansApplicationdb.asp?Amount=" + ict1 + "&Term=" + iRT ;
   
    url = url + "&Homeowner=" + bitHomeowner; 
    url = url + "&C9=" + iC92;   
    url = url + "&SegmentID=" + iCP0;   
    url = url + "&SearchType=1" ; 
    url = url + "&adverse=0" ;
    url = url + "&JointApplication=0" ;
    url = url + "&PPI=0" ;
    url = url + "&LoanCCJCNo=0" ;
    url = url + "&isCar=0" ; 
    url = url + "&RequestingPage=PersonalLoansAssessment.asp" ;
	window.location = url;

}
//-------------------------------------------------------------------------------------------
function ajaxCardFunction()
{
    // If a loan amount is entered there must be a repayment amount
    
    var cc1 = parseInt(document.SmartSearch.cc1.value,10);
    var cc2 = parseInt(document.SmartSearch.cc2.value,10);
    if ((cc1 > 0) && (cc2 == 0))
    {   alert ("Credit Card repayment cannot be zero"); return false}
    if ((cc2 > 0) && (cc1 == 0))
    {   alert ("Credit Card repayment should not have a value, as the outstanding amount is zero"); return false}
    
    var el1 = parseInt(document.SmartSearch.el1.value,10);
    var el2 = parseInt(document.SmartSearch.el2.value,10);
    if ((el1 > 0) && (el2 == 0))
    {   alert ("Existing Loans repayment cannot be zero"); return false}
    if ((el2 > 0) && (el1 == 0))
    {   alert ("Existing Loans repayment should not have a value, as the outstanding amount is zero"); return false}

    var sc1 = parseInt(document.SmartSearch.sc1.value,10);
    var sc2 = parseInt(document.SmartSearch.sc2.value,10);
    if ((sc1 > 0) && (sc2 == 0))
    {   alert ("Store Cards repayment cannot be zero"); return false}
    if ((sc2 > 0) && (sc1 == 0))
    {   alert ("Store Cards repayment should not have a value, as the outstanding amount is zero"); return false}
   
    var cl1 = parseInt(document.SmartSearch.cl1.value,10);
    var cl2 = parseInt(document.SmartSearch.cl2.value,10);
    if ((cl1 > 0) && (cl2 == 0))
    {   alert ("Car Loan/Hire Purchase repayment cannot be zero"); return false}
    if ((cl2 > 0) && (cl1 == 0))
    {   alert ("Car Loan/Hire Purchase repayment should not have a value, as the outstanding amount is zero"); return false}

    var od1 = parseInt(document.SmartSearch.od1.value,10);
    var od2 = parseInt(document.SmartSearch.od2.value,10);
    if ((od1 > 0) && (od2 == 0))
    {   alert ("Other Debts repayment cannot be zero"); return false}
    if ((od2 > 0) && (od1 == 0))
    {   alert ("Other Debts repayment should not have a value, as the outstanding amount is zero"); return false}

    // Loan amount.
	if (!isFieldValidAndFocus(document.SmartSearch.ct1, 'Integer', false, 'Loan amount'))
	{   return false; }	
	else
	{   var lAmount = parseInt(document.SmartSearch.ct1.value,10) ;
        if (!isIntegerInRange(lAmount, 50, 250000))
		{   alert ("Loan amount must be between £50 and £250,000");
			return false;
		}
	}
    // Repayment amount.
	if (!isFieldValidAndFocus(document.SmartSearch.ct2, 'Integer', false, 'Repayment amount'))
	{   return false; }	
	else
	{   var rAmount = parseInt(document.SmartSearch.ct2.value,10) ;
        if (!isIntegerInRange(rAmount, 1, 250000))
		{   alert ("Repayment amount must be entered");
			return false;
		}
	}
	// Term.
	if (!validateDDL("RepaymentTerm", "select", "Please select the repayment period"))
	{   return false; }

	// Residential status.
	if (!validateDDL("C92", "", "Please select your current residential status"))
	{   return false; }

    xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
    {   return; }
	var ict1 = lAmount ;
	var iRT = document.SmartSearch.RepaymentTerm.value ;
    var iC92 = document.SmartSearch.C92.value ;
    
    blnHomeOwner = false;
	if (iC92 == "1") {blnHomeOwner = true;}
	if (iC92 == "2") {blnHomeOwner = true;}

    var iCP0 = 4 ;
	
    if ( document.SmartSearch.CP1.checked )
    {   iCP0 =document.SmartSearch.CP1.value; } 
        
    if ( document.SmartSearch.CP2.checked )
    {   iCP0 =document.SmartSearch.CP2.value; }   
        
    if ( document.SmartSearch.CP3.checked )
    {   iCP0 =document.SmartSearch.CP3.value; } 

	var url = "consolidationstep2.asp?ct1=" + ict1 + "&C92=" + iC92 + "&RepaymentTerm=" + iRT + "&CP0=" + iCP0 ; 
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
} 
//-------------------------------------------------------------------------------------------
function stateChanged()
{   
if (xmlHttp.readyState==4)
    { // Convert XML Sourcing Output into Recordset.
        try 
        {   
            //importXML("YourXMLFile.xml");
            
            var xmlDoc = xmlHttp.responseXML.documentElement;             
            var xmlDoc1 = xmlDoc.getElementsByTagName("monthlyamount");
            var xmlDoc2 = xmlDoc.getElementsByTagName("apr");
            
            var xMonthlyAmount = xmlDoc1[0].firstChild.nodeValue;
            var xApr = xmlDoc2[0].firstChild.nodeValue;

               
            if (xApr == 0)
            {   alert ("No product available for your criteria."); 
                return false; 
            }
              
            //-------------------------------------------------------------------------------                                
            var xhtml= ""
            if  (xApr!=0) 
            {   
                var val0 = xMonthlyAmount.replace(',','') ;
                var val1 = Math.round(val0*100)/100 ;
                var val2 = Math.round((val0 - document.SmartSearch.ct2.value)*100)/100 ;
                var val3 = Math.round(xApr*100)/100 ;     
                
                if ( val2 < 0 )
                {   xhtml = "<br /><ul class='VerdanaTDStyle'><li>Your new monthly payments could be £" 
                            + CurrencyFormatted(val1) 
                            + "<br /><br /></li><li>A reduction of £"  
                            + CurrencyFormatted(Math.abs(val2)) 
                            + " a month* <br /><br /></li><li>This calculation is based on an APR of " 
                            + PercentFormatted(val3) 
                            + "%</li></ul>" ; 
                }
                else
                {   xhtml = "<br /><ul class='VerdanaTDStyle'><li>Your new monthly payments could be £" 
                            + CurrencyFormatted(val1) 
                            + "<br /><br /></li><li>Increase the repayment period for lower monthly payments " 
                            + "<br /><br /></li><li>This calculation is based on an APR of " 
                            + PercentFormatted(val3) 
                            + "%</li></ul>" ;                      
                }   
                popup1();       
            } 
            popup1( xhtml );  
            return true;                      
            }
        catch(err)
        {   var xmlDoc='';
            alert ("No product available for your criteria.") ; 
            return false;   
        }
    }
}

