// $Header: $
/***************************************************************************
 * Automatic Image Popup
 * Copyright 2002 by David Schontzler | www.stilleye.com
 * Free to use under GNU General Public License as long as this message
 *  remains intact.
 * Description:  Automate your image popup windows (centered and sized)
 * URI: http://www.stilleye.com/scripts/iPop
 ***************************************************************************
 * Version: 1.0
 ***************************************************************************/
function iPop(img, w, h, ttl){
    var iPopURL = '/ipop.html' // set as location of ipop.html
    var url = iPopURL + '?' + img + (ttl ? '&' + escape(ttl) : '')
    var l = Math.round((screen.availWidth-w)/2),t=Math.round((screen.availHeight-h)/2);
    var attribs = 'width=' + w + ',height=' + h + ',left=' + l + ',top=' + t;
    var w=window.open(url, 'imgWin', attribs);
    return false;
}

/****************************************************
*	Add Site to Favorits:
*		by LWD-sb 20051019
****************************************************/
function addBookmark(title) {

	var url = document.location.href;
	var foo = url.split('?');
	url = foo[0];
	
	if (window.sidebar)
		window.sidebar.addPanel(title, url,""); 
	else if( document.all )
		window.external.AddFavorite( url, title);
	return;
}

/****************************************************
 *	Creates and centers a popup window
 *		by LWD-hk 20030722
 ****************************************************/
function rsPopUp(url, w, h, ttl){
    var l = Math.round((screen.availWidth-w)/2),t=Math.round((screen.availHeight-h)/2);
    var attribs = 'scrollbars=yes,resizable=yes,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t
    var w=window.open(url, 'newWindow', attribs);
    return false;
}
/****************************************************
*	Booking engine
****************************************************/
HWB3Mask = function() {
	this.dtArr = new Date();
	this.nights = 1;
	this.minnights=1;
	this.maxnights=1;
	this.align='Bl';

	var _setArrival = function() {
		var a=$('arrivalmmyy').value.split("/");
		var ad=$('arrivalday'),m=a[0],y=a[1],d=ad.value,dim=new Date(y,m,0).getDate(),tm=new Date(y,m-1,1);
		ad.options.length=0;
		for(var i=1;i<=dim;i++)
			ad.options[i-1] = new Option(i,i);
		ad.value=d>dim?dim:d;
		$('arrdate').value=m+'/'+d+'/'+y;
		adjustDeparture();
		setNights();
		try {
		$('fly_arrivalmmyy').value=a[0]+'-'+a[1];
		$('fly_arrivalday').value=$F('arrivalday');
		} catch (e) { ; }
	}
	
	var _setDeparture = function() {
		var a=$('departuremmyy').value.split("/");
		var dd=$('departureday'),m=a[0],y=a[1],d=dd.value,dim=new Date(y,m,0).getDate(),tm=new Date(y,m-1,1);
		dd.options.length=0;
		for(var i=1;i<=dim;i++)
			dd.options[i-1] = new Option(i,i);
		dd.value=d>dim?dim:d;
		$('depdate').value=m+'/'+d+'/'+y;
		try  {
		$('fly_depdate').value=m+'/'+d+'/'+y;
		} catch (e) { ; }
		setNights();
		try {
		$('fly_departuremmyy').value=a[0]+'-'+a[1];
		$('fly_departureday').value=$F('departureday');
		} catch (e) { ; }
	}	
	var setNights=function() {
		var dt1 = new Date($('arrdate').value);
		var dt2 = new Date($('depdate').value);
		var n = Math.round((dt2.getTime()-dt1.getTime())/86400000);
		$('nights').value=(n>0&&n<40)?n:1;
		if(n>40) adjustDeparture(1);
		else if(n<1) {
			var amy=$('arrivalmmyy');
			var dmy=$('departuremmyy');
			if( amy.selectedIndex==dmy.selectedIndex )
			{
				dmy.selectedIndex=dmy.selectedIndex+1;
				_setDeparture();
			}
			else
				adjustArrival(-1);
		}
	}
	var adjustDeparture=function(n) {
		var n=n||$('nights').value;
		var dt=new Date($('arrdate').value).getTime();
		dt=new Date(dt+Math.round(n*86400000));
		var d=dt.getDate(),m=dt.getMonth()+1,y=dt.getFullYear();
		$('depdate').value=m+'/'+d+'/'+y;
		try {
		$('fly_depdate').value=m+'/'+d+'/'+y;
		} catch (e) { ; }
		setDates('departure',dt);
	}
	var adjustArrival=function(n) {
		var n=n||$('nights').value;
		var dt=new Date($('depdate').value).getTime();
		dt=new Date(dt+Math.round(n*86400000));
		var d=dt.getDate(),m=dt.getMonth()+1,y=dt.getFullYear();
		try {
		$('arrdate').value=m+'/'+d+'/'+y;
		$('fly_arrdate').value=m+'/'+d+'/'+y;
		} catch (e) { ; }
		setDates('arrival',dt);
	}
	var setDates=function(fn,dt) {
		var d=dt.getDate().toString(),m=(dt.getMonth()+1).toString(),y=dt.getFullYear().toString(),dim=new Date(y,m,0).getDate();
		var od=$(fn+'day');
		od.options.length=0;
		for(var i=1;i<=dim;i++)
			od.options[i-1] = new Option(i,i);
		$(fn+'mmyy').value=m+'/'+y;
		$(fn+'day').value=d;
		try {
		$('fly_'+fn+'mmyy').value=m+'/'+y;
		$('fly_'+fn+'day').value=d;
		} catch (e) { ; }

	}
	this.showRooms=function(o) {
		var max=o[o.selectedIndex].value;
		for(var i=1; i<=o.options.length;i++)
		{
			if(i<=max)
				$('ro'+String(i)).style.display='';
			else
				$('ro'+String(i)).style.display='none';
		}
	}
	this.setDeparture = _setDeparture;
	this.setArrival = _setArrival;
	this.setArr=function(cal) {setDates('arrival',cal.date); adjustDeparture(); setNights(); }
	this.setDep=function(cal) {setDates('departure',cal.date); setNights(); }
	this.create=function(dtArr,nights,minnights,align) {
		var dtArr = dtArr||new Date();
		var nights = nights||1;
		var minnights=minnights||1;
		this.align=align||'Bl';

		var ad=$('arrivalday'),dd=$('departureday'),amy=$('arrivalmmyy'),dmy=$('departuremmyy');
		ad.onchange=this.setArrival;
		amy.onchange=this.setArrival;
		dd.onchange=this.setDeparture;
		dmy.onchange=this.setDeparture;

		var dt=dtArr,y=dt.getFullYear(),m=dt.getMonth()+1;
		amy.options.length=0;
		dmy.options.length=0;
		for( var i=m;i<=24;i++) {
			amy.options[amy.options.length]=new Option(dt.print('%B %y'),m+'/'+y);
			dmy.options[dmy.options.length]=new Option(dt.print('%B %y'),m+'/'+y);
			var dt=new Date(y,m,1);
			var y=dt.getFullYear(),m=dt.getMonth()+1;
		}
		var dtD=dtArr;
		dtD=new Date(dtD.getDate()+Math.round(nights*86400000));

		setDates('arrival', dtArr);
		setDates('departure', dtD);
		this.setArrival();
		this.setDeparture();

		Calendar.setup({inputField:"arrdate",ifFormat:"%m/%d/%Y",button:"dt1",align:this.align,electric:false,weekNumbers:false,onUpdate:this.setArr,range:[dtArr.getFullYear(),dtArr.getFullYear()+1],dateStatusFunc:function(date){return(dtArr.getTime()-86400000<date.getTime()?false:true)}});
		Calendar.setup({inputField:"depdate",ifFormat:"%m/%d/%Y",button:"dt2",align:this.align,electric:false,weekNumbers:false,onUpdate:this.setDep,range:[dtArr.getFullYear(),dtArr.getFullYear()+1],dateStatusFunc:function(date){return(new Date($('arrdate').value).getTime()<date.getTime()?false:true)}});
	}
}
/****************************************************
*	Booking engine
****************************************************/
FlyMask = function() {
	this.dtArr = new Date();
	this.nights = 1;
	this.minnights=1;
	this.maxnights=1;
	this.align='Bl';

	this.setArrival = function() {
		var a=$('fly_arrivalmmyy').value.split("-");
		var ad=$('fly_arrivalday'),m=a[0],y=a[1],d=ad.value,dim=new Date(y,m,0).getDate(),tm=new Date(y,m-1,1);
		ad.options.length=0;
		for(var i=1;i<=dim;i++)
			ad.options[i-1] = new Option(i,i);
		ad.value=d>dim?dim:d;
		$('fly_arrdate').value=m+'/'+d+'/'+y;
		adjustDeparture();
		setNights();
	}
	this.setDeparture = function() {
		var a=$('fly_departuremmyy').value.split("-");
		var dd=$('fly_departureday'),m=a[0],y=a[1],d=dd.value,dim=new Date(y,m,0).getDate(),tm=new Date(y,m-1,1);
		dd.options.length=0;
		for(var i=1;i<=dim;i++)
			dd.options[i-1] = new Option(i,i);
		dd.value=d>dim?dim:d;
		$('fly_depdate').value=m+'/'+d+'/'+y;
		setNights();
	}
	var setNights=function() {
		var dt1 = new Date($('fly_arrdate').value);
		var dt2 = new Date($('fly_depdate').value);
		var n = Math.round((dt2.getTime()-dt1.getTime())/86400000);
		$('fly_nights').value=(n>0&&n<40)?n:1;
		if(n>40) adjustDeparture(1);
		else if(n<1) {
			var amy=$('fly_arrivalmmyy');
			var dmy=$('fly_departuremmyy');
			if( amy.selectedIndex==dmy.selectedIndex )
			{
				dmy.selectedIndex=dmy.selectedIndex+1;
				setDeparture();
			}
			else
				adjustArrival(-1);
		}
	}
	var adjustDeparture=function(n) {
		var n=n||$('fly_nights').value;
		var dt=new Date($('fly_arrdate').value).getTime();
		dt=new Date(dt+Math.round(n*86400000));
		var d=dt.getDate(),m=dt.getMonth()+1,y=dt.getFullYear();
		$('fly_depdate').value=m+'/'+d+'/'+y;
		setDates('fly_departure',dt);
	}
	var adjustArrival=function(n) {
		var n=n||$('fly_nights').value;
		var dt=new Date($('fly_depdate').value).getTime();
		dt=new Date(dt+Math.round(n*86400000));
		var d=dt.getDate(),m=dt.getMonth()+1,y=dt.getFullYear();
		$('fly_arrdate').value=m+'/'+d+'/'+y;
		setDates('fly_arrival',dt);
	}
	var setDates=function(fn,dt) {
		var d=dt.getDate().toString(),m=(dt.getMonth()+1).toString(),y=dt.getFullYear().toString(),dim=new Date(y,m,0).getDate();
		var od=$(fn+'day');
		od.options.length=0;
		for(var i=1;i<=dim;i++)
			od.options[i-1] = new Option(i,i);
		$(fn+'mmyy').value=m+'-'+y;
		$(fn+'day').value=d;
	}
	this.setArr=function(cal) {setDates('fly_arrival',cal.date); adjustDeparture(); setNights(); }
	this.setDep=function(cal) {setDates('fly_departure',cal.date); setNights(); }
	this.create=function(dtArr,nights,minnights,align) {
		var dtArr = dtArr||new Date();
		var nights = nights||1;
		var minnights=minnights||1;
		this.align=align||'Bl';

		var ad=$('fly_arrivalday'),dd=$('fly_departureday'),amy=$('fly_arrivalmmyy'),dmy=$('fly_departuremmyy');
		ad.onchange=this.setArrival;
		amy.onchange=this.setArrival;
		dd.onchange=this.setDeparture;
		dmy.onchange=this.setDeparture;

		var dt=dtArr,y=dt.getFullYear(),m=dt.getMonth()+1;
		amy.options.length=0;
		dmy.options.length=0;
		for( var i=m;i<=24;i++) {
			amy.options[amy.options.length]=new Option(dt.print('%B %y'),m+'-'+y);
			dmy.options[dmy.options.length]=new Option(dt.print('%B %y'),m+'-'+y);
			var dt=new Date(y,m,1);
			var y=dt.getFullYear(),m=dt.getMonth()+1;
		}
		var dtD=dtArr;
		dtD=new Date(dtD.getDate()+Math.round(nights*86400000));

		setDates('fly_arrival', dtArr);
		setDates('fly_departure', dtD);
		this.setArrival();
		this.setDeparture();

		Calendar.setup({inputField:"arrdate",ifFormat:"%m/%d/%Y",button:"fly_dt1",align:this.align,electric:false,weekNumbers:false,onUpdate:this.setArr,range:[dtArr.getFullYear(),dtArr.getFullYear()+1],dateStatusFunc:function(date){return(dtArr.getTime()-86400000<date.getTime()?false:true)}});
		Calendar.setup({inputField:"depdate",ifFormat:"%m/%d/%Y",button:"fly_dt2",align:this.align,electric:false,weekNumbers:false,onUpdate:this.setDep,range:[dtArr.getFullYear(),dtArr.getFullYear()+1],dateStatusFunc:function(date){return(new Date($('fly_arrdate').value).getTime()<date.getTime()?false:true)}});
	}
}
//Package fader
function slideShow(id,delay) {
	var packages=$A($$('div#'+id+'_content div.fading'));
	if( packages.length>1)
	    setTimeout(switch_slides(id,1,1,packages.length,delay*1000),delay*1000);
}
function switch_slides(id,frame, start_frame, end_frame, delay) {
    return (function() {
        Effect.Fade(id+frame);
        frame++;
        if(frame>end_frame) frame=1;
        setTimeout("Effect.Appear('"+id+frame+"');", 850);
        setTimeout(switch_slides(id,frame, start_frame, end_frame, delay),delay + 850);
    })
}
function expandMap(id,w,h) {
	var s=navigator.userAgent.toLowerCase();
	var browserInfo={
			IsIE		: /*@cc_on!@*/false,
			IsIE7		: /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 7 )
	};
	var w=w||800,h=h||600;
	$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
	var arrayPageSize = getPageSize();
	$('overlay').style.height = arrayPageSize[1] + "px";
	new Effect.Appear('overlay', { duration: 0.0, from: 0.0, to: 0.6 	});
    var xyscroll = ( browserInfo.IsIE && !browserInfo.IsIE7 )?document.viewport.getScrollOffsets():[0,0];
	var innerH=document.viewport.getHeight(),innerW=document.viewport.getWidth();
	var pars='method=popup&'+Math.random(9999);
	var popup = $('popup');
	var m = new Ajax.Updater(popup, '/expandmap.cfm', {
		method: 'get',
		parameters: pars,
		onComplete: function(){
			var l=Math.round(xyscroll[0]+(innerW-w)/2),t=Math.round(xyscroll[1]+(innerH-h)/2);
			$('popup').setStyle({ top: t + "px", left: l + "px", width: w + "px", height: h + "px",cursor: 'pointer'});
			$('popup').style.position=( browserInfo.IsIE && !browserInfo.IsIE7 ) ? 'absolute' : 'fixed';
			var newsrc=$(id).src+'&popup';
			Element.show(popup);
			$('expmap').src=newsrc;
			new Draggable(popup,{});
		}
	});
}
function showMap(id,lang,w,h) {
	var s=navigator.userAgent.toLowerCase();
	var browserInfo={
		IsIE		: /*@cc_on!@*/false,
		IsIE7		: /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 7 )
	};
	var w=w||800,h=h||600;
	$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
    var arrayPageSize = getPageSize();
    $('overlay').style.height = arrayPageSize[1] + "px";
	new Effect.Appear('overlay', { duration: 0.0, from: 0.0, to: 0.6 	});
    var xyscroll = ( browserInfo.IsIE && !browserInfo.IsIE7 )?document.viewport.getScrollOffsets():[0,0];
	var innerH=document.viewport.getHeight(),innerW=document.viewport.getWidth();
	var pars='clientid=' + id + '&lang=' + lang + '&' + Math.random(9999);
	var popup = $('gmap');
    var m = new Ajax.Updater(popup, '/media/templates/forms/googlemap.cfm', {
        method: 'get',
        parameters: pars,
        onComplete: function(){
		var l=Math.round(xyscroll[0]+(innerW-w)/2),t=Math.round(xyscroll[1]+(innerH-h)/2);
			$('gmap').setStyle({ top: t + "px", left: l + "px", width: w + "px", height: h + "px",cursor : 'pointer'});
			$('gmap').style.position=( browserInfo.IsIE && !browserInfo.IsIE7 ) ? 'absolute' : 'fixed';
            Effect.Appear(popup,{duration:.5});
            new Draggable(popup,{});
        }
    });
}
function showInfoWin(id,method,lang,w,h,t,l) {
	var s=navigator.userAgent.toLowerCase();
	var browserInfo={
			IsIE		: /*@cc_on!@*/false,
			IsIE7		: /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 7 )
	};
	var w=w||800,h=h||600;
	$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
	var arrayPageSize = getPageSize();
	$('overlay').style.height = arrayPageSize[1] + "px";
	new Effect.Appear('overlay', { duration: 0.0, from: 0.0, to: 0.6 	});
    var xyscroll = ( browserInfo.IsIE && !browserInfo.IsIE7 )?document.viewport.getScrollOffsets():[0,0];
	var innerH=document.viewport.getHeight(),innerW=document.viewport.getWidth();
	var pars='objectid=' + id + '&method=' + method + '&lang=' + lang + '&' + Math.random(9999);
	var popup = $('popup');
	var m = new Ajax.Updater(popup, '/popup.cfm', {
		method: 'get',
		parameters: pars,
		onComplete: function(){
			var l=Math.round(xyscroll[0]+(innerW-w)/2),t=Math.round(xyscroll[1]+(innerH-h)/2);
			$('popup').setStyle({ top: t + "px", left: l + "px", width: w + "px", height: h + "px",cursor : 'pointer'});
			$('popup').style.position=( browserInfo.IsIE && !browserInfo.IsIE7 ) ? 'absolute' : 'fixed';
            Effect.Appear(popup,{duration:.5});
			new Draggable(popup,{});
		}
	});
}
function hideMap() {
    Effect.BlindUp('gmap', {
        duration: 0.3
    });
    Element.hide('overlay');
	document.body.scroll='auto';
	$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
}
function hideInfoWin() {
	Effect.BlindUp('popup', {
		duration: 0.3
	});
	Element.hide('overlay');
	document.body.scroll='auto';
	$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
}
function getPageSize() {
    var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth)
			windowWidth = document.documentElement.clientWidth; 
		else
			windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	// for small pages with total height less then height of the viewport
	pageHeight=(yScroll < windowHeight)?windowHeight:yScroll;
	// for small pages with total width less then width of the viewport
	pageWidth=(xScroll < windowWidth)?xScroll:windowWidth;
	return [pageWidth,pageHeight];
}
/* Menu javascript */
sfHover = function() {
		var sfEls = $("ddnav").getElementsByTagName("LI");
		for(var i=0;i<sfEls.length;i++) {
			sfEls[i].onmouseover=function() { this.className+=" sfhover"; }
			sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); }
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);