
function NotNullChk(obj) {
	objVal = obj.value;
	Objlen = objVal.length;
	if (Objlen==0)
		result = false;
	else {
		flag = 0;
		for(var i=0; i<Objlen; i++){
			j = i+1;
			Chr = objVal.substring(i,j)
			if ((Chr!=' ')	&& (Chr!='	')) {
				flag = 1;
				break;
			}
		}
		if (flag==0)
			result = false;
		else
			result = true;
	}
	return result;
}

function NoSpaceChk(obj) {
	objVal = obj.value;
	Objlen = objVal.length;
	if (Objlen==0)
		result = false;
	else {
		flag = 1;
		for(var i=0; i<Objlen; i++){
			j = i+1;
			Chr = objVal.substring(i,j)
			if ((Chr == ' ') || (Chr == '	')) {
				flag = 0;
				break;
			}
		}
		if (flag==0)
			result = false;
		else
			result = true;
	}
	return result;
}

function alphabetChk(obj){
	if(isNaN(obj.value))
		return true;
	else
		return false;
}

function numericChk(obj){
	var numStr = "";		
	
	if(obj.value.indexOf(".") != -1){
		var periodArr = obj.value.split(".");
		if((periodArr.length > 2) || (periodArr[1].length == 0))
			return false;
		else{
			if(periodArr[1].indexOf(",") != -1) return false;
			if(periodArr[0].indexOf(",") != -1){
				var commaArr = periodArr[0].split(",");
				if((commaArr[0].length > 3) || (commaArr[0].length == 0))
					return false;
				if(commaArr.length > 1){
					for(var i=1; i<commaArr.length; i++){
						if(commaArr[i].length != 3)
							return false;
					}
				}
				for(var i=0; i<commaArr.length; i++)
					numStr+=commaArr[i];
				numStr+="." + periodArr[1];
			}
			else{
				if(periodArr[1].indexOf(",") != -1) return false;
				numStr+= periodArr[0] + "." + periodArr[1];
			}
		}
	}
	else
		numStr+=obj.value;
	
	if(!isNaN(numStr))
		return true;
	else
		return false;
}

function dateChk(frmsIndex, obj){
	var theDate = obj.value;
	var notAllowStr = ' /-+';
	var dateArr;
	var formation;
	var toDate;
	var dateStr;
	var dateIdent;
	var str;

	var tmp = frms[formPos].fields[frmsIndex].dataType;
	var tmpArr = tmp.split(":");
	formation = tmpArr[1];
	
	dateArr = dateBreaker(theDate);
	if((dateArr == -1) || (dateArr.length != 3) || (dateArr[0]=='') || (dateArr[dateArr.length-1]=='')) return false;
	
	switch(formation){
		case 'd-m-y' :	dateStr = formatting(dateArr[1], dateArr[1], dateArr[0], dateArr[2]);
						dateIdent = dateArr[0];
						break;
		case 'm-d-y' :	dateStr = formatting(dateArr[0], dateArr[0], dateArr[1], dateArr[2]);
						dateIdent = dateArr[1];
						break;
		case 'y-m-d' :	dateStr = formatting(dateArr[1], dateArr[1], dateArr[2], dateArr[0]);
						dateIdent = dateArr[2];
						break;
		default		 :	alert('Please check if the defined date format allowed.');
						return false;
	}
	
	var dateObj = Date.parse(dateStr);
	
	if(dateObj.toString() == "NaN"){
		return false;
	}
	else {
		toDate = new Date(dateStr);
	}
		
	for(j=0; j<dateArr.length; j++){
		for(k=0; k<dateArr[j].length; k++){
			subArray = dateArr[j].substring(k, k+1);
			if(notAllowStr.indexOf(subArray) != -1)
				return false;
		}
	}
	
	str = toDate.toString();
	dateGen = str.split(' ');
	
	if(eval(dateGen[2]) != eval(dateIdent)) return false;
	
	obj.value = obj.value.toLowerCase();
	return true;
}

function formatting(month, elem1, elem2, elem3){
	var dateStr = ' ';
	
	if(elem3.length!=4) return dateStr;
	if(isNaN(month)){
		if(month.length < 3) return dateStr;
		dateStr = elem1+' '+elem2+' '+elem3;
	}
	else{
		if((month>12) || (month<1) || (month.length > 2) || (elem3.length != 4)) return dateStr;
		dateStr = elem1+'/'+elem2+'/'+elem3;
	}
	return dateStr;
}

function dateBreaker(dateIn){
	var dateArr;
	var separator = ' /-';
	var subSep;
	var isSeparator = false;

	for(j=0; j<separator.length; j++){
		subSep = separator.substring(j, j+1);
		if(dateIn.indexOf(subSep) != -1){
			dateArr = dateIn.split(subSep);
			isSeparator = true;
			break;
		}
		else
			isSeparator = false;
	}
	if(!isSeparator) return -1;
	
	return dateArr;
}

function emailChk(obj){
	var emailAdd = obj.value;
	var emailExp = /[^\w\.@\_-]/;
	var frontAtom = /^[\._\-]/; 
	var rareAtom = /[\._\-]$/;
	var emailAd = /@/;
	var underStream = /_{2,}/;
	var hyphenStream = /\-{2,}/;
	var dotStream = /\.{2,}/;
	var hyphenSpec = /\-/;
	var dotSpec = /\./;	
	var addArr;	
	var dotArr;	
	var hyphenArr;

	if(emailExp.test(emailAdd)) return false;
	if(!emailAd.test(emailAdd)) return false;
	if((underStream.test(emailAdd)) || (hyphenStream.test(emailAdd)) || (dotStream.test(emailAdd))) return false;
	
	addArr = emailAdd.split('@');
	if((addArr.length>2) || (addArr.length<1) || (addArr[0] == '') || (addArr[1] == '')) return false; 
	if((frontAtom.test(addArr[0])) || (rareAtom.test(addArr[0]))) return false;
	if((frontAtom.test(addArr[1])) || (rareAtom.test(addArr[1]))) return false;
	if(!dotSpec.test(addArr[1])) return false;
	
	dotArr = emailAdd.split('.');
	for(j=0; j<dotArr.length; j++){
		if((frontAtom.test(dotArr[j])) || (rareAtom.test(dotArr[j])))
			return false;
	}

	if(hyphenSpec.test(emailAdd)){
		hyphenArr = emailAdd.split('-');
		for(j=0; j<hyphenArr.length; j++){
			if((frontAtom.test(hyphenArr[j])) || (rareAtom.test(hyphenArr[j])))
				return false;
		}
	}
	return true;
}

function CompareChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = eval(val);
	
	result = true;
	if (ObjVal!=Objlen.value)
		result = false;
	return result;
}

function FileFormat(obj){   
    len = obj.value.length
	val = obj.value
	for (var i=0; i<len; i++){
	   j = i+1
	   Chr = val.substring(i,j)
	   if (Chr == '.'){
	      result = true;
		  break;
	   }
	   else
	      result = false;
	}
	return result;
}

function lengthNOSPChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	
	result = true;
	if (Objlen>len) result = false;
	for(var i=0; i<Objlen; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		//if ((Chr=='"') || (Chr=='\'') || (Chr==' ')	|| (Chr=='	')) {
		if ((Chr=='"')) {
			result = false;
			break;
		}
	}
	return result;
}

function lengthSpaceChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	
	result = true;
	if (Objlen>len) 
		result = false;
	/*
	for(var i=0; i<Objlen; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		
		if ((Chr=='"')) {
			result = false;
			break;
		}
	}
	*/
	return result;
}

function lengthNATChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	var Exp = /[0-9]/;
	
	flagNum = 0
	
	result = true;
	if (Objlen>len) result = false;
	for(var i=0; i<Objlen; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		//if ((Chr=="%")||(Chr=='"')) {
		if (Chr=='"') {
			result = false;
			break;
		}
		if (Exp.test(Chr)==true) {
			flagNum = 1;
		}
	}
	
	if (flagNum==0) result = false;
	return result;
}


function lengthMixedChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	var Exp = /[,\w]/;
	
	result = true;
	if (Objlen>len) 
		result = false;
	
	for(var i=0; i<ObjVal.length; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		if ((Exp.test(Chr)==false)||(Chr=='"')) {
			result = false;
			break;
		}
	}
	return result;
}

function lengthIDChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	var Exp = /[-\w]/;
	var Exp2 = /[0-9]/;
	
	flag = 0;
	result = true;
	if (Objlen>len) 
		result = false;
	
	for(var i=0; i<ObjVal.length; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		if ((Exp.test(Chr)==false)||(Chr=='"')) {
			result = false;
			break;
		}
		if (Exp2.test(Chr)==true) {
			flag = 1;
		}
	}
	if (flag==0) result = false;
	return result;
}

function lengthChk(obj,val){
	var ObjVal = obj.value;
	var Objlen = ObjVal.length;
	var len = val;
	
	result = true;
	if (Objlen>len) result = false;
	for(var i=0; i<Objlen; i++){
		j = i+1;
		Chr = ObjVal.substring(i,j)
		if (Chr=='"') {
			result = false;
			break;
		}
	}
	return result;
}

function PhoneChk(obj){
	
	var PhoneAdd = obj.value;
	var FirstChr = PhoneAdd.substring(0,1);
	var PhoneExp = /[0-9]/;		
	
	if(!PhoneExp.test(FirstChr)) 
		return false;
	else
		return true;
}

function PosChk(obj){
	var PosIntAdd = obj.value;
	var Exp = /[.0-9]/;
	var result;
	var Chr;
	var j;
	var ZeroVal;
	
	ZeroVal = true;
	result = true;
	for(var i=0; i<PosIntAdd.length; i++){
		j = i+1;
		Chr = PosIntAdd.substring(i,j)
		if (Chr!=".")
			ZeroVal = false;
		if (Exp.test(Chr)==false) result = false;
	}
	FloatVal = parseFloat(PosIntAdd);
	if (ZeroVal==true) result = false;
	//if (FloatVal<0.005) result = false;
	if (FloatVal<0) result = false;
	return result;
}

function TimeChk(obj){
	var TimeAdd = obj.value;
	var Exp = /[:0-9]/;
	var result;
	var Chr;
	var j;
	var ZeroVal;
	
	ZeroVal = true;
	result = true;
	ChkCol = 0;
	for(var i=0; i<TimeAdd.length; i++){
		j = i+1;
		Chr = TimeAdd.substring(i,j)
		if ((Chr!="0")&&(Chr!=".")) 
			ZeroVal = false;
		if (Chr==":")
			ChkCol = ChkCol+1;	
		if (Exp.test(Chr)==false) result = false;
	}
	if (ZeroVal==true) result = false;
	if (ChkCol==0) {
		HourSpend = parseInt(TimeAdd);
		if ((HourSpend<0)||(HourSpend>23)) result = false;
	}
	if (ChkCol==1) {
		PosC = TimeAdd.indexOf(':')
		StrHour = TimeAdd.substring(0,PosC);
		PosC2 = PosC+1;
		StrMN = TimeAdd.substring(PosC2,TimeAdd.length);
		HourSpend = parseInt(StrHour);
		MNSpend = parseInt(StrMN);
		if ((HourSpend<0)||(HourSpend>23)) result = false;
		if ((MNSpend<0)||(MNSpend>59)) result = false;
	}
	if (ChkCol>1)  result = false;
	if (TimeAdd.indexOf(':')==-1)result = false;
	
	return result;
}

function PosIntChk(obj) {
	var PosIntAdd = obj.value;
	var Exp = /[0-9]/;
	var result;
	var Chr;
	var j;
	
	result = true;
	for(var i=0; i<PosIntAdd.length; i++){
		j = i+1;
		Chr = PosIntAdd.substring(i,j)
		if (Exp.test(Chr)==false) result = false;
	}
	IntVal = parseInt(PosIntAdd);
	if (IntVal<0) result = false;
	return result;
}

function TextOnlyChk(obj) {
	var TextAdd = obj.value;
	var Exp = /[A-Za-z]/;
	var result;
	var j;
	var Chr;
	
	result = true;
	for(var i=0; i<TextAdd.length; i++){
		j = i+1;
		Chr = TextAdd.substring(i,j)
		if (Exp.test(Chr)==false) result = false;
	}
	return result;
}
function MixedChk(obj) {
	var MixedAdd = obj.value;
	var Exp = /\w/;
	var result;
	var j;
	var Chr;
	
	result = true;
	for(var i=0; i<MixedAdd.length; i++){
		j = i+1;
		Chr = MixedAdd.substring(i,j)
		if (Exp.test(Chr)==false) result = false;
	}
	return result;
}

function SpaceExpChk(obj) {
	var strSpaceExp = /^\s+$/;
	var result;
		
	result = true;
	if ((obj.value == "" )|| (strSpaceExp.test(obj.value))) {
	    alert(strSpaceExp);
		result = false;
	}
	return result;
}
function ChkValidDate(StrMonth,StrDay,StrYear) {
	result = true;
	StrDate = StrMonth + "/" + StrDay + "/" + StrYear
	var DateChk = new Date(Date.parse(StrDate));

	MonthInt = parseInt(StrMonth);
	DayInt = parseInt(StrDay);
	YearInt = parseInt(StrYear);

	MonthGet = DateChk.getMonth() + 1;
	DayGet = DateChk.getDate();
	YearGet = DateChk.getFullYear();
	
	if ((MonthInt!=MonthGet)||(DayInt!=DayGet)||(YearInt!=YearGet)) result = false;	
	return result;
}

function ChkDate(ObjStr,StrStEn) {
	result = true;
	
	DVal = eval("document.frmAdmin.sel"+ObjStr+StrStEn+"Day.value");
	MVal = eval("document.frmAdmin.sel"+ObjStr+StrStEn+"Month.value");
	YVal = eval("document.frmAdmin.sel"+ObjStr+StrStEn+"Year.value");
	
	if ((DVal!="")&&((MVal=="")||(YVal==""))) result = false;
	if ((MVal!="")&&((DVal=="")||(YVal==""))) result = false;
	if ((YVal!="")&&((DVal=="")||(MVal==""))) result = false;
	if ((DVal!="")&&(MVal!="")&&(YVal!="")) {
		ChkDate1 = ChkValidDate(MVal,DVal,YVal);
		if (!ChkDate1) result = false;
	}
	
	return result;
}
