//form validation
function contactValidator(formData){
	// References to the fields
/*	var firstname = formData[0];
	var email = formData[1];
	var comment = formData[2];
	var captcha = formData[3];*/
	
	var firstname = document.getElementById('contact_name');
	var email = document.getElementById('contact_email');
	var comment = document.getElementById('contact_qry');
	var captcha = document.getElementById('contact_captcha');
	
	
	// Check each input order
	if(notEmpty(firstname, "Please enter your name")){
	if(checkChar(firstname, "Please enter only letters for your name")){
		if(notEmpty(email, "Please enter email address")){
		if(emailValidator(email, "Please enter a valid email address")){
		   if(notEmpty(comment, "Please enter your query")){
			   if(notEmpty(captcha, "Please enter the security code")){
				return true;
				}
			}
		}
		}
	 }
	}

  return false;
}

function contactSubscribeValidator(formData){
	// References to the fields
// 	var email = formData[0];
	var email = document.getElementById('contactSubscribeEmail');
	// Check each input order

	if(notEmpty(email, "Please enter email address")){  
	if(emailValidator(email, "Please enter a valid email address to subscribe for newsletter")){  
		return true;
	}
	}


  return false;
}
function homeSubscribeValidator(formData){
	// References to the fields
// 	var email = formData[0];
	var email = document.getElementById('contactSubscribeEmailHome');
	// Check each input order

	if(notEmpty(email, "Please enter email address")){  
	if(emailValidator(email, "Please enter a valid email address to subscribe for newsletter")){  
		return true;
	}
	}


  return false;
}

function feedbackValidator(){
	// References to the fields
	var firstname = document.getElementById('feedback_name');
	var tour = document.getElementById('feedback_tour');
	var destination = document.getElementById('feedback_destination');
	var date = document.getElementById('feedback_date');
	var dateto = document.getElementById('feedback_dateto');
	var email = document.getElementById('feedback_email');
	var telephone = document.getElementById('feedback_telephone');
// 	var company = document.getElementById('feedback_company');
	
	// Check each input order
	if(notEmpty(firstname, "Please enter your name")){
	if(checkChar(firstname, "Please enter only letters for your name")){
	  if(notEmpty(tour, "Please enter tour")){
	    if(notEmpty(destination, "Please enter destination")){
	      if(notEmpty(date, "Please enter date from")){
	      if(notEmpty(dateto, "Please enter date to")){
		if(notEmpty(email, "Please enter email address")){
		if(emailValidator(email, "Please enter a valid email address")){
		  if(notEmpty(telephone, "Please enter your telephone number")){
		  if(isNumeric(telephone, "Please enter only numbers for your telephone number")){
			return true;
		  }
		  }
		}
		}
	      }
	      }
 	    }
	  }
	}
	}

  return false;
}

//################ Functions for trimming the values ###############
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}



function notEmpty(elem, helperMsg){
	if(trim(elem.value).length == 0){
		alert(helperMsg);
		elem.value = trim(elem.value);
		elem.focus(); // set the focus to this input
		return false;
	} else {
		elem.value = trim(elem.value);
	}
	return true;
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function phoneValidator(elem, helperMsg){
	var phoneExp = /^\d{3}-\d{3}-\d{4}$/;
	if(elem.value.match(phoneExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function checkChar(elem, helperMsg){
	var val = elem.value ;
	wrongs="-_/:,#~`!$%^&*()+=|\\{}[]\"'<>?;1234567890";
	if(val == "") {
		alert(helperMsg);
		elem.focus();		
		return false;
	}
	for(i=0;i<wrongs.length;i++)
	{
		wrong = wrongs.charAt(i);
		//alert(email.indexOf(wrong,0));
		if(val.indexOf(wrong,0) != -1){
			alert(helperMsg);
			elem.focus();
			return false;
		}
	}
	return true;
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}
