function fnFeedbackValidate(){
	if(document.getElementById("txtFName").value==""){
		alert("Please provide your Name")
		document.getElementById("txtFName").focus();
		return false
		}
		if(document.getElementById("txtLName").value==""){
		alert("Please provide your Surname")
		document.getElementById("txtLName").focus();
		return false
		}
		if(document.getElementById("txtEmail").value==""){
		alert("Please provide your Email address")
		document.getElementById("txtEmail").focus();
		return false
		}
		if(document.getElementById("txtArrival").value==""){
		alert("Please provide Arrival date")
		document.getElementById("txtArrival").focus();
		return false
		}
		if(document.getElementById("txtDeparture").value==""){
		alert("Please provide Departure date")
		document.getElementById("txtDeparture").focus();
		return false
		}
		if(document.getElementById("txtAdults").value==""){
		alert("Please provide number of adults")
		document.getElementById("txtAdults").focus();
		return false
		}
		if(document.getElementById("txtChildren").value==""){
		alert("Please provide number of children")
		document.getElementById("txtChildren").focus();
		return false
		}
	return true
}

function fnPostcardValidate(){
	var sError;
	
	if(document.getElementById("RName").value==""){
		alert("Please provide receiver's name")
		document.getElementById("RName").focus();
		return false
	}
	if(document.getElementById("REmail").value==""){
		alert("Please provide receiver's email")
		document.getElementById("REmail").focus();
		return false
	}
	
var addr = document.getElementById('REmail').value
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  alert('The email address contains invalid characters');
		  document.getElementById('REmail').focus();
		  return false;
	   }
	}
	
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  alert("The email address contains non ascii characters.");
		  document.getElementById('REmail').focus();
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   alert('The email address must contain an @');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (atPos == 0) {
	   alert('The email address must not start with @');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   alert('The email address must contain only one @');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   alert('The email address must contain a period in the domain name');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   alert('The period must not immediately follow @ in email address');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   alert('The period must not immediately precede @ in email address');
	   document.getElementById('REmail').focus();
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	  	alert('The two periods must not be adjacent in email address');
	  	document.getElementById('REmail').focus();
	   return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   alert('The primary domain in email address is invalid');
	   document.getElementById('REmail').focus();
	   return false;
	}		
	if(document.getElementById("SName").value==""){
		alert("Please provide sender's name")
		document.getElementById("SName").focus();
		return false
	}
	if(document.getElementById("SEmail").value==""){
		alert("Please provide sender's email")
		document.getElementById("txtCity").focus();
		return false
	}

var addr = document.getElementById('SEmail').value
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  alert('The email address contains invalid characters');
		  document.getElementById('REmail').focus();
		  return false;
	   }
	}
	
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  alert("The email address contains non ascii characters.");
		  document.getElementById('SEmail').focus();
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   alert('The email address must contain an @');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (atPos == 0) {
	   alert('The email address must not start with @');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   alert('The email address must contain only one @');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   alert('The email address must contain a period in the domain name');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   alert('The period must not immediately follow @ in email address');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   alert('The period must not immediately precede @ in email address');
	   document.getElementById('SEmail').focus();
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	  	alert('The two periods must not be adjacent in email address');
	  	document.getElementById('SEmail').focus();
	   return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   alert('The primary domain in email address is invalid');
	   document.getElementById('SEmail').focus();
	   return false;
	}		
	if(document.getElementById("Message").value==""){
		alert("Please provide message")
		document.getElementById("Message").focus();
		return false
	}
	return true
	
}

function fnValidateEmail(obj){
	var sEmail;
	
	sEmail = ""
	
	oEmail = obj.split(",");
	for (i=0;i<=oEmail.length;i++){
		sEmail = oEmail[i]
		
		var addr = document.getElementById(oEmail[i]).value
		var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
		for (i=0; i<invalidChars.length; i++) {
		   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
			  alert('The email address contains invalid characters');
			  document.getElementById(oEmail[i]).focus();
			  return sEmail;
		   }
		}
		
		for (i=0; i<addr.length; i++) {
		   if (addr.charCodeAt(i)>127) {
			  alert("The email address contains non ascii characters.");
			  return sEmail;
		   }
		}
		
		var atPos = addr.indexOf('@',0);
		if (atPos == -1) {
		   alert('The email address must contain an @');
		   return sEmail;
		}
		if (atPos == 0) {
		   alert('The email address must not start with @');
		   return sEmail;
		}
		if (addr.indexOf('@', atPos + 1) > - 1) {
		   alert('The email address must contain only one @');
		   return sEmail;
		}
		if (addr.indexOf('.', atPos) == -1) {
		   alert('The email address must contain a period in the domain name');
		   return sEmail;
		}
		if (addr.indexOf('@.',0) != -1) {
		   alert('The period must not immediately follow @ in email address');
		   return sEmail;
		}
		if (addr.indexOf('.@',0) != -1){
		   alert('The period must not immediately precede @ in email address');
		   return sEmail;
		}
		if (addr.indexOf('..',0) != -1) {
			alert('The two periods must not be adjacent in email address');
			return sEmail;
		}
		
		var suffix = addr.substring(addr.lastIndexOf('.')+1);
		if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
		   alert('The primary domain in email address is invalid');
		   return sEmail;
		}	
	}
	
	return sEmail;
}

function fnBookingValidate(obj){
	if (document.getElementById('txtFirstName').value == ""){
		alert("Please provide your first name");
		document.getElementById('txtFirstName').focus();
		return false;
	}
	
	if (document.getElementById('txtSurname').value == ""){
		alert("Please provide your surname");
		document.getElementById('txtSurname').focus();
		return false;
	}
	
	var addr = document.getElementById('txtEmail').value
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  alert('The email address contains invalid characters');
		  return false;
	   }
	}
	
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  alert("The email address contains non ascii characters.");
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   alert('The email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   alert('The email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   alert('The email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   alert('The email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   alert('The period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   alert('The period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	  alert('The two periods must not be adjacent in email address');
	   return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   alert('The primary domain in email address is invalid');
	   return false;
	}
	
	if (document.getElementById('cboCountry').value == ""){
		alert("Please provide your country name.");
		document.getElementById('cboCountry').focus();
		return false;
	}
	
	if (document.getElementById('txtContact').value == ""){
		alert("Please provide your contact number");
		document.getElementById('txtContact').focus();
		return false;
	}
	
	if (document.getElementById('txtLanguage').value == ""){
		alert("Please provide your preferred language");
		document.getElementById('txtLanguage').focus();
		return false;
	}
	
	/*if (document.getElementById('txtCCNumber').value == ""){
		alert("Please provide a credit card number in order to validate this enquiry");
		document.getElementById('txtCCNumber').focus();
		return false;
	}
	
	if (document.getElementById('cboCCType').value == ""){
		alert("Please provide a credit card type in order to validate this enquiry");
		document.getElementById('cboCCType').focus();
		return false;
	}
	
	var cardNumber
	var cardType
	var isValid = false;
	var ccCheckRegExp = /[^\d ]/;
	
	cardNumber = document.all('txtCCNumber').value
	cardType = document.all('cboCCType').value.toLowerCase()
	
	isValid = !ccCheckRegExp.test(cardNumber);
	if (!isValid){
		alert("The card number you have entered seems to be invalid\r\nPlease ensure that you only insert numbers.");
		document.all('txtCCNumber').focus();
	}
	
	if (isValid)
	{
	var cardNumbersOnly = cardNumber.replace(/ /g,"");
	var cardNumberLength = cardNumbersOnly.length;
	var lengthIsValid = false;
	var prefixIsValid = false;
	var prefixRegExp;
	
	switch(cardType)
	{
	  case "mastercard":
		lengthIsValid = (cardNumberLength == 16);
		prefixRegExp = /^5[1-5]/;
		break;
	
	  case "visa":
		lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
		prefixRegExp = /^4/;
		break;
	
	  case "amex":
		lengthIsValid = (cardNumberLength == 15);
		prefixRegExp = /^3(4|7)/;
		break;
		
	  case "diners":
		lengthIsValid = (cardNumberLength == 14);
		prefixRegExp = /^3(00|01|02|03|04|05|6|8)/;
		break;
	
	  default:
		prefixRegExp = /^$/;
		alert("We do not accept the card type you have entered.");
	}
	
	prefixIsValid = prefixRegExp.test(cardNumbersOnly);
	if (!prefixIsValid){
		alert("The card number you have entered seems to be invalid.");
		document.all('txtCCNumber').focus();
	}
	isValid = prefixIsValid && lengthIsValid;
	}
	
	if (isValid)
	{
	var numberProduct;
	var numberProductDigitIndex;
	var checkSumTotal = 0;
	
	for (digitCounter = cardNumberLength - 1; 
	  digitCounter >= 0; 
	  digitCounter--)
	{
	  checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
	  digitCounter--;
	  numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
	  for (var productDigitCounter = 0;
		productDigitCounter < numberProduct.length; 
		productDigitCounter++)
	  {
		checkSumTotal += 
		  parseInt(numberProduct.charAt(productDigitCounter));
	  }
	}
	
	isValid = (checkSumTotal % 10 == 0);
	}
	
	if (!isValid){
		alert("The card number you have entered seems to be invalid.\r\nPlease ensure that you have captured the number of digits correctly.");
		document.all('txtCCNumber').focus();
	}
	
	return isValid;*/
	
	return true;
}

function fnFPwdValidate(obj){
	if (document.getElementById('txtContactEmail').value == ""){
		alert("Please provide a contact email address");
		document.getElementById('txtContactEmail').focus();
		return false;
	}
	
	var addr = document.getElementById('txtContactEmail').value
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  alert('The email address contains invalid characters');
		  return false;
	   }
	}
	
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  alert("The email address contains non ascii characters.");
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   alert('The email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   alert('The email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   alert('The email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   alert('The email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   alert('The period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   alert('The period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	  alert('The two periods must not be adjacent in email address');
	   return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   alert('The primary domain in email address is invalid');
	   return false;
	}
}

function fnValidate(obj){
	if (document.getElementById('cboTitle').value == ""){
		alert("Please provide your title.");
		document.getElementById('cboTitle').focus();
		return false;
	}
	
	if (document.getElementById('txtFirstName').value == ""){
		alert("Please provide a first name.");
		document.getElementById('txtFirstName').focus();
		return false;
	}
	
	if (document.getElementById('txtLastName').value == ""){
		alert("Please provide a last name.");
		document.getElementById('txtLastName').focus();
		return false;
	}
	
	if (document.getElementById('txtContactNo').value == ""){
		alert("Please provide a contact number.");
		document.getElementById('txtContactNo').focus();
		return false;
	}
	
	if (document.getElementById('txtContactEmail').value == ""){
		alert("Please provide a contact email address.");
		document.getElementById('txtContactEmail').focus();
		return false;
	}
	
	var addr = document.getElementById('txtContactEmail').value
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  alert('The email address contains invalid characters');
		  return false;
	   }
	}
	
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  alert("The email address contains non ascii characters.");
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   alert('The email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   alert('The email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   alert('The email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   alert('The email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   alert('The period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   alert('The period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	  alert('The two periods must not be adjacent in email address');
	   return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   alert('The primary domain in email address is invalid');
	   return false;
	}	
}