/*
 * Subject to copyright.
 *
 * Web Development - LOOKsystems Limited
 * mailto:info@looksystems.ltd.uk
 * http://www.looksystems.ltd.uk
 *
 */

var site_prefix;
var stage_left;
var stage_right;
var stage_delay;
var stage_interval;

jQuery.fn.slideshow = function(slides, delay, interval) {

	if (!delay) delay = 5000;
	if (!interval) interval = 5000;
	return this.each(function() {

		var index = 0;
		var images = slides;
		var callback = false;
		var $target = $(this);
		var $source = $target.clone().css({margin: 0, left: 0, top: 0}).prependTo($target);
		$source.empty();

		function slideshow_preload(imgsrc, wait) {
			jQuery("<img>")
				.bind('load', function () {
					if (!callback) callback = setTimeout(slideshow_crossfade, wait);
				})
				.attr("src", imgsrc);
		}

		function slideshow_crossfade() {

			var $heading = $target.children('h2');
			if ($heading.length) {
				var state = $heading.attr('state');
				if (!state) state = 0;
				else state = parseInt(state);
				$heading.attr('state', (state + 1) % 2);
				switch (state) {
				case 0:
					// fadeout text
					$heading.animate({opacity: 0}, 1000);
					callback = setTimeout(slideshow_crossfade, interval);
					return;
				case 1:
					// fadein text
					$heading.animate({opacity: 0.7}, 1000);
					break;
				default:
					// ignore text
					break;
				}
			}

			// crossfade images...

			++index;
			if (index >= images.length) index = 0;

			var imgcss = 'url('+images[index]+')';
			$target.css('background-image', imgcss);
			$source.animate({opacity: 0}, 1000, function() {
				$source
					.css('background-image', imgcss)
					.css('opacity', 1);
			});
			var next = index + 1;
			if (next >= images.length) next = 0;
			callback = false;

			// preload next image

			slideshow_preload(images[next], interval);

		}

		if (images.length > 1) slideshow_preload(images[1], delay);
		else callback = setTimeout(slideshow_crossfade, delay);

	});

}

$(document).ready(function(){

	// set-up slideshows
	var delay = (typeof(stage_delay) != 'undefined') ? stage_delay : 5000;
	var interval = (typeof(stage_interval) != 'undefined') ? stage_interval : 5000;
	var step = interval;
	if (typeof(stageleft) != 'undefined' && stageleft.length > 1) {
		if (typeof(stageright) != 'undefined') interval += step;
		$('#stage .stage_left700').slideshow(stageleft, delay, interval);
		$('#stage .stage_left480').slideshow(stageleft, delay, interval);
		delay += step;
	}
	if (typeof(stageright) != 'undefined' && stageright.length) {
		if (stageright.length > 1 || $('#stage .stage_right h2').length) {
			$('#stage .stage_right').slideshow(stageright, delay, interval);
		}
	}

	// lightwindow support

	function open_lightwindow(e) {

		// don't allow lightwindow for brochure flip with mac firefox 2 or below
		// (because flash doesn't work with layers + transparency)
		if (
			this.href.indexOf('brochure-flip') >= 0
		//	&& navigator.platform.indexOf('Mac') >= 0
		//	&& $.browser.mozilla && $.browser.version < '1.9'
		) {
			return;
		}

		e.preventDefault();

		$('<div><h1>The Nare Hotel<a id="modalClose" href="#">[close]</a></h1><iframe src="'+this.href+'"></iframe></div>')
			.modal({
				close: false,
				onOpen: function (dialog) {
					var top = $(window).height() / 2 - 323;
					dialog.container.css('top', (top > 0) ? top+'px' : 0);
					dialog.overlay.fadeIn('fast', function () {
						dialog.data.show();
						dialog.container.slideDown('slow');
					});
				}
			});

		$('#modalClose,#modalOverlay').click(function() { $.modal.close() });

	}

	$('.lightwindow').click(open_lightwindow);

	// set focus
	var $input = $("input[type='text'],input[type='password'],textarea");
	if ($input.length) $input.get(0).focus();

	// initialise legacy script
	if (typeof(init) == 'function') init();

});