var errorColor = "red";
var ErrorMsg = new Array();
ErrorMsg[0] = "# EMPTY";
ErrorMsg[1] = "ZIP";
ErrorMsg[2] = "YYYY";
ErrorMsg[3] = "MM";
ErrorMsg[4] = "# ERROR NUMBER";

var _templatename = new Array();
_templatename[0] = " Empty ";
_templatename[1] = " Normal 01 ";
_templatename[2] = " Normal 02 ";

var _templatearr = new Array();
_templatearr[0] = "";
_templatearr[1] = "  [Company Name Here]\n"
				 +"  [Click here and type return address]\n"
				 +"  [Click here and type recipient's address]\n"
				 +"    Dear Sir or Madam:\n"
				 +"      Type your letter here.\n"
				 +"    Sincerely,\n"
				 +"  [Click here and type your name]\n";


_templatearr[2] = "  Dear ,\n\n"
				 +"  Regards\n"
				 +"  [Company Name Here]\n"
				 +"      Type your letter here.\n"
				 +"  Tel: [add your phone]\n"
				 +"  Address: [add your address]\n"
				 +"  Web: [add your web site]\n"
				 +"  Email:[add your Email]\n";

var alertMessage = "Your information cannot be submitted without completing the fields indicated by * or information format is incorrect. For example ";
var eleName = "";

function _template(_templateindex){
	form1.content.value = _templatearr[_templateindex];
}

function _focus(ele) {
	ele.select();
}

function isBreakChar(value) {
	if (value == "B" || value == "b" || value == "R" || value == "r" || value == "L" || value == "l") {
		return true;
	}
	return false;
}

function GoToSubmit(vFormName, vCurField, vlen) {
	tempele = eval(vFormName + "." + vCurField + ".value");
	if(tempele.length == vlen ) {
		return true;
	}
	return false;
}

function calc(ele1, value, rule, digit) {
	if (rule == 1) {
		ele1.value = value;

	} else if (rule == 2) {
		ele1.value = Number(ele1.value) + Number(value);
		
	} else if (rule == 3) {
		ele1.value =  Number(ele1.value) - Number(value);

	} else if (rule == 4) {
		ele1.value = Number(ele1.value) * Number(value);

	} else if (rule == 5) {
		if (Number(value) != 0) {
			ele1.value = Number(ele1.value) / Number(value);
		} else ele1.value = 0;

	} else if (rule == 6) {
		ele1.value = Math.pow(Number(ele1.value), Number(value));

	} else if (rule == 7) {
		ele1.value  = Math.pow(Number(ele1.value), 1/Number(value));

	} else if (rule == 8) {
		for (i = 2; i < 120; i++) {
			if (toNumber(Math.pow(Number(value), i), 5) == Number(ele1.value)) {
				ele1.value = i;
				break;
			}
		}
	} else if (rule == 9) {
		if (Number(ele1.value) != 0) {
			ele1.value =  Number(value) / Number(ele1.value);
		} else ele1.value = 0;

	} else if (rule == 10) {
		ele1.value = Number(value) - Number(ele1.value);
	}
	ele1.value = toNumber(ele1.value, digit);
}

function iif(ele, ele1, ifrule, ifvalue, ele2, ele3, digit) {
	if (ifrule == 1) {
		if (ele1.value == ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 2) {
		if (ele1.value > ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 3) {
		if (ele1.value < ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 4) {
		if (ele1.value >= ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 5) {
		if (ele1.value <= ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 6) {
		if (ele1.value != ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	} else if (ifrule == 7) {
		if (Math.abs(ele1.value) < ifvalue) {
			ele.value = ele2.value;
		} else {
			ele.value = ele3.value;
		}
	}
	ele.value = toNumber(ele.value, digit);
}

function toNumber(str, digit) {
	var value = Number(Number(str).toFixed(digit));
	return value;
}



function onlyInt(ele, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which;
	if (keyCode != 9)
	{
		ele.value = ele.value.replace(/[^\d]/g,'');
	}
	
}
function onlyNumber(ele, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which;
	if (keyCode==13)
		return true;
	if ((keyCode != 9)&&(keyCode!=37)&&(keyCode!=39))
	{
		ele.value = ele.value.replace(/[^\d.]/g,'');
		
		
		ele.value = ele.value.replace(/^\./g,"");

		//ele.value = ele.value.replace(/\.{2,}/g,".");

		ele.value = ele.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

	}
}

function getXmlHttpPrefix() {
	if (getXmlHttpPrefix.prefix)
		return getXmlHttpPrefix.prefix;
	
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + ".XmlHttp");
			return getXmlHttpPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XML parser");
}

//////////////////////////
// Start the Real stuff //
//////////////////////////


// XmlHttp factory
function XmlHttp() {}

XmlHttp.create = function () {
	try {
		if (window.XMLHttpRequest) {
			var req = new XMLHttpRequest();
			return req;
		}
		if (window.ActiveXObject) {
			return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
		}
	}
	catch (ex) {}
	// fell through
	throw new Error("Your browser does not support XmlHttp objects");
};

function _goFirst() {
	try {
		parent.document.location = "http://www.speedee.biz";
	} catch (ex) {
		document.location = "http://www.speedee.biz";
	}
}

function _goFirstPatx() {
	try {
		parent.document.location = "http://www.patx.biz";
	} catch (ex) {
		document.location = "http://www.patx.biz";
	}
}

function _Suggestion(funcId){	
	form1.action="../../all/messageboard/messageAction.jsp?searchFunctionId=" + funcId;
	form1.submit();
}

function checkNull(ele) {
	if (trim(ele.value) == "" || trim(ele.value) == ErrorMsg[0]) {
		ele.style.color  = "red";
		try {
			ele.focus();
		} catch(exception) {}
		//ele.value = ErrorMsg[0];
		return true;
	}
	return false;
}

function checkSelNull(ele) {
	if (ele.selectedIndex == 0 || ele.selectedIndex == -1) {
		ele.style.color  = "red";
		try {
			ele.focus();
		} catch(exception) {}
		//ele.value = ErrorMsg[0];
		return true;
	}
	return false;
}


function checkPhone(ele) {
	var v = trim(ele.value);
	if (v != "") {
		if (v.length == 3) {ele.value+="-";}
		if (v.length == 7) {ele.value+="-";}
	}
}

function checkNumberErrorbak(ele) {
	if (trim(ele.value) == "") return false;
	if (ele.value.indexOf(".") == -1) {
		var type="^\s*[+-]?[0-9]+\s*$";
		var re = new RegExp(type);
		if (ele.value.match(re)==null) {
			try {
				ele.style.color  = "red";
				ele.focus();
			} catch(exception) {}
			return true;
		} else {
			return false;
		}
	} else {
		var type="^\s*[0-9]+[.][0-9]+\s*$";
		var re = new RegExp(type);
		if (ele.value.match(re)==null) {
			try {
				ele.style.color  = "red";
				ele.focus();
			} catch(exception) {}
			return true;
		} else {
			return false;
		}
	}
}

function checkNumberError(ele) {
	if (trim(ele.value) == "") return false;
	if (Number(ele.value) != ele.value) {
		try {
			ele.style.color  = "red";
			ele.focus();
		} catch(exception) {}
		return true;
	}
	return false;
}

function checkIntError(ele) {

	if (trim(ele.value) == "") return false;
	var type="^\s*[0-9]+\s*$";
	var re = new RegExp(type);
	if (ele.value.match(re)==null) {
		try {
			ele.style.color  = "red";
			ele.focus();
		} catch(exception) {}
		return true;
	} else {
		return false;
	}
}

function goSearch(infoSearchForm) {
	infoSearchForm.submit();
}
function goSubmit() {
	form1.submit();
}
function goCheckSubmit() {
	if (checkData()) {
		form1.submit();
	}
}
function initPageIndex() {
	form1.pageIndex.value = 1;
}

function trim (str) {
	while (str.indexOf(" ") == 0 || str.lastIndexOf(" ") == str.length-1) {
		if (str.length == 0) {	break;	}
		if (str.indexOf(" ") == 0) {	str = str.substring(1, str.length);	} 
		if (str.lastIndexOf(" ") == str.length-1) {		str = str.substring(0, str.length - 1);	}
	}
	return str;
}

function gopre(infoSearchForm){
	if (infoSearchForm.pageIndex.value <= 1) {
		return;
	} else {
		infoSearchForm.pageIndex.value = parseInt(infoSearchForm.pageIndex.value) - 1;
		goSearch(infoSearchForm);
	}
}


function gofirst(infoSearchForm){
	if (infoSearchForm.pageIndex.value == 1) {
		return;
	}else{
		infoSearchForm.pageIndex.value = 1;
		goSearch(infoSearchForm);
	}
}


function gonext(infoSearchForm){
	if (parseInt(infoSearchForm.pageIndex.value) >= parseInt(infoSearchForm.totalPages.value)){
		return;
	}else{
		infoSearchForm.pageIndex.value = parseInt(infoSearchForm.pageIndex.value) + 1;
		goSearch(infoSearchForm);
	}
}


function golast(infoSearchForm){
	if (parseInt(infoSearchForm.pageIndex.value) >= parseInt(infoSearchForm.totalPages.value)){
		return;
	}else{
		infoSearchForm.pageIndex.value = infoSearchForm.totalPages.value;
		goSearch(infoSearchForm);
	}
}


function gopage(infoSearchForm, form1){
	if (form1.page.value == "" ){
		return;
	}
	if (fucCheckNUM(form1.page.value) == 0) {
		alert("Please input a number.");
		form1.page.value = "";
		return;
	}
	if(parseInt(form1.page.value) > parseInt(infoSearchForm.totalPages.value)){
		alert("The number of input error.");
		return ;
	} else {
		infoSearchForm.pageIndex.value = form1.page.value;
		goSearch(infoSearchForm);
	}
}


function fucCheckNUM(NUM) {
	var i,j,strTemp;
	strTemp="0123456789";
	if (NUM.length== 0)
		return 0
	for (i=0;i<NUM.length;i++) {
		j = strTemp.indexOf(NUM.charAt(i));	
		if (j==-1) {
			return 0;
		}
	}
	return 1;
}

function keydown_int(event){
	var aSc = event.keyCode
	if(aSc==13){
		try{
			if (form1.page.value != "" && fucCheckNUM(form1.page.value) == 0) {
				alert("Page number must be number.");
				form1.page.value = "";
				return;
			}
			if (parseInt(form1.page.value) > parseInt(form1.totalPages.value)){
				alert("Page number must be less than max number.");
				return ;
			} else {
				form1.pageIndex.value = form1.page.value;
			}
		} catch(exception) {}
		if (fucCheckNUM(form1.pageSize.value) == 0) {
			alert("Page szie must be number.");
			form1.pageSize.value = "";
			return;
		}
		initPageIndex();
		goSearch();
	}
}

function doScan(scandate) {
	scandate = trim(scandate);
	if (scandate.length == 17)
	{
		decoder(scandate);
	} else {
		if (scandate.length==18) {
			form1.scanVIN.value = scandate.substring(1, scandate.length);
			try {
				decoder(form1.scanVIN.value);
			} catch(exception) {}
		} else {

			var scanArr = new Array();
			scanArr[0] = "NAB";
			scanArr[1] = "NAC";
			scanArr[2] = "NAM";
			scanArr[3] = "NAN";
			scanArr[4] = "NAO";
			scanArr[5] = "NAP";
			scanArr[6] = "VAD";
			scanArr[7] = "VAL";
			scanArr[8] = "VAK";
			scanArr[9] = "VAN";
			scanArr[10] = "RAM";
			scanArr[11] = "AAMVA";
			scanArr[12] = "TAA";
			scanArr[13] = "TAC";
			scanArr[14] = "TAD";
			scanArr[16] = "VAT";
			scanArr[17] = "NAA";
			scanArr[18] = "RGR";
			scanArr[19] = "RAG";
			scanArr[20] = "ZAA";
			
			for (i=0;i<scanArr.length;i++) {
				scandate = scandate.replace(scanArr[i], "  " + scanArr[i]);
			}

			reg = /NAB([a-zA-Z0-9])+\s{1}/;
			setValue(form1.lastname, reg.exec(scandate), "NAB");

			reg = /NAC([a-zA-Z0-9])+\s{1}/;
			setValue(form1.firstname, reg.exec(scandate), "NAC");

			reg = /NAM(([a-zA-Z0-9])+\s)+\s{5}/;
			setValue(form1.address1, reg.exec(scandate), "NAM");

			reg = /NAO([a-zA-Z0-9])+\s{1}/;
			setValue(form1.city, reg.exec(scandate), "NAO");

			reg = /NAP([a-zA-Z0-9])+\s{1}/;
			setValue(form1.state, reg.exec(scandate), "NAP");

			reg = /VAD([a-zA-Z0-9])+\s{1}/;
			setValue(form1.VIN, reg.exec(scandate), "VAD");
			setValue(form1.vin, reg.exec(scandate), "VAD");
			setValue(form1.scanVIN, reg.exec(scandate), "VAD");

			reg = /VAL([a-zA-Z0-9])+\s{1}/;
			setValue(form1.year, reg.exec(scandate), "VAL");

			reg = /VAK([a-zA-Z0-9])+\s{1}/;
			setValue(form1.make, reg.exec(scandate), "VAK");

			reg = /VAN([a-zA-Z0-9])+\s{1}/;
			setValue(form1.model, reg.exec(scandate), "VAN");

			reg = /RAM([a-zA-Z0-9])+\s{1}/;
			setValue(form1.plate, reg.exec(scandate), "RAM");

			reg = /TAA([a-zA-Z0-9])+\s{1}/;
			setValue(form1.titleNumber, reg.exec(scandate), "TAA");

			reg = /RAG([a-zA-Z0-9])+\s{1}/;
			setDateValue(form1.plateExpireDate, reg.exec(scandate), "RAG");

			
				try {
					if (trim(form1.VIN.value) != "") {
						doCheckVehicle();
					}
				} catch(exception) {}
			
		}
	}
}

function setValue(ele, value, scan) {
	try {
		if (value == null) return;
		ele.value = trim(value[0].replace(scan, ""));
	} catch(exception) {}
}

function setDateValue(ele, value, scan) {
	try {
		if (value == null) return;
		value = trim(value[0].replace(scan, ""));
		value = value.substr(4, 2) + "/" + value.substr(6, 2) + "/" + value.substr(0, 4);
		ele.value = value;
	} catch(exception) {}
}

function decoder(VIN) {
	decoderForm.searchVIN.value = VIN;
	decoderForm.submit();
}