
var phone_format = /^\d{3}-\d{3}-\d{4}$/;
var year_format = /^\d{4}$/;
var date_fmt = /^\d{1,2}\/\d{1,2}\/\d{1,4}/;
var ssn_format = /^\d{4}$/;

function mei_isEmpty(e, nm){
	if(e.type=='text' ||e.type=='textarea'){
		if(e.value==""){showErrorMessage(nm);mei_getFocus(e);return true;}
	}
	
	return false;
}

function showErrorMessage(nm){
	alert(nm);
}

function mei_isChecked(e, nm){
	var len=e.length-1;
	if(isNaN(len)){return false;}
	for(var i=0; i<=len;i++){
		if(e[i].checked){return false;}
	}
	alert(nm+ " is a requred filed.\nPlease select the '"+nm+"' field to submit this survey.")
	return true;
}

function mei_isEmailAddress(e, old){
	var intAt=0;
	var intDot=0;
	var intCom=false;
	var bCom=false;
	var atPos=0;
	var whtCom="";
	var bWrongPos=false;
	var arr= new Array('.com','.net','.gov','.edu','.org','.us');
	var isSpace=false;
	
	if(e.value == "") { return;}
	//var email_format = new RegExp ("\\w{2,}[.]{0,1}\\w{0,}[.]{0,1}\\w{1,}[@]\\w{2,}[.]{1}com$|net$|org$|gov$|edu$")
	e.value=e.value.substring(mei_getLeadingSpace(e.value),mei_getTrailingSpace(e.value)+1)
	
	/**
	if(!email_format.test(e.value)){
		alert("Please input an email address with correct format\njohn@home.com");
		e.value=old;
		return;
	}
	**/
	for(var i=0; i<=e.value.length-1;i++){
		if(e.value.charAt(i) =='.'){intDot++;}
		if(e.value.charAt(i) =='@'){intAt++; atPos=i;}
		if(e.value.charAt(i) == ' '){isSpace = true;}
	}
	
	for(var i=0; i<=arr.length;i++){
		if (e.value.substr(e.value.length-4, 4).toLowerCase()==arr[i]){
			bCom=true;
			break;
		}
	}
	if(e.value.substr(e.value.length-3, 3).toLowerCase()=='.us'){bCom=true;}
	
	for(var i=0; i<=arr.length;i++){
		if (e.value.length-e.value.indexOf(arr[i]) != 4 ){
			if(e.value.indexOf(arr[i]) != -1){
				intCom=true;
				whtCom = arr[i]
				break;
			}
		}
	}
	
	bWrongPos=(atPos==0)||(atPos==e.value.length-5)
	
	if(bWrongPos){
		alert("Please check your email address and make sure you have correct email format");
		//e.value="";
		e.value=old;
		return false;
	}
	if(intDot > 4){
		alert("Please check your email address, there are "+ intDot+" '.' in your email address")
		e.value=old;
		return false;
	}
	if(intAt != 1){
		alert("Please check your email address, there are "+ intAt + " '@' in your email address.")
		e.value=old;
		return false;
	}
	if(intCom){
		alert("Please check your email address and make sure it contains only one " + whtCom +"\nand please make sure it ends with " + whtCom + ' also.')
		e.value=old;
		return false;
	}
	if(!bCom){
		var con=confirm("Are you sure your email address does not end with\n .com/.gov/.edu/.org/.net/.us?")
		if(!con){
			e.value=old;
			return false;
		}
	}
	if(isSpace){
		alert("Please check your email address and make sure there is no space in your email address.")
		e.value=old;
		return false;
	}
	return true;
}

function mei_validatePhone(e){
	if (e.value==""){return;}
	if(!phone_format.test(e.value)){
		alert("Incorrect telephone number format.\nCorrect format is: 222-222-2222");
		mei_getFocus(e);
		return false;
	}
	return true;
}

function mei_validateSSN(e){
	if (e.value==""){return;}
	if(!ssn_format.test(e.value)){
		alert("Incorrect ssn format.\nCorrect format is: 1234");
		mei_getFocus(e);
		return false;
	}
	return true;
}

function mei_validateYear(e){
	if (e.value==""){return;}
	if(!year_format.test(e.value)){
		alert("Incorrect birth year format.  Correct format is: 1980");
		mei_getFocus(e);
		return false;
	}
	if(e.value >2000 || e.value < 1900){
		alert("Invalid birth year value.  The birth year has to be between 1900-2000");
		mei_getFocus(e);
		return false;
	}
	return true;
}


function mei_getFocus(e){
	if(e.type!='hidden'){
		e.value="";
		e.focus();
		e.select();
	}
}

function mei_getLeadingSpace(val){
	for(var i=0; i<=val.length-1; i++){
		if(val.charAt(i)!=' '){return i;}
	}
	return 0;
}

function mei_getTrailingSpace(val){
	for(var i=0; i<=val.length-1; i++){
		if(val.charAt(val.length-1-i)!=' '){return val.length-1-i;}
	}
	return 0;
}

function mei_isDate(e){
	if(e.value==""){return true;}
	var d=e.value.split('/');
	var mm=d[0].toString();
	var ddd=d[1];
	var yy=d[2];
	var dd = new Date().getMonth()+1+'/'+new Date().getDate()+'/'+new Date().getFullYear();
	
	if (!date_fmt.test(e.value)){
		alert("Invalid date format.  Correct format is mm/dd/yyyy.")
		e.value="";
		e.focus();
		return false;
	}
	if(!checkAllDateInput(mm, ddd, yy, e)){return false;}
	if(mm=='04'||mm=='06'||mm=='09'||mm=='11'){
		if(ddd>30){
			alert("Day value cannot be greater than 30 for the month of "+ getMonthDesc(mm));
			e.value="";
			e.focus();
			return false;
		}
	}
	if(mm=='02'){
		var leap = parseInt(yy/4);
		if (ddd > 29){
			alert("Day value cannot be greater than 29 for the month of Feburary"); 
			e.value="";
			e.focus();
			return false;
		}
		if (ddd == 29 && (yy/4)!=parseInt(yy/4)) {
			alert("Day value cannot be greater than 28 for the month of Feburary"); 
			e.value="";
			e.focus();
			return false;
		}	
	}
	
	if (Date.parse(e.value) > Date.parse(dd)){
		alert("Date value cannot be greater than "+ dd);
		e.value=''; 
		e.focus();
		return false;
	}
	
	return true;
}

function checkAllDateInput(m, d, y, e){
	//if(m=="" ||d=="" ||y==""){return true;}
	if(m=="" || m < 1 || m > 12){
		alert("Please enter a 2-digit month value between 01 and 12.");
		//eval("document.forms[0]."+ e.name.substring(0, e.name.length-2)+"mm.focus();")
		e.value="";
		e.focus();
		return false;
	}	
	if(d=="" || d < 1 || d > 31){
		alert("Please enter a 2-digit day value between 01 and 31.");
		//eval("document.forms[0]."+ e.name.substring(0, e.name.length-2)+"dd.focus();")
		e.value="";
		e.focus();
		return false;
	}	

	if(y=="" || y.length!=4 || y < 1900 ){
		alert("Please enter a 4-digit year value greater than 1900.");
		//eval("document.forms[0]."+ e.name.substring(0, e.name.length-2)+"yy.focus();")
		e.value="";
		e.focus();
		return false;
	}
	return true;

}

function getMonthDesc(m){
	mth="January|Feburary|March|April|May|June|July|August|September|October|November|December"
	return mth.split('|')[m-1]
}

function mei_allNumerics(e){
	var num="0|1|2|3|4|5|6|7|8|9|-|";
	for(var i=0;i<=e.value.length-1;i++){
		if(num.indexOf(e.value.charAt(i)+'|')==-1){
			e.value=e.value.substring(0, i);
			return;
		}
	}
}

function newInputBox(prmpt,title, mess){	
    return makeInputBox(prmpt,title, mess); 
}