var hasSearched = false	;	

function chkNumeric(objName,minval,maxval,valids,valtype) {
	var checkOK = "0123456789.,";
	var checkStr = objName;
	var valid = true;
	var allValid = true
	var decPoints = 2;
	var allNum = "";
	var testStr = ""

	
	for (i = 0; i < checkStr.length; i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			//if (ch != "," && ch != "%" && ch != "£")
			//	allNum += ch;
		}
	if (!allValid || checkStr == "") {	
		alertsay = "Please enter a valid number!";
		alert(alertsay);
		return (false);
	}
	var chkVal = allNum;
	var prsVal = parseInt(allNum);
	if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval)) {
		alertsay = "Please enter a " + valtype + " greater than " + minval + " and less " + maxval + "!"
		alert(alertsay);
		return (false);
	}
	return (true);
}

window.onload = focuser;
function focuser() {
	document.getElementById("exp1").focus();
	document.getElementById("exp1").select();
}
function subcalc(obj) {
	if (obj) {
		if (!chkNumeric (obj.value, 0, maxVal, valids,valtype)) {
			setTimeout("document.getElementById('" + obj.name + "').focus();",1);
			setTimeout("document.getElementById('" + obj.name + "').select();",1);
			if (obj.name != "duration" ) {
				obj.value = "0"
			} else {
				obj.value = ""
			}
			return (false)
		} else {
			var maxVal = 100;
			var valids = "";
			var valtype = "number";
			if (obj.name != "duration") {
				if (obj.value == 0)
					obj.value = "0";
				obj.value = toPounds(obj.value)
				valids = ",.";
				if (obj.name == "interest") {
					valids = "%.";
					valtype = "percentage";
				} else {
					maxVal = 10000;
					valids = ",£.";
					valtype = "price";
				}
				if (obj.value == ""){
					obj.value = "0"
				}
			}
			var weeklySavings = 0
			for (var n = 1; n <11; n++) {
				weeklySavings += parseFloat(document.getElementById("exp" + n).value.replace(",",""))
			}
			document.getElementById("weekly_savings").innerHTML = toPounds(weeklySavings)
			var monthlySavings = valOf("expC1") + valOf("expC2") + valOf("expC3") + ((weeklySavings * 52)/12)
			document.getElementById("monthly_savings").innerHTML = toPounds(monthlySavings);
			var annualSavings = monthlySavings * 12;
			document.getElementById("annual_savings").innerHTML = toPounds(annualSavings)
			if (document.getElementById("duration").value != "" && document.getElementById("interest").value != "") {
				var tmp = Math.pow(1 + (valOf("interest") / 100), valOf("duration"))
				var future_savings = annualSavings * tmp + annualSavings *((1-tmp)/(0-valOf("interest")/100)-1)
				if (future_savings != parseFloat(future_savings)) {
					document.getElementById("future_savings").innerHTML = "?"
				} else {
				
					document.getElementById("future_savings").innerHTML = toPounds(future_savings)
					
					if (!hasSearched) {	
						if (trackSearch)
							makeRequest('/_Unbiased_SharedFiles2/misc_tracking.php', trackSearch)
						hasSearched = true;
					}

				}
			} else {
				document.getElementById("future_savings").innerHTML = "?"
			}
		}
	}
	return (false)
}

function toPounds(val) {
	var tmp = parseFloat(val) % 1 == 0 ? parseInt(val) : parseFloat(val).toFixed(2)
	tmp += '';
	x = tmp.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function valOf(name) {
	return (parseFloat(document.getElementById(name).value.replace(",","")))
}

function moveto(e, obj1, obj2){
	 if(!e)
				e = window.event;
	 if(e.keyCode){
		if(e.keyCode == 13) {
			subcalc(obj1);
			obj2.focus();
			obj2.select();
		}
	}else{
		if(e.charCode == 13){
			subcalc(obj1);
			obj2.focus();
			obj2.select();
		}
	}
}
