var regExp	 = /[^-0123456789.]/g;
var onColor  = '#eeb46f';
var offColor = '#eeeeee';

var arrStatusColor = new Array();
arrStatusColor['-1'] = '#00FF00';
arrStatusColor['0']  = '#000000';
arrStatusColor['1']  = '#0000FF';
arrStatusColor['2']  = '#FF0000';
arrStatusColor['3']  = '#800080';
arrStatusColor['9']  = '#888888';

function formatCurrency(val) {
	
	val = new String(val);
	val = val.replace(regExp, '');
	if (val == '') return '';
	
	val = new Number(val);
	
	if (isNaN(val)) return '';
	val = val.toFixed(0);
	exp = new RegExp('(-?[0-9]+)([0-9]{3})'); 
	while (exp.test(val)) {
		val = val.replace(exp, '$1,$2');
	}
	return val;
}

function setCheckVal(obj) {
	if (obj.checked) {
		obj.value = '1';
	} else {
		obj.value = '0';
	}
}

function getSelectedIndex(obj, val, index) {
	for(i=0; i<getFieldObj(obj, index).options.length; i++) {
		selectedval = getFieldObj(obj, index).options[i].value;
		if (!isNaN(selectedval)) selectedval = Number(selectedval);
		if (!isNaN(val)) val = Number(val);
		if (selectedval == val) {
			getFieldObj(obj, index).selectedIndex = i;
			break;
		}
	}
}

function getDocObj(idname) {
	browsertype = checkbrowser();	
	if (browsertype == 'STD') {
		//var obj = document.getElementById(idname);
		var obj = eval('document.all.' + idname);
	} else if (browsertype == 'IE4') {
		var obj = document.all(idname);
	} else if (browsertype == 'NN4') {
		var obj = document.layers[idname];
	} 
	return(obj);
}

function getFieldObj(idname, index) {
	browsertype = checkbrowser();
	/*
	if (browsertype == 'STD') {
		var obj = document.getElementsByName(idname);
	} else if (browsertype == 'IE4') {
		var obj = form1.elements[idname];
	} else if (browsertype == 'NN4') {
		var obj = form1.elements[idname];
	}
	*/

	if (isNaN(parseInt(index))) {
		obj = document.getElementsByName(idname);
	} else {
		obj = document.getElementsByName(idname)[index];
	}
	return(obj);
}

function checkbrowser() {

	if (document.getElementById) {	//Standard - NN6,Mozilla,IE5
		var retval = 'STD';
	} else if (document.all) {		//IE4
		var retval = 'IE4';
	} else if (document.layers) {	//NN4
		var retval = 'NN4';
	} else {						//Other
		var retval = 'OTH';
	}		
	return(retval);
}

function replaceQueryValues(query, key, value) {
	if (query.indexOf(key) == -1) {
		if (query == '') {
			query = '?';
		} else {
			query += '&';
		}
		query += key + '=' + value;
	} else {
		re = new RegExp(key + '=([^&]*)', 'gi')
		query = query.replace(re, key + '=' + value);
	}
	return query;
}

function checkDate(objyear, objmonth, objdate) {

	year  = parseInt(getFieldObj(objyear, 0).value);
	month = parseInt(getFieldObj(objmonth, 0).value);
	date  = parseInt(getFieldObj(objdate, 0).value);
	
	if (year > 1900 && month > 0 && date > 0) {
		dd = new Date(year, month - 1, date);
		if (dd.getYear() != year || (dd.getMonth() + 1 * 1) != month || dd.getDate() != date) {
			getSelectedIndex(objyear,  dd.getYear(), 0);
			getSelectedIndex(objmonth, (dd.getMonth() + 1 * 1), 0);
			getSelectedIndex(objdate,  dd.getDate(), 0);
		}		
	}
}

function isemail(val) {
	if (val.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
		return false;
	} else {
		return true;
	}
}



//-------------------------------------------------------------------------
// Calcration for Sales
//-------------------------------------------------------------------------


function calc(obj) {

	if (obj) obj.value = formatCurrency(obj.value);

	// Option Features
	feature = 0;
	for (i=0; i<getFieldObj('feature[]', '').length; i++) {
		feature += new Number(getFieldObj('feature[]', i).value.replace(regExp, ''));
	}
	getFieldObj('feature_total', 0).value = formatCurrency(feature);
	gettax(getFieldObj('feature_total', 0).value, 'feature_total_tax');

	// Expense
	expense = 0;
	for (i=0; i<getFieldObj('expense[]', '').length; i++) {
		expense += new Number(getFieldObj('expense[]', i).value.replace(regExp, ''));
	}
	getFieldObj('expense_total', 0).value = formatCurrency(expense);
	gettax(getFieldObj('expense_total', 0).value, 'expense_total_tax');

	// Legal Expense (No tax)
	legal_expense = 0;
	for (i=0; i<getFieldObj('legal_expense[]', '').length; i++) {
		legal_expense += new Number(getFieldObj('legal_expense[]', i).value.replace(regExp, ''));
	}
	getFieldObj('legal_expense_total', 0).value = formatCurrency(legal_expense);
	
	// Insurance
	insurance = 0;
	for (i=0; i<getFieldObj('insurance_premium[]', '').length; i++) {
		insurance += new Number(getFieldObj('insurance_premium[]', i).value.replace(regExp, ''));
	}
	getFieldObj('insurance_total', 0).value = formatCurrency(insurance);


	gettax(getFieldObj('carprice', 0).value, 'carprice_tax');

	subtotal = getFieldObj('carprice', 0).value.replace(regExp, '') * 1
	 		 + getFieldObj('feature_total', 0).value.replace(regExp, '') * 1
	 		 + getFieldObj('expense_total', 0).value.replace(regExp, '') * 1
	 		 + getFieldObj('legal_expense_total', 0).value.replace(regExp, '') * 1
	 		 + getFieldObj('insurance_total', 0).value.replace(regExp, '') * 1;
	
	getFieldObj('sale_subtotal', 0).value = formatCurrency(subtotal);
	
	subtotal_tax = getFieldObj('carprice_tax', 0).value.replace(regExp, '') * 1
	 		     + getFieldObj('feature_total_tax', 0).value.replace(regExp, '') * 1
	 		 	 + getFieldObj('expense_total_tax', 0).value.replace(regExp, '') * 1 
	 		 
	getFieldObj('sale_subtotal_tax', 0).value = formatCurrency(subtotal_tax);
	getFieldObj('sale_grandtotal', 0).value = formatCurrency(subtotal + subtotal_tax);
	
	deposit_total = + getFieldObj('deposit', 0).value.replace(regExp, '') * 1
	 		        + getFieldObj('trade_price', 0).value.replace(regExp, '') * 1
	 		 	    + getFieldObj('deptbalance', 0).value.replace(regExp, '') * 1 
	 		 	    + getFieldObj('deposit_binder', 0).value.replace(regExp, '') * 1;

	getFieldObj('deposit_total', 0).value = formatCurrency(deposit_total);
	
	installment_principal = getFieldObj('sale_grandtotal', 0).value.replace(regExp, '') * 1 - (deposit_total * 1);
	getFieldObj('installment_principal', 0).value = formatCurrency(installment_principal);
	
	payment_grandtotal = getFieldObj('installment_fee', 0).value.replace(regExp, '') * 1 + installment_principal;
	getFieldObj('payment_grandtotal', 0).value = formatCurrency(payment_grandtotal);
	
	
}

function gettax(value, fieldname) {

	num = new Number(value.replace(regExp, ''));
	if (num == '') num = 0;
	getFieldObj(fieldname, 0).value = formatCurrency(num * tax / 100);
}


//-------------------------------------------------------------------------
// Relation of Countries, CarMakers and CarModels
//-------------------------------------------------------------------------

function setCarmakers(country, carmaker, carmodel) {

	obj_country  = eval('document.all.form1.' + country);
	obj_carmaker = eval('document.all.form1.' + carmaker);
	obj_carmodel = eval('document.all.form1.' + carmodel);

	obj_carmaker.options.length = 1;
	obj_carmaker.selectedIndex  = 0;
	obj_carmodel.options.length = 1;
	obj_carmodel.selectedIndex  = 0;

	countryid = obj_country.value;
	
	if (countryid != '') {
		if (arr_carmakerid[countryid].length > 0) {
			obj_carmaker.options.length = arr_carmakerid[countryid].length + 1;
		} else {
			obj_carmaker.options.length = 1;
		}
		
		obj_carmaker.options[0].value = '';

		for (i=0; i<arr_carmakerid[countryid].length; i++) {
			obj_carmaker.options[i+1].value = arr_carmakerid[countryid][i];
			obj_carmaker.options[i+1].text  = arr_carmakername[countryid][i];
		}
	}
}

function setCarmodels(carmaker, carmodel) {
	
	obj_carmaker = eval('document.all.form1.' + carmaker);
	obj_carmodel = eval('document.all.form1.' + carmodel);

	carmakerid = obj_carmaker.value;

	if (carmakerid == '') {
		obj_carmodel.options.length = 1;
		obj_carmodel.selectedIndex  = 0;
		return;
	}
	
	if (arr_carmodelid[carmakerid].length > 0) {
		obj_carmodel.options.length = arr_carmodelid[carmakerid].length + 1;
	} else {
		obj_carmodel.options.length = 1;
	}
	
	obj_carmodel.options[0].value = '';

	for (i=0; i<arr_carmodelid[carmakerid].length; i++) {
		obj_carmodel.options[i+1].value = arr_carmodelid[carmakerid][i];
		obj_carmodel.options[i+1].text  = arr_carmodelname[carmakerid][i];
	}
}




//-------------------------------------------------------------------------
// Image Enlargement Window
//-------------------------------------------------------------------------

var imageno;
var images = new Array(10);

function enlarge(imageno, width, height) {
	if (document.getElementsByName('image')[imageno].value) {
		url = '../templates/enlarge.html?imageno=' + imageno;
		enlargewin = window.open(url, 'enlargewin', 'width=' + width + ',height=' + height + ',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0');
	}
}

function enlarge_init() {
	query = window.location.search;
	imageno = query.split('=')[1];
	for (i=0; i<images.length; i++) {
		images[i] = window.opener.document.getElementsByName('image')[i].value;
	} 
	showimage(imageno);
}

function move(way) {
	imageno = imageno * 1 + way;
	if (imageno < 0) imageno = 9;
	if (imageno > 9) imageno = 0;
	if (!images[imageno]) move(way);
	showimage(imageno);
}

function showimage(imageno) {
	document.all.image.src = images[imageno];
	window.focus();
}
