/* Common onload function
****************************************************************************/
function AddLoadEvent(func){
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	}
	else{
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

/* Load prototype and scriptaculous
****************************************************************************/
document.write('<script type="text/javascript" src="/js/lib/prototype/prototype.js"><\/script>');
document.write('<script type="text/javascript" src="/js/lib/prototype/scriptaculous.js"><\/script>');
document.write('<script type="text/javascript" src="/js/lib/prototype/lightbox.js"></script>');


/* Load other includes
****************************************************************************/
document.write('<script type="text/javascript" src="/js/cls/class.formvalidator.js"><\/script>');
document.write('<script type="text/javascript" src="/js/lib/livepipe/livepipe.js"><\/script>');
document.write('<script type="text/javascript" src="/js/lib/livepipe/tabs.js"><\/script>');
document.write('<script type="text/javascript" src="/js/addEvent.js"></script>')
document.write('<script type="text/javascript" src="/js/sweetTitles.js"></script>')


// addthis.com
addthis_pub = 'YOUR-ACCOUNT-ID';
addthis_logo = 'http://villaelena.localhost/img/logo-villa-elena.gif';
addthis_offset_top = 5;
addthis_offset_left = 90;

/* Initialise the page
****************************************************************************/
AddLoadEvent(InitApp);

function InitApp(){
	// form focus
	var inputs = $$('*.focus');
	for (var i=0; i<inputs.length; i++){
		inputs[i].focus();
	}
	
	// form validation
	FormValidator.Init();
	
	// page jump forms
	var selects = $$('select.jump');
	for (var i=0; i<selects.length; i++){
		selects[i].onchange = function(){ if(this.value != ''){window.location = this.value;}; }
	}
	
	// print links
	var prints = $$('a.print');
	for (var i=0; i<prints.length; i++){
		prints[i].onclick = function(){ window.print(); }
	}
	
	// bookmark links
	var bookmarks = $$('a.bookmark');
	for (var i=0; i<bookmarks.length; i++){
		bookmarks[i].mouseover = function(){ return addthis_open(this, '', '[URL]', '[TITLE]'); }
		bookmarks[i].mouseout = function(){ addthis_close(); }
		bookmarks[i].onclick = function(){ return addthis_sendto(); }
	}
	
	
	// Initialise the main nav
	MainNav.Init();
	
	
	// homepage rotation
	if($('Rotator1')){
		setTimeout('Rotate1(0)', 4000);
	}
	if($('Rotator2')){
		setTimeout('Rotate2(0)', 8000);
	}
	
	
	
	// Initialise the floor plan page
	if($('FloorPlan')){
		// tab controls
		new Control.Tabs('FloorPlan');
		// hide the content
		var contents = $$('div.roomContent');
		for (var i=1; i<contents.length; i++){
			contents[i].setStyle({'display':'none'});
		}
		
		// add rollover/onclick events
		var links = $$('area.roomLink');
		for (var i=0; i<links.length; i++){
			links[i].onclick = function(){
				var elt = $(this.href.substring(this.href.lastIndexOf('#')+1, this.href.length));
				var contents = $$('div.roomContent');
				for (var i=0; i<contents.length; i++){
					contents[i].setStyle({'display':'none'});
				}
				elt.setStyle({'display':'block'});
				return false;
			}
		}
	}
	
}

var rotatorImages1 = new Array;
rotatorImages1[0] = new Image();
rotatorImages1[0].src = '/img/home-1.jpg';
rotatorImages1[1] = new Image();
rotatorImages1[1].src = '/img/home-2.jpg';
rotatorImages1[2] = new Image();
rotatorImages1[2].src = '/img/home-3.jpg';
rotatorImages1[3] = new Image();
rotatorImages1[3].src = '/img/home-4.jpg';
			
var Rotate1 = function(i){
	var index = i+1;
	if(index == rotatorImages1.length){index = 0;}
	new Effect.Opacity('Rotator1', {
		from: 1.0,
		to: 0, duration: 0.75,
		afterFinish: function(){ $('Rotator1').src = rotatorImages1[index].src; }
	});
	new Effect.Opacity('Rotator1', {
		from: 0,
		to: 1.0,
		duration: 0.75,
		queue: 'end'
	});
	setTimeout('Rotate1('+index+')', 8000);
}
	
var rotatorImages2 = new Array;
rotatorImages2[0] = new Image();
rotatorImages2[0].src = '/img/home-5.jpg';
rotatorImages2[1] = new Image();
rotatorImages2[1].src = '/img/home-6.jpg';
rotatorImages2[2] = new Image();
rotatorImages2[2].src = '/img/home-7.jpg';
rotatorImages2[3] = new Image();
rotatorImages2[3].src = '/img/home-8.jpg';

function Rotate2(i){
	var index = i+1;
	var img = new Image;
	img.src = rotatorImages2[i];
	if(index == rotatorImages2.length){index = 0;}
	new Effect.Opacity('Rotator2', {
		from: 1.0,
		to: 0, duration: 0.75,
		afterFinish: function(){ $('Rotator2').src = rotatorImages2[index].src; }
	});
	new Effect.Opacity('Rotator2', {
		from: 0,
		to: 1.0,
		duration: 0.75,
		queue: 'end'
	});
	setTimeout('Rotate2('+index+')', 8000);
}



var MainNav = {
	mainListItems:	new Object,
	selListItem:	new Object,
	timer:			new Object,
	
	Init: function(){
		// check the right elements exist on the page
		if(!$('MainNav')) return false;
		// set them up
		this.mainListItems = $('MainNav').select('li.main');
		// Mouseover events
		Event.observe($('MainNav'), 'mouseover', function(event){
			var elt = $(Event.element(event));
			Event.stop(event);
			MainNav.Show(elt);
		});
		// Mouseout events
		Event.observe($('MainNav'), 'mouseout', function(event){
			MainNav.Hide();
		});
	},
	
	Show: function(elt){
		// Reset everything
		clearTimeout(this.timer);
		// Check that it is a main link
		if (elt && elt.nodeName=='A' && elt.up().hasClassName('main')){
			this.Reset();
			this.selListItem = elt.up();
			// If there is a subnav
			if (this.selListItem.childElements().length > 1){
				// Set rollover style
				elt.setStyle({
					'background':'#a3a3a3'
				});
				var ul = this.selListItem.childElements().find(function(e){ return e.nodeName == 'UL'; });
				if (ul){
					ul.setStyle({'display':'block'});
				}
			}
			else {
				// Set rollover style
				elt.setStyle({
					'background':'#a3a3a3'
				});
			}
		}
	},
	
	Hide: function(){
		clearTimeout(this.timer);
		this.timer = setTimeout('MainNav.Reset()', 150);
	},
	
	Reset: function(){
		// reset the nav
		this.mainListItems.each(function(e){
			e.down().setStyle({
				'background':''
			});
			var ul = e.childElements().find(function(e){ return e.nodeName == 'UL'; });
			if (ul){
				ul.setStyle({'display':'none'});					
			}
		});
	}
}

