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

var slideshow = [];
var slideshow_offset = 0;

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

	if (!delay) delay = 2000;
	if (!interval) interval = 2000;
	if (!offset) offset = 0;
	return this.each(function() {

		var index = offset;
		var images = slides;
		var callback = false;
		var $target = $(this);

		function slideshow_preload(imgsrc, wait) {
			var start = new Date;
			jQuery("<img>")
				.bind('load', function () {
					if (!callback) {
						var now = new Date();
						var preloadTime = parseInt(now.getTime()) - parseInt(start.getTime());
						if (preloadTime < 0) preloadTime = 0;
						if (preloadTime < wait) callback = setTimeout(slideshow_crossfade, wait - preloadTime);
						else slideshow_crossfade();
					}
				})
				.attr("src", imgsrc);
		}

		function slideshow_crossfade() {

			// crossfade images...

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

			var imgsrc = images[index];
			$target.css('background-image', 'url('+imgsrc+')');
			$target.children('img').animate({opacity: 0}, 1500, function() {
				$(this).attr('src', imgsrc);
				$(this).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 = 2500;
	var interval = 5000;
	if (typeof(slideshow) != 'undefined' && slideshow.length > 1) {
		$('#stage').slideshow(slideshow, delay, interval, slideshow_offset);
	}

	// lightwindow support
	$('.lightwindow').click(function (e) {

		e.preventDefault();

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

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

	});

});