function disableallerrormsg(formobj){
	
	var errormsgs = formobj.getElementsByTagName("div");
	for (var i=0; i< errormsgs.length; i++){
		var divelement = errormsgs[i];	
		var divId=divelement.id
		if (divId.match("Error")){
			divelement.style.display="none";
		}
	}
}	


function checkNumericAndMove(field,nextFieldID){
  field.value=field.value.replace(/([^0-9])/g,"");
   if(field.value.length >= field.maxLength){
    document.getElementById(nextFieldID).focus();
  }
}


function isInteger(svalue){
	var partern = /^\d*$/;	
	return !(!svalue.match(partern));
}


var count = "300";   //Example: var count = "175";
function limiter(obj,len){
count=len;
var tex = obj.value;
var len = tex.length;
if(len > count){
        tex = tex.substring(0,count);
        obj.value =tex;
        // alert("You have exceeded the maximum characters of " +count);
        return false;
}

}



function isEmail(svalue){

	//var partern = /^[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]$/;
	var partern=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;

	return !(!svalue.match(partern));
}

function checkLength(str, maxLength){
	if (str.length > maxLength)
		return false;
	return true;	
}

function isChecked(field){
	var checkvalue=false;
	var check = field;
	
	if (check.value == undefined){
		for (var i=0; i<check.length; i++) {
		   if (check[i].checked) {
		      checkvalue = true;
		      break;
		   }
		}
	}
	else{
		if (check.checked)
			checkvalue = true;
	}

	if (!(checkvalue)) {
	       // showErrormsg('deleteError',"Please check the child to delete");
			return false;
	    }
	else{
		return true;
	}
}


function isOthersRequired(field,obj){
	var checkvalue=false;
	var check = field;
	
	if (check.value == undefined){
		for (var i=0; i<check.length; i++) {
		   if (check[i].checked) {
			

			if (check[i].value== obj){
			
				checkvalue = true;
				break;
			}
		   }
		}
	}
	else{
		if (check.checked){
			if (check[i].value== obj){
				checkvalue = true;
			}
		}
	}

	return checkvalue;
}



function isIncompleteVehicleData(){

	var memberVehicleVariant = document.getElementsByName("memberVehicleRegistrationNo");
	var required = "This field is required.";
	var flag=false;

	
	for (var i = 0; i< memberVehicleVariant.length ; i++){

		if(i==1){
		}
		else{

			if (isEmpty(memberVehicleVariant[i].value)){
				
				showErrormsg("memberVehicleRegistrationNoError",required);
				flag=true;
				break;
			}

			if(!isSelected(document.forms[0].memberVehicleModel[i])){
				showErrormsg("memberVehicleModelError",required);
				flag=true;
				break;
			
			}

			if (!isSelected(document.forms[0].memberVehicleVariant[i])){
				showErrormsg("memberVehicleVariantError",required);
				flag=true;
				break;
			
			}


		}
	
	}
	
	return flag;   
}

function isSelected(field){
	if (field.selectedIndex == 0)
		return false;
	else
		return true;
  
}

function isEmpty(svalue){
	return trim(svalue).length == 0;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}



function showErrormsg(divid, msg){
	if (msg != ""){
		document.getElementById(divid).innerHTML = msg;
	} 
	
	document.getElementById(divid).style.display="";
}

function hideErrormsg(divid){
	
	document.getElementById(divid).style.display='none';
}




function checkNumeric(o){
  o.value=o.value.replace(/([^0-9])/g,"");
}


function emailCheck (emailStr) {

	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

if (matchArray==null) {

	/* Too many/few @'s or something; basically, this address doesn't
	even fit the general mould of a valid e-mail address. */

	alert("Please enter a valid email address");
	return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
		alert("Ths username contains invalid characters.");
		return false;
	   }
}
for (i=0; i<domain.length; i++) {
	if (domain.charCodeAt(i)>127) {
		alert("Ths domain name contains invalid characters.");
		return false;
	}
}

// See if "user" is valid 

if (user.match(userPat)==null) {

	// user is not valid

	alert("The username doesn't seem to be valid.");
	return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

	for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
			alert("Destination IP address is invalid!");
			return false;
		 }
	}
	return true;
}

// Domain is symbolic name.  Check if it's valid.
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
	if (domArr[i].search(atomPat)==-1) {
		alert("The domain name does not seem to be valid.");
		return false;
	}
}

if (checkTLD && domArr[domArr.length-1].length!=2 && 
	domArr[domArr.length-1].search(knownDomsPat)==-1) {
	alert("The address must end in a well-known domain or two letter " + "country.");
	return false;
}

// Make sure there's a host name preceding the domain.
if (len<2) {
	alert("This address is missing a hostname!");
	return false;
}

// If we've gotten this far, everything's valid!
return true;
}



function validateJobApplication(form1){

	
	disableallerrormsg(form1);
	hideErrormsg("error");

	var requiredMsg ="Please fill in the fields marked (*).";

	var subform=true;
	var fullName=form1.fullName.value;
	
	var ic1= form1.newICNumber1.value;
	var ic2 = form1.newICNumber2.value;
	var ic3 = form1.newICNumber3.value;
	var mailAddress1 = form1.mailAddress1.value;
	var mailAddress2 = form1.mailAddress2.value;
	var mailAddress3 = form1.mailAddress3.value;
	var postCode = form1.postCode.value;
	var email = form1.emailAddress.value;
	var age = form1.age.value;
	var pob = form1.placeOfBirth.value;
	var city = form1.city.value;
	var passport = form1.passport.value;

	var homeNo = form1.contactNoHome.value;
	var homeNoPrefix = form1.contactNoHomePrefix.value;
	var mobileNo = form1.contactNoMobile.value;
	var emergencyName = form1.emergencyName.value
	var emergencyHomeNo = form1.emergencyName.value
	var emergencyHomeNoprefix = form1.emergencyHomeNoprefix.value
	var emergencyMobileNo = form1.emergencyMobileNo.value

	
	

	if (isEmpty(fullName)){

		subform=false;
	}


	if(!isSelected(form1.title)){
		subform = false;
	}

	
	if ((isEmpty(ic1) || isEmpty(ic2) || isEmpty(ic3)) && (isEmpty(passport))){
		subform = false;
	}

	if (!isEmpty(ic1)|| !isEmpty(ic2) || !isEmpty(ic3)){
		if(ic1.length <6 || ic2.length<2 || ic3.length <4){
			subform = false;
		}
	}



	
	if (!isChecked(form1.gender)){
		subform = false;

	}

	if(isEmpty(mailAddress1)){
	
		subform=false;
	}
	
	if(isEmpty(postCode)){	
			
		subform=false;
	}
	if(isEmpty(city)){	
		subform=false;
	}

	if(!isSelected(form1.state)){
		subform = false;
	}

	if(isEmpty(email)){
		subform = false;
	}

	if(!isEmail(email)){
				
		subform = false;
	}

	
	if(!isSelected(form1.race)){
		subform = false;
	}

	if(!isSelected(form1.religion)){
		subform = false;
	}

	if(!isSelected(form1.day)){
		subform = false;
	}
	if(!isSelected(form1.month)){
		subform = false;
	}
	if(!isSelected(form1.year)){
		subform = false;
	}

	if(isEmpty(pob)){
		subform = false;
	}

	if(isEmpty(age)){
		subform = false;
	}

	

	if(!isSelected(form1.nationality)){
		subform = false;
	}


	if(!isSelected(form1.maritalStatus)){
		subform = false;
	}

	

	if(!isChecked(form1.drivingLic)){
		subform = false;
	}

	
	

	if(!isChecked(form1.spoken)){
		subform = false;
	}


	if(!isChecked(form1.written)){
		subform = false;
	}

	

	if(!isChecked(form1.ownCar)){
		subform = false;
	}

	

	if((isEmpty(homeNo) || isEmpty(homeNoPrefix)) && ((!isSelected(form1.contactNoMobilePrefix)) && isEmpty(mobileNo))){
		subform = false;
	}

	if(isOthersRequired(form1.spoken,'Others')){
		if(isEmpty(form1.spokenOthers.value)){
		
			subform=false;
		}
	}

	if(isOthersRequired(form1.written,'Others')){
		if(isEmpty(form1.writtenOthers.value)){
		
			subform=false;
		}
	}

	
	

	if(subform){
		 document.getElementById('page1').style.display='none';
		 document.getElementById('page2').style.display='none';
		 document.getElementById('page3').style.display='none';
		 document.getElementById('page2').style.display='block';
	}


	
	
	

	if (!subform)

	{
		
		showErrormsg("error",requiredMsg);
	}

	
	return subform;


		
}



function validateJobApplication2(form1){

	disableallerrormsg(form1);

	hideErrormsg("error");

	var requiredMsg ="Please fill in the fields marked (*).";

	var subform=true;
	
	var emergencyName = form1.emergencyName.value
	var emergencyHomeNo = form1.emergencyName.value
	var emergencyHomeNoprefix = form1.emergencyHomeNoprefix.value
	var emergencyMobileNo = form1.emergencyMobileNo.value

	if(isEmpty(emergencyName)){
		subform = false;
	}

	if((isEmpty(emergencyHomeNo) || isEmpty(emergencyHomeNoprefix)) && (isEmpty(emergencyMobileNo) || !isSelected(form1.emergencyMobileNoprefix))){
		subform = false;
	}


	
	if(subform){
		 document.getElementById('page1').style.display='none';
		 document.getElementById('page2').style.display='none';
		 document.getElementById('page3').style.display='none';
		 document.getElementById('page3').style.display='block';
	}

	
	

	if (!subform)

	{
		
		showErrormsg("error2",requiredMsg);
	}

	
	return subform;


		
}





function validateNewsletter(form1) {

	disableallerrormsg(form1);

	var required = "This field is required.";
	var invalidEmail = "Please enter a valid email address.";
	var invalidIc = "Please enter a valid IC number.";

	hideErrormsg("error");
	
	var reqfield = "";
	var subform = true;
	var fullName = form1.fullName.value;
	var emailAddress = form1.emailAddress.value;
	var mailAddress1 = form1.mailAddress1.value;
	var icPassport = form1.icPassport.value;
	
	

	var postCode = form1.postCode.value;
	var state = form1.state.value;

	var mobilePrefix = form1.contactNoMobilePrefix.value;
	var mobile = form1.contactNoMobile.value;
	

	var requiredMsg ="Please fill in the missing fields. All fields are required unless stated otherwise.";

	if (isEmpty(fullName)) {
		showErrormsg("fullNameError",required);
		subform = false;
	}

	if (isEmpty(emailAddress)){
		showErrormsg("emailError",required);
		subform = false;
	}else{

		if (!isEmail(emailAddress)){
			showErrormsg("emailError",invalidEmail);
			subform = false;
		}
        }

	if (isEmpty(mailAddress1)){
		showErrormsg("mailAddressError",required);
		subform = false;
	}

	if(!isSelected(form1.day) ||!isSelected(form1.month) || !isSelected(form1.year)){
		showErrormsg("dobError",required);
		subform = false;
	}
	

	if (isEmpty(icPassport)){
		showErrormsg("icPassportError",required);
		subform = false;
	}





	if (isEmpty(postCode)){
		showErrormsg("postCodeError",required);	
		subform = false;
	}

	if (isEmpty(state)){
		showErrormsg("stateError",required);	
		subform = false;
	}

	if (!isSelected(mobilePrefix) || isEmpty(mobile)){
		showErrormsg("contactNoError",required);
		subform = false;
	}

	
	
	if (!isChecked(form1.gender)){
		showErrormsg("genderError",required);
		subform = false;
	}

	if (!isSelected(form1.race)){
		showErrormsg("raceError",required);	
		subform = false;
	}

	if(form1.race.options[form1.race.selectedIndex].value == 'Others' && isEmpty(form1.raceOthers.value)){
	
		showErrormsg("raceOthersError",required);
		subform=false;
		
	}

	if (!isSelected(form1.interestedModel)){
		showErrormsg("interestedModelError",required);	
		subform = false;
	
	}

	if (!isChecked(form1.updatedOnVehicle)){
		showErrormsg("updatedOnVehicleError",required);		
		subform = false;
	}

	if (!subform)

	{
		showErrormsg("error",requiredMsg)
	}


return subform;


}

function validateContactUs(form1){

	disableallerrormsg(form1);

	hideErrormsg("error");

	var required = "This field is required.";
	var invalidEmail = "Please enter a valid email address.";
	

	var requiredMsg ="Please fill in the fields marked (*).";

	var subform=true;
	var fullName=form1.fullName.value;
	var title = form1.title.value;
	var nationality = form1.nationality.value;
	var email = form1.emailAddress.value;
	
	
	if (isEmpty(fullName)){
		showErrormsg("fullNameError",required);	
		subform=false;
	}
	if(isEmpty(title)){
		showErrormsg("titleError",required);	
		subform=false;
	}
	if(!isSelected(form1.nationality)){
		showErrormsg("nationalityError",required);	
	
		subform=false;
	}

	if(isEmpty(email)){
		showErrormsg("emailError",required);	
		subform=false;
	}else{

		if(!isEmail(email)){
			showErrormsg("emailError",invalidEmail);	
			subform=false;
		}
	}



	if(!subform){
		showErrormsg("error",requiredMsg)
	
	}

	return subform;
}

function validateUpdateProfile(form1){

	disableallerrormsg(form1);
	var required = "This field is required.";
	var invalidEmail = "Please enter a valid email address.";
	var invalidIc = "Please enter a valid IC number.";

	hideErrormsg("error");

	var requiredMsg ="Please fill in the missing fields. All fields are required unless stated otherwise.";

	var subform=true;

	var fullName=form1.fullname.value;

	var mailAddress1 = form1.mailAddress1.value;

	var ic1= form1.newICNumber1.value;
	var ic2 = form1.newICNumber2.value;
	var ic3 = form1.newICNumber3.value;

	var passport = form1.passport.value;
	var idNumber = form1.idNumber.value;

	var email = form1.emailAddress.value;

	var mobileNo = form1.contactNoMobile.value;
	var homeNoPrefix = form1.contactNoHomePrefix.value;
	var homeNo = form1.contactNoHome.value;
	var officeNoPrefix = form1.contactNoOfficePrefix.value;
	var officleNo = form1.contactNoOffice.value;
	var city = form1.city.value;
	var postCode = form1.postCode.value;
	
	
	if (isEmpty(fullName)){
		subform=false;
		showErrormsg("fullnameError",required);

	}

	if(isEmpty(postCode)){	
			
		subform=false;
		showErrormsg("postCodeError",required);
	}
	if(isEmpty(city)){	
		subform=false;
		showErrormsg("cityError",required);
	}

	if(!isSelected(form1.state)){
		subform = false;
		showErrormsg("stateError",required);
	}


	 if (isIncompleteVehicleData()){
		subform=false;
	}



	
	
	if(isChecked(form1.profile_icold_confirm)){
		form1.newICNumber1.value = "";
		form1.newICNumber2.value = "";
		form1.newICNumber3.value = "";
		form1.passport.value="";
		if(isEmpty(idNumber)){
			subform=false;
		
			showErrormsg("icError",required);
		}

			
	}else if(isOthersRequired(form1.nationality,'Foreigner')){
		form1.newICNumber1.value = "";
		form1.newICNumber2.value = "";
		form1.newICNumber3.value = "";
		form1.idNumber.value="";
		if(isEmpty(form1.passport.value)){
			
			showErrormsg("passportError",required);
			subform=false;
		}
	}
	

	else{
		if ((isEmpty(ic1)&& isEmpty(ic2) && isEmpty(ic3))){
			subform=false;
		
			showErrormsg("icError",required);
		}
		else{
			
			form1.idNumber.value = "";;
			form1.passport.value="";
		
			if (ic1.length <6 || ic2.length < 2 || ic3.length < 4){
				subform=false;
				
				showErrormsg("icError",invalidIc);
			}
		}	
	}


	if(!isSelected(form1.title)){
		subform=false;
		showErrormsg("titleError",required);
	}
	else{
		
		if(form1.title.options[form1.title.selectedIndex].value == 'Others' && isEmpty(form1.titleOthers.value)){
			subform=false;
			showErrormsg("titleOthersError",required);


		}
	}
	if(!isChecked(form1.nationality)){
		subform=false;
		showErrormsg("nationalityError",required);
	}
	
	if(isEmpty(email)){
		
		subform=false;
		showErrormsg("emailError",required);
	}else{

		if(!isEmail(email)){
			subform=false;
			showErrormsg("emailError",invalidEmail);
		}
	}

	if(isEmpty(mailAddress1)){
		subform=false;
		showErrormsg("mailAddressError",required);
	}
	


	if ((isEmpty(homeNoPrefix) || isEmpty(homeNo)) && (isEmpty(officeNoPrefix) || isEmpty(officeNo)) && (isEmpty(mobileNo) || !isSelected(form1.contactNoMobilePrefix))){
		subform=false;
		showErrormsg("contactNoError",required);
	}

	if(!isChecked(form1.gender)){
		subform=false;
		showErrormsg("genderError",required);
	}

	if(!isSelected(form1.race)){
		subform=false;
		showErrormsg("raceError",required);
	}
	else{

		if(form1.race.options[form1.race.selectedIndex].value == 'Others' && isEmpty(form1.raceOthers.value)){
			subform=false;
			showErrormsg("raceOthersError",required);


		}

	}


	if(!isSelected(form1.maritalStatus)){
		subform=false;
		showErrormsg("maritalStatusError",required);
	}else{
		if(form1.maritalStatus.options[form1.maritalStatus.selectedIndex].value == 'Others' && isEmpty(form1.maritalOthers.value)){
			showErrormsg("maritalStatusOthersError",required);
			subform=false;


		}
	}

	if(!isSelected(form1.personalMonthlyIncome)){
		showErrormsg("personalMonthlyIncomeError",required);
		subform=false;
	}

	if(!isSelected(form1.householdMonthlyIncome)){
		showErrormsg("householdMonthlyIncomeError",required);
		subform=false;
	}

	if(!isSelected(form1.noOfHouseholdMembers)){
		showErrormsg("noOfHouseholdMembersError",required);
		subform=false;
	}

	
	if(!isChecked(form1.withDreamStatus)){
		showErrormsg("withDreamStatusError",required);
		subform=false;
	}


	/*if(!isChecked(form1.memberInterestedItems)){
		 showErrormsg("interestedOthersError",required);
		subform=false;
	
	}else{

		if(isOthersRequired(form1.memberInterestedItems,'Others')){
		
			if(isEmpty(form1.interestedOthers.value)){
				showErrormsg("interestedOthersError",required);
				subform=false;
			}
		}
	}

	

	if(!isChecked(form1.memberActivityItems)){
		showErrormsg("activityOthersError",required);
		subform=false;
	
	}else{
		if(isOthersRequired(form1.memberActivityItems,'Others')){
			if(isEmpty(form1.activityOthers.value)){
				showErrormsg("activityOthersError",required);
				subform=false;
			}
		}
	}*/
  
  
  if(!isChecked(form1.modelInterested)){
		showErrormsg("modelInterestedOthersError",required);
		subform=false;
	
	}else{
		if(isOthersRequired(form1.modelInterested,'Others')){
			if(isEmpty(form1.modelInterestedOthers.value)){
				showErrormsg("modelInterestedOthersError",required);
				subform=false;
			}
		}
	}
	
	if(!isChecked(form1.interestHonda)){
		showErrormsg("interestHondaOthersError",required);
		subform=false;
	
	}else{
		if(isOthersRequired(form1.interestHonda,'Others')){
			if(isEmpty(form1.interestHondaOthers.value)){
				showErrormsg("interestHondaOthersError",required);
				subform=false;
			}
		}
	}
	
	if(!isChecked(form1.howDidYouKnow)){
		showErrormsg("knowFromOthersError",required);
		subform=false;
	
	}else{
		if(isOthersRequired(form1.howDidYouKnow,'Others')){
			if(isEmpty(form1.knowFromOthers.value)){
				showErrormsg("knowFromOthersError",required);
				subform=false;
			}
		}
	}

	

	if(!subform){
		
		showErrormsg("error",requiredMsg);
	
	}

	if(subform){
	
	

		if(!isChecked(form1.agreeTerms)){
			alert("Please tick the user agreement box to indicate your agreement to our Privacy Policy.");
			subform=false;
		}
	}

	return subform;
}

function validateJobApplicationSubmit(form1){

	
	var subform=true;
	
	

	if(!isChecked(form1.declareInformation)){
		alert("Please tick the box to indicate the veracity of your application.");
		subform = false;
	}

	
	return subform;


		
}

function validateTellAFriend(form1){

var requiredMsg ="Please fill in the missing fields.";


	var subform=true;
	var fullName=form1.fullName.value;
	var emailAddress=form1.emailAddress.value;
	var friendName=form1.friendName.value;
	var friendEmail=form1.friendEmail.value;
	var message=form1.message.value;
	
	
	if(isEmpty(fullName)){
		
		subform = false;
	}
	if(isEmpty(emailAddress)){
		
		subform = false;
	}
	if(isEmpty(friendName)){
		
		subform = false;
	}

	if(isEmpty(friendEmail)){
		
		subform = false;
	}
	if(isEmpty(message)){
		
		subform = false;
	}


	if(!isEmail(friendEmail)){
		
		subform = false;
	}


	if(!isEmail(emailAddress)){
		
		subform = false;
	}

	

	if(!subform){
	
		showErrormsg("error",requiredMsg);
	
	}

	
	return subform;


		
}

