//Necesita el archivo "comunes.js"
var rutaImagen = "Imagenes/";
var fotosCoches = new Array("Forfour_NR.jpg", "Forfour_BN.jpg", "Forfour_GB.jpg", "Forfour_GR.jpg", "Altea.jpg", "Citroen_C15.jpg");
var nombreCoches = new Array("Smart ForFour Pure Negro-Rojo", "Smart ForFour Pure Negro-Blanco Publi", "Smart Forfour Pure Negro-Azul Publi", "Smart ForFour Passion Plata-Rojo", "Seat Altea 1.9 TDI 105CV", "Citroën C-15 1.9 Diesel");
var fechaInicio = new Date();
fechaInicio.setHours(8);
var fechaFin = new Date();
fechaFin.setHours(8);
var recogida = "Fecha_Recogida";
var entrega = "Fecha_Entrega";

//Cambia la imagen del coche según la selección
function cambiaImagenCoche(){
	var c = buscaObjeto("coche");
	var fc = buscaObjeto("fotoCoche");
	var iSeleccion = c.selectedIndex;
	fc.src = rutaImagen + fotosCoches[iSeleccion];
}

//Abre el calendario para elegir las fechas de recogida y entrega
function abreCalendario(nombre){
	var posX = screen.width / 2;
	var posY = screen.height / 2;
	var ventana = window.open("Calendario.html", nombre, "statusbar=no, width=200, height=200, top="+posY+", left="+posX);
	actualizaFechas();
}

//Obtiene el índice del mes a partir de su nombre
function indiceMes(mes){
	for (var i=0; i<nomMes.length; i++)
		if (mes == nomMes[i])
			return i;
}

//Obtiene el índice del año pasado como parámetro
function indiceAnho(anho){
	var f = new Date();
	return anho - f.getFullYear();
}

//Actualiza los cuadros de selección según el valor de las fechas en el script
function muestraFechas(){
	//Muestra fechas
	var fechaAux = new Date();
	var dIni = buscaObjeto("diaIni");
	var mIni = buscaObjeto("mesIni");
	var aIni = buscaObjeto("anhoIni");
	var hIni = buscaObjeto("horaIni");
	var dFin = buscaObjeto("diaFin");
	var mFin = buscaObjeto("mesFin");
	var aFin = buscaObjeto("anhoFin");
	var hFin = buscaObjeto("horaFin");
	
	dIni.selectedIndex = fechaInicio.getDate() - 1;
	mIni.selectedIndex = fechaInicio.getMonth();
	aIni.selectedIndex = fechaInicio.getFullYear() - fechaAux.getFullYear();
	hIni.selectedIndex = fechaInicio.getHours();
	
	dFin.selectedIndex = fechaFin.getDate() - 1;
	mFin.selectedIndex = fechaFin.getMonth();
	aFin.selectedIndex = fechaFin.getFullYear() - fechaAux.getFullYear();
	hFin.selectedIndex = fechaFin.getHours();
}

//Valida las fechas seleccionadas y, si es necesarios, las modifica para que sean correctas
function actualizaFechas(){
	var fechaAux = new Date();
	//Fecha de inicio
	var dIni = buscaObjeto("diaIni");
	var mIni = buscaObjeto("mesIni");
	var aIni = buscaObjeto("anhoIni");
	var hIni = buscaObjeto("horaIni");
	//Ajuste de la fecha de inicio
	fechaInicio.setFullYear(aIni.options[aIni.selectedIndex].text);
	fechaInicio.setMonth(indiceMes(mIni.options[mIni.selectedIndex].text));
	if (dIni.options[dIni.selectedIndex].text > diasEnMes(fechaInicio))
		fechaInicio.setDate(diasEnMes(fechaInicio));
	else
		fechaInicio.setDate(dIni.options[dIni.selectedIndex].text);
	fechaInicio.setHours(hIni.options[hIni.selectedIndex].value);

	//Fecha de entrega
	var dFin = buscaObjeto("diaFin");
	var mFin = buscaObjeto("mesFin");
	var aFin = buscaObjeto("anhoFin");
	var hFin = buscaObjeto("horaFin");
	//Ajuste de la fecha de entrega
	fechaFin.setFullYear(aFin.options[aFin.selectedIndex].text);
	fechaFin.setMonth(indiceMes(mFin.options[mFin.selectedIndex].text));
	if (dFin.options[dFin.selectedIndex].text > diasEnMes(fechaFin))
		fechaFin.setDate(diasEnMes(fechaFin));
	else
		fechaFin.setDate(dFin.options[dFin.selectedIndex].text);
	fechaFin.setHours(hFin.options[hFin.selectedIndex].value);
	
	//Comparación de las dos fechas
	if (comparaFechas(fechaInicio, fechaFin, true) == 1){
		fechaFin.setDate(fechaInicio.getDate());
		fechaFin.setMonth(fechaInicio.getMonth());
		fechaFin.setFullYear(fechaInicio.getFullYear());
		if (fechaIni.getDay() >= 5)
			fechaFin.setHours(fechaInicio.getHours() + HORAS_MINIMO_FINDE);
		else
			fechaFin.setHours(fechaInicio.getHours() + HORAS_MINIMO);
	}

	//Muestra fechas en la página comprobando si tiene seleccionada la casilla de fin de semana
	var finde = buscaObjeto("finde");
	if (finde.checked)
		finDeSemana();
	else
		muestraFechas();
}

//Adapta las fechas seleccionadas a la oferta de fin de semana
function finDeSemana(){
	if (fechaInicio.getDay() > 5){
		while (fechaInicio.getDay() != 5)
			fechaInicio.setDate(fechaInicio.getDate() - 1);
	} else {
		while (fechaInicio.getDay() != 5)
			fechaInicio.setDate(fechaInicio.getDate() + 1);
	}
	fechaInicio.setHours(15);
	fechaFin.setFullYear(fechaInicio.getFullYear());
	fechaFin.setMonth(fechaInicio.getMonth());
	fechaFin.setDate(fechaInicio.getDate() + 2);
	fechaFin.setHours(22);
	muestraFechas();
}
