// Javacsript Document for common js validations



// Return false & add red dotted border style , error message for particular fields

function retFalse(frmObject,errMsg)

{

	var re = "validation-failed";

	if (!frmObject.className.match(re)) 

	{ 

		frmObject.className = frmObject.className+" validation-failed";

	}

	//alert(frmObject.name);

	document.getElementById(frmObject.name+"Err").innerHTML = errMsg;

	frmObject.focus();



}



// Return true & remove red dotted border style , remove error message for particular fields

function  retTrue(frmObject)

{

	frmObject.className = frmObject.className.replace("validation-failed","");

	document.getElementById(frmObject.name+"Err").innerHTML = "";

	

}



// validate the non empty text field in the form.

function empty(frmObject) 

{  

	var str = frmObject.value.trim();

	var re = /.+/;

	if (!str.match(re)) 

	{ 

		frmObject.focus();

		return false; 

	}	

	return true; 

}



// validate the non empty text field in the form.

function minlength(frmObject,strchar,field) 

{  

	var str = frmObject.value.trim();

	if (str.length < strchar) 

	{ 

		min_length_msg = min_length_message.replace("{CHAR}", strchar);

		min_length_msg = min_length_msg.replace("{FIELD}", field);

		

		frmObject.focus();

		return false; 

	}	

	return true; 

}



// validate the non empty text field in the form.

function maxlength(frmObject,strchar,field) 

{  

	var str = frmObject.value.trim();

	if (str.length > strchar) 

	{ 

		max_length_msg = max_length_message.replace("{CHAR}", strchar);

		max_length_msg = max_length_msg.replace("{FIELD}", field);

		

		frmObject.focus();

		return false; 

	}	

	return true; 

}



// Alphabatic characters and blank space are allow by this validator function.

function alpha(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str= frmObject.value; 

	var re = /^[A-Za-z\s]*$/; 

	if (! str.match(re)) 

	{  

		frmObject.focus();

		return false; 

	} 

	return true; 

}



// Alphabatic characters, comma and blank space are allow by this validator function.

function alphaComma(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str= frmObject.value; 

	var re = /^[A-Za-z\,\s]*$/; 

	if (! str.match(re)) 

	{  

		frmObject.focus();

		return false; 

	} 

	return true; 

}



// Alphabatic characters, comma and blank space are allow by this validator function.

function alphaNumCommaSlash(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str= frmObject.value; 

	var re = /^[A-Za-z0-9\/\,\s]*$/; 

	if (! str.match(re)) 

	{  

		frmObject.focus();

		return false; 

	} 

	return true; 

}

// Alphabetic and numeric values are allowed by alphanumeric function.

function alphaNumeric(frmObject)

{ 

	frmObject.value = frmObject.value.trim(); 

	var str= frmObject.value; 

	var re = /^[A-Za-z0-9\s]*$/; 

	if (! str.match(re)) 

	{ 

		frmObject.focus();

		return false; 

	} 

	return true; 

}



// intNumber function is used for the numeric value either integer or decimal.

// if you have pass digit = 0 then it is round to zero decimal value if value > 0 then round for that decimal point.

function intNumber(frmObject,digit)

{ 

	frmObject.value = frmObject.value.trim(); 

	var str= frmObject.value; 

	if ( digit == 0 ) 

	{	

		var re = /^[0-9]*$/; 

	} 

	else 

	{ 

		var re = /^[0-9\.]*$/; 

	} 

	if (! str.match(re)) 

	{ 

		frmObject.focus();

		return false; 

	} 

	if (digit > 0 ) 

	{ 	

		var pos = frmObject.value.indexOf("."); 

		var len = frmObject.value.length; 

		var place = parseInt(len) - (parseInt(pos)+1); 

		if (place != digit) 

		{ 

			frmObject.focus();

			return false; 

		} 

	}	

	return true; 

} 

 

// validate the emailaddress.

function email(frmObject)

{ 

	var str = frmObject.value; 

	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/; 

	if (!str.match(re)) 

	{ 

	

		frmObject.focus();

		return false; 

	} 

	return true; 

} 



// Alphanumeric with special character values are allowed by this function.

function alphaNumericSpecial(frmObject)

{

	frmObject.value = frmObject.value.trim();

	var str= frmObject.value;

	var re = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\(\)\_\+\-\~\?\>\<\,\.\`\'\s]*$/;

	if (! str.match(re)) 

	{ 

		

		frmObject.select();

		return false;

	}

	return true;

}







//trim function truncat the leadin and trailing space of string.

String.prototype.trim = function() { a = this.replace(/^\s+/, ''); return a.replace(/\s+$/, ''); }; 



//Telehpone function allow numeric value from 0 to 9 and few character like -,+,(,) and blank space.

function telephone(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str = frmObject.value; 

	var re = /^[0-9\-\+\(\)\s]*$/; 	

	if (! str.match(re)) 

	{ 

		frmObject.focus();

		return false;  

	}  

	return true; 

}



//checkCC function validate the 16 digit credit card number with format like XXXX XXXX XXXX XXXX

function checkCC(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str = frmObject.value;  

	var re = /^\d{4} ?\d{4} ?\d{4} ?\d{4}$/; 

	if (!str.match(re)) 

	{  	

		frmObject.focus();

		return false; 

	} 	

	return true; 

}



function checkCCExpDate(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str = frmObject.value;  

	var re = /^\d{2}\/ ?\d{2}$/; 

	if (!str.match(re)) 

	{  	

		frmObject.focus();

		return false; 

	} 	

	return true; 

}



//checkCC4 function validate the 4 digit credit card number with format like XXXX

function checkCC4(frmObject) 

{ 

	frmObject.value = frmObject.value.trim(); 

	var str = frmObject.value;  

	var re = /^\d{4}$/; 

	if (!str.match(re)) 

	{  	

		frmObject.focus();

		return false; 

	} 	

	return true; 

}



// Url validation

function checkUrl(frmObject)

{

	frmObject.value = frmObject.value.trim(); 

	newarray = frmObject.value.split(".");

	

	if (newarray[0].trim() != "www")

	{

		return false; 

	}

	

	var str = "http://" + frmObject.value;

	var v = new RegExp();

	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");

	if (!v.test(str)) 

	{

		frmObject.focus(); 

		return false; 

	}

	return true; 

}





/**

 *focusFirstElement()

 * Focus the first element of the first main form of the page

 */

function focusFirstElement()

{

	var numberOfForms = document.forms.length;

	

	if (numberOfForms>0)

	{

		for(var i=0;i<numberOfForms;i++)

		{

			if (document.forms[i].name != "searchForm")

			{

				for(var j=0;j<document.getElementById(document.forms[i].name).elements.length;j++)

				{

					var fieldType = document.getElementById(document.forms[i].name).elements[j].type;

					

					if (fieldType != "hidden" && fieldType != "submit")

					{ 

						document.getElementById(document.forms[i].name).elements[j].focus();

						break;

					}	

					

				}

			}

			

			return false;

		}

	}

}





// javascript validations & show-hide fields according to selection





function showhide(checkField , checkValue)

{

	

	/*alert(checkField);

	alert(checkValue);

	

	return false;*/

	switch (checkField)

	{

		

		case 'aIWishTo':

		

			if (checkValue == 'Purchase')

			{

				

				document.getElementById('purchase_cc_div').style.display = 'block';

				//existingLoadEvent();

				//NFInit();

				

			}

			else if (checkValue == 'Enquire about')

			{

				

				

				document.getElementById('purchase_cc_div').style.display = 'none';

			}

			

			break;

			

		/*case 'aEnquireAbout':

		

			if (checkValue == 'Mail recieving & forwarding')

			{

				document.getElementById('MailRecFwd_div').style.display = 'block';

				document.getElementById('TelAnsService_div').style.display = 'none';

				

			}

			else if (checkValue == 'Telephone answering service')

			{

				document.getElementById('TelAnsService_div').style.display = 'block';

				document.getElementById('MailRecFwd_div').style.display = 'none';

			}

			else

			{

				document.getElementById('TelAnsService_div').style.display = 'none';

				document.getElementById('MailRecFwd_div').style.display = 'none';

			}

			

			break;

		*/

		case 'aPurchase':

		

			if (checkValue == 'mailhold & telephone answering generic line' || checkValue == 'Mailhold & telephone Answering own line' || checkValue == 'Mailhold')

			{

				document.getElementById('collectedandforwardedboxes').style.display = 'block';

				

			}

			else

			{

				document.getElementById('collectedandforwardedboxes').style.display = 'none';

				

			}

			

			break;

			

			

		case 'aPayMethod':

		

			if (checkValue == 'Pay by Card')

			{

				document.getElementById('paybycard').style.display = 'block';

				document.getElementById('paybycheque').style.display = 'none';

				document.getElementById('paytobank').style.display = 'none';

			}

			else if (checkValue == 'Pay by Cheque')

			{

				document.getElementById('paybycard').style.display = 'none';

				document.getElementById('paybycheque').style.display = 'block';

				document.getElementById('paytobank').style.display = 'none';

			}

			else if(checkValue == 'Pay Direct to our Bank')

			{

				document.getElementById('paybycard').style.display = 'none';

				document.getElementById('paybycheque').style.display = 'none';

				document.getElementById('paytobank').style.display = 'block';

			}

			else

			{

				document.getElementById('paybycard').style.display = 'none';

				document.getElementById('paybycheque').style.display = 'none';

				document.getElementById('paytobank').style.display = 'none';

			}

			

			break;

			

		/*	

		case 'aFwdAdd':

		

			if (checkValue == 'Same as home address')

			{

				document.getElementById('fwd_address_div').style.display = 'block';

				

				document.getElementById('sFwdAdd').value = document.getElementById('sPurchaseHome').value;

				document.getElementById('sFwdAdd').disabled = true;

				

				

			} 

			else if (checkValue == 'Different to home address')

			{

				document.getElementById('fwd_address_div').style.display = 'block';

				

				document.getElementById('sFwdAdd').value = "";

				document.getElementById('sFwdAdd').disabled = false;

				

				

			}

			break;

			*/

	}

	

	

	if (checkField.value == checkValue)

	{

		if (showHideDiv.style.display != 'none'  )

		{

			showHideDiv.style.display = 'block';

		}

		else

		{

			showHideDiv.style.display = 'none';

		}

	}

}



function validForm()

{

	// Deside Enquire Or Purcjase

	var aIWishTo 		= document.getElementById('aIWishTo');

	

	// Purchase Details

	var aPurchase 		= document.getElementById('aPurchase');

	//var sPurchaseName 	= document.getElementById('sPurchaseName');

	var aLengthOfServices 	= document.getElementById('aLengthOfServices');

	var sPurchaseCompName = document.getElementById('sPurchaseCompName');

	var sPurchaseHome = document.getElementById('sPurchaseHome');

	/*var aFwdAdd1 = document.frmHE.aFwdAdd[0];

	var aFwdAdd2 = document.frmHE.aFwdAdd[1];

	var sFwdAdd = document.getElementById('sFwdAdd');

	

	// Enquire Details

	var aEnquireAbout 	= document.getElementById('aEnquireAbout');

	var aMailRecFwd 	= document.getElementById('aMailRecFwd');

	var aTelAnsService = document.getElementById('aTelAnsService');*/

	

	// Contact Details (Common for Purchase & Enquire both)

	var sFwdHomePhone = document.getElementById('sFwdHomePhone');

	var sFwdWorkPhone = document.getElementById('sFwdWorkPhone');

	var sFwdMobile 	= document.getElementById('sFwdMobile');

	var sFwdFax 	= document.getElementById('sFwdFax');

	var sFwdEmail = document.getElementById('sFwdEmail');

	var sFwdCompanyWeb 	= document.getElementById('sFwdCompanyWeb');

	

	// Apply Now Details (Common for Purchase & Enquire both)

	

	var sToCommenceFrom = document.getElementById('sToCommenceFrom');

	var sHeardAboutUs = document.getElementById('sHeardAboutUs');

	var sInstruction = document.getElementById('sInstruction');

	

	// Credit Card Details (Only when purchase selected) 

	/*var cardname = document.getElementById('cardname');

	var cardnumb = document.getElementById('cardnumb');

	var cardexpi = document.getElementById('cardexpi');

	var cardtype1 = document.frmHE.cardtype[0];

	var cardtype2 = document.frmHE.cardtype[1];

	var cardtype3 = document.frmHE.cardtype[2];*/

	

	

	// Validation Messages

	

	// Deside Enquire Or Purcjase

	var ERR = Array();

	

	ERR['aIWishTo'] = "Please select what you wish to do.";

	

	ERR['aPurchase'] = "Please select About.";

	

	ERR['sPurchaseCompName'] = "Valid  Name is required.";

	ERR['sPurchaseHome'] = "Valid  Address is required.";

	ERR['aFwdAdd'] = "Please select Forward Address type.";

	ERR['sFwdAdd'] = "Valid Forward Address is required.";

	

	ERR['aEnquireAbout'] = "Please select for which you want to do enquire";

	ERR['aMailRecFwd'] = "Please select Mail recieving & forwarding type.";

	ERR['aTelAnsService'] = "Please select Telephone answering service type.";

	

	ERR['sFwdHomePhone'] = "Valid Telephone Number (home) is required.";

	ERR['sFwdWorkPhone'] = "Valid Telephone Number (work) is required.";

	ERR['sFwdMobile'] = "Valid Mobile is required.";

	ERR['sFwdFax'] = "Valid Fax is required.";

	ERR['sFwdEmail'] = "Valid Email is required.";

	ERR['sFwdCompanyWeb'] = "Valid Company Web is required.";

	

	

	ERR['aLengthOfServices'] = "Please select For value";

	ERR['sToCommenceFrom'] = "Valid To Commence from is required.";

	ERR['sHeardAboutUs'] = "Valid To How to Heard About us is required.";

	ERR['sInstruction'] = "Valid Instruction is required.";

	

	/*ERR['cardname'] = "Valid Name for credit card is required.";

	ERR['cardnumb'] = "Valid Credit card number is required.";

	ERR['cardexpi'] = "Valid Credit card expiry date is required.";

	ERR['cardtype'] = "Valid Credit card type is required.";*/

	

	

	if (!empty(aIWishTo))

	{

		retFalse(aIWishTo,ERR['aIWishTo']);

		return false;

	}

	else

	{

		retTrue(aIWishTo);

	}

	

	/*switch (aIWishTo.value.trim())

	{*/

		

		

			if (!empty(aPurchase))

			{

				retFalse(aPurchase,ERR['aPurchase']);

				return false;

			}

			else

			{

				retTrue(aPurchase);

			}

			if (!empty(aLengthOfServices))

			{

				retFalse(aLengthOfServices,ERR['aLengthOfServices']);

				return false;

			}

			else

			{

				retTrue(aLengthOfServices);

			}

			if (!empty(sPurchaseCompName) || !alpha(sPurchaseCompName))

			{

				retFalse(sPurchaseCompName,ERR['sPurchaseCompName']);

				return false;

			}

				else

			{

				retTrue(sPurchaseCompName);

			}

			if (!empty(sPurchaseHome) || !alphaNumCommaSlash(sPurchaseHome))

			{

				retFalse(sPurchaseHome,ERR['sPurchaseHome']);

				return false;

			}

				else

			{

				retTrue(sPurchaseHome);

			}	

			

			if (!empty(sFwdHomePhone) || !telephone(sFwdHomePhone))

			{

				retFalse(sFwdHomePhone,ERR['sFwdHomePhone']);

				return false;

			}

			else

			{

				retTrue(sFwdHomePhone);

			}

							

			if (!empty(sFwdWorkPhone) || !telephone(sFwdWorkPhone))

			{

				retFalse(sFwdWorkPhone,ERR['sFwdWorkPhone']);

				return false;

			}

			else

			{

				retTrue(sFwdWorkPhone);

			}

							

			if (!empty(sFwdMobile) || !telephone(sFwdMobile))

			{

				retFalse(sFwdMobile,ERR['sFwdMobile']);

				return false;

			}

			else

			{

				retTrue(sFwdMobile);

			}

							

			/*if (!empty(sFwdFax) || !telephone(sFwdFax))

			{

				retFalse(sFwdFax,ERR['sFwdFax']);

				return false;

			}

			else

			{

				retTrue(sFwdFax);

			}

			*/	

				

			if (!empty(sFwdEmail) || !email(sFwdEmail))

			{

				retFalse(sFwdEmail,ERR['sFwdEmail']);

				return false;

			}

			else

			{

				retTrue(sFwdEmail);

			}

							

			/*if (!empty(sFwdCompanyWeb) || !checkUrl(sFwdCompanyWeb))

			{

				retFalse(sFwdCompanyWeb,ERR['sFwdCompanyWeb']);

				return false;

			}

			else

			{

				retTrue(sFwdCompanyWeb);

			}

			*/

			if (!empty(sToCommenceFrom))

			{

				retFalse(sToCommenceFrom,ERR['sToCommenceFrom']);

				return false;

			}

			else

			{

				retTrue(sToCommenceFrom);

			}

							

			if (!empty(sHeardAboutUs))

			{

				retFalse(sHeardAboutUs,ERR['sHeardAboutUs']);

				return false;

			}

			else

			{

				retTrue(sHeardAboutUs);

			}

							

			if (!empty(sInstruction))

			{

				retFalse(sInstruction,ERR['sInstruction']);

				return false;

			}

			else

			{

				retTrue(sInstruction);

			}

			

			

		if(aIWishTo.value == 'Purchase'){

		
		
		/*if (!empty(cardname) || !alpha(cardname))
		{

			retFalse(cardname,ERR['cardname']);

			return false;

		}

		else

		{

			retTrue(cardname);

		}

		

		if (!empty(cardnumb) || !checkCC(cardnumb))

		{

			retFalse(cardnumb,ERR['cardnumb']);

			return false;

		}

		else

		{

			retTrue(cardnumb);

		}

						

		if (!empty(cardexpi) || !checkCCExpDate(cardexpi))

		{

			retFalse(cardexpi,ERR['cardexpi']);

			return false;

		}

		else

		{

			retTrue(cardexpi);

		}

		

		if (!cardtype1.checked && !cardtype2.checked && !cardtype3.checked)

		{

			retFalse(cardtype1,ERR['cardtype']);

			return false;

		}

		else

		{

			retTrue(cardtype1);

		}

		*/

		}

			

		

			

	//}

	

	

	

	

		

	

	

}






