function validateForm_Registration(theForm) {
var reason = "";

  reason += validateLogin(theForm["login"]);
  reason += validatePassword(theForm["password"]);
  reason += validateConfirmPassword(theForm["password"], theForm["confirmPassword"]);
  reason += validateRadio(theForm["salutation"], "salutation");
  reason += validateEmpty(theForm["name"], "First Name");
  reason += validateEmpty(theForm["lastName"], "Last Name");
  reason += validateRadio(theForm["sex"], "sex");
  //reason += validateDate(theForm["birthday1"]);
  reason += validateEmail(theForm["email"]);
  reason += validateCheckbox(theForm["privacy"], "Please read and accept the Terms and Conditions and Privacy Statement.\n");

      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_EditProfile(theForm) {
var reason = "";

  //reason += validatePassword(theForm.password);
  //reason += validateConfirmPassword(theForm.password, theForm.confirmPassword);
  
  reason += validateRadio(theForm.salutation, "salutation");
  reason += validateEmpty(theForm.name, "First name");
  reason += validateEmpty(theForm.lastName, "Last name");
  reason += validateRadio(theForm.sex, "sex");
  //reason += validateDate(theForm.birthday1);
  reason += validateEmail(theForm.email);
    
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_EditProfile1(theForm) {
var reason = "";

  reason += validateEmpty(theForm["school"], "School");
  reason += validateEmpty(theForm["studyField"], "Study Field");
  /*var startError = validateDate(theForm.startDate);
  if (startError.length ==0)
  	reason += validateDate(theForm.endDate);
  else
	reason += startError;*/
      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}


function validateForm_EditProfile2(theForm) {
var reason = "";

  reason += validateEmpty(theForm.companyName1, "Company name");

  var startError = validateDate(theForm.startDate);
  if (startError.length ==0)
  	reason += validateDate(theForm.endDate);
  else
	reason += startError;
      
  reason += validateEmpty(theForm.position1, "Position");
  reason += validateEmpty(theForm.salary1, "Salary");
  reason += validateEmpty(theForm.duty1, "Duty");
      
      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_EditProfile3(theForm) {
var reason = "";

  reason += validateEmpty(theForm.name1, "Name");

      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_Login(theForm) {
var reason = "";

  reason += validateEmpty(theForm.userName, "username");
  reason += validateEmpty(theForm.passWord, "password");

      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_ForgotPassword(theForm) {
var reason = "";

  reason += validateEmail(theForm.email);
  reason += validateEmpty(theForm.memberNo, "HKIA / ARB No.");

      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_ContactUs(theForm) {
var reason = "";

  reason += validateRadio(theForm.type, "whether you are a Job Seeker or a Recruiter");
  reason += validateRadio(theForm.info, "type of enquiry");
  reason += validateEmpty(theForm.messages, "your message");
  reason += validateEmpty(theForm.name, "your name");
  if (theForm.type[1].checked)
  reason += validateEmpty(theForm.name, "Company name");
  reason += validateEmail(theForm.email);
      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_ForwardToFriend(theForm) {
var reason = "";

  reason += validateEmpty(theForm.name, "Your name");
  reason += validateEmail(theForm.email);
  reason += validateEmail(theForm.remail);
  reason += validateEmpty(theForm.message, "Messages");
      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateForm_ChangePassword(theForm) {
var reason = "";

  reason += validatePassword(theForm.oldPassword);
  if (reason == "")
  {
  reason += validatePassword(theForm.password);
  reason += validateConfirmPassword(theForm.password, theForm.confirmPassword);
	}
      
  if (reason != "") {
    alert(reason);
    return false;
  }

  return true;
}

function validateEmpty(fld, fieldname) {
    var errorStatement = "";
 
    if (fld.value.length == 0) {
        errorStatement ="Please enter "+fieldname + ".\n";
    } 
    return errorStatement;  
}


function validateLogin(fld) {
    var errorStatement = "";

    var legalChars = /[0-9a-zA-Z]/;
 
    if (fld.value == "") {
        errorStatement = "Please enter Username.\n";
    } else if ((fld.value.length < 6) || (fld.value.length > 15)) {
        errorStatement = "Username should consist of 6-15 characters.\n";
    } else if (!legalChars .test(fld.value)) {
        errorStatement = "Username may consist of a-z, 0-9, underscores (_), and/or a single dot (.).\n";
    }
    return errorStatement;
}

function validatePassword(fld) {
    var errorStatement = "";
    var illegalChars = /[\W_]/;
 
    if (fld.value == "") {
        errorStatement = "Please enter Password.\n";
    } else if ((fld.value.length < 6) || (fld.value.length > 15)) {
        errorStatement = "Password should consist of 6-15 characters.\n";
    } else if (illegalChars.test(fld.value)) {
        errorStatement = "Password should consist of a-z, 0-9, underscores (_), and/or a single dot (.).\n";
    } 
   return errorStatement;
}  

function validateConfirmPassword(fld, confirmFld) {
    var errorStatement = "";
 
    if (fld.value.length > 0 && fld.value != confirmFld.value) {
        errorStatement = "Password and confirm password do not match.\n";
    }
   return errorStatement;
}  


function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var errorStatement="";
    var tfld = trim(fld.value);
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        errorStatement = "Please enter your e-mail address.\n";
    } else if (!emailFilter.test(tfld)) {
        errorStatement = "Please enter a valid e-mail address.\n";
    } else if (fld.value.match(illegalChars)) {
        errorStatement = "Please enter a valid e-mail address.\n";
    }
    return errorStatement;
}


function validateCheckbox(fld, name) {
    var errorStatement = "";
 	
	if (!fld.checked){
        errorStatement = name;
	}
    return errorStatement;  
}

function validateRadio(fld, radioname) {
    var errorStatement = "";
    var Selected = false;
	for (i = 0; i < fld.length; i++) {
	if (fld[i].checked)
	Selected = true;
	}
	if (!Selected)
        errorStatement ="Please select "+radioname + ".\n";

    return errorStatement;  
}


function validateDate(fld)
{
    var errorStatement = "";
	if( !/^(\d{4})\/(\d{2})\/(\d{2})$/.test(fld.value) ) {
	errorStatement = "Please enter date in yyyy/mm/dd format.\n" ;
	}
	return errorStatement;
}

function resetForm(form)
{
    form.reset();
}

String.prototype.Trim = function() 
{ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 

String.prototype.LTrim = function() 
{ 
return this.replace(/(^\s*)/g, ""); 
} 

String.prototype.RTrim = function() 
{ 
return this.replace(/(\s*$)/g, ""); 
}


