// JavaScript Document

function formValidator(){
	
	var fname1 = document.getElementById('first_name');    	
	var lname1 = document.getElementById('last_name');    
	var age = document.getElementById('age');
	var civil = document.getElementById('civil');    
	var ciudad = document.getElementById('ciudad');    
	var estado = document.getElementById('estado');    
	var phone = document.getElementById('phone');    
	var email = document.getElementById('email');
	var ADate = document.getElementById('ADate');
	var AI = document.getElementById('AI');
	var security_code = document.getElementById('security_code');
	
	
	if (lengthRestriction(fname1, "Nombre", 2, 100)){
		if (lengthRestriction(lname1, "Apellido", 2, 100)){
			if (isEmpty(age, "Por Favor, Ingresa tu Edad")){
				if (isNumeric(age, "Por Favor, Ingresa tu solo caracteres numericos")){
					if (noSelect(civil, "Seleccione su Estado Civil")){
						if (isEmpty(ciudad, "Por Favor, Ingresa tu Cuidad")){
							if (isEmpty(estado, "Por Favor, Ingresa tu Estado")){
								if (isEmpty(phone, "Por Favor, Ingresa tu numero telefonio")){	
									if (isTel(phone, "Número Inválido")){
										if (isEmpty(email, "Por Favor, Ingresa tu Correo Electronico")){
											if (emailValidator(email, "Correo Inválido")){
												if (isEmpty(ADate, "Por Favor, Ingresa tu fecha de llegada")){
													if (lengthRestrictionSecurityCode(security_code, "Codigo de Seguridad")){
														return true;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}return false;}

function lengthRestrictionSecurityCode(elem, elem2){
	var uInput = elem.value;

	if(uInput.length == 5){
		return true;
	}else{
		alert(elem2+ " debe ser de 5 caracteres");
		elem.focus();
		return false;
	}
}


/*
function chkctrychange(elem, elem2){
	if(elem.value == "ps"){
		document.countrySelect.value = elem2.value;
	}
}

function chkstatechange(elem, elem2){
	if(elem.value == "ps" || elem.value.length == 0){
		document.stateSelect.value = elem2.value;
	}
}*/

function noSelect(elem, helperMsg){
//checks if a field is selected*
	if(elem.value == "ps"){
		alert(helperMsg);
		elem.focus();
		return false;
	}
	return true;
}

function chkOthrres(elem1, elem2, helperMsg){
	if(elem1.value == "-"){
		if(elem2.value.length == 0){
			alert(helperMsg);
			elem2.focus(); 
			return false;
		} 
	}
	return true;
}

function isEmpty(elem, helperMsg){
//checks if a field is empty*
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); 
		return false;
	}
	return true;
}

function noPhone(elem, elem2, elem3){
	if(elem.value.length == 0)
	{
		if(elem2.value.length == 0)
		{
			if(elem3.value.length == 0)
			{
				alert("Please Enter At Least One Phone Number");
				elem.focus(); 
				return false;
			} 
				return true;
		} 
		return true;
	}
	return true;
}

function noChoose(elem, helperMsg){
	if(elem.value != "si")
	{
		if(elem.value != "no")
		{
			alert(helpermsg);
			elem.focus(); 
			return false;
		} 
		return true;
	}
	return true;
}


function isTel(elem, helperMsg){
	var numericExpression = /^[0-9\s\(\)\+\-]+$/;
	if(elem.value.match(numericExpression)){
		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 lengthRestriction(elem, elem2, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert(elem2+ " válido de " +min+ " a " +max+ " caracteres");
		elem.focus();
		return false;
	}
}



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 datecheck(elem)
  {
    // regular expression to match required date format
    re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;

    if(elem.value != '' && !elem.value.match(re)) {
      alert("DD/MM/AA: " + elem.value);
      elem.focus();
      return false;
    }
      return true;
  }


