
var browser;
agt=navigator.userAgent;
uVer=navigator.appVersion.substring(0,4);

if (agt.indexOf("MSIE") == -1)

         browser="ns";

else {
         browser="ms";
}

// path to calculator images
	var calcimage = "";	
	if(browser == "ns") { calcimage = "";}
	else if(browser == "ns" && document.getElementById) { calcimage = "";} //for NS 6 

// path to calculator form	
	var calcform = "document.forms['calc'].";	
	if(browser == "ns" && document.layers) { calcform = "document.forms['calc'].";}
	else if(browser == "ns" && document.getElementById) { calcform = "document.getElementById('calc').";}
	

// image preload
/*  shandfor : deprecated
	if(document.images) {
				
		var clothes = new Image();
		clothes.src = '/images/gmcard/gmcal_silverado_en_CA.jpg';
		
		var travel = new Image();
		travel.src = '/images/gmcard/gmcal_denali_en_CA.jpg';
		
		var dine = new Image();
		dine.src = '/images/gmcard/gmcal_caddy_en_CA.jpg';
		
		var books = new Image();
		books.src = '/images/gmcard/gmcal_aztek_en_CA.jpg';
		
		var music = new Image();
		music.src = '/images/gmcard/gmcal_corvet_en_CA.jpg';
		
		var misc = new Image();
		misc.src = '/images/gmcard/gmcal_avalanche_en_CA.jpg';
	}
	
*/
	
// calc imagechanger	:: shandfor : deprecated
	function show(num) {
		return;
		/*
		if(document.images) {
			eval(calcimage + "document.c_image.src = " + num + ".src");
		}
		*/
	}
	
// Calc image randomizer
// var which = 0;
// function change() {
// var next = which;
// while ( (next == which) || (next > 3) ) {
// next = Math.ceil(3 * (Math.random() + 0.1));
// }
// eval(calcimage + "document.c_theme.src = \'/images/gmcard/gmcal_" + next + "_en_CA.jpg\'"); 
// which = next;
// }


// convert entry to valid number by removing everything but 0-9 or '.'

function MakeNum(newNumber){
	newStr=new String;
	newNumber = newNumber + "";
	if(newNumber.charAt(0) == ".") newNumber = "0" + newNumber;
	strLength=newNumber.length;
	
	for(var i=0; i<=strLength; i++) {
		tmpChar=newNumber.charAt(i)		
		//convert non-alpha to letter to ensure fail (except for space, which we'll skip)
		if (tmpChar=="-" || tmpChar=="+" || tmpChar==")" || tmpChar=="(" || tmpChar=="*" 
		  || tmpChar=="&" || tmpChar=="#" || tmpChar=="!" || tmpChar=='"' || tmpChar=="/" 
		  || tmpChar=="'" || tmpChar=="$" || tmpChar=="," || tmpChar=="%") {tmpChar="h"}
		  
		if (tmpChar==" "){tmpChar=""}
		
		// unnecessary? testChar=parseInt(tmpChar)
		if(tmpChar=="." || tmpChar<="9") {newStr=newStr+tmpChar}
	
	}	
	
	if(isNaN(parseInt(newStr))) return "0";	
	return pad(Math.round(newStr*100)/100);	
}

//pads out field to fake right-justification
//length fixed as constant
function pad(number) {
     var str = '' + number;
     while (str.length < 4) { str = ' ' + str; }
     return str;
 }

function formatMoney(Amt) {
	//mult by 100, round, drop signs
	var N=Math.abs(Math.round(Amt*100));
	//leading zero's if less than 0.10/1.00
	var S=((N<10)?"00":((N<100)?"0":""))+N;
	S=S.substring(0,(S.length-2)) + "." + S.substring((S.length-2),S.length);
	return pad(S);
}	
	
/* Calculate functions */

function calculate(field) {
	var fieldVal, newVal;
	var total = 0;
	if ((field+0) > 0) {		
		eval("fieldVal = Math.round(" + calcform + "exp_" + (field - 0) + ".value)");
		newVal = MakeNum(fieldVal);
		eval(calcform + "exp_" + (field - 0) + ".value = newVal");
	}
	
	for (var i=1;i<7;i++) {
		eval("total += " + calcform + "exp_" + i + ".value - 0");
	}
	eval(calcform + "total.value = '  ' + MakeNum(total-0)");
	eval(calcform + "bonus.value = ' --- '");
	eval(calcform + "monthly.value = ' --- '");
}

function calcSavings() {
	var total = 0;
	for (var i=1;i<7;i++) {
		eval("total += " + calcform + "exp_" + i + ".value - 0");
	}
	
	eval(calcform + "bonus.value = '  ' + formatMoney(12*total*0.03)");
	eval(calcform + "monthly.value = '  ' + formatMoney(total*0.03)");
	// change();
}