var amount_;
var term_;

var rates = new Array();
var marketList = new Array();
var ratesList = new Array();

/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}
bw=new checkBrowser()
//Shows the div
function show(div,nest){
	obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0;
	obj.display='block'
}
//Hides the div
function hide(div,nest){
	obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0;
	obj.display='none'
}

function borrowingpageLiveRates() {
    //alert("borrowingpageLiveRates");
    //return;

	var webservice = '/WebApi/startup.ashx';
	var myAjax = new Ajax.Request(
      	webservice,
      	{
      	method: 'get',
     	onSuccess: parseBorrowingpageResults,
        onFailure: errBorrowing
      	});
}

function errBorrowing() {
	$('bprate').innerHTML = "<!--e-->4.85";
}

function parseBorrowingpageResults(request) {
	//alert(parseBorrowingpageResults);
	//alert(request.responseText);
    //return;

   	var xml = request.responseXML;
    var ratesXML = xml.getElementsByTagName('overview');
	var ratesList = ratesXML.getElementsByTagName('borrowers');

	alert(ratesList);
	alert(ratesList[0].getAttribute('arate'));

	$('bprate').innerHTML = "TEST";
}

function lendingpageLiveRates() {
	
	var webservice = '/WebApi/dynamic-rates.ashx';
	var myAjax = new Ajax.Request(
      	webservice,
      	{
      	method: 'get',
     	onSuccess: parselendingpageResults,
        onFailure: errFrontpageFunc
      	});
}

function parselendingpageResults(request) {
	//alert(request.responseText);
        //return;

   	var xml = request.responseXML;
    	var ratesXML = xml.getElementsByTagName('rate');

	for(var i = 0; i < ratesXML.length; i++) {
   		var rate = ratesXML[i];

		ratesList[i] = new Object();
		ratesList[i].type = rate.getAttribute('type');
		ratesList[i].value = rate.getAttribute('value');
		ratesList[i].market = rate.getAttribute('market');
		ratesList[i].term = rate.getAttribute('term');
	}

	for (var m = 0; m < ratesList.length; m++) {
 		if (ratesList[m].type == "HighestLendingReturn") {
		 $('lprate').innerHTML = ratesList[m].value;
      		}
  	}
}

function frontpageLiveRates() {

	var webservice = '/WebApi/dynamic-rates.ashx';
	var myAjax = new Ajax.Request(
      	webservice,
      	{
      	method: 'get',
     	onSuccess: parseFrontpageResults,
        onFailure: errFrontpageFunc
      	});
}

function errFrontpageFunc(request) {
	alert('Error1 ' + request.status + ' -- ' + request.statusText);
}

function parseFrontpageResults(request) {
   	var xml = request.responseXML;
    	var ratesXML = xml.getElementsByTagName('rate');

	for(var i = 0; i < ratesXML.length; i++) {
   		var rate = ratesXML[i];

		ratesList[i] = new Object();
		ratesList[i].type = rate.getAttribute('type');
		ratesList[i].value = rate.getAttribute('value');
		ratesList[i].market = rate.getAttribute('market');
		ratesList[i].term = rate.getAttribute('term');
	}

	for (var m = 0; m < ratesList.length; m++) {
 		if (ratesList[m].type == "BestBorrowing1") {
		 $('bmarket1').innerHTML = ratesList[m].market;
		 $('bterm1').innerHTML = ratesList[m].term;
		 $('brate1').innerHTML = ratesList[m].value;
      		}
  		if (ratesList[m].type == "BestBorrowing2") {
		 $('bmarket2').innerHTML = ratesList[m].market;
		 $('bterm2').innerHTML = ratesList[m].term;
		 $('brate2').innerHTML = ratesList[m].value;
      		}
  		if (ratesList[m].type == "BestLending1") {
		 $('lmarket1').innerHTML = ratesList[m].market;
		 $('lterm1').innerHTML = ratesList[m].term;
		 $('lrate1').innerHTML = ratesList[m].value;
       		}
  		if (ratesList[m].type == "BestLending2") {
		 $('lmarket2').innerHTML = ratesList[m].market;
		 $('lterm2').innerHTML = ratesList[m].term;
		 $('lrate2').innerHTML = ratesList[m].value;
       		}
  	}

}

function borrowCalc(nMarkets) {

    $('borrowCalcOutput').innerHTML = '<div class="inputarea">Calculating...</div>';

    var errFunc = function(request) {
    	alert('Error ' + request.status + ' -- ' + request.statusText);
    }

    var parseBorrowResults = function(request) {

    var xml = request.responseXML;
    var marketsXML = xml.getElementsByTagName('match');

    for(var i = 0; i < marketsXML.length; i++)
    {
    	var market = marketsXML[i];
    	marketList[i] = new Object();
    	marketList[i].marketName = market.getAttribute('market');
    	marketList[i].rate = market.getAttribute('rate');
    	marketList[i].apr = market.getAttribute('apr');
    	marketList[i].monthlypayment = market.getAttribute('monthlypayment');
  	}
  	showBorrowResults(nMarkets);
    }

	var webservice = '/ZopaWeb/Ashx/Borrowing/IndicativeMatch.ashx?amount=' + $F('amount') + '&term=' + $F('term') + '&ppi=' + 'false';

	var myAjax = new Ajax.Request(
      	webservice,
      {
      	method: 'get',
     	onSuccess: parseBorrowResults,
        onFailure: errFunc
      });
}

function showBorrowResults(nMarkets)
{

  var amount = parseInt( $F('amount') );
  var term = parseInt( $F('term') );

  if(amount > 0 && term > 0)
  {
    var output = '<div class="inputarea">Your monthly payments would be:<table class="alt_rows"><tr><th class="left_col">MARKET</th><th>PAYMENT</th><th>RATE</th></tr>';
    
    if (nMarkets == 1) {
        var limit = 1;
    }else{
        var limit = marketList.length;
    }

    for(var i = 0; i < limit; i++)
    {
      var market = marketList[i];
      output += '<tr><td class="left_col">' + market.marketName + '</td><td>' + market.monthlypayment + '</td><td>' + market.rate + '</td></tr>';
    }
    output += '</table></div>';
    output += "<p><a href='/zopaweb/public/borrowing/loan-calculator.html?amount=" + amount + "&term=" + term + "'><img src='/ZopaWeb/ApplicationResources/images/button-get-a-quote.gif' alt='Get Quote' border='0' /></a></p>";

    hide('calculatebtn');
    show('recalculatebtn');

    $('borrowCalcOutput').innerHTML = output;
    stripe();
  }
  else
  {
    $('borrowCalcOutput').innerHTML = '<div class="inputarea">Please enter an amount and choose a term.</div>';
  }
}

function lendingCalc2() {

  	amount_ = parseInt( $F('amount2') );

    		$('lendingCalcOutput').innerHTML = '<div class="inputarea">Calculating...</div>';

    		var errFunc3 = function(request) {
    			alert('Error ' + request.status + ' -- ' + request.statusText);
    		}

    		var parseLendingResults2 = function(request) {

                        //alert(request.responseText);

    			var xml = request.responseXML;
    			var ratesXML = xml.getElementsByTagName('rate');

    			for(var i = 0; i < ratesXML.length; i++)
    			{
    			var rate = ratesXML[i];
    			var term = parseInt(rate.getAttribute('term'));
    			rates[term] = new Object();
    			rates[term].grossrate = parseFloat(rate.getAttribute('grossrate'));
    			rates[term].afterfees = parseFloat(rate.getAttribute('afterfees'));
    			rates[term].weighted = parseFloat(rate.getAttribute('weighted'));
    			}
                        //alert(rates);
			showLendingResults2();
    		}

		var webservice = '/WebApi/rates.ashx'

		var myAjax = new Ajax.Request(
      		webservice,
      		{
      		method: 'get',
     		onSuccess: parseLendingResults2,
        	onFailure: errFunc3
      		});

}

function lendingCalc() {

  	amount_ = parseInt( $F('amount2') );
  	term_ = parseInt( $F('term2') );

	if (!validateNumber(amount_) || amount_=="") {
                alert("Please enter the amount you want to borrow as a whole number between 1000 and 15000 without commas or pound symbol");
                return;
        }else if (amount_>15000 || amount_<1000){
                alert("Please enter the amount you want to borrow as a whole number between 1000 and 15000 without commas or pound symbol");
                return;
        }else{
                amount_ = (Math.round(amount_/100))*100;

	}

    		$('lendingCalcOutput').innerHTML = '<div class="inputarea">Calculating...</div>';

    		var errFunc2 = function(request) {
    			alert('Error ' + request.status + ' -- ' + request.statusText);
    		}

    		var parseLendingResults = function(request) {

    			var xml = request.responseXML;
    			var ratesXML = xml.getElementsByTagName('rate');

    			for(var i = 0; i < ratesXML.length; i++)
    			{
    			var rate = ratesXML[i];
    			var term = parseInt(rate.getAttribute('term'));
    			rates[term] = new Object();
    			rates[term].grossrate = parseFloat(rate.getAttribute('grossrate'));
    			rates[term].afterfees = parseFloat(rate.getAttribute('afterfees'));
    			rates[term].weighted = parseFloat(rate.getAttribute('weighted'));
    			}
    			showLendingResults();
    		}

		var myAjax = new Ajax.Request(
      		'/ZopaWeb/ApplicationResources/js/rates.xml',
      		{
      		method: 'get',
     		onSuccess: parseLendingResults,
        	onFailure: errFunc2
      		});
}

function showLendingResults2() {
    var terms = new Array("12","24","36","48","60");
    var output = '<div class="inputarea">If you relend your repayments, you could enjoy annual returns of:<table class="alt_rows"><tr><th class="left_col">TERM</th><th>RETURN</th></tr>';
    for(var i = 0; i < 5; i++)
    {
      term=terms[i];
      output += '<tr><td class="left_col">' + terms[i] + ' months</td><td>' + decimal(rates[term].grossrate*100, 2) + '%<br>(&pound;' + decimal(amount_*(rates[term].grossrate), 2) + ' pa)</td></tr>';
    }
    output += '</table></div>';
    $('lendingCalcOutput').innerHTML = output;
    stripe();
    $('lendingCalcDisclaimer').style.display = 'block';
    $('calcReturn').src = '/ZopaWeb/ApplicationResources/images/button-recalculate.gif';
}

function showLendingResults() {
    var output = '<div class="inputarea">You could enjoy a return of <div class="lendResult">';
    output += decimal(rates[term_].grossrate*100, 2) + '% (&pound;' + decimal(amount_*(1+rates[term_].grossrate), 2) + ')<br />';
    output += '</div></div>';
    $('lendingCalcOutput').innerHTML = output;
    $('lendingCalcDisclaimer').style.display = 'block';
    $('calcReturn').src = '/ZopaWeb/ApplicationResources/images/button-recalculate.gif';
}

function decimal(val, dp)
{
  return Math.round(val * Math.pow(10, dp)) / Math.pow(10, dp);
}

//To Unformat Currency to Number

function getValue(num)
{
    var noJunk = ""
    var withDollar = ""
    var foundDecimal = 0
    var foundAlphaChar = 0
    num += "";

    if (num == "") { return(0); }
    for (i=0; i <= num.length; i++)
    {
        var thisChar = num.substring(i, i+1);
        if (thisChar == ".")
        {
          foundDecimal = 1;
          noJunk = noJunk + thisChar;
        }
        if ((thisChar < "0") || (thisChar > "9"))
        {
          if ((thisChar != "$") && (thisChar !=".") && (thisChar != ",") && (thisChar != " ") && (thisChar !="")) foundAlphaChar = 1;
        }
        else
 {
    withDollar = withDollar + thisChar
    noJunk = noJunk + thisChar
 }

 if ((thisChar == "$") || (thisChar == ".") || (thisChar == ","))
 {
   withDollar = withDollar + thisChar
 }
  }
     if (foundDecimal) { return parseFloat(noJunk); }
     else if (noJunk.length > 0) { return parseFloat(noJunk); }
     else return 0;
}

function validateNumber(yourValue) {
	var re = /^\d{0,5}\.?\d{0,2}$/;
	if ( re.test(yourValue) ) {
        	return true;
        }else{
        	return false;
        }

}

function removeCommas(strValue) {
  var objRegExp = /\(/;
  var strMinus = '';

  //check if negative
  if(objRegExp.test(strValue)){
    strMinus = '-';
  }

  objRegExp = /\)|\(|[,]/g;
  strValue = strValue.replace(objRegExp,'');
  if(strValue.indexOf('$') >= 0){
    strValue = strValue.substring(1, strValue.length);
  }
  return strMinus + strValue;
}

//get URL parameter
function gup( name ) {
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var tmpURL = window.location.href;
  var results = regex.exec( tmpURL );
  if( results == null )
    return "";
  else
    return results[1];
}

function goBorrowCalc() {

        //initHompepage();

	var q_term = parseInt($F('term'));
        var q_amount = parseInt($F('amount'));

	createCookie('lastZopaBorrowEnquiry', q_term + ',' + q_amount, 30)

	var u = "/zopaweb/public/borrowing/loan-calculator.html";
        window.location.href = u + '?amount=' + q_amount + '&term=' + q_term + '&ppi=0';
	//alert( 'amount=' + q_amount + ' term=' + q_term );
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function initHompepage() {
        var cook = readCookie('lastZopaBorrowEnquiry');
        //alert(cook);
        if (cook != null) {
        	var lastEnquiry = cook.split(",");
       		alert("last enquiry TERM was " + lastEnquiry[0] );
       		alert("last enquiry AMOUNT was " + lastEnquiry[1] );
	}else{
                alert("no cookie found");
	}
}
