var validation_firstInvalidInputElm = null;
function startNewFormCheck() {
	validation_firstInvalidInputElm = null;
}
function focusInvalidInput(inputElmId) {
	var inputElm = document.getElementById(inputElmId); 
	//var msgElm = document.getElementById(inputElmId+'_msg'); 
	if (!validation_firstInvalidInputElm) {
		validation_firstInvalidInputElm = inputElm;
		focusFirstInvalidInput();
	}
}
function focusFirstInvalidInput() {
	try {
		validation_firstInvalidInputElm.focus()
		if (typeof validation_firstInvalidInputElm.select == 'function') {
			validation_firstInvalidInputElm.select();
		}
	}
	catch (ex) {
		// workaround for IE 
		setTimeout(focusFirstInvalidInput,500,false);
	}
}
function checkCompare(srcid1,srcid2,msg){
	var valid = true;
	var srcObj1 = document.getElementById(srcid1);
	var srcObj2 = document.getElementById(srcid2);
	var srcObjmsg = document.getElementById(srcid2+"_msg");
	if (srcObj1.value!=srcObj2.value){
		srcObjmsg.innerHTML = msg;
		valid = false;
		focusInvalidInput(srcid2);
	} else {
		srcObjmsg.innerHTML = '';
	}
	return (valid);
}
function checkCompareWOmsg(srcid1,srcid2){
	var valid = true;
	var srcObj1 = document.getElementById(srcid1);
	var srcObj2 = document.getElementById(srcid2);
	if (srcObj1.value!=srcObj2.value){
		valid = false;
	}
	return (valid);
}
function trimInput(srcid) {
	var srcObj = document.getElementById(srcid);
	srcObj.value = srcObj.value.replace(/^\s*(.*?)\s*$/,'$1');
}
function checkEmpty(srcid,objtype,msg){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
	trimInput(srcid);
	if (srcObj.value.length<=0 || srcObj.value==""){
		srcObjmsg.innerHTML = msg;
		valid = false;
		focusInvalidInput(srcid);
	} else {
		srcObjmsg.innerHTML = '';
		}
	return (valid);
}
function checkMaxLength(srcid,enMaxLen,chMaxLen,msg){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
	trimInput(srcid);
	if (srcObj.value.length > enMaxLen){
		srcObjmsg.innerHTML = msg;
		valid = false;
		focusInvalidInput(srcid);
	} else if (srcObj.value.length > chMaxLen) {
		for (i=0;i<srcObj.value.length;i++) {
			if (srcObj.value.charCodeAt(i)>255) {
				srcObjmsg.innerHTML = msg;
				valid = false;
				focusInvalidInput(srcid);
				break;
			} else {
				srcObjmsg.innerHTML = '';
			}
		}
	}
	if (valid) {
		srcObjmsg.innerHTML = '';
	}
	return (valid);
}
function checkMinLength(srcid,minLen,msg){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
	if (srcObj.value.length < minLen){
		srcObjmsg.innerHTML = msg;
		valid = false;
		focusInvalidInput(srcid);
	} else {
		srcObjmsg.innerHTML = '';
	}
	return (valid);
}
function checkEmptyWOmsg(srcid,objtype){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	if (objtype=="text"){
		if (srcObj.value.length<=0 || srcObj.value==""){
			valid = false;
		}
	}else if (objtype=="select"){
		if (srcObj.length<=0){
			valid = false;
		}
	}
	return (valid);
}
function checkSelect(srcid,msg){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
		if (srcObj.options[srcObj.selectedIndex].value=="" || srcObj.options[srcObj.selectedIndex].value=="0"){
			srcObjmsg.innerHTML = msg;
			valid = false;
			focusInvalidInput(srcid);
		} else {
			srcObjmsg.innerHTML = '';
		}
	return (valid);
}
function checkSelectWOmsg(srcid){
	var valid = true;
	var srcObj = document.getElementById(srcid);
		if (srcObj.options[srcObj.selectedIndex].value=="" || srcObj.options[srcObj.selectedIndex].value=="0"){
			valid = false;
		}
	
	return (valid);
}
function checkNumber(srcid,min,msgNaN,msgMin,compare){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
	var minValue = new Number(min);
	if (isNaN(srcObj.value)){
		srcObjmsg.innerHTML = msgNaN;
		valid = false;
	}else{
		var srcValue = new Number(srcObj.value);
		if (compare!=null){
			if (compare=="GT"){
				if (srcValue <= minValue){
					srcObjmsg.innerHTML = msgMin;
					valid = false;
					focusInvalidInput(srcid);
				} else {
					srcObjmsg.innerHTML = '';
				}
			}else if (compare=="GTET"){
				if (srcValue < minValue){
					srcObjmsg.innerHTML = msgMin;
					valid = false;
					focusInvalidInput(srcid);
				} else {
					srcObjmsg.innerHTML = '';
				}
			}
		}else{
			if (srcValue <= minValue){
				srcObjmsg.innerHTML = msgMin;
				valid = false;
				focusInvalidInput(srcid);
			} else {
				srcObjmsg.innerHTML = '';
			}
		}
	}
	
	return (valid);
}
function checkNumberWOmsg(srcid,min,compare){
	var valid = true;
	var srcObj = document.getElementById(srcid);
	var minValue = new Number(min);
	if (isNaN(srcObj.value)){
		valid = false;
	}else{
		var srcValue = new Number(srcObj.value);
		if (compare!=null){
			if (compare=="GT"){
				if (srcValue <= minValue){
					valid = false;
				}
			}else if (compare=="GTET"){
				if (srcValue < minValue){
					valid = false;
				}
			}
		}else{
			if (srcValue <= minValue){
				valid = false;
			}
		}
	}
	return (valid);
}
function checkInteger(srcid,compare,min,msgNaN,msgMin){
	var valid = new Boolean(true)
	var srcObj = document.getElementById(srcid);
	var srcValue = new Number(srcObj.value);
	var minValue = new Number(min);
	
	var srcObjmsg = document.getElementById(srcid+"_msg");
	if (isNaN(srcValue)){
		srcObjmsg.innerHTML = msgNaN;
		valid = false;
	}else if (srcObj.value.length != (Math.floor(srcValue)+"" ).length){
		srcObjmsg.innerHTML="Must be integer!";
		valid = false;
	}else{ 
		if (compare=="GT"){
			if (srcValue <= minValue){
				srcObjmsg.innerHTML = msgMin;
				valid = false;
				focusInvalidInput(srcid);
			} else {
				srcObjmsg.innerHTML = '';
			}
		}else if (compare=="GTET"){
			if (srcValue < minValue){
				srcObjmsg.innerHTML = msgMin;
				valid = false;
				focusInvalidInput(srcid);
			} else {
				srcObjmsg.innerHTML = '';
			}
		}
	}
	
	return (valid);
}
function checkIntegerWOmsg(srcid,compare,min){
	var valid = new Boolean(true)
	var srcObj = document.getElementById(srcid);
	var srcValue = new Number(srcObj.value);
	var minValue = new Number(min);
	
	if (isNaN(srcValue)){
		
		valid = false;
	}else if (srcObj.value.length != (Math.floor(srcValue)+"" ).length){
		
		valid = false;
	}else{ 
		if (compare=="GT"){
			if (srcValue <= minValue){
				
				valid = false;
			}
		}else if (compare=="GTET"){
			if (srcValue < minValue){
				
				valid = false;
			}
		}
	}
	
	return (valid);
}
function checkEmail(srcid,multi,msg){
	var valid = true;
	var reg = /^[A-Za-z0-9_\-\.]+\@[A-Za-z0-9_\-\.]+\.[A-Za-z]{2,4}$/;
	var srcObj = document.getElementById(srcid);
	var srcObjmsg = document.getElementById(srcid+"_msg");
	if (multi==true){
		var tempEmail = srcObj.value.split(";");
		for (var i = 0; i < tempEmail.length; i++){
			if (reg.test(tempEmail[i]) == false){
				srcObjmsg.innerHTML = msg;
				valid = false;
				focusInvalidInput(srcid);
				break;
			} else {
				srcObjmsg.innerHTML = '';
			}
		}
	}else if (multi==false){
		if (reg.test(srcObj.value) == false){
			srcObjmsg.innerHTML = msg;
			valid = false;
			focusInvalidInput(srcid);
		} else {
			srcObjmsg.innerHTML = '';
		}
	}
	
	return (valid);
}
function checkEmailWOmsg(srcid,multi){
	var valid = true;
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var srcObj = document.getElementById(srcid);
	if (multi==true || multi=="true"){
		var tempEmail = srcObj.value.split(";");
		for (var i = 0; i < tempEmail.length; i++){
			if (reg.test(tempEmail[i]) == false){
				valid = false;
				break;
			}
		}
	}else{
		if (reg.test(srcObj.value) == false){
			valid = false;
		}
	}
	
	return (valid);
}
function checkDate(ddElmId,mmElmId,yyyyElmId,allowEmpty,allowFuture,allowPast,msgCommon,msgOutRange){
	var valid = true;
	var ddElm = document.getElementById(ddElmId);
	var mmElm = document.getElementById(mmElmId);
	var yyyyElm = document.getElementById(yyyyElmId);
	var srcObjmsg = document.getElementById(ddElmId+"_msg");
	// check empty
	var numOfEmpty = 0;
	numOfEmpty += checkSelectWOmsg(ddElmId)?0:1;
	numOfEmpty += checkSelectWOmsg(mmElmId)?0:1;
	numOfEmpty += checkSelectWOmsg(yyyyElmId)?0:1;
	if (numOfEmpty>0) {
		if (!(allowEmpty && numOfEmpty==3)) {
			valid = false;
		}
		if (!valid) {
			srcObjmsg.innerHTML = msgCommon;
		}
	} else {
		today = new Date();
		if (!allowFuture) {
			isFuture = yyyyElm.value>today.getFullYear() || yyyyElm.value==today.getFullYear() && mmElm.value>today.getMonth()+1 || yyyyElm.value==today.getFullYear() && mmElm.value==today.getMonth()+1 && ddElm.value>today.getDate();
			valid = valid && !isFuture;
		}
		if (!allowPast) {
			isPast = yyyyElm.value<today.getFullYear() || yyyyElm.value==today.getFullYear() && mmElm.value<today.getMonth()+1 || yyyyElm.value==today.getFullYear() && mmElm.value==today.getMonth()+1 && ddElm.value<today.getDate();
			valid = valid && !isPast;
		}
		if (!valid) {
			srcObjmsg.innerHTML = msgOutRange;
		}
	}
	if (valid) {
			srcObjmsg.innerHTML = '';
	} else {
			focusInvalidInput(ddElmId);
	}
	return (valid);
}
function clearAllMsgLbl(){
	var allLbl = document.getElementsByTagName("label");
	for (var i = 0; i < allLbl.length; i++){
		if (allLbl[i].id.substring(allLbl[i].id.length-3)=="msg"){
			allLbl[i].innerHTML = "";
		}
	}
	
}