var calculo_fecha = true;

var AlarmasVuelos = Class.create({
    initialize: function(div){
		div = Object.isString(div) && !div.blank() ? 'div#'+div+' ':'';
		
		this.iataOrigen = $F($$(div+'[id=fna_iataOrigen]').first());
		this.iataDestino = $F($$(div+'[id=fna_iataDestino]').first());
		this.fechaIdaMin = trim($F($$(div+'[id=fna_fechaIdaMin]').first()));
		this.fechaIdaMax = trim($F($$(div+'[id=fna_fechaIdaMax]').first()));
		this.fechaVueltaMin = trim($F($$(div+'[id=fna_fechaVueltaMin]').first()));
		this.fechaVueltaMax = trim($F($$(div+'[id=fna_fechaVueltaMax]').first()));
		this.precioMaximo = parseFloat(trim($F($$(div+'[id=fna_precioMaximo]').first())));
		var a = $$(div+'[id=fna_email_alarmas]');
		if(a.size() > 0) {
			this.email =trim($F(a.first()));
		}
		
		this.soloIda = $$(div+'[id=fna_soloIda]').last().checked ? 'Y':'N';
		this.botonSubmit = $$(div+'[id=botonSubmitNuevaAlarma]').first();
		this.spinnerSubmit = $$(div+'[id=spinnerSubmit]').first();
		this.camposEmail = $$('#dtEmailAlarmas, #ddEmailAlarmas');
		
		this.fna_textoOrigen = $$(div+'[id=fna_textoOrigen]').first();
		this.fna_textoDestino = $$(div+'[id=fna_textoDestino]').first();
		this.fna_fechaIdaMin = $$(div+'[id=fna_fechaIdaMin]').first();
		this.fna_fechaIdaMax = $$(div+'[id=fna_fechaIdaMax]').first();
		this.fna_fechaVueltaMin = $$(div+'[id=fna_fechaVueltaMin]').first();
		this.fna_fechaVueltaMax = $$(div+'[id=fna_fechaVueltaMax]').first();
		this.fna_precioMaximo = $$(div+'[id=fna_precioMaximo]').first();
	}
});

var ResultadosAlarmasVuelos = Class.create({
	id: null,
	precioMinimo: null,
	linkBusqueda: null,
	fecha: null,
	
	initialize: function(){
	}
});

var AlarmasFunciones = Class.create({
	grabarNuevaAlarma: function(div){
		var alarma = new  AlarmasVuelos(div);
		
		var valido=true;
		var mensaje='<center><ul>';
		var imagenAlerta='<img src="/images/iconos/warn.gif" alt="">';
		var hayDestino = !alarma.iataDestino.blank();
		var hayOrigen = !alarma.iataOrigen.blank();
		var mostrarAeropuertos = hayOrigen && hayDestino && (alarma.iataDestino.blank() || alarma.iataOrigen.blank());

		if($F(alarma.fna_precioMaximo).empty() || $F(alarma.fna_precioMaximo) == 'Precio Máximo'){
			alarma.precioMaximo = -1;
		}
		else
		if(!/^[0-9]+(\.[0-9]+)?$/.test($F(alarma.fna_precioMaximo))){
			valido = false;
			mensaje+='<li>Debe introducir un numero o vacio en Precio Maximo.</li>';
		}

		if(!hayOrigen) {
			valido = false;		
			mensaje+='<li>Debe introducir un <strong>origen</strong> correcto.</li>';
		}
			
		if(!hayDestino){
			valido = false;
			mensaje+='<li>Debe introducir un <strong>destino</strong> correcto.</li>';
		}
			
		if(!alarma.iataOrigen.blank() && !alarma.iataDestino.blank() && alarma.iataOrigen==alarma.iataDestino){
			valido=false;
			mensaje+='<li>El <strong>origen</strong> y el <strong>destino</strong> deben ser distintos.</li>';
		}

		var hayFechas = true;
		if( alarma.fechaIdaMin.blank() || alarma.fechaIdaMax.blank() ||
			alarma.fechaIdaMin == "desde" || alarma.fechaIdaMin == "hasta"){
			valido=false;
			hayFechas = false;
			mensaje+='<li>Debe introducir las <b>fechas de ida</b>.</li>';
		}

		if( alarma.soloIda == 'N' && 
			(alarma.fechaVueltaMin.blank() || alarma.fechaVueltaMax.blank()  ||
			 alarma.fechaVueltaMin == "desde" || alarma.fechaVueltaMax == "hasta")){
			valido=false;
			hayFechas = false;
			mensaje+='<li>Debe introducir las <b>fechas de vuelta</b>.</li>';
		}

		var trozosFechaIdaMin = alarma.fechaIdaMin.split('/');
		var trozosFechaIdaMax = alarma.fechaIdaMax.split('/');
		if (hayFechas && ordenaFechas(alarma.fechaIdaMin, alarma.fechaIdaMax) == 1) {
			valido = false;
			// mensaje += '<li>La <strong>fecha final de ida</strong> no puede
			// ser anterior a la <strong>fecha inicial de ida.</strong></li>';
		}
		var trozosFechaVueltaMin;
		var trozosFechaVueltaMax;
		
		if(alarma.soloIda == 'Y'){
			trozosFechaVueltaMin = ['','',''];
			trozosFechaVueltaMax = ['','',''];
		}else{
			trozosFechaVueltaMin = alarma.fechaVueltaMin.split('/');
			trozosFechaVueltaMax = alarma.fechaVueltaMax.split('/');
			if (hayFechas && ordenaFechas(alarma.fechaIdaMax, alarma.fechaVueltaMax) == 1) {
				valido = false;
				mensaje += '<li>Las <strong>fechas de vuelta</strong> no pueden ser anteriores a las <strong>fechas de ida.</strong></li>';
			}
			if (hayFechas && ordenaFechas(alarma.fechaVueltaMin, alarma.fechaVueltaMax) == 1) {
				valido = false;
				mensaje += '<li>La <strong>fecha final de vuelta</strong> no puede ser anterior a la <strong>fecha inicial de vuelta.</strong></li>';
			}
		}
		
		if(!Object.isUndefined(alarma.email) && alarma.email.blank()) {
			valido = false;
			mensaje += '<li>Debes proporcionar un <strong>e-mail</strong> para administrar tus alarmas.</strong></li>';
		}
		
		mensaje+='</ul></center><br><center><a href="javascript:Modalbox.hide()">Cerrar</a></center>';
		
		if(!valido){
			Modalbox.show(mensaje, {
				title: '<center><div class="cabeceraAlerta">' + imagenAlerta + ' Atenci&oacute;n, par&aacute;metros incorrectos.</div></center>',
				width: 400,
				transitions: true
			});
			return;
		}
		
		if(alarma.precioMaximo < 0) alarma.precioMaximo = -1;
		
		var pars = {'iataOrigen':alarma.iataOrigen, 'iataDestino':alarma.iataDestino , 
					'fechaIdaMin':alarma.fechaIdaMin, 'fechaIdaMax':alarma.fechaIdaMax, 
					'fechaVueltaMin':alarma.fechaVueltaMin, 'fechaVueltaMax':alarma.fechaVueltaMax, 
					'precioMaximo':alarma.precioMaximo, 'email': alarma.email};
		
		new Ajax.Request('/comunidad/php/alarmas/nuevaAlarma.php', {
			method: 'get',
			parameters: pars,
			onLoading: function(){
				alarma.botonSubmit.hide();
				if(Object.isElement(alarma.spinnerSubmit)) {
					alarma.spinnerSubmit.style.display = 'inline';
				}
			},
			onSuccess: function(t){
					alarma.botonSubmit.style.display = 'inline';
					if(Object.isElement(alarma.spinnerSubmit)) alarma.spinnerSubmit.hide();
					alarma.fna_textoOrigen.style.color = '#AAAAAA';
					alarma.fna_textoOrigen.style.fontSize = '0.98em';
					alarma.fna_textoDestino.style.color = '#AAAAAA';
					alarma.fna_textoDestino.style.fontSize = '0.98em';
					alarma.fna_textoOrigen.value 		= "Escriba un aeropuerto";
					alarma.fna_textoDestino.value 	= "Escriba un aeropuerto";
					alarma.fna_fechaIdaMin.value 		= 'desde';
					alarma.fna_fechaIdaMax.value 		= 'desde';
					alarma.fna_fechaVueltaMin.value 	= 'hasta';
					alarma.fna_fechaVueltaMax.value 	= 'hasta';
					alarma.fna_precioMaximo.value 	= '';
					recargarAlarmasEnBusqueda();
					if(eval(t.responseText)) {
						alarma.camposEmail.invoke('update');
						$$('[id=fna_email_alarmas]').invoke('remove');
						cargaLogin();
					}
					
					Modalbox.show('<center>Alarma creada con &eacute;xito. Te avisaremos por email<br><a href="javascript:Modalbox.hide()">Cerrar</a></center>', {title: '<center><div class="cabeceraAlerta">Alarmas</div></center>'});
			},
			on403: function(t) {
				Modalbox.show('<center>'+t.statusText+'<br><a href="javascript:Modalbox.hide()">Cerrar</a></center>', {
					title: '<center><div class="cabeceraAlerta">' + imagenAlerta + ' Atenci&oacute;n</div></center>',
					width: 400,
					height: 180,
					transitions: true
				});
				
				alarma.botonSubmit.style.display = 'inline';
				if(Object.isElement(alarma.spinnerSubmit)) alarma.spinnerSubmit.hide();				
				return;
			}
		});
	}
});

function eliminaCal(calendario) {
	calendario.hide();
	calendario.destroy();
}

/* funciones de control de los calendarios */
function desactivarFechasIdaMin(date) {
	var hoy = new Date();
	// ponemos la hora, minutos y segundos a 0
	hoy.setHours(0);
	hoy.setMinutes(0);
	hoy.setSeconds(0);
						
		// date is a JS Date object
	if (  (date.getFullYear() < hoy.getFullYear()) ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() < hoy.getMonth())  ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() == hoy.getMonth() && date.getDate() < hoy.getDate()) ) {									
	    return true; // disable
	}
	return false; // enable other dates
}

function desactivarFechasIdaMax(div, date) {
	if(!Object.isString(div)) {
		date = div;
		var fec = $F('fna_fechaIdaMin').split('/');
	}
	else {
		var fec = $F($$('div#'+div+' [id=fna_fechaIdaMin]').first()).split('/');
	}
	
	var hoy;
	if(fec.length == 3){
	    var dia = parseInt(fec[0], 10);	
        var mes = parseInt(fec[1], 10);		
        var anyo = parseInt(fec[2],10);
		hoy = new Date(anyo,mes-1,dia);
	}
	else{
		hoy = new Date();
	}
	// ponemos la hora, minutos y segundos a 0
	hoy.setHours(0);
	hoy.setMinutes(0);
	hoy.setSeconds(0);
						
		// date is a JS Date object
	if (  (date.getFullYear() < hoy.getFullYear()) ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() < hoy.getMonth())  ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() == hoy.getMonth() && date.getDate() < hoy.getDate()) ) {									
	    return true; // disable
	}
	return false; // enable other dates
}

function desactivarFechasVueltaMin(div, date) {
	if(!Object.isString(div)) {
		date = div;
		var fec = $F('fna_fechaIdaMin').split('/');
	}
	else {
		var fec = $F($$('div#'+div+' [id=fna_fechaIdaMin]').first()).split('/');
	}
	
	var hoy;
	
	if(fec.length == 3){
	    var dia = parseInt(fec[0], 10);	
        var mes = parseInt(fec[1], 10);		
        var anyo = parseInt(fec[2],10);
		hoy = new Date(anyo,mes-1,dia);
	}
	else{
		hoy = new Date();
	}
	// ponemos la hora, minutos y segundos a 0
	hoy.setHours(0);
	hoy.setMinutes(0);
	hoy.setSeconds(0);
						
		// date is a JS Date object
	if (  (date.getFullYear() < hoy.getFullYear()) ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() < hoy.getMonth())  ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() == hoy.getMonth() && date.getDate() < hoy.getDate()) ) {									
	    return true; // disable
	}
	return false; // enable other dates
}

function desactivarFechasVueltaMax(div, date)  {
	if(!Object.isString(div)) {
		date = div;
		var fec = $F('fna_fechaVueltaMin').split('/');
	}
	else {
		var fec = $F($$('div#'+div+' [id=fna_fechaVueltaMin]').first()).split('/');
	}
	
	var hoy;
	if(fec.length == 3){
	    var dia = parseInt(fec[0], 10);	
        var mes = parseInt(fec[1], 10);		
        var anyo = parseInt(fec[2],10);
		hoy = new Date(anyo,mes-1,dia);
	}
	else{
		hoy = new Date();
	}
	// ponemos la hora, minutos y segundos a 0
	hoy.setHours(0);
	hoy.setMinutes(0);
	hoy.setSeconds(0);
						
		// date is a JS Date object
	if (  (date.getFullYear() < hoy.getFullYear()) ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() < hoy.getMonth())  ||
	        (date.getFullYear() == hoy.getFullYear() && date.getMonth() == hoy.getMonth() && date.getDate() < hoy.getDate()) ) {									
	    return true; // disable
	}
	return false; // enable other dates
}

function cambiaFechasNuevaAlarma(div){
	if(!Object.isUndefined(div)) {
		div = 'div#'+div+' ';
		var fna_fechaIdaMin = $$(div+'[id=fna_fechaIdaMin]').first();
		var fna_fechaIdaMax = $$(div+'[id=fna_fechaIdaMax]').first();
		var fna_fechaVueltaMin = $$(div+'[id=fna_fechaVueltaMin]').first();
		var fna_fechaVueltaMax = $$(div+'[id=fna_fechaVueltaMax]').first();
		var soloIda = $$(div+' input[id=fna_soloIda]').last().checked;
	}
	else {
		var fna_fechaIdaMin = $('fna_fechaIdaMin');
		var fna_fechaIdaMax = $('fna_fechaIdaMax');
		var fna_fechaVueltaMin = $('fna_fechaVueltaMin');
		var fna_fechaVueltaMax = $('fna_fechaVueltaMax');
		var soloIda = $('fna_soloIda').checked;
	}
	
	if ( calculo_fecha && $F(fna_fechaIdaMin) != 'desde') {
		
		var txt_fec = $F(fna_fechaIdaMin);
		var aux = sumaDias( txt_fec, 30 );
		fna_fechaIdaMax.value= aux;
		if(!soloIda) {
			fna_fechaVueltaMin.value= $F(fna_fechaIdaMin);
			fna_fechaVueltaMax.value= $F(fna_fechaIdaMax);
		}

		calculo_fecha = false;
		
	}
	else if ( $F(fna_fechaIdaMin) != 'desde' ) {

		if(ordenaFechas($F(fna_fechaIdaMin),$F(fna_fechaIdaMax)) == 1){
			fna_fechaIdaMax.value= $F(fna_fechaIdaMin);
		}
		
		if(!soloIda) {
			if(ordenaFechas($F(fna_fechaIdaMin),$F(fna_fechaVueltaMin)) == 1){
				fna_fechaVueltaMin.value= $F(fna_fechaIdaMin);
			}
			if(ordenaFechas($F(fna_fechaIdaMax),$F(fna_fechaVueltaMax)) == 1){
				fna_fechaVueltaMax.value= $F(fna_fechaIdaMax);
			}
			if(ordenaFechas($F(fna_fechaVueltaMin),$F(fna_fechaVueltaMax)) == 1){
				fna_fechaVueltaMax.value= $F(fna_fechaVueltaMin);
			}
		}
	}
	else {
		fna_fechaIdaMin.value = 'desde';
		fna_fechaIdaMax.value = 'hasta';
		fna_fechaVueltaMin.value = 'desde';
		fna_fechaVueltaMax.value = 'hasta';
	}
	
	
}

/* Funciones de control de los autocompletados */
function fnaSetTextoOrigen(div, li) {
	if(Object.isUndefined(li)) {
		li = div;
		div = '';
	}
	else {
		div = (!div.blank()) ? 'div#'+div+' ':'#';
	}
	
	if(li.id == "") return;
	
	var fna_textoOrigen = $$(div+'[id=fna_textoOrigen]').first();
	var fna_iataOrigen = $$(div+'[id=fna_iataOrigen]').first();
	var fna_ciudadOrigen = $$(div+'[id=fna_ciudadOrigen]').first();
	var fna_textoDestino = $$(div+'[id=fna_textoDestino]').first();
	
	fna_textoOrigen.style.color = '#333'; 
	fna_textoOrigen.style.fontSize = '12px';
	
	if(li.hasClassName('aeropAutocomp')) {
		var desc = li.select('*:[id=descIata]').first().innerHTML;
		var ciud = li.select('*:[id=ciudadIata]').first().innerHTML;
		var pais = li.select('*:[id=paisIata]').first().innerHTML;
		fna_iataOrigen.value=li.id;
		fna_textoOrigen.value=desc + ', ' + ciud +' '+ pais; 		  				    	                            
	}
	else {
		fna_textoOrigen.value = li.innerHTML;
		fna_ciudadOrigen.value = li.id;							
	}

	fna_textoDestino.focus();
}

function fnaSetTextoDestino(div, li) {
	if(Object.isUndefined(li)) {
		li = div;
		div = '';
	}
	else {
		div = (!div.blank()) ? 'div#'+div+' ':'';
	}

	if(li.id == "") return;
	
	var fna_textoDestino = $$(div+'[id=fna_textoDestino]').first();
	var fna_iataDestino = $$(div+'[id=fna_iataDestino]').first();
	var fna_ciudadDestino = $$(div+'[id=fna_ciudadDestino]').first();
	var fna_textoOrigen = $$(div+'[id=fna_textoOrigen]').first();
	
	fna_textoDestino.style.color = '#333'; 
	fna_textoDestino.style.fontSize = '12px';
	
	if(li.hasClassName('aeropAutocomp')) {
		var desc = li.select('*:[id=descIata]').first().innerHTML;
		var ciud = li.select('*:[id=ciudadIata]').first().innerHTML;
		var pais = li.select('*:[id=paisIata]').first().innerHTML;
		fna_iataDestino.value=li.id;
		fna_textoDestino.value=desc + ', ' + ciud +' '+ pais;
	}else{
		fna_textoDestino.value = li.innerHTML;
		fna_ciudadDestino.value = li.id;
	}									
								
	//fna_IdayVuelta.focus();
}

/*
 * Funcion para el control de los inputs cuando el vuelo es de solo ida o de ida
 * y vuelta
 */
function alarmaIdaYVuelta(div){
	if(!Object.isUndefined(div)) {
		var fna_soloIda = $$('div#'+div+' input[id=fna_soloIda]').last();
		div = 'div#'+div+' ';
	}
	else {
		div = '#';
		var fna_soloIda = $$('input[id=fna_soloIda]').last();
	}
	
	var fna_fechaVueltaMin = $$(div+'[id=fna_fechaVueltaMin]').first();
	var fna_fechaVueltaMax = $$(div+'[id=fna_fechaVueltaMax]').first();
	var img_calendarioVueltaMin = $$(div+'[id=img_calendarioVueltaMin]').first();
	var img_calendarioVueltaMax = $$(div+'[id=img_calendarioVueltaMax]').first();

    if (fna_soloIda.checked) {
        fna_fechaVueltaMin.value = '';
        fna_fechaVueltaMin.disabled = true;
        fna_fechaVueltaMax.value = '';
        fna_fechaVueltaMax.disabled = true;
        if(Object.isElement(img_calendarioVueltaMin)) {
        	img_calendarioVueltaMin.style.visibility = "hidden";
        }
        if(Object.isElement(img_calendarioVueltaMax)) {
        	img_calendarioVueltaMax.style.visibility = "hidden";
        }
    }
    else {
        fna_fechaVueltaMin.disabled = false;
        fna_fechaVueltaMax.disabled = false;
        if(Object.isElement(img_calendarioVueltaMin)) {
        	img_calendarioVueltaMin.style.visibility = "visible";
        }
        if(Object.isElement(img_calendarioVueltaMax)) {
        	img_calendarioVueltaMax.style.visibility = "visible";
        }
    }
}

var alarmafunciones = new AlarmasFunciones();

function borrarAlarma(id){
	new Ajax.Request('/comunidad/php/alarmas/borrarAlarma.php', {
		method: 'get',
		parameters: {'id': id},
		onComplete: function(t){
			$(id+"").hide();
		}
	});
}


function cntBorrarAlarma(idAlarma, tipo) {
// if(confirm('¿ Desea realmente borrar esta alarma ?')) {
		url = '/comunidad/php/alarmas/borrarAlarma.php';
		new Ajax.Request(url, {
			  method: 'get',
			  parameters : {'id' : idAlarma },
			  onComplete: function(transport) {
				  Effect.Fade(idAlarma);
				  Effect.Fade("detalle"+idAlarma);
			  }
			});
// }
}

function recargarAlarmas(tipo, divActualizar) {
	if(!$(divActualizar)) return;
	var url = '/comunidad/php/alarmas/getAlarmas.php';
	var params = {'tipo':tipo };
	if ($("userAlias") != null) params = {'tipo':tipo , 'userAlias': $F("userAlias") };
	
	new Ajax.Request(url, {
		  method: 'get',
		  parameters: params,
		  onComplete: function(t) {
			$(divActualizar).update(t.responseText);		  
		  }
	});
}

function mostrarDetalle(idAlarma) {
	Effect.Appear('detalle'+ idAlarma);
}

function ocultarDetalle(idAlarma) {
	Effect.Fade('detalle'+ idAlarma);
}

function recargarAlarmasEncontradas(){
	recargarAlarmas('encontradas', 'divAlarmasEncontradas');
}

function recargarAlarmasEnBusqueda(){
	recargarAlarmas('enbusqueda', 'divAlarmasEnBusqueda');
}

function recargarNoAlarmasActivas(){
	recargarAlarmas('noactivas', 'divAlarmasNoActivas');
}

function eventoFocusNuevaAlarma(id, idOculto, div){
	if(!Object.isUndefined(div)) {
		div = 'div#'+div+' #';
		var elem = $$(div+' [id='+id+']').first(); 
		var elemOculto = $$(div+' [id='+idOculto+']').first();
	}
	else {
		div = '#';
		var elem = $(id); 
		var elemOculto = $(idOculto);
	}
	
	elem.value='';
	elemOculto.clear();
	elem.style.color = '#333'; 
	elem.style.fontSize = '12px';
}


function eventoBlurNuevaAlarma(id, idOculto, div){
	if(!Object.isUndefined(div)) {
		div = 'div#'+div+' #';
		var elem = $$(div+' [id='+id+']').first(); 
	}
	else {
		div = '#';
		var elem = $(id); 
	}
	
	if($F(elem).blank()){
		elem.style.color = '#AAAAAA'; 
		elem.style.fontSize = '0.98em';
		elem.value = "Escriba un aeropuerto";
	}	
}

function ayudaAlarmas() {
	var mensaje=$('textoAyudaAlarmas').innerHTML;
	var imagenAyuda='<img src="/images/iconos/ayudaBox.gif" alt="Ayuda">';
	Modalbox.show(mensaje,{title: '<center><div class="cabeceraAlerta">'+imagenAyuda+' Ayuda de alarmas</div></center>', transitions:true}); 
}

