
/*  FORM VALIDATE ))<<>>(( - - - >> */

/*---------------------------------------------------------------------------------------
 * Required:
 *   <div id="status"></div>
 *   <input ... class="required" title="VALUENAME" id="VALUENAME" />
 *-------------------------------------------------------------------------------------*/
function validateForm(form) {
	for(i = 0; i < form.elements.length; i++) {
		if(form.elements[i].className == "required" && form.elements[i].value == "") {
			if(document.getElementById && document.appendChild && document.createTextNode) {
				while(document.getElementById('status').childNodes.length != 0) {
					document.getElementById('status').removeChild(document.getElementById('status').childNodes[0]);
				}
				document.getElementById('status').appendChild(document.createTextNode("'" + form.elements[i].title + "' is required and has not been filled in. Please enter a value and resubmit."));
			} else {
				alert("'" + form.elements[i].title + "' is required and has not been filled in. Please enter a value and resubmit.");
			}
			form.elements[i].focus();
			return false;
		}
	}
	return true;
}









      /* To validate the form data enter by the user */
      
      function validate (form)
      {
        for (var i = 0; i < form.elements.length; i++)
        {
          if ( ! isValid (form.elements[i].value, form.elements[i].name) )
              return false;
        }
        form.submit();
        return true;

      } /* End of "validate()" */



      /* To check whether the user's input is valid or not */

      function isValid (element, warning)
      {
        switch (warning)
        {
          case "email":    warning = "Email";                        break;
          case "gender":   warning = "Gender";                       break;
          case "username": warning = "Username";                     break;
          case "password": warning = "Password";                     break;
          case "fname":    warning = "First Name";                   break;
          case "lname":    warning = "Last Name";                    break;
          case "addr":     warning = "Address";                      break;
          case "addr2":    warning = "Address 2";                    break;
          case "suburb":   warning = "Suburb";                       break;
          case "state":    warning = "State";                        break;
          case "country":  warning = "Country";                      break;
          case "phone":    warning = "Phone";                        break;
          case "mobile":   warning = "Mobile Phone";                 break;
          case "home":     warning = "Home Phone";                   break;
          case "fax":      warning = "Fax";                          break;
          case "postcode": warning = "Postcode";                     break;
          case "title":    warning = "Resume Title";                 break;
          case "aboutJRU": warning = "Where did you hear about JRU"; break;
          case "edu":      warning = "Education";                    break;
          case "skills":   warning = "Skills";                       break;
          case "profile":  warning = "Profile";                      break;
          case "org":      warning = "Organisation";                 break;
          case "numOfEmp": warning = "Number of Employees";          break;
          case "wHistory": warning = "Work History";                 break;
          default:         warning = "Error: Wrong element !";
        }
        if ( ! checkEmpty (element, warning) )
          return false;

        if ( ! checkNumber (element, warning) )
          return false;

        if ( ! checkEmail (element, warning) )
          return false;

        if ( ! checkWhitespaces (element, warning) )
          return false;

        return true;

      } /* End of "isValid()" */



      /* To check whether it's empty or not */

      function checkEmpty (element, warning)
      {
        var cleanField = element.replace (/[\(\)\.\-\ ]/g, '');
 
        if (cleanField == null || cleanField.length == 0)
        {
          alert ("Please Enter Your \""+ warning + "\" !");
          return false;
        }
        return true;

      } /* End of "checkEmpty()" */



      /* To check whether the phone, fax, postcode are numbers only */

      function checkNumber (element, warning)
      {
        if (warning == "Phone" || warning == "Mobile Phone" ||  
            warning == "Home Phone" || warning == "Fax" ||
            warning == "Postcode")
        {
          var numOnly = element.replace (/[\(\)\.\-\ ]/g, '');
        }
        if (warning == "Phone" && isNaN (numOnly) )
        {
          alert ("Please Enter Numbers Only In Your \"Phone\" !");
          return false;
        }
        if (warning == "Mobile Phone" && isNaN (numOnly) )
        {
          alert ("Please Enter Numbers Only In Your \"Mobile Phone\" !");
          return false;
        }
        if (warning == "Home Phone" && isNaN (numOnly) )
        {
          alert ("Please Enter Numbers Only In Your \"Home Phone\" !");
          return false;
        }
        if (warning == "Fax" && isNaN (numOnly) )
        {
          alert ("Please Enter Numbers Only In Your \"Fax\" !");
          return false;
        }
        if (warning == "Postcode" && isNaN (numOnly) )
        {
          alert ("Please Enter Numbers Only In Your \"Postcode\" !");
          return false;
        }

        return true;

      } /* End of "checkNumber()" */



      /* To check whether the email address is valid or not */

      function checkEmail (element, warning)
      {
        var validChars = /^[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;

        if (warning == "Email" && ! validChars.test (element) )
        {
          alert ("Please Enter Valid \"Email\" Address !");
          return false;
        }
        return true;

      } /* End of "checkEmail()" */



      /* To check whether there are any whitespaces in "Username",
         "Password", "First Name", and "Last Name" fields, and if
         any, remove them */

      function checkWhitespaces (element, warning, wSpace)
      {
        /* "\s" matches any whitespace character such as [ \t\n\r\f\v] */

        var wSpace = /\s/;

        if (warning == "Username" && wSpace.test (element) )
        {
          alert ("Please Remove Whitespaces In Your \"Username\" !");
          return false;
        }
        if (warning == "Password" && wSpace.test (element) )
        {
          alert ("Please Remove Whitespaces In Your \"Password\" !");
          return false;
        }
        if (warning == "First Name" && wSpace.test (element) )
        {
          alert ("Please Remove Whitespaces In Your \"First Name\" !");
          return false;
        }
        if (warning == "Last Name" && wSpace.test (element) )
        {
          alert ("Please Remove Whitespaces In Your \"Last Name\" !");
          return false;
        }
        return true;

      } /* End of "checkWhitespaces()" */



