// JavaScript Document //set default onmouseover event //allows operation of banner menu code //by default the menu hiding will occur while over a page element document.onmouseover = f_navMenuHide; //******************************************************************************************* //FORMS //******************************************************************************************* //DESCRIPTION: handles validating forms //PARAMETERS: myFormID(string) - form object id function f_formValidate(pmFormId){ //expecting form element parameter //get form object var myFormID = pmFormId; var myForm = document.getElementById(myFormID); //get form elements var myFormElements = myForm.elements; //iterate through form elements for(i=0;i-1; //determine type of element var myType = myElement.type; //determine procedures based on type of element var myMessage = ""; switch(myType){ case("select-one"): //SELECT BOX //check if field required if(myRequired){ //get select box value var myValue = myElement.value; //get selected Index var mySelect = myElement.selectedIndex; //check if default selection still selected //assuming default selection is first if(mySelect==0){ //get custom message myMessage = f_formValidateMessages(myId,"Select Box"); if(myMessage!=""){alert(myMessage)}; myElement.focus(); //myElement.select(); return(false); }//end if }//end if break; case("text"): //TEXTFIELD //check if field required if(myRequired){ //get text field value var myValue = myElement.value; if(myValue == ""){ myMessage = f_formValidateMessages(myId,"Text Field"); if(myMessage!=""){alert(myMessage)}; myElement.focus(); myElement.select(); return(false); }//end if }//end if //check if field is email if(myId=="email" || myId=="contactEmail"){ var myValue = myElement.value; var myValidEmail = f_formValidateEmail(myValue); if(!myValidEmail){ myMessage = f_formValidateMessages(myId+"Invalid","Text Field"); if(myMessage!=""){alert(myMessage)}; myElement.focus(); myElement.select(); return(false); }//end if }//end if break; }//end switch }//end for //form validates - return true return(true); }//end function f_formValidate //handles custom messages function f_formValidateMessages(pmKey,pmType){ //get key word var myKey = pmKey; //get type of form element var myType = pmType; //get custom message if possible var myMessage = ""; switch(myKey){ case("companyName"): myMessage = "We require the COMPANY NAME " + myType + " to complete this form."; break; case("contactEmail"): myMessage = "We require the CONTACT EMAIL " + myType + " to complete this form."; break; case("contactEmailInvalid"): myMessage = "We require the CONTACT EMAIL " + myType + " to be in a valid format to complete this form."; break; case("contactEmailConfirm"): myMessage = "We require the RETYPE CONTACT EMAIL " + myType + " to confirm the email address and complete this form."; break; case("contactName"): myMessage = "We require the CONTACT NAME " + myType + " to complete this form."; break; case("contactPhoneNumber"): myMessage = "We require the CONTACT PHONE NUMBER " + myType + " to complete this form."; break; case("day"): myMessage = "We require the DAY " + myType + " have a valid selection in order to complete this form."; break; case("month"): myMessage = "We require the MONTH " + myType + " have a valid selection in order to complete this form."; break; case("participants"): myMessage = "We require the PARTICIPANTS " + myType + " to complete this form."; break; case("product"): myMessage = "We require the PRODUCT " + myType + " have a valid selection in order to complete this form."; break; case("service"): myMessage = "We require the SERVICE " + myType + " have a valid selection in order to complete this form."; break; case("trainingLoc"): myMessage = "We require the TRAINING LOCATION " + myType + " to complete this form."; break; case("year"): myMessage = "We require the YEAR " + myType + " have a valid selection in order to complete this form."; break; }//end switch return(myMessage); }//end f_formValidateMessages //handles validating an email address function f_formValidateEmail(pmEmail){ //get email address to validate var myEmail = pmEmail; //EMPTY EMAIL //check if email is empty if(myEmail==""){return(false)}; //INVALID CHARACTERS //set invalid email character set var myInvalidCharSet = " /:,;"; //check for invalid chars in email for(i=0;i-1){return(false)}; }//end for //PRESENCE AND POSITION OF @ SYMBOL //get position of first at symbol from second char of email var atPos = myEmail.indexOf("@",1); //check for at least one @ symbol later than second char if(atPos==-1){return(false)}; //second @ symbol present after first @ symbol not valid if(myEmail.indexOf("@",atPos+1) != -1){return(false)}; //PRESENCE AND POSITION OF PERIOD SYMBOL //get position of first period symbol from after first @ symbol var periodPos = myEmail.indexOf(".",(atPos+2)); //period required after @ symbol if(periodPos==-1){return(false)}; //if not enough space for TLD (Top Level Domain) then send error if(periodPos+3>myEmail.length){return(false)}; //email validates return(true); }//end function f_formValidateEmail //******************************************************************************************* //END FORMS //******************************************************************************************* //******************************************************************************************* //NAVIGATION //******************************************************************************************* //handles main nav menu operations function f_navMenu(pm_key){ //get key var my_key = pm_key; //find data procedures switch(my_key){ case("SERVICE"): f_navMenuShow("subSERVICE"); //f_styleBgPosition("","0px -38px"); f_styleBgPosition("service_no","images/service_roll.gif"); break; case("BURTON"): f_navMenuShow("subBURTON"); f_styleBgPosition("burton_no","images/burton_roll.gif"); break; case("CONTACT"): f_navMenuShow("subCONTACT"); f_styleBgPosition("contact_no","images/contact_roll.gif"); break; case("PROJECTS"): f_navMenuHide(); f_styleBgPosition("projects_no","images/projects_roll.gif"); break; case("EMPLOYMENT"): f_navMenuHide(); f_styleBgPosition("employment_no","images/employment_roll.gif"); break; }//end switch }//end function f_navMenu //handles hiding menus function f_navMenuHide(pm_array){ //store list of menu div id's in global var g_menu_ids_list = ["subBURTON","subSERVICE","subCONTACT"]; //hold list of sub menu refs for this page //retrieve from global var my_list = g_menu_ids_list; //iterate through id list for(i in my_list){ //get menu object //menu object is a div containing menu elements var my_object_name = my_list[i]; var my_object_menu = document.getElementById(my_object_name); //make menu divs invisible if(my_object_menu!=null){my_object_menu.style.visibility='hidden'}; }//end for //reset all buttons f_styleBgPosition("service_no","images/service_no.gif"); f_styleBgPosition("burton_no","images/burton_no.gif"); f_styleBgPosition("contact_no","images/contact_no.gif"); f_styleBgPosition("projects_no","images/projects_no.gif"); f_styleBgPosition("employment_no","images/employment_no.gif"); }//end function f_navMenuHide //handles showing menus function f_navMenuShow(pm_object){ //shut all menus f_navMenuHide(); //get object to swap background image var my_object_name = pm_object; //var my_object = document.getElementById(my_object_name); //if(my_object==null){return(false)}; //set visibility of object to true f_styleVisibility(my_object_name,true); }//end function f_navMenuShow //******************************************************************************************* //END NAVIGATION //******************************************************************************************* //******************************************************************************************* //STYLES //******************************************************************************************* //handles changing position of a background style function f_styleBgPosition(pm_object,pm_pos){ //get object to swap background image var my_object_name = pm_object; var my_object = document.getElementById(my_object_name); if(my_object==null){return(false)}; //get path to new image var my_pos = pm_pos; //set background image my_object.src = my_pos //my_object.style.backgroundImage = my_path; //my_object.style.backgroundPosition = my_pos; }//end function f_styleBgPosition //handles setting visibility of a style function f_styleVisibility(pm_object,pm_visibility){ //get div object to show var my_object = pm_object; my_object = document.getElementById(my_object); //check if object exists if(my_object==null){return(false)}; //get visibility boolean if(pm_visibility){ //alert ("hi visible"); my_visibility = "visible"; }else{ //alert ("hi hidden"); my_visibility = "hidden"; }//end if //alert ("hi ob= " + my_object); //show sub menu div object my_object.style.visibility = my_visibility; }//end function f_styleVisibility //******************************************************************************************* //END STYLES //*******************************************************************************************