window.onload = function() {
	LoadNavBar();
	if(document.getElementById('ContactList')) { initContacts(); }
	if(document.getElementById('dataForm')) { initDataForm(); }
	if(document.getElementById('contactform')) { initForm(); }
}

/* ------------------------------------------------------------------- */
function LoadNavBar() {
	if (document.all&&document.getElementById) {
		var theList = document.getElementById("NavBar");
		theNode = theList.getElementsByTagName("LI");
		for (i=0; i<theNode.length; i++) {
			theNode[i].onmouseover=function() {this.className+=" over";}
			theNode[i].onmouseout=function() {this.className=this.className.replace(" over", "");}
		}
	}
}

/* ------------------------------------------------------------------- */

function initContacts() {
    var whichDiv = document.getElementById('ContactList');
    var links = whichDiv.getElementsByTagName( 'a' ); 
    for( var i=0; i < links.length; i++ ){
        links[i].onclick = function(){
            submitHidden(this);
            return false;
        }
    }

    if (document.all&&document.getElementById) {
	var whichTable=document.getElementById('rulerSection');
	var RowObj=whichTable.getElementsByTagName( 'tr' );
	for(var iRowCounter=0;iRowCounter<RowObj.length;iRowCounter++) {
		RowObj[iRowCounter].onmouseover=function(){this.className+=' ruled';return false}
		RowObj[iRowCounter].onmouseout=function() {this.className=this.className.replace(" ruled", ""); return false}
	}
    }
}
/* ------------------------------------------------------------------- */

function initDataForm() {
    var theForm=document.getElementById("dataForm");
    theForm.onsubmit = function() { return checkForm(theForm); }
    
    theForm.Email.onfocus = function() { this.className+=' currentField';}
    theForm.Email.onblur = function()  { this.className=this.className.replace(" currentField", ""); }

    document.getElementById("Email").focus();
}
/* ------------------------------------------------------------------- */

function initForm() {
   var theForm=document.getElementById("contactform");
   theForm.onsubmit = function() { return IsFormComplete(theForm); }
   for (var i=0;i<theForm.length;i++) {
      if (theForm.elements[i].value!="Reset" && theForm.elements[i].value!="Submit" && theForm.elements[i].id !="fieldset") {
         theForm.elements[i].onfocus = function() { this.className+=' currentField';}
         theForm.elements[i].onblur = function()  { this.className=this.className.replace(" currentField", ""); }
      }
   }
   document.getElementById("Name").focus();
}
/* ------------------------------------------------------------------- */



function submitHidden(theField) {
     var StringObj = theField.href.substring(theField.href.indexOf(":", 1)+1,theField.href.length);
     document.getElementById("hField").value = StringObj;
     document.getElementById("hForm").submit();
     return false;
}
/* ------------------------------------------------------------------- */
function IsEmpty(strValue) {
     return (strValue.length == 0 || strValue == null );
}
/* ------------------------------------------------------------------- */
function showError(theField, theMessage) {
     alert(theField.id + theMessage);
     theField.focus();
     return false;
}
/* ------------------------------------------------------------------- */
function IsPhone(theField) {
     var parseString = /^(\d{3})(\d{3})(\d{4})$/
     var phoneRE = /^\d\d\d-\d\d\d-\d\d\d\d$/
     theField.value = theField.value.replace(/[^0-9]/g, '');
     theField.value = theField.value.replace(parseString, "$1-$2-$3");
     return phoneRE.test(theField.value);
}
/* ------------------------------------------------------------------- */
function IsEmail(theField) {
     var emailRE  = /^[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]$/
     return emailRE.test(theField.value);
}
/* ------------------------------------------------------------------- */
function IsFormComplete(whichForm) {
     var x = 0;
     var FormOk = true;
     var ElementsObj = whichForm.elements;
     while ((x < ElementsObj.length) && (FormOk))  {
          if ( ElementsObj[x].id != "fieldset") {

               switch (ElementsObj[x].id) {
                    case "Name":
                    case "Company":
                    case "Access_To":
                    case "Message":			
                         if (IsEmpty(ElementsObj[x].value))  {
                              FormOk = showError(ElementsObj[x], ' is a required field.');
                              break; 
                         } else {
                              ElementsObj[x].value = ElementsObj[x].value.replace(/\'|"|:/g, '-');
                              break; 
                         }

                    case "Work_Phone" :
                         if (IsEmpty(ElementsObj[x].value))  { 
                              FormOk = showError(ElementsObj[x], ' is a required field.');
                              break;
                              } else {
                              if (IsPhone(ElementsObj[x])) { 
                                   FormOk = true
                                   break;
                              } else {
                                   FormOk = showError(ElementsObj[x], ': Incorrect Format.  Please use the format 999-999-9999');
                                   break; }
                              } 

                    case "Cell_Phone":
                    case "Home_Phone":
                    case "Fax":
                         if (IsEmpty(ElementsObj[x].value))  { 
                              FormOk = true;
                              break;  
                              } else {
                              if (IsPhone(ElementsObj[x])) { 
                                   FormOk = true
                                   break;
                              } else {
                                   FormOk = showError(ElementsObj[x], ': Incorrect Format.  Please use the format 999-999-9999');
                                   break; }
                              } 


                         case "Email" :
                              if (IsEmpty(ElementsObj[x].value))  { 
                                   FormOk = showError(ElementsObj[x], ' is a required field.');
                                   break; 
                              } else {
                              if (IsEmail(ElementsObj[x])) { 
                                   FormOk = true
                                   break;
                              } else {
                                   FormOk = showError(ElementsObj[x], ': Incorrect Format.  Please enter a valid Email Address');
                                   break; }
                              }

                         default :
                              FormOk = true; 
               }  
          }      
     x ++
     }	   

     return FormOk;
}

/* ------------------------------------------------------------------- */
function whichEmail() {
   a = document.getElementsByTagName("a");
   for(i=0; i<a.length; i++) {
      a[i].onclick = function() {
         document.getElementById("hField").value = this.getAttribute("href").substring(this.getAttribute("href").indexOf(":")+1,this.getAttribute("href").length);
         document.getElementById("hForm").submit();
         return false;
      }
   }
}
/* ------------------------------------------------------------------- */
function checkForm(whichForm) {
	var valid = true;
	var howMany = 0;

	if (IsEmpty(whichForm.Email.value))  { 
		valid = showError(whichForm.Email, ' is a required field.');
	} else {
		if (IsEmail(whichForm.Email)) { 
			valid = true
		} else {
			valid = showError(whichForm.Email, ': Incorrect Format.  Please enter a valid Email Address');
			}
		}

	if (valid == true) {
		for (i = 0; i < whichForm.elements.length; i++) {if (whichForm.elements[i].checked) {howMany ++}}
		if (howMany == 0){
			document.getElementById("dataFiles").focus(); 
			alert('You must select at least one document to email.') 
			valid = false; }
	}

	return valid;
}

/* ------------------------------------------------------------------- */
function checkSelect() {
     var OkSend = true;
     var theField1 = document.getElementById("fromMonth");
     var theField2 = document.getElementById("toMonth");

	if (theField1.selectedIndex == 0) {OkSend = false; alert("Please select a FROM month"); 
	} else {
		if (theField2.selectedIndex == 0) {OkSend = false; alert("Please select a TO month");  
		}  else {
			if (theField1.selectedIndex > theField2.selectedIndex) {OkSend = false; alert("FROM month should be earlier than TO month");  }
		}
	}
   return OkSend;
}









