if (typeof Shadowbox != 'undefined')
{
	Shadowbox.init({
		skipSetup: true,
		language: (typeof language != 'undefined') ? language : 'en',
		overlayOpacity: 0.7,
		viewportPadding: 10
	});
}

document.observe('dom:loaded', function()
{
	/* configurar el popup de condiciones */
	if (typeof Shadowbox != 'undefined' && $$('a[rel=shadowboxConditions]').length)
	{
		Shadowbox.setup($$('a[rel=shadowboxConditions]'), {
			width:'9999',
			height:'9999'
		});
	}

	/* Abrir los enlaces class=external en una ventana nueva */
	$$('a.external').invoke('writeAttribute', {target:"_blank"});

	/* Mantener el resumen siempre visible cuando la ventana haga scroll */
	if ($('booking-summary'))
	{
		Element.observe(window, 'scroll', summaryScroll);
		summaryScroll();
	}

	/* Carga diferida del script de Google Analytics */
	if (typeof _gaq != 'undefined')
	{
		$$('head').first().insert(new Element('script', {type : 'text/javascript', src : 'https://ssl.google-analytics.com/ga.js', async : true}));
	}

	/* Carga diferida del script de Godaddy. Solo nos interesa la función verifySeal() */
	if ($$('.siteseal').length)
	{
		window.verifySeal = function(){}; /* esta se sobrescribirá si la carga es correcta */
		document.write = function(){}; /* esta la deshabilitamos para evitar la inicialización */
		Element.observe(window, 'load', function(){$$('head')[0].insert(new Element('script', {type : 'text/javascript', src : 'https://seal.godaddy.com/getSeal?sealID=yV6DNPSsmIxt535eNpFApT2RegUQXdbAv8epH2pbowqxXnG52D3c2R'}))});
	}
});

/* Desplaza el cuadro de resumen para que siga el desplazamiento de la página */
function summaryScroll()
{
	var summary = $('booking-summary');
	var parent = summary.up();

	/* Distancia del borde superior del contenedor al borde superior del navegador */
	var offset = Math.min(parent.cumulativeOffset()['top'] - $(document.body).cumulativeScrollOffset()['top'], 0);

	/* Espacio libre donde podemos desplazar el bloque */
	var max_distance = parent.getHeight() - summary.getHeight() - parseInt(summary.getStyle('marginTop')) - parseInt(summary.getStyle('marginBottom'));

	/* Desplazamiento del bloque */
	var actual_distance = parseInt(summary.getStyle('top'));
	var new_distance = Math.min(-offset, max_distance);

	/* Desplazamiento suave, más rápido hacia arriba */
	if (new_distance != actual_distance)
	{
		var duration = (new_distance > actual_distance) ? 0.2 : 0.1;
		Effect.Queues.get('summary').each(function(q){q.cancel()});
		new Effect.Tween(
			null, actual_distance, new_distance,
			{duration:duration, fps:50, queue:{scope:'summary'}},
			function(x){summary.setStyle({top:x + 'px'})}
		);
	}

	/* Otro método sin effect (peor)
	var new_margin = Math.max(scrollOffset, 0) + summary.initial_margin;
	summary.setStyle({marginTop:new_margin + 'px'});
	*/

	/* Otro método con position fixed (raro)
	if (scrollOffset > 0)
	{
		summary.absolutize();
		summary.setStyle({position:'fixed', top:0});
	}
	else
	{
		summary.setStyle({position:'static'});
	}
	*/
}
