function trimming(fieldVal)
{
    return fieldVal.replace(/^\s+|\s+$/g, '');
}
function validateShippingDelivForm(){
    var error="";
    if(validate(document.getElementById("weightId"))){
        error+="weight";
    }
    var divEle=document.getElementById("errorId");
    divEle.innerHTML="";
    if(error!=""){
        divEle.setAttribute("class","checkerrorMsg");
        divEle.innerHTML="One or more required fields are missing.";
        return false;
    }
    else{
        divEle.setAttribute("class","");
        return true;
    }
}
function validateShipingReqForm(){
    var error="";
    if(validate(document.getElementById("add1"))){
        error+="add1";
    }
    else if(validate(document.getElementById("city"))){
        error+="city";
    }
    else if(validate(document.getElementById("state"))){
        error+="state";
    }
    else if(validate(document.getElementById("zip"))){
        error+="zip";
    }
    
    var divEle=document.getElementById("errorId");
    divEle.innerHTML="";
    if(error!=""){
        divEle.setAttribute("class","checkerrorMsg");
        divEle.innerHTML="One or more required fields are missing.";
        return false;
    }
    else{
        divEle.setAttribute("class","");
        return true;
    }
}
function validateBillingInfoForm(nopay,payType){
    var error="";
    var pattern=/^true$/;
    //payType is 2 refers paypal... if the value is paypal then no need to validate the credit card related fields
    if(validate(document.getElementById("fname"))){
        error+="fname";
    }
    else if(validate(document.getElementById("lname"))){
        error+="lname";
    }
    else if(validate(document.getElementById("billAdd1"))){
        error+="billAdd1";
    }
    else if(validate(document.getElementById("city"))){
        error+="city";
    }
    else if(validate(document.getElementById("zip"))){
        error+="zip";
    }
    else if(payType!=2 && nopay!= null && !pattern.test(nopay) && validate(document.getElementById("cardTypeId"))){
        error+="cardTypeId";
    }
    else if(payType!=2 && nopay!= null && !pattern.test(nopay) && validate(document.getElementById("ccNumber"))){
        error+="ccNumber";
    }
    else if(payType!=2 && nopay!= null && !pattern.test(nopay) && validate(document.getElementById("secCode"))){
        error+="secCode";
    }
    var divEle=document.getElementById("errorId");
    divEle.innerHTML="";
    if(error!=""){
        divEle.setAttribute("class","checkerrorMsg");
        divEle.innerHTML="One or more required fields are missing.";
        return false;
    }
    else{
        divEle.setAttribute("class","");
        return true;
    }
}
//x1 : input element 
function validate(x1) {
    //divEle=document.getElementById(divEleName);
    x=trimming(x1.value);
    if(x==""||x==null){
        //divEle.innerHTML=message+" required";
        return true;
    }
    else {
        //divEle.innerHTML="";
        return false;
    }
}
function userNameJS()
{
    var fname=document.forms[0]["userBean.userName"].value;
    divfullname=document.getElementById("errorId");
    var pattern=/[A-Za-z0-9]+/;
    var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if((fname=='') ||(fname.length<8) || (fname.length>128)  ||(!pattern.test(fname)) || (fname.match("@")!=null  && !reg.test(fname))  ){
        divfullname.innerHTML=" The username you entered needs to have at least 8 characters. Your username can be an e-mail address or it can be numbers and letters only.";
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        return false;
    }else
    {
        document.getElementById("errorId").setAttribute("class","");
        divfullname.innerHTML="";
        return true;
    }
}
function passwordJS()
{
    var pword=document.forms[0]["userBean.password"].value;
    divpassword=document.getElementById("errorId");
    
    var pattern=/[A-Za-z0-9!@#%$&*?_ ]{1,20}$/i;
    if((pword=='') || (pword.length<6) || (pword.length>20) || (!pattern.test(pword))){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divpassword.innerHTML="Please make sure your password contains between 6 and 20 characters, consisting of letters, numbers, or special characters (!@#%$&*?_).";
        return false;    
    }else
    {
        document.getElementById("errorId").setAttribute("class","");
        divpassword.innerHTML="";
        return true;
    }
    
}
function confirmpasswordJS()
{
    var pwd1=trimming(document.forms[0]["userBean.password"].value);
    var pwd2=trimming(document.getElementById("createAcctPasswordConfirm").value);
    divconfirm=document.getElementById("errorId");
    if(pwd1!=pwd2){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divconfirm.innerHTML="Please make sure the Password and Confirm Password entries are matching.";
        return false;
    }else
    {
        document.getElementById("errorId").setAttribute("class","");
        divconfirm.innerHTML="";
        return true;
    }
}
function emailJS()
{
    var email=document.forms[0]["userBean.email"].value;
    divemail=document.getElementById("errorId");
    var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if((!reg.test(email))){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divemail.innerHTML="Please enter a valid e-mail address.";
        return false;
    }
    else {
        document.getElementById("errorId").setAttribute("class","");
        divemail.innerHTML="";
        return true;
    }
}
function promocodeJS()
{
    var promo=document.forms[0]["userBean.createAcctCoupon"].value;
    divpromo=document.getElementById("errorId");
    var pattern=/[A-Za-z0-9]+/;
    if((pattern.length<8) || (pattern.length>8) || (!pattern.test(pattern))){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divpromo.innerHTML="The promotional code you entered is invalid. Please try again.";
        return false;
    }
    else{
        document.getElementById("errorId").setAttribute("class","");
        divpromo.innerHTML="";
        return true;
    }
}

function checkUserId(){
    divcheckuserid=document.getElementById("checkUserId");
    if(divcheckuserid!=null){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divcheckuserid.innerHTML="User name is unavilable";
        return false;
    }
    else{
        document.getElementById("errorId").setAttribute("class","");
        return true;
    }
}

function checkEmailId(){
    divcheckemailid=document.getElementById("checkEmailId");
    if(divcheckemailid!=null){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divcheckemailid.innerHTML=" Email ID is unavilable";
        return false;
    }
    else{
        document.getElementById("errorId").setAttribute("class","");
        return true;
    }
}

function validateForm(){
    var msg="";
    if (!userNameJS())
        msg+="username";
    else if (!passwordJS())
        msg+="password1";
    else if(!confirmpasswordJS())
        msg+="confirmpassword";
    else if(!emailJS())
        msg+="emailJs";
    else if(!promocodeJS())
        msg+="promocode";
    else if(!checkUserId())
        msg+="checkuserId";
    else if(!checkEmailId())
        msg+="checkemailId";
    if(msg!="")
        return false;
    else
        return true;
    
}

function emailUserJS()
{
    var email=document.forms[0]["userBean.email"].value;
    divemail=document.getElementById("errorId");
    var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if((!reg.test(email))){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divemail.innerHTML="Please enter a valid Email Id.";
        return false;
    }
    else{
        document.getElementById("errorId").setAttribute("class","");
        divemail.innerHTML="";
        return true;
    }
}
function zipUserJS(){
    var zip=document.forms[0]["addressBean.billZip"].value;
    divzip=document.getElementById("errorId");
    var reg = /^\d{3,10}$/;
    if((zip!='') && (!reg.test(zip)) ){
        document.getElementById("errorId").setAttribute("class","checkerrorMsg");
        divzip.innerHTML="Please enter a valid Zip Code.";
        return false;
    }
    else {
        document.getElementById("errorId").setAttribute("class","");
        divzip.innerHTML="";
        return true;
    }
}


function validateUserForm()
{
    var msg="";
    if (!emailUserJS())
        msg="emailjs";
    else if (!zipUserJS())
        msg="zipjsx";
    else if (!passwordJS())
        msg="passjs";
    else if (!confirmpasswordJS())
        msg="confirm pass";
    if(msg!="")
        return false;
    else
        return true;
}
