var PHONE_RE =/^\(?\d{3}\)?( | -)\d{3}( |-)\d{4}$/
var EMAIL_RE =/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
var ALPH_NUMERIC_RE = /^([0-9a-zA-Z])+$/;

function isPhoneNumber(strFieldName, strMsg)
{
	var strNumberValue = strFieldName.value;
	if(!PHONE_RE.test(strNumberValue))
	{
		alert("Please enter a valid phone number for the "+ strMsg.toUpperCase()+" field");
		return false;
	}
	return true;
}

function isAlphaNumeric(strFieldName)
{
	var strValue = strFieldName.value;
	var valid = ALPH_NUMERIC_RE.test(strValue);
	return valid;
}

function isNumeric(strFieldName)
{
	var strValue = strFieldName.value;	
	var validChars = "0123456789";
	var length = strValue.length;
	var valid = true;
	
	for (var i = 0; i < length; i++)
	{
		if (validChars.indexOf(strValue.charAt(i)) == -1)
		{
			valid = false;
		}
	}	
	
	return valid;
}

function isValidEmail(strFieldName, strMsg)
{
	var strEmailValue = strFieldName.value;
	
	if(!EMAIL_RE.test(strEmailValue))
	{
		alert("Please enter a valid email address for the "+ strMsg.toUpperCase()+" field");
		return false;
	}
	return true;	
}

function isValidEmailAddress(strFieldName)
{
	var strEmailValue = strFieldName.value;	
	return EMAIL_RE.test(strEmailValue);
}

function hasValue(strFieldName,strMsg, doAlert)
{
     var strValue = strFieldName.value;
          strValue = strValue.split(" ").join("");
     if(strValue == "")
     {
          if(doAlert == "true")
          {
          	alert("Please enter a value for the "+ strMsg.toUpperCase() +" field");
               strFieldName.focus();
           }
           return false;
      }
     return true;
}

// validate date
function isDate(strFieldName,strMsg)
{
     var strDateValue = strFieldName.value;
     if(! hasValue(strFieldName,strMsg)){
          return false;
     } else {
     if(strDateValue.length>0){
          // dateregex patter = 01/01/03 or 01/01/2003
          var dateregex=/^[ ]*[0]?(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4,})[ ]*$/;
          var match = strDateValue.match(dateregex);
     if (match){
          var tmpdate=new Date(match[3],parseInt(match[1],10)-1,match[2]);
               if (tmpdate.getDate()==parseInt(match[2],10) && tmpdate.getFullYear()==parseInt(match[3],10) && (tmpdate.getMonth()+1)==parseInt(match[1],10)){ 
                    return true; 
               }
          }
          alert(strMsg.toUpperCase() +" is Required.\nExample: 01/01/2003\n");
               strFieldName.select();
               return false;
          }
     return true;
     }
}

// validate zip US format ie: 12345 or 12345-6789
function isZip(strFieldName,strMsg){
     var strValue = strFieldName.value;
    var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
     if(! hasValue(strFieldName,strMsg)){
          return false;
     } else {
         if(! objRegExp.test(strValue)){
               alert("The "+ strMsg.toUpperCase() +" is in the wrong format");
                    strFieldName.focus();
                         return false;
               }
          return true; 
     }
}

