var calculate={
	ajax:function() {
		var request_o;
		if(navigator.appName=="Microsoft Internet Explorer"){
			request_o=new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			request_o=new XMLHttpRequest();
		}
		return request_o;
	},
	clean:function(str){
		return parseFloat(str.replace(/$/ig,'').replace(/,/ig,''));
	},
	period:function(){
		var form=document.forms['calc'];
		var amount=this.clean(form['amount'].value);
		var payments=this.clean(form['payments'].value);
		var interest=(this.clean(form['interest'].value)/100)/parseInt(payments);
		var repayment=this.clean(form['repayment'].value);
 		var minimum=interest*amount;

		var years=(-1*Math.log(1-((interest*amount)/repayment)))/Math.log(1+(interest));

		document.getElementById('calculator').style.display='block';
		document.getElementById('info_repayment').innerHTML='$'+Math.round(minimum*100)/100;
		var yeartext='Please enter an amount that is more than the minimum payment.';
		if(!isNaN(years)){
 			years=Math.round(years/payments*100)/100;
			var months=0;
			if(years.toString().indexOf('.')>0){
				var months=Math.ceil(parseFloat('0.'+years.toString().split('.')[1])*12);
				years=Math.floor(years);
				if(months==12){years++;months=0;}
			}
			var yeartext=years.toString()+' years'+(months>0?' '+months.toString()+' months':'');
 		}
		document.getElementById('info_years').innerHTML=yeartext;
	},
	debtservice:function(){
		var parms='';
		var form=document.forms['calc'].getElementsByTagName('input');
		for(var i=0;i<form.length;i++){
			if((form[i].type.toLowerCase()=='radio'&&form[i].checked)||form[i].type.toLowerCase()!='radio')
				parms+='&'+form[i].name+'='+escape(form[i].value);
		}
		var url='/finance/calculators/img.php?type=dscr'+parms+'&r='+(Math.random());
		var tmpCalc=document.getElementById('calculator');
		if(tmpCalc.getElementsByTagName('img').length==0){
			var debtImg=document.createElement('img');
			tmpCalc.appendChild(debtImg);
		}
		tmpCalc.getElementsByTagName('img')[0].src=url;
	},
	principal:function(){
		var form=document.forms['calc'].getElementsByTagName('input');
		var parms='&payments='+document.getElementById('payments').value;
		var e=new Array();
		for(var i=0;i<form.length;i++){
			if((form[i].type.toLowerCase()=='radio'&&form[i].checked)||form[i].type.toLowerCase()!='radio'){
				parms+='&'+form[i].name+'='+escape(this.clean(form[i].value));
				switch(form[i].name){
					case 'amount':var l=i;
						if(parseFloat(form[i].value)<=0)e.push('Loan amount must be greater than $0.');
					break;
					case 'years':
						if(parseFloat(form[i].value)<=0||parseFloat(form[i].value)>30)e.push('Loan term must be greater than 0 and less than 30 years.');
					break;
					case 'extra':
						if(parseFloat(form[i].value)>parseFloat(form[l].value))e.push('Extra repayments must be less than loan amount.');
					break;
				}
			}
		}
		if(e.length>0){
			alert("You have the following errors:\n\t"+e.join("\n\t"));
			return false;
		}

		var url='/finance/calculators/img.php?type=loan'+parms+'&r='+(Math.random());
		this.http=this.ajax();
		this.http.open('get',url, true);
		this.http.onreadystatechange=function(){
			if(calculate.http.readyState==4){
				var tmpDiv=document.createElement('div');
				tmpDiv.innerHTML=calculate.http.responseText;
				if(!document.getElementById('graphImg')){
					document.getElementById('img').innerHTML=tmpDiv.innerHTML;
					document.getElementById('img').getElementsByTagName('img')[0].id='graphImg';
				}else{
					document.getElementById('graphImg').src=tmpDiv.getElementsByTagName('img')[0].src;
					document.getElementById('graph').innerHTML=tmpDiv.getElementsByTagName('map')[0].innerHTML;
				}
				var inputs=tmpDiv.getElementsByTagName('input');
				for(var i=0;i<inputs.length;i++){
					document.getElementById('info_'+inputs[i].id.match(/.*_(.*)/)[1]).innerHTML=inputs[i].value;
				}
			}
		}
		this.http.send(null);
		return false;
	},
	info:function(year,price){
		document.getElementById('summary').className='info_v';
		document.getElementById('info_year').innerHTML=year;
		document.getElementById('info_remain').innerHTML='$'+price;
	}

}

