

function UserInfoValidation(doc,accpass)
{ 
//    if (IsEmptyField(doc.ddlTitle, "Title")) {return false;}
//    if (IsEmptyField(doc.tbFirstName, "First Name")) {return false;}
//    if (IsEmptyField(doc.tbLastName, "Last Name")){return false;}
//    if (IsEmptyField(doc.tbAddress, "Address")) {return false;}
//    if (checkAddress1(doc.tbAddress) == false) {return false;}
//    if (IsEmptyField(doc.tbCity, "City")) {return false;}
//    if (IsEmptyField(doc.ddlState, "State")) {return false;}
//    if (IsEmptyField(doc.tbZip, "Zip Code")) {return false;}
//    if (IsZip(doc.tbZip)==false) {return false;}
      
    if( !ValidateUserInfo()){return false;}
   
    if (document.getElementById("Email").value != document.getElementById("tbEmailConfirm").value)
    {
        alert("The two email addresses are not the same.");
        document.getElementById("Email").focus();
        return false;
    }
    
    var retVal = true;
        
//    var b  = checkEmail(doc.Email,"Email");    
//    if (b==true)
    {
    
//        if ( accpass == false )
//        {
//            var password = doc.tbPassword;
//            var passwordCon= doc.tbPasswordConfirm;
//            if (password!=null && passwordCon!=null)
//            {
//                if(IsEmptyField(password, "Password") == false && IsEmptyField(password, "Confirmation Password") == false)
//                {
//                    retVal = checkPassword(password, passwordCon, false);
//                }
//            }
//        }
//        else
//        {
//            var pass = doc.tbPasswordAcc;
//            var passCon = doc.tbPasswordConAcc;
//            if(pass!=null && passCon!=null && (pass.value.length >0||passCon.value.length >0))
//            {
//                 retVal = checkPassword(pass, passCon, false);
//            }
//            else
//            {
//                retVal = true;
//            }
//        }

        if ( retVal == true )
        {
             retVal = checkEmail(doc.Email);        
        }
    }
    
    return retVal;
}



function checkPassword(pass, passConfirm, matchcase)
{
    var strPass = trim(pass.value);
    var strPassConfirm = trim(passConfirm.value);
    
    if ( matchcase == false )
    {
        strPass = strPass.toLowerCase();
        strPassConfirm = strPassConfirm.toLowerCase();
    }
    if (strPass != strPassConfirm)
    {
	    alert("The two passwords are not the same.");
	    strPass.value = "";
	    passConfirm.value = "";
	    pass.focus();
	    return false;   
    }
    else if ( strPass.length != pass.value.length || strPassConfirm.length != passConfirm.value.length )
    {
        alert("Passwords may not begin or end with spaces.");
        pass.focus();
        return false;
    }
    else if (strPass.length < 5 || strPass.length > 20)
    {
        alert("Please enter 5 - 20 characters in the \"Password\" field.");
        pass.focus();
        return false;
    }
    else
    {
        return true;
    }
}

// address1
function checkAddress1(obj)
{
	var sValue = trim(obj.value);
	obj.value = sValue;
	ReplaceCharX(obj, ",", " ");
	obj.value = trim(obj.value);
	sValue = obj.value
	
	//allowed characters:
	//                 [ a to z ] [0-9]  [.][/][#] [-]
	var sExp = "^(\\s|[a-z]|[A-Z]|[0-9]|\\.|\\/|#|\\-){5,}$"
	var oReg = new RegExp( sExp );
	var bOK = oReg.test( sValue);

	if (! bOK) {
		alert("Address contains invalid characters\nor is not at least 5 characters "); 
		obj.focus();
		return false;
	}
	return true;
}

function ReplaceCharX(idx, find, replacement)
{
	var oldString = idx.value;
	var reg = new RegExp(find,"gi");
	var newString = oldString.replace(reg, replacement); 
	idx.value = newString;
}

function lTrim(x) {
	if (x.length == 0) {
		return "";
	}

	while( x.charAt(0)==" ") {
		x = x.substring( 1, x.length );
	}
	
	return x;
 
} 

function rTrim(x) {
	if (x.length == 0) {
		return "";
		
	}
	
	while ( x.charAt( x.length-1 ) == " " ){
		 x = x.substring(0, x.length-1 );
	}
	
	return x;
}


function trim(x) {
	x = rTrim( lTrim(x) );
	return x;
}

function IsEmptyField(aTextField, sMsg) 
{
    var result = false;
    if ( (aTextField.value==null) || (trim(aTextField.value).length==0 || trim(aTextField.value).length<1 ) ) 
    {
        result = true;
        alert(sMsg + " can not be blank.");
        aTextField.focus();
    }
   return result
}


function IsZip(z) 
{
    var result = true;
    reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

    if (!reZip.test(z.value))
    {
       alert("Zip Code Is Not Valid");  
       z.focus();
       result = false;
    }
 
    return result;
}
function ValidateUserInfo() //bool
{

    var strRegEx_Title= new RegExp(/mr|mrs|ms/);
    var strRegEx_FName = new RegExp(/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z\.]*)*$/);
    var strRegEx_LName = new RegExp(/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z\.]*)*$/);
    var strRegEx_Address1 = new RegExp(/^[a-zA-Z0-9 \.\-#\\\/]{5,50}$/);
    var strRegEx_Address2 = new RegExp(/^[a-zA-Z0-9 \.\-#\\\/]{1,50}$/);
    var strRegEx_City = new RegExp(/^[a-zA-Z0-9 \.\-]{2,50}$/);
    var strRegEx_State = new RegExp(/AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|GU|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MH|MI|MN|MO|MP|MS|MT|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|PR|PW|RI|SC|SD|TN|TX|UT|VA|VI|VT|WA|WI|WV|WY/);
    var strRegEx_Zip = new RegExp(/[0-9]{5}(-[0-9]{4})?/);
//    var strRegEx_Email = new RegExp(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/);
    
	var title = document.frmOrder.ddlTitle.selectedIndex
	var fname = trim(document.frmOrder.tbFirstName.value)
	document.frmOrder.tbFirstName.value = fname
	var lname = trim(document.frmOrder.tbLastName.value)
	document.frmOrder.tbLastName.value = lname
//	var email = trim(document.frmOrder.Email.value)
//	document.frmOrder.Email.value = email
	var address1 = trim(document.frmOrder.tbAddress.value)
	document.frmOrder.tbAddress.value = address1
	var address2 = trim(document.frmOrder.tbApt.value)
	document.frmOrder.tbApt.value = address2
	var city = trim(document.frmOrder.tbCity.value)
	document.frmOrder.tbCity.value = city
	var state = document.frmOrder.ddlState.selectedIndex
	var zip = trim(document.frmOrder.tbZip.value)
	document.frmOrder.tbZip.value =  zip

	if(title==0)
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid Title")
		document.frmOrder.ddlTitle.focus()
		return false
	}
	if(fname=="" || !strRegEx_FName.test(fname))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid First Name")
		document.frmOrder.tbFirstName.focus()
		return false
	}
	if(lname=="" || (!strRegEx_LName.test(lname)))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid Last Name")
		document.frmOrder.tbLastName.focus()
		return false
	}
	
	if(address1==""|| (!strRegEx_Address1.test(address1)))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid Address 1")
		document.frmOrder.tbAddress.focus()
		return false
	}
	if(address2 !="" && (!strRegEx_Address2.test(address2)))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid Address 2")
		document.frmOrder.tbApt.focus()
		return false
	}

	if(city==""|| (!strRegEx_City.test(city)))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid City")
		document.frmOrder.tbCity.focus()
		return false
	}
	if(state==0)
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid State")
		document.frmOrder.ddlState.focus()
		return false
	}
	if(zip==""|| (!strRegEx_Zip.test(zip)))
	{
		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
		alert("Please enter a valid Zip")
		document.frmOrder.tbZip.focus()
		return false
	}
//	if(email=="" || (!strRegEx_Email.test(email)))
//	{
//		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
//		alert("Please enter a valid Email")
//		document.frmOrder.Email.focus()
//		return false
//	}
//	if (!checkEmail(document.frmOrder.Email,"Email")) {
//		if (document.getElementById("userInfo")) document.getElementById("userInfo").style.display="block"
//		return false;
//	}	
	return true
}
