function checkWholeForm(frmName, frm){
    
    //array of elements to check       
    if (frmName=="white_paper_access"){
        var elem = new Array(5);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "company";
        elem[3] = "email";               
        elem[4] = "white_papers";
    }

    //array of elements to check
    if (frmName == "social_media") {
        var elem = new Array(5);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "company";
        elem[3] = "email";
        elem[4] = "white_papers";
    }
    
    if (frmName == "customer_experience_management") {
        var elem = new Array(5);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "company";
        elem[3] = "email";               
        elem[4] = "white_papers";
    }

    if (frmName == "text_mining_solutions") {
        var elem = new Array(5);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "company";
        elem[3] = "email";
        elem[4] = "white_papers";
    }

    if (frmName=="contact_us"){
        var elem = new Array(4);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "company";
        elem[3] = "email"; 
    }
        
     if (frmName=="subscribe_to_partnerperspectives"){
        var elem = new Array(3);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "email"; 
    }       

     if (frmName=="subscribe_to_bridgepoints"){
        var elem = new Array(3);
        elem[0] = "firstname";
        elem[1] = "lastname";
        elem[2] = "email"; 
    }         
        
    var blnSubmit = true; //default is true, assume no errors
    var HMTLErrorMessages = "";
    
    for (i=0;i<elem.length;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]=="white_papers"){        

            if (!checkedArray()){            
                HMTLErrorMessage = "You must check at least one White Paper";
            }    
            
        }else{            
            HMTLErrorMessage = checkText(elemValue);
        }
       
        if (HMTLErrorMessage!=""){

            elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
            
            if (elemLabel){
                elemLabelText = elemLabel.innerHTML.substr(0, elemLabel.innerHTML.indexOf("<"));
                elemSpanReq = YAHOO.util.Dom.getFirstChild(elemLabel);
                YAHOO.util.Dom.replaceClass(elemSpanReq, "req", "reqAlert");

                //email contains custom error messages
                if (elem[i]=="email" || elem[i]=="white_papers"){
                    elemLabelText = "";
                }
                
                HMTLErrorMessages += "<li>" + HMTLErrorMessage + elemLabelText + "</li>"
            }
            //retun false to the calling error check
            blnSubmit = false;
        }else{
            //just make sure the alert icon is hidden
            elemLabel = YAHOO.util.Dom.getPreviousSibling(elemInput);
            if (elemLabel){
       
                elemSpanReq = YAHOO.util.Dom.getFirstChild(elemLabel);
            
                if (YAHOO.util.Dom.hasClass(elemSpanReq, "reqAlert")){
                    YAHOO.util.Dom.replaceClass(elemSpanReq, "reqAlert", "req");
                }
            }
       
        }
        

    }
    
    //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 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 checkedArray(){
  elemChecks = YAHOO.util.Dom.getElementsByClassName("whitepapercheckbox", "input");
  var blnReturn = false  
  
  if(elemChecks[0].checked){
    blnReturn = true;
  }

  if (elemChecks[1]){
      if(elemChecks[1].checked){
        blnReturn = true;
      }
  }
  
  if (elemChecks[2]){ 
      if(elemChecks[2].checked){
        blnReturn = true;
      }
  }  
    
  if (elemChecks[3]){  
      if(elemChecks[3].checked){
        blnReturn = true;
      }
  }

  if (elemChecks[4]) {
      if (elemChecks[4].checked) {
          blnReturn = true;
      }
  }

  if (elemChecks[5]) {
      if (elemChecks[5].checked) {
          blnReturn = true;
      }
  } 
  
  return blnReturn;
}
    