// JavaScript Document
// Función de comprobación de formulario.
function check_form() {
	f = document.frm_budget;
	err_txt = "";
	err_fld = "";
	if (f.pasajeros.value=="" || f.pasajeros.value==" ") {
		err_txt = "·  Indique el NÚMERO DE PASAJEROS para el presupuesto.";
		err_fld = "pasajeros";
	}
	if (check_time(f.hora_r.value) == false) {
		err_txt = "·  Formato de HORA DE REGRESO no válido (hh:mm).";
		err_fld = "hora_r";
	}
	if (check_date(f.fecha_r) == false) {
		err_txt = "·  Formato de FECHA DE REGRESO no válido (dd/mm/aaaa).";
		err_fld = "fecha_r";
	}
	if (f.destino_o.value=="" || f.destino_o.value==" ") {
		err_txt = "·  Indique un DESTINO para el presupuesto.";
		err_fld = "destino_o";
	}
	if (check_time(f.hora_o.value) == false) {
		err_txt = "·  Formato de HORA DE SALIDA no válido (hh:mm).";
		err_fld = "hora_o";
	}
	if (check_date(f.fecha_o) == false) {
		err_txt = "·  Formato de FECHA DE SALIDA no válido (dd/mm/aaaa).";
		err_fld = "fecha_o";
	}
	if (f.origen_o.value=="" || f.origen_o.value==" ") {
		err_txt = "·  Indique un ORIGEN para el presupuesto.";
		err_fld = "origen_o";
	}
	if (f.telefono.value=="" || f.telefono.value==" ") {
		err_txt = "·  Indique un NUMERO DE TELEFONO para el presupuesto.";
		err_fld = "telefono";
	}
	if (f.nombre.value=="" || f.nombre.value==" ") {
		err_txt = "·  Indique un PERSONA DE CONTACTO para el presupuesto.";
		err_fld = "nombre";
	}
	if (err_fld!="") {
		alert ("Error en el formulario:\n\n" + err_txt);
		f.elements[err_fld].select();
	} else {
		f.action = "http://www.travidi.com/sendForm.php";
		f.submit();
	}
}

// Funciones auxiliares
function check_date(fecha) {
    if (fecha != undefined && fecha.value != "" ) {
        if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)) return false;
        var dia  =  parseInt(fecha.value.substring(0,2),10);
        var mes  =  parseInt(fecha.value.substring(3,5),10);
        var anio =  parseInt(fecha.value.substring(6),10);

		switch(mes) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				numDias=31;
				break;
			case 4: case 6: case 9: case 11:
				numDias=30;
				break;
			case 2:
				if (bis(anio)) { numDias=29 } else { numDias=28};
				break;
			default:
				return false;
		}
 
        if (dia>numDias || dia==0) return false;
        return true;
    } else
		return false;
}
 
function bis(anio) {
	if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) return true; else return false;
}

function check_time(hora) {
	if (hora.length!=5) return false;
	a = hora.substr(0,2);
	if (isNaN(a)) return false;
	b = hora.substr(3);
	if (isNaN(b)) return false;
	if (a<0 || a>23) return false;
	if (b<0 || b>59) return false;
}
