<!--
//
// FORMATING

function getAmount(/*[Field Object]*/) {
	var amnt = arguments[0].value;
	if (amnt.charAt(0) == '$') {
		amnt = amnt.substring(1,amnt.length);
	}
	var pos = amnt.lastIndexOf(',');
	while (pos != -1) {
		amnt = amnt.substring(0,pos) + amnt.substring(pos+1,amnt.length);
		pos = amnt.lastIndexOf(',', pos);
	}
	return parseFloat(amnt);
}


function getDollarAmnt(/*[Field Object]*/) {
	var amnt = getAmount(arguments[0]);
	if(isNaN(amnt))
		return false;
	else {
		amnt = formatDollarAmnt(amnt);
		arguments[0].value = amnt;
		return true;
	}
}


function formatDollarAmnt(/*[Field Value]*/) {
	var amnt = '' + Math.round(arguments[0]) // round to nearest dollar
	// add commas
	pos = amnt.length;
	pos -= 4;
	while(pos >= 0) {
		amnt = amnt.substring(0,pos+1) + ',' + amnt.substring(pos+1,amnt.length);
		pos -= 3;
	}
	return amnt;
}


function getFloatNumber(/*[Field Object]*/) {
	var num = arguments[0].value;
	if (num.indexOf('.') != -1) { // remove trailing zeros after decimal point
		while (num.charAt(num.length-1) == '0') {
			num = num.substring(0,num.length-1);
		}
		if (num.charAt(num.length-1) == '.') {
			num = num.substring(0,num.length-1);
		}
	}
	if ('' + parseFloat(num) * 1000 != num * 1000) {
		return false;
	} else {
		return true;
	}
}


function fixFloatFormat(/*[Field Object]*/) {
	if ((arguments[0].value == 0) && (arguments[0].length == null)) {
		arguments[0].value = '0.00';
	}
	var temp = eval(arguments[0].value) + 0.005
	var cents = '' + (100 + Math.floor((temp - Math.floor(temp)) * 100));
	var dollars = '' + Math.floor(temp);

	arguments[0].value = dollars + '.' + cents.substring(1,3);
	return true;
}


//
// CALCULATIONS


function recalcTerm(/*[Term Type-(m|y)]*/) {
	var yrs, mnths
	if (arguments[0] == 'm') {
		var yrs = Math.round((parseFloat(frm.termYrs.value)) * 100) / 100;
		var mnths = Math.round(yrs * 12.0);
		frm.termYrs.value = '' + yrs;
		frm.termMnths.value = '' + mnths;
	} else {		
		var mnths = parseInt(frm.termMnths.value);
		var yrs = Math.round((mnths / 12) * 100) / 100;
		frm.termYrs.value = '' + yrs;
		frm.termMnths.value = '' + mnths;
	}
}


function recalcDwnPymnt() {
	var price = getAmount(frm.price);
	var dwnPymntPrcnt = parseFloat(frm.dwnPymntPrcnt.value);
	if(dwnPymntPrcnt < 0) {
		frm.dwnPymntPrcnt.value = "0";
		recalcDwnPymnt(frm);
	}
	else if(dwnPymntPrcnt > 100) {
		frm.dwnPymntPrcnt.value = "100";
		recalcDwnPymnt(frm);
	}
	else {
		var dwnPymnt = price * dwnPymntPrcnt / 100;
		dwnPymnt = formatDollarAmnt(dwnPymnt);
		frm.dwnPymnt.value = "" + dwnPymnt;
	}
	cacheDwnPymnt = frm.dwnPymnt.value
}


function recalcDwnPymntPrcnt() {
	var price  = getAmount(frm.price);
	var dwnPymnt = getAmount(frm.dwnPymnt);
	var dwnPymntPrcnt = 100 * dwnPymnt / price;
	if (dwnPymntPrcnt >= 0  &&  dwnPymntPrcnt <= 100) {
		dwnPymntPrcnt = "" + dwnPymntPrcnt;
		var pos = dwnPymntPrcnt.indexOf(".");
		if (dwnPymntPrcnt.length > pos + 4) {
			dwnPymntPrcnt = dwnPymntPrcnt.substring(0,pos+4);
		}
		frm.dwnPymntPrcnt.value = dwnPymntPrcnt;
	}
	else if(dwnPymntPrcnt < 0) {
		frm.dwnPymntPrcnt.value = "0";
		recalcDwnPymnt(frm);
	}
	else {
		frm.dwnPymntPrcnt.value = "100";
		recalcDwnPymnt(frm);
	}
	cacheDwnPymntPrcnt = frm.dwnPymntPrcnt.value
}


//
// VALIDATION


function validate() {
	var err = false;
	if (arguments[1] == '$') {
		if (!getDollarAmnt(arguments[0])) {
			err = true;
		}
	} else if (arguments[1] == '#') {
		if (!getFloatNumber(arguments[0])) {
			err = true;
		}
	}
	if (err) {
		alert('Invalid ' + arguments[2]);
		arguments[0].select();
		return false;
	} else {
		return true;
	}
}


function chkPrice() {
	if (frm.price.value == '') {
		frm.price.focus();
		return false;
	} else {
		return true;
	}
}


//
// STYLIZE FUNCTIONS

function grayTotal(/*[1=gray|0=normal]*/) {
	frm = document.frm;
	var fontColor, backgroundColor = '#ffffff';
	if (arguments[0] == 1) {
		fontColor = '#aaaaaa';
	} else {
		fontColor = '#000000';
	}
	for (var i = 0; i < totalsFields.length; i++) {
		eval('frm.' + totalsFields[i] + '.style.backgroundColor = "' + backgroundColor +'";')
		eval('frm.' + totalsFields[i] + '.style.color = "' + fontColor +'";')
	}
}


function highlightField(/*[type],[event delay],[event duration-(optional)]*/) {
	var highlightColor = '#fbcfcf';
	if (arguments[0] == 'total') {
		if (arguments[1] == 0) {
			for (var i = 0; i < mainTotals.length; i++) {
				eval('frm.' + mainTotals[i] + '.style.backgroundColor = "' + highlightColor + '";');
				setTimeout('frm.' + mainTotals[i] + '.style.backgroundColor = "#ffffff";', 100);
				setTimeout('frm.' + mainTotals[i] + '.style.backgroundColor = "' + highlightColor + '";', 200);	
				setTimeout('frm.' + mainTotals[i] + '.style.backgroundColor = "#ffffff";', 300);
				setTimeout('frm.' + mainTotals[i] + '.style.backgroundColor = "' + highlightColor + '";', 400);
				setTimeout('frm.' + mainTotals[i] + '.style.backgroundColor = "#ffffff";', 1400);
			}
		} else {
			setTimeout('highlightField(\'total\',0)',arguments[1]);
		}
	} else {
		if (arguments[0] == 'field') {
			eval('frm.' + arguments[1] + '.style.backgroundColor = "' + highlightColor + '";');
			setTimeout('frm.' + arguments[1] + '.style.backgroundColor = "";',arguments[2]);
		} else {
			setTimeout('highlightField(\'field\',\'' + arguments[0] + '\',\'' + arguments[2] + '\')',arguments[1]);
		}
	}
}
//-->
