function checkStr(field, fieldName){
	if(field.value == null || Trim(field.value).length==0){
		alert(fieldName + " is required");
		return false;
	}
	return true;
}
function checkDistance(field, fieldName){
	if(field.value == null || field.value.length==0){
		alert(fieldName + " is required");
		return false;
	}
	//if(field.value.match(/^[0-9]*.[0-9]*$/) == null)
	if(!isReal(field.value,10)){
		alert(fieldName + " must be like 124.56");
		return false;
	}
	return true;
}
function checkDate(field,fieldName,div){
	if(div==null)return check_Date(field,fieldName);
	var o   = $(div);
	var str = Trim(field);
	if(str==""){
		setError(o,fieldName + " is required");
		return false;
	}
	if(str.match(/^\d\d\/\d\d\/\d\d\d\d$/) == null){
		setError(o,fieldName + " must be like 01/31/2001");
		return false;
	}
	setSuccess(o);
	return true;
}
function check_Date(field, fieldName){
	if(field.value == null || field.value.length==0){
		alert(fieldName + " is required");
		return false;
	}
	if(field.value.match(/^\d\d\/\d\d\/\d\d\d\d$/) == null){
		alert(fieldName + " must be like 01/31/2001");
		return false;
	}
	return true;
}
function checkLongDate(field, fieldName){
	if(field.value == null || field.value.length==0){
		alert(fieldName + " is required");
		return false;
	}
	if(field.value.match(/^\d\d\/\d\d\/\d\d\d\d \d\d:\d\d$/) == null){
		alert(fieldName + " must be like 01/31/2009 12:00");
		return false;
	}
	return true;
}
function compareDate(firstDateField, firstDateFieldName, secondDateField, secondDateFieldName){
	if(firstDateField.value == null || firstDateField.value.length==0){
		alert(firstDateFieldName + " is required");
		return false;
	}
	if(secondDateField.value == null || secondDateField.value.length==0){
		alert(secondDateFieldName + " is required");
		return false;
	}
	var result = true;
	if(firstDateField.value.length>10)
		result = result && checkLongDate(firstDateField, firstDateFieldName);
	else
		result = result && checkDate(firstDateField, firstDateFieldName);

	if(secondDateField.value.length>10)
		result = result && checkLongDate(secondDateField, secondDateFieldName);
	else
		result = result && checkDate(secondDateField, secondDateFieldName);

	if(result){
		var d1 = firstDateField.value.substr(6,4) + firstDateField.value.substr(0, 2) + firstDateField.value.substr(3, 2);
		var d2 = secondDateField.value.substr(6,4) + secondDateField.value.substr(0, 2) + secondDateField.value.substr(3, 2);
		if(d1 >= d2){
			alert(firstDateFieldName + " should be before " + secondDateFieldName);
			return false;
		}
		return true;
	}
	return false;
}
function compDate(firstDate,firstName,secondDate,secondName,div){
	var o = $(div);
	if(DateCompare(getDate(firstDate),getDate(secondDate))>0){
		setError(o,firstName + " should be before " + secondName);
		return false;
	}
	setSuccess(o);
	return true;
}
function checkMoney(field,fieldName,div){
	if(div==null)return check_Money(field, fieldName);
	var o = $(div);
	var str = Trim(field.value);
	if(str==""){
		setError(o,fieldName + " is required");
		return false;
	}
	if(str.match(/^[0-9]*\.[0-9]{2}$/) == null){
		setError(o,fieldName + " must be like 123.03");
		return false;
	}
	setSuccess(o);
	return true;
}
function check_Money(field,fieldName){
	if(field.value == null || field.value.length==0){
		alert(fieldName + " is required");
		return false;
	}
	if(field.value.match(/^[0-9]*.[0-9]{2}$/) == null){
		alert(fieldName + " must be like 123.03");
		return false;
	}
	return true;
}
function checkPercent(field,div,fieldName){
	var o = $(div);
	var str = Trim(field);
	if(str==""){
		setError(o,fieldName + " is required");
		return false;
	}
	if(str.match(/^[0-9]{1,3}\.[0-9]{2}$/)==null){
		setError(o,fieldName + " must be like 10.80");
		return false;
	}
	setSuccess(o);
	return true;
}
function focus_select(obj){
	obj.focus();
	if(obj.type.indexOf("text")>=0)obj.select();
}
function setSuccess(o,m){o.innerHTML="<span class=\"success_msg\">"+(m==null?"&nbsp;":m)+"</span>";o.className="success";}
function setError(o,m){o.innerHTML="<span class=\"error_msg\">"+(m==null?"&nbsp;":m)+"</span>";o.className="error";}
function checkMail(email){
	var filter=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(filter.test(email)){
		return true;
	}else{
		return false;
	}
}
function checkName(afname,div,title){
	var o=$(div);
	if (afname==""){
		setError(o,title+" is required");
		return false;
	}
	setSuccess(o);
	return true;
}
function checkEMail(email,div){
	var o = $(div);
	if (checkMail(email)){
		setSuccess(o);
		return true;
	}
	setError(o,"Invalid email address");
	return false;
}
function checkPhone(phone,div,title){
	var o = $(div);
	var phonenumber = phone.replace(/-/g,"");
	if (isValidStr(phonenumber,7,16,"0-9")){
		setSuccess(o);
		return true;
	}
	setError(o,"Minimum of the "
		+ title
		+ " is 7 digits");
	return false;
}
function checkFax(phone,div,title){
	var o = $(div);
	if (phone==""){
		o.innerHTML="";
		return true;
	}
	var phonenumber = phone.replace(/-/g,"");
	if (isValidStr(phonenumber,7,16,"0-9")){
		setSuccess(o);
		return true;
	}
	setError(o,"Minimum of the "
		+ title
		+ " is 7 digits");
	return false;
}
function checkState(state,country,div){
	if("CA"==country||"US"==country){
		if(!checkName(state,div,"State")){
			return false;
		}
	}else{
		$(div).innerHTML="";
	}
	return true;
}
function checkZipCode(zipcode,country,div){
	var o = $(div);
	if("CA"==country||"US"==country){
		if(isValidStr(zipcode,4,12,"a-z||A-Z||0-9|| ")){
			setSuccess(o);
			return true;
		}
		setError(o,"Minimum of ZIP Code is 4 characters");
		return false;
	}else{
		o.innerHTML="";
	}
	return true;
}
