/* for Mozilla */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script defer src=js/ie_onload.js><"+"/script>");
/*@end @*/

/* for other browsers */
window.onload = init;

function init()
{
	// quit if this function has already been called
	if (arguments.callee.done) return;

	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;
	
	// Use jQuery via jQuery(...)
	jQuery.noConflict();

	// Behavior
	comportamiento();
};

function xform()
{
	// Hide forms
	jQuery('form.xform').hide().end();

	// Processing
	// Firefox
	if(BrowserDetect.browser == "Firefox")
	{
		jQuery('form.xform').find('div label, li label').not('.noinline').each( function(i)
		{
			var labelContent = this.innerHTML;
			var labelWidth = document.defaultView.getComputedStyle( this, '' ).getPropertyValue( 'width' );
			var labelSpan = document.createElement( 'span' );
			labelSpan.style.display = 'block';
			labelSpan.style.width = labelWidth;
			labelSpan.innerHTML = labelContent;
			this.style.display = '-moz-inline-box';
			this.innerHTML = null;
			this.appendChild( labelSpan );
		}).end();
	}
	// Resto de navegadores
	else
	{
		jQuery('form.xform').find('div label, li label').not('.noinline').each( function(i)
		{
			this.style.display = 'inline-block';
		}).end();
	}

	// Show forms
	jQuery('form.xform').show().end();
}

function comportamiento()
{
	/*
	jQuery('#hotelinfo').tabs(
	{
		fxFade: true,
		fxSpeed: 'fast',
		fxAutoHeight: true
	});
	*/
	jQuery('#hotelinfo div.seccion').hide();
	jQuery('#hotelinfo div.seccion.show').show();
	jQuery('#hotelinfo h3 a').click(function() {
		jQuery('#hotelinfo div.seccion').hide();
		jQuery(this.href.substr(this.href.indexOf("#"))).fadeIn();
		return false;
	});

	jQuery('input.load').hide().end();
	
	jQuery('.external').click(function ()
	{
		window.open(this.href);
		return false;
   	});

	//populateRequest();
	if(jQuery('#menu').length)
		menu();
	
	if(jQuery('form.xform').length)
		xform();
		
	if(jQuery('#buscador').length)
		buscador();
	
	if(jQuery('#grupos').length)
		grupos();
			
	if(jQuery('#transfer').length) {
		transfer();
		mybtransfer();
	}
		
	if(jQuery('#datos').length) {
		datos();
	}
	
	if(jQuery('#pago').length) {
		pago();
	}
		
	if(jQuery('.modulo.transfer').length)
		mybtransfer();

	// Abre enlace en ventana nueva.
	jQuery('a[@rel=popup]').click(function(e) {
		// si el usuario ha utilizado una tecla de control 
		// no hacemos nada 
		if (e.ctrlKey || e.shiftKey || e.metaKey) 
			return; 
	 
		// abrimos la ventana 
		var w = window.open(this.href, '_blank'); 
		if (w && !w.closed) { 
			// si efectivamente hemos logrado abrirla 
			// la ponemos en foco 
			w.focus(); 
			// y cancelamos el comportamiento por defecto 
			// del enlace 
			e.preventDefault(); 
		} 
	});
	
	// Abre enlace en el iframe de la capa div#mapa.
	/*
	jQuery('a[@rel=popup]').click(function() {
		jQuery('#mapa iframe').attr('src',this.href);
		jQuery('#mapa').fadeIn();
		return false;
	});
	*/
	
	// Caja expandible
	if(jQuery('div.caja.expandible').length) {
		jQuery('div.caja.expandible > div.superior').css('cursor','pointer');
		jQuery('div.caja.expandible > div.superior').click(function () {
			if(jQuery(this).next('div.registro').css('display') == "none") {
				jQuery('div.caja.expandible > div.registro').hide();
				jQuery(this).next('div.registro:hidden').fadeIn();
			}
		});
		jQuery('div.caja.expandible > div.registro').hide();
		jQuery('div.caja.expandible > div.registro:first').show();
	}
}

/* Menu */
function menu() {
	jQuery('#menu li img').mouseover(function() {
		jQuery('#menu li span').hide();
		jQuery(this).next('span').show();
	});
	jQuery('#menu li img').mouseout(function() {
		jQuery(this).next('span').hide();
	});	

	/*
	jQuery('#menu li').css('position','absolute');
	jQuery('#menu').Fisheye(
		{
			maxWidth: 0,
			items: 'li',
			itemsText: 'span',
			container: '.fisheyeContainter',
			itemWidth: 70,
			proximity: 70,
			valign: 'top',
		}
	)*/
}

/* Buscador */
function buscador()
{
	jQuery('#BuscadorPais').change(function() {
		xajax_load_hotel_destinations(this.value);
	});
	
	jQuery('#BuscadorDestino').change(function() {
		xajax_load_hotel_cities(this.value);
	});
	
	Date.format = 'dd.mm.yyyy';
	jQuery('.dateRange').datePicker();
	/*
	jQuery('.dateRange').datePicker({
		startDate:jQuery("#BuscadorDesde").val(),
		endDate:jQuery("#BuscadorHasta").val()
	})
	*/
	jQuery('#BuscadorDesde').bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				jQuery('#BuscadorHasta').dpSetStartDate(d.addDays(1).asString());
			}
		}
	);

	jQuery('#BuscadorHasta').bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				jQuery('#BuscadorDesde').dpSetEndDate(d.addDays(-1).asString());
			}
		}
	);

	jQuery('#BuscadorSearch').parent().parent().submit(function() {
		jQuery('#BuscadorSearch').parent().hide();
		jQuery('#loading').show();
	});
}

/* Transfer */
function transfer() {
	if(jQuery('#TransferCheck').length) {
		jQuery(function() {
			jQuery('#transfer fieldset').hide().end();
			jQuery('#transfer table').hide().end();
		});
		
		if(BrowserDetect.browser == "Explorer") {
			jQuery('#transfer input.checkbox').click(function() {
				jQuery('#transfer input.checkbox').change();
			});
		}
		jQuery('#transfer input.checkbox').change(function () {
			if(jQuery(this).attr('checked')) {
				jQuery('#transfer fieldset').fadeIn();
				jQuery('#transfer table').fadeIn();
			}
			else {
				jQuery('#transfer fieldset').fadeOut();
				jQuery('#transfer table').fadeOut();
			}
		});
		jQuery('#transfer input.checkbox').change();
	}	
	
	jQuery('#TransferExtra').change(function()
	{
		//alert(1);
		xajax_reload_transferdetall(xajax.getFormValues('booking'));		
	});
	jQuery('#TransferGolf').change(function()
	{		
		xajax_reload_transferdetall(xajax.getFormValues('booking'));
		//alert(2);		
	});
}

/* Datos */
function datos() {	
	jQuery('#DatosNombre').blur(function () {
		jQuery('#Pax0Nombre').val(this.value);
		jQuery('#PagoNombre').val(this.value);
	});
	
	jQuery('#DatosApellidos').blur(function () {
		jQuery('#Pax0Apellidos').val(this.value);
		jQuery('#PagoApellidos').val(this.value);
		
	});
	
	jQuery('#Pax0Nombre').blur(function () {
		jQuery('#DatosNombre').val(this.value);
		jQuery('#PagoNombre').val(this.value);
	});
	
	jQuery('#Pax0Apellidos').blur(function () {
		jQuery('#DatosApellidos').val(this.value);
		jQuery('#PagoApellidos').val(this.value);
		
	});
}

/* Forma de pago */
function pago() {
	jQuery(function() {
		jQuery('#pago fieldset .PagoForma1').hide().end();
		jQuery('#pago fieldset .PagoForma2').hide().end();
		jQuery('#pago fieldset .PagoForma3').hide().end();
	});

	jQuery('#pago fieldset input.radio').click(function() {
		jQuery('#pago fieldset .PagoForma1').hide();
		jQuery('#pago fieldset .PagoForma2').hide();
		jQuery('#pago fieldset .PagoForma3').hide();
		jQuery('#pago fieldset .'+this.id).fadeIn();
	});
	jQuery('#pago fieldset input.radio:checked').click().end();
}

/* MyBTransfer*/
function mybtransfer() {
	jQuery('#TransferTrayecto').change(function() {
		if(this.value == "ROU") {
			jQuery('#llegada').fadeIn();
			jQuery('#salida').fadeIn();
		}
		else if(this.value == "ARR") {
			jQuery('#llegada').fadeIn();
			jQuery('#salida').hide();
		}
		else if(this.value == "DEP") {
			jQuery('#llegada').hide();
			jQuery('#salida').fadeIn();
		}
	});
	jQuery('#TransferTrayecto').change();
	
	jQuery('#TransferPaxes').change(function() {
		jQuery('#TransferPaxrange > option').each(function() {
			jQuery(this).attr('disabled','');
		});
		if(this.value == 1) {
			jQuery('#TransferPaxrange > option').each(function() {
				if(this.value != 0 && this.value < 1 || this.value > 4) {
					jQuery(this).attr('disabled','disabled');
					jQuery(this).attr('selected','');
				}
			});
		}
		if(this.value == 2) {
			jQuery('#TransferPaxrange > option').each(function() {
				if(this.value != 0 && this.value < 5 || this.value > 7) {
					jQuery(this).attr('disabled','disabled');
					jQuery(this).attr('selected','');
				}
			});
		}
		if(this.value == 3) {
			jQuery('#TransferPaxrange > option').each(function() {
				if(this.value != 0 && this.value < 8 || this.value > 12) {
					jQuery(this).attr('disabled','disabled');
					jQuery(this).attr('selected','');
				}
			});
		}
		if(this.value == 4) {
			jQuery('#TransferPaxrange > option').each(function() {
				if(this.value != 0 && this.value < 13 || this.value > 30) {
					jQuery(this).attr('disabled','disabled');
					jQuery(this).attr('selected','');
				}
			});
		}
		if(this.value == 5) {
			jQuery('#TransferPaxrange > option').each(function() {
				if(this.value != 0 && this.value < 31) {
					jQuery(this).attr('disabled','disabled');
					jQuery(this).attr('selected','');
				}
			});
		}
	});
	jQuery('#TransferPaxes').change().end();
	
	jQuery('#TransferPaxes').change(function() {
		xajax_load_transfer_extras(this.value);
	});

	jQuery('#TransferPais').change(function() {
		xajax_load_transfer_destinations(this.value);
	});
	
	jQuery('#TransferDestino').change(function() {
		xajax_load_transfer_cities(this.value);
	});
	
	jQuery('#TransferCiudad').change(function() {
		if(this.value) {
			jQuery('#TransferHotelSearch').attr('disabled', false);
		}
		else {
			jQuery('#TransferHotelSearch').attr('disabled', 'disabled');
		}
		xajax_load_transfer_airport(this.value);		
	});
	jQuery('#TransferCiudad').change().end();
	
	if(jQuery('#TransferHotelSearch').length) {
		jQuery('#TransferHotelSearch').autocomplete(
			"mybtransfer",
			{
				delay: 10,
				minChars: 2,
				matchSubset: false,
				matchContains: true,
				cacheLength: 1,
				formatItem: function (row) {
					return row[0];
				},
				autoFill: false,
				selectFirst: true,
				extraParams: {
					autocomplete: true,
					hotel: true,
					country: function() { return jQuery('#TransferPais').val(); },
					destination: function() { return jQuery('#TransferDestino').val(); },
					city: function() { return jQuery('#TransferCiudad').val(); }
				}
			}
		);
		jQuery("#TransferHotelSearch").result(function(event, data, formatted) {
			if (data)
				jQuery('#TransferGiata').val(data[1]);
		});
		jQuery('#TransferHotelSearch').css('display', 'inline');
		jQuery('#TransferHotel').attr('disabled','disabled');
		jQuery('#TransferHotel').hide().end();
	}
	
	if(BrowserDetect.browser == "Explorer") {
		jQuery('#TransferNoHotel').click(function() {
			jQuery('#TransferNoHotel').change();
		});
	}
	jQuery('#TransferNoHotel').change(function() {
		if(jQuery(this).attr('checked')) {
			jQuery('.TransferDireccionDestino').fadeIn();
		}
		else {
			jQuery('.TransferDireccionDestino').hide();
		}
	});
	jQuery('#TransferNoHotel').change().end();

	jQuery('#TransferLlegadaDestino').blur(function() {
		jQuery('#TransferSalidaOrigen').val(this.value);
	});
	
	jQuery('#TransferLlegadaDestino, #TransferSalidaDestino').autocomplete(
		"mybtransfer",
		{
			delay: 10,
			minChars: 2,
			matchSubset: true,
			matchContains: true,
			cacheLength: 10,
			formatItem: function (row) {
				return row[0] + " - " + row[2] + " (" + row[3] + ")";
			},
			autoFill:false,
			selectFirst:true,
			extraParams: {
				autocomplete: true,
				airport: true
			}
		}
	);
	jQuery("#TransferLlegadaDestino").result(function(event, data, formatted) {
		if (data)
			jQuery('#TransferSalidaOrigen').val(data[1]);
	});	
}
/* MyGRUPPEN*/
function grupos() {
	jQuery('#DatosLugar').change(function() {
		xajax_load_grupos_cities(this.value);
	});
	jQuery('#DatosResort').change(function() {
		xajax_load_grupos_hotels(this.value);
	});
}
