function CheckForm(){
    var reqElems = YAHOO.util.Dom.getElementsByClassName("Req");    
    
    var blnSubmit = true; //default is true, assume no errors
    var HTMLErrorMessages = "";
    
    for (i=0;i<reqElems.length;i++){
    
        var elemValue = reqElems[i].value;
        var HTMLErrorMessage = "";
        
        //check to see if there is a special test to run    
        if (reqElems[i].getAttribute("TestFor")){
        
            var TestingFor = reqElems[i].getAttribute("TestFor");                       
            
            if (TestingFor == "Email"){
                HTMLErrorMessage = checkEmail(elemValue);
            }
            
        }else{
            HTMLErrorMessage = checkText(elemValue);
            
            if (HTMLErrorMessage!=''){
                HTMLErrorMessage += getLabelName(reqElems[i]);
            }
            
        }
        
        if (HTMLErrorMessage!=''){
           HTMLErrorMessages += "<li>" +  HTMLErrorMessage + "</li>"
           setLabelCss(true, reqElems[i]);
           blnSubmit = false; /* any error sets the submit to false*/
        }else{
           setLabelCss(false, reqElems[i]);
        }
        
    }

    //change the css to display the General Error Message at the top of the page, if there were errors
    //and add the error messages 
    if(!blnSubmit){
        setDisplayErrorMessage(HTMLErrorMessages, "ErrorMessages");
    }else{
        setDisplayErrorMessageOff("ErrorMessages");
    }
    
    return blnSubmit;

}

function setDisplayErrorMessageOff(WrapperDivClassName){
    elemErrorMessage = getWrapperErrorDiv(WrapperDivClassName);
    YAHOO.util.Dom.setStyle(elemErrorMessage, "display", "none");
}

function setDisplayErrorMessage(HTMLErrorMessages, WrapperDivClassName){
    elemErrorMessage = getWrapperErrorDiv(WrapperDivClassName);

    elemULErrors = YAHOO.util.Dom.getLastChild(elemErrorMessage);

    elemULErrors.innerHTML = "";

    elemULErrors.innerHTML = HTMLErrorMessages;
    YAHOO.util.Dom.setStyle(elemErrorMessage, "display", "block");
}

function getWrapperErrorDiv(WrapperDivClassName){
    elemErrorMessage = YAHOO.util.Dom.getElementsByClassName(WrapperDivClassName, "div");
    elemErrorMessage = elemErrorMessage[0];
    
    return elemErrorMessage;
}

function getLabelName(elemInput){
    //this could change depending upon the layout of the form
    elemLabel = getLabelElem(elemInput);
    
    //we wrap the label text in a span
    elemLabelSpan = YAHOO.util.Dom.getLastChild(elemLabel);
    
    //may have a semi colon after the label text
    var LabelText = elemLabelSpan.innerHTML;
     
    LabelText = LabelText.replace(":", "");
    return LabelText;
}

function setLabelCss(blnSetting, elemInput){
    //Change the class if the user needs to notified of an error
    elemLabel = getLabelElem(elemInput);
    
    if (blnSetting){
        if (!YAHOO.util.Dom.hasClass(elemLabel, "ReqAlert")){
            YAHOO.util.Dom.addClass(elemLabel, "ReqAlert");
        }
    
    }else{
        //check if the user fixed the error the second or third ... attempt
        if (YAHOO.util.Dom.hasClass(elemLabel, "ReqAlert")){
            YAHOO.util.Dom.removeClass(elemLabel, "ReqAlert");
        }
    }
    


}

function getLabelElem(elemInput){
    //this could change depending upon the layout of the form
    elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
    
    return elemLabel;
}


function checkWholeForm(frmName){
    //array of elements to check       
    
    if (tabName == "join lets go paddle"){
        var elem = new Array(7);
        elem[0] = "username";
        elem[1] = "password";
        elem[2] = "firstname";
        elem[3] = "lastname";
        elem[4] = "email";               
        elem[5] = "zip";
        elem[6] = "AgreeToPolicy";
    }else if (tabName == "win a paddling adventure"){
        var elem = new Array(8);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "email";
        elem[3] = "address";
        elem[4] = "city";
        elem[5] = "stateSelect";               
        elem[6] = "zip";
        elem[7] = "AgreeToPolicy";
    }else{
        var elem= new Array(2);
        elem[0] = "firstname";
        elem[1] = "question";
    }
    
    
    var blnSubmit = true; //default is true, assume no errors
    var HMTLErrorMessages = "";
    
    for (i=0;i<elem.length;i++){
        if (document.getElementById(elem[i])){
            //get the element to test
            elemInput = document.getElementById(elem[i]);
            
            var elemValue = elemInput.value;
            var HMTLErrorMessage = "";
            
        if (elem[i]=="email"){
            HMTLErrorMessage = checkEmail(elemValue);
            
        }else if (elem[i]=="password"){        

            HMTLErrorMessage = checkStringLenth(elemValue);  
  
        }else if (elem[i]=="AgreeToPolicy"){        

            HMTLErrorMessage = checkIfChecked(elemInput);  
            
        }else{    
            HMTLErrorMessage = checkText(elemValue);
        }
             
            if (HMTLErrorMessage!=""){

                if (elem[i]=="AgreeToPolicy"){
                    elemLabel = YAHOO.util.Dom.getNextSibling(elemInput);
                }else{
                    elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
                    elemLabelText = elemLabel.innerHTML.substr(0, elemLabel.innerHTML.indexOf("<"));
                }

                YAHOO.util.Dom.replaceClass(elemLabel, "req", "reqAlert");

                //email contains custom error messages
                if (elem[i]=="email" || elem[i]=="password" || elem[i]=="AgreeToPolicy"){
                    elemLabelText = "";
                }

                HMTLErrorMessages += "<li>" + HMTLErrorMessage + elemLabelText + "</li>"
                
                //retun false to the calling error check
                blnSubmit = false;
            }else{
                //just make sure the alert icon is hidden
                if (elem[i]=="AgreeToPolicy"){
                    elemLabel = YAHOO.util.Dom.getNextSibling(elemInput);
                }else{
                    elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
                }
            
                if (YAHOO.util.Dom.hasClass(elemLabel, "reqAlert")){
                    YAHOO.util.Dom.replaceClass(elemLabel, "reqAlert", "req");
                }
            }
       }//end if for the element being available 

    }
    
    //change the css to display the General Error Message at the top of the page, if there were errors
    //and add the error messages 
    if(!blnSubmit){
       elemErrorMessage = YAHOO.util.Dom.getElementsByClassName("ErrorMessages", "div");
       elemULErrors = YAHOO.util.Dom.getFirstChild(elemErrorMessage[0]);
       elemULErrors.innerHTML = "";
       elemULErrors.innerHTML = HMTLErrorMessages;
       YAHOO.util.Dom.setStyle(elemErrorMessage, "display", "block");
    }
    
    return blnSubmit;
}


function checkMemberSearchForm(frmName){
    //array of elements to check       
    
    var elem= new Array(2);
    elem[0] = "state";
    elem[1] = "type";

    var HMTLErrorMessages = "";
    var HMTLErrorMessageHTML = "";   
    
    
    for (i=0;i<elem.length;i++){
    
    
        if (document.getElementById(elem[i])){
            //get the element to test
            elemInput = document.getElementById(elem[i]);    

            var elemValue = elemInput.value;            
            HMTLErrorMessages = checkText(elemValue);
            
            if (HMTLErrorMessages!=''){
            
                if(elem[i]=="state"){
                    HMTLErrorMessageHTML += "<li>You must select a State/Province.</li>";
                }else{
                    HMTLErrorMessageHTML += "<li>You must select a Type.</li>";                        
                }
                
                elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
                YAHOO.util.Dom.replaceClass(elemLabel, "req", "reqAlert");
                
            }else{
                elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
                YAHOO.util.Dom.replaceClass(elemLabel, "reqAlert", "req");
            }           
                
                
        }
    }
    
    if (HMTLErrorMessageHTML==""){
        elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
        elemErrorMessage = YAHOO.util.Dom.getElementsByClassName("ErrorMessages", "div");
        YAHOO.util.Dom.setStyle(elemErrorMessage, "display", "none");
        return true;
    }else{
       elemErrorMessage = YAHOO.util.Dom.getElementsByClassName("ErrorMessages", "div");
       elemULErrors = YAHOO.util.Dom.getFirstChild(elemErrorMessage[0]);
       elemULErrors.innerHTML = "";
       elemULErrors.innerHTML = HMTLErrorMessageHTML;
       YAHOO.util.Dom.setStyle(elemErrorMessage, "display", "block");
 

        
        return false;
    }

    

}

    
function checkEmail (strng) {
    var error="";
    
    if (strng == "") {
       error = "Please enter a valid E-mail Address";
    }

    var emailFilter=/^.+@.+\..{2,3}$/;
    
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid E-mail Address";
    }
    else {
    //test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
       
       if (strng.match(illegalChars)) {
          error = "The E-mail Address contains illegal characters";
       }
    }
    
    return error;    
}

function checkText (strng) {
     var error = "";
     
     if (strng == "") {
        error = "Please enter a value for ";
     }
     
     return error;
}
    
function checkStringLenth(strng){
     var error = "";
     
     if (strng.length < 7) {
        error = "Password must be at least seven characters.";
     }
     
     return error; 
}
    
    
function checkIfChecked(elem) {
    var error = "";
    
    //var tabName set in the page
    if(!elem.checked){
        if (tabName=='join lets go paddle'){            
            error = "You must read and agree with the Privacy Policy";
        }else{
            error = "You must read and agree with the Let's Go Paddle Sweepstakes";
        }
        
      }
      
  return error;
}