// JavaScript Document

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function validar(){
	var flag = false;
		if(validaSeleccion(document.ciudades.origen,"Ciudad de Origen"))
			if(validaSeleccion(document.ciudades.destino,"Ciudad de Destino"))
				flag = true;
					
	if(flag){
		return true;
	}else{
		return false;
		}
	}
	//esta funcion valida que no se elijan 2 ciudades iguales
	function validaSeleccionIguales(campoOrigen,campoDestino){
		if(campoOrigen.value == campoDestino.value ){
				alert(" Debe seleccionar ciudades diferentes");
				campoOrigen.focus();
		}
		else{
		return true;
		}
	}

	//esta funcion valida que haya selecionado algun campo de la lista
	
	function validaSeleccion(campo,cadena){
		if(campo.value == "noselec" ){
				alert(" Debe seleccionar una Opcion del Campo " + cadena);
				campo.focus();
		}
		else{
		return true;
		}	

}


/* ESTA FUNCUION VALIDA EL REGISTRO DE USUARIO */

	
function validaruser(){
	var flag = false;
	if(validaCampo(document.reg_usu.nombre,"Nombre"))
		if(validaCampo(document.reg_usu.apellido,"Apellido"))
			if(validaNumero(document.reg_usu.telefono,"Telefono"))
				if(emailCheck(document.reg_usu.correo.value,"Dirección de Email"))
					if(isValidDate(document.reg_usu.fec_nac.value,"Fecha de Regreso"))
					flag = true;
					
	if(flag){		
		return true;
	}else{
		return false;
		}
	}
	
	
	
	//validacion de correo	
	function emailCheck(cadena) {

	var emailPat = /^(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/;
	var matchArray = cadena.match(emailPat);
	if (matchArray == null) {
	alert("La direccion e-mail que ingreso es incorrecta, Por favor ingrese una direccion válida");
	return false;
	}else{
	return true;
	}
}
	
	//funcion para validar que hayan ingresado un numero correcto
function validaNumero(campo3,cadena3){
	if(campo3.value.length == 0 ){
		alert("Por Favor Ingrese " + cadena3);
		campo3.focus();
		return false;
	}else{
		if(isNaN(campo3.value)){
		alert(cadena3 + " Debe ser Un Numero");
		campo3.focus();
			return false;
		}else {
		return true;
		}
	}
	}
	
	function isValidDate(cadena,mensaje) {
	// Chequear para colocar otros formatos de la fecha
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY

	//si requieres que el campo de los años sean de dos digitos habilite esta linea
	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

	// si requieres que el campo de los años sean de cuatro digitos habilite esta linea
 	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = cadena.match(datePat);
 	// is the format ok?
	if (matchArray == null) {
		alert("La " + mensaje + " que introdujo es incorrecta");
		
		return false;
		}
 	// parse date into variables
	day = matchArray[1];
	month = matchArray[3];	
	year = matchArray[4];
	if (month < 1 || month > 12) { 
	// check month range
	alert("Los Meses deben estar entre 1 y 12.");
		return false;
		}
	if (day < 1 || day > 31) {
		alert("Los Dias deben estar entre 1 y 31.");
		return false;
		}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("El Mes "+month+" No tiene 31 Dias!")
	return false
		}
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
	alert("Febrero" + year + "No tiene" + day + "Dias!");
	return false;
   }
}
return true;  
}

	
	//valida las los campos de nombre y apellido
	
	function validaCampo(campo,cadena){
	
	if(campo.value.length == 0 ){
		alert("Por Favor Ingrese Su " + cadena);
		campo.focus();
		return false;
	}else{
		if(!isNaN(campo.value)){
		alert("Su "+ cadena + " No Puede ser Un Numero");
		campo.focus();
			return false;
		}else {
		return true;
		}
	}
	}

/* ESTA FUNCION VALIDA LAS RESERVAS */
function validarreserva(){
	var flag = false;
		if(validaSeleccion(document.reserva_asis.origen,"Ciudad de Origen"))
			if(validaSeleccion(document.reserva_asis.destino,"Ciudad de Destino"))

					if(isValidDate(document.reserva_asis.salida.value,"Fecha de Salida"))
						if(isValidDate(document.reserva_asis.regreso.value,"Fecha de Regreso"))
							if(validaCampo(document.reserva_asis.nombre_soli,"El Nombre del Solicitante"))
								if(validaCampo(document.reserva_asis.apellido_soli," El Apellido del Solicitante"))
									if(isValidDate(document.reserva_asis.nac_reser.value,"Fecha de Nacimiento"))
										if(validaNumero(document.reserva_asis.tel_cont,"El Teléfono de Contacto"))
											if(emailCheck(document.reserva_asis.email.value,"E-mail"))
											
		flag = true;
					
	if(flag){
		alert("Gracias por Llenar Esta Reservación");
		alert("Bienvenido a Rutaca");
		return true;
	}else{
		return false;
		}
	}
	
	//esta funcion valida que no se elijan 2 ciudades iguales
		function validaSeleccionIguales(campoOrigen,campoDestino){
		if(campoOrigen.value == campoDestino.value ){
				alert(" Debe seleccionar diferentes ciudades ");
				campoOrigen.focus();
		}
		else{
		return true;
		}
	}
	
	function isValidDate(cadena,mensaje) {
	// Chequear para colocar otros formatos de la fecha
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY

	//si requieres que el campo de los años sean de dos digitos habilite esta linea
	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

	// si requieres que el campo de los años sean de cuatro digitos habilite esta linea
 	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = cadena.match(datePat);
 	// is the format ok?
	if (matchArray == null) {
		alert("La " + mensaje + " que introdujo es incorrecta");
		
		return false;
		}
 	// parse date into variables
	day = matchArray[1];
	month = matchArray[3];	
	year = matchArray[4];
	if (month < 1 || month > 12) { 
	// check month range
	alert("Los Meses deben estar entre 1 y 12.");
		return false;
		}
	if (day < 1 || day > 31) {
		alert("Los Dias deben estar entre 1 y 31.");
		return false;
		}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("El Mes "+month+" No tiene 31 Dias!")
	return false
		}
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
	alert("Febrero" + year + "No tiene" + day + "Dias!");
	return false;
   }
}
return true;  
}


//chequea que el email es valido
	
	function emailCheck(cadena) {

	var emailPat = /^(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/;
	var matchArray = cadena.match(emailPat);
	if (matchArray == null) {
	alert("La direccion e-mail que ingreso es incorrecta, Por favor ingrese una direccion válida");
	return false;
	}else{
	return true;
	}
}


//funcion para validar que hayan ingresado un numero correcto
function validaNumero(campo3,cadena3){
	if(campo3.value.length == 0 ){
		alert("Por Favor Ingrese " + cadena3);
		campo3.focus();
		return false;
	}else{
		if(isNaN(campo3.value)){
		alert(cadena3 + " Debe ser Un Numero");
		campo3.focus();
			return false;
		}else {
		return true;
		}
	}
	}
//funcion para validar campos de nombre y apellido
function validaCampo(campo,cadena){
	if(campo.value.length == 0 ){
		alert("Por Favor Ingrese " + cadena);
		campo.focus();
		return false;
	}else{
		if(!isNaN(campo.value)){
		alert(cadena + " No Puede ser Un Numero");
		campo.focus();
			return false;
		}else {
		return true;
		}
	}
	
	}
	

	//esta funcion valida que haya selecionado algun campo de la lista
	
	function validaSeleccion(campo,cadena){
		if(campo.value == "noselec" ){
				alert(" Debe seleccionar una Opcion del Campo " + cadena);
				campo.focus();
		}
		else{
		return true;
		}	
	
	
	//esta funcion valida que no haya numero ni haya casillas sin llenar
	
	function validaCampo(campo,cadena){
	if(campo.value.length == 0 ){
		alert("Por Favor Ingrese Su " + cadena);
		campo.focus();
		return false;
	}else{
		if(!isNaN(campo.value)){
		alert("Su "+ cadena + " No Puede ser Un Numero");
		campo.focus();
			return false;
		}else {
		return true;
		}
	}
	}
}