//
// *** RateBox Functions
//
function launchHotelsCom () {
    var Uri = document.getElementById ('Ratebox_txtHotels').value;
    Uri = Uri + 
        '&am=' + (parseInt(document.getElementById('Ratebox_drpPickupMonth').value, 10) - 1) +
        '&ad=' + document.getElementById('Ratebox_drpPickupDay').value +
        '&dm=' + (parseInt(document.getElementById('Ratebox_drpReturnMonth').value, 10) - 1) +
        '&dd=' + document.getElementById('Ratebox_drpReturnDay').value;
    document.getElementById('Ratebox_hlHotels').href = Uri;
    var session = document.getElementById ('Ratebox_txtSession').value;
    var location = document.getElementById ('Ratebox_txtHidden').value;
    AceWebService.HotelReferral (session, location, null);
    return true;
}
function checkRateBox () {
    document.getElementById ('Ratebox_txtJavascript').value = 'ECMA';
    if (document.getElementById ('Ratebox_txtHidden').value == '') {
        alert ('Please select a pickup location.');
        return false;
    }
    
    var pickupdate = getDateTime ('Pickup');
    var pickupmonth = document.getElementById ('Ratebox_drpPickupMonth').value;
    if (pickupdate.getMonth() + 1 != parseInt(pickupmonth, 10)) {
        alert ('Invalid pickup date.');
        return false;
    }

    var returndate = getDateTime ('Return');
    var returnmonth = document.getElementById ('Ratebox_drpReturnMonth').value;
    if (returndate.getMonth() + 1 != parseInt(returnmonth, 10)) {
        alert ('Invalid return date.');
        return false;
    }

    var now = new Date();
    var gmt = document.getElementById('Ratebox_txtGmt').value;
    if (gmt != '') {
        var offset = parseInt(gmt, 10);
        var utc = now.getTime() + (now.getTimezoneOffset() * 60000);
        var tmp = new Date(utc + (60000 * offset));
        now = tmp;
    }
    if (pickupdate < now) {
        alert ('The Pickup Date And Time Must Be In The Future.');
        return false;
    } else if (returndate <= pickupdate) {
        alert ('The pickup date/time must be before the return date/time.');
        return false;
    }
    var early = new Date(pickupdate);
    early.setHours (early.getHours() + 2);
    if (early > returndate) {
        alert ('A reservation must be at least two hours long.');
        return false;
    }
    document.getElementById ('RateCalendar_Data_selecteddates').value = ""
    document.getElementById ('RateCalendar_Data_visibledate').value = "0001.1.1"
    return true;
}
function getDateOnly (name)
{
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    var month = parseInt(document.getElementById ('Ratebox_drp' + name + 'Month').value, 10);
    var day = parseInt(document.getElementById ('Ratebox_drp' + name + 'Day').value, 10);
    var temp = new Date (today.getFullYear(), month - 1, day);
    if (temp < today) {
        temp = new Date (today.getFullYear() + 1, month - 1, day);
    }
    return temp;
}
function getDateTime (name)
{
    var temp = getDateOnly (name);
    var time = document.getElementById ('Ratebox_drp' + name + 'Time').value
    temp.setHours (parseInt (time.slice (0, 2), 10));
    temp.setMinutes (parseInt (time.slice (3), 10));
    return temp;
}
function setVisibleDate (calendar, date) 
{
    var today = new Date();
    var thisMonth = today.getMonth();
    var selected = calendar.GetSelectedDate();
    var thatMonth = selected.getMonth();
    if (thisMonth != thatMonth) {
        var work = new Date(date);
        work.setHours (-30 * 24);
        date = work;
    }
    calendar.SetVisibleDate (date);
}
function onPickupChange(calendar)
{
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    var value = calendar.GetSelectedDate();
    document.getElementById('Ratebox_drpPickupMonth').value=value.getMonth() + 1;
    document.getElementById('Ratebox_drpPickupDay').value=value.getDate();
    
    var pickupdate = getDateTime ('Pickup');
    document.getElementById('Ratebox_lblPickupYear').innerHTML=pickupdate.getFullYear();
    
    var returndate = getDateTime ('Return');
    document.getElementById('Ratebox_lblReturnYear').innerHTML=returndate.getFullYear();
    
    if (returndate <= pickupdate) {
        pickupdate.setHours (24);
        document.getElementById('Ratebox_drpReturnMonth').value=pickupdate.getMonth() + 1;
        document.getElementById('Ratebox_drpReturnDay').value=pickupdate.getDate();
        document.getElementById('Ratebox_lblReturnYear').innerHTML=pickupdate.getFullYear();
    }
}
function onReturnChange(calendar)
{
   var value = calendar.GetSelectedDate();
   document.getElementById('Ratebox_drpReturnMonth').value=value.getMonth() + 1;
   document.getElementById('Ratebox_drpReturnDay').value=value.getDate();
   document.getElementById('Ratebox_lblReturnYear').innerHTML=value.getFullYear();
}
function setMinDate (minDate) {
    var oldMin = RateCalendar_Data.GetProperty ('MinDate');
    minDate.setHours (0, 0, 0, 0);
    RateCalendar_Data.SetProperty ('MinDate', minDate);
    if (minDate < oldMin) {
        RateCalendar_Data.ClearCellDataRange (minDate, oldMin);
    } else if (minDate > oldMin) {
        RateCalendar_Data.ClearCellDataRange (oldMin, minDate);
    }
    var selDate = RateCalendar_Data.GetSelectedDate()
    if (selDate < minDate) {
        RateCalendar_Data.SetSelectedDate (minDate);
    }
    var visDate = RateCalendar_Data.GetProperty('VisibleDate');
    if (visDate < minDate) {
        setVisibleDate (RateCalendar_Data, minDate)
    }
}
function setMaxDate (maxDate) {
    var oldmax = RateCalendar_Data.GetProperty ('MaxDate');
    maxDate.setHours (0, 0, 0, 0);
    RateCalendar_Data.SetProperty ('MaxDate', maxDate);
    if (maxDate < oldmax) {
        RateCalendar_Data.ClearCellDataRange (maxDate, oldmax);
    } else if (maxDate > oldmax) {
        RateCalendar_Data.ClearCellDataRange (oldmax, maxDate);
    }
    var selDate = RateCalendar_Data.GetSelectedDate();
    if (selDate > maxDate) {
        RateCalendar_Data.SetSelectedDate(maxDate);
    }
    var visDate = RateCalendar_Data.GetProperty('VisibleDate');
    if (visDate > maxDate) {
        setVisibleDate (RateCalendar_Data, maxDate)
    }
}
function onShowCalendar (elementname, callback, minDate, maxDate)
{
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    var element = document.getElementById ('Ratebox_drp' + elementname + 'Time');
    var workdate = getDateOnly (elementname);
    RateCalendar_Data.SetSelectedDate (workdate);
    setMinDate (minDate);
    setMaxDate (maxDate);
    var selected = RateCalendar_Data.GetSelectedDate();
    if (selected >= minDate && selected <= maxDate) {
        setVisibleDate (RateCalendar_Data, selected);
    } else {
        setVisibleDate (RateCalendar_Data, minDate);
    }
    RateCalendar_Data.Render ();
    document.getElementById ('lblTitle').innerHTML=elementname;
    RateCalendar_Data.SetProperty ('ClientSideOnSelectionChanged', callback);
    RateCalendar_Data.Show (element);
    RateCalendar_Data.Hide ();
    RateCalendar_Data.Show (element);
    return false;
}
function onShowPickup ()
{
    var minDate = new Date();
    var maxDate = new Date(minDate);
    maxDate.setHours (330 * 24);
    return onShowCalendar('Pickup', onPickupChange, minDate, maxDate);
}
function onShowReturn ()
{
    var minDate;
    var maxDate;
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    var pickupdate = new Date(document.getElementById ('Ratebox_drpPickupMonth').value + '/' +
                              document.getElementById ('Ratebox_drpPickupDay').value + '/' +
                              today.getFullYear());
    if (pickupdate < today) {
        pickupdate.setFullYear (today.getFullYear() + 1);
    }
    pickupdate.setHours (24);
    today.setHours (330 * 24);
    return onShowCalendar('Return', onReturnChange, pickupdate, today);
}
function onPickupClick ()
{
    var pickupdate = getDateTime ('Pickup');
    document.getElementById('Ratebox_lblPickupYear').innerHTML=pickupdate.getFullYear();
    
    var returndate = getDateTime ('Return');
    document.getElementById('Ratebox_lblReturnYear').innerHTML=returndate.getFullYear();
    
    if (returndate <= pickupdate) {
        pickupdate.setHours (24);
        document.getElementById('Ratebox_drpReturnMonth').value=pickupdate.getMonth() + 1;
        document.getElementById('Ratebox_drpReturnDay').value=pickupdate.getDate();
        document.getElementById('Ratebox_lblReturnYear').innerHTML=pickupdate.getFullYear();
    }
    return true;
}
function onReturnClick ()
{
    var returndate = getDateTime ('Return');
    document.getElementById('Ratebox_lblReturnYear').innerHTML=returndate.getFullYear();
}
//
// *** SlideShow Functions ***
//
function FirstEnabledMouseOver () {
    document.getElementById ('Ratebox_cmdFirst').src = '/images/BtnFirstW.gif';
}
function FirstEnabledMouseOut () {
    document.getElementById ('Ratebox_cmdFirst').src = '/images/BtnFirstG.gif';
}
function PrevEnabledMouseOver () {
    document.getElementById ('Ratebox_cmdPrev').src = '/images/BtnPrevW.gif';
}
function PrevEnabledMouseOut () {
    document.getElementById ('Ratebox_cmdPrev').src = '/images/BtnPrevG.gif';
}
function NextEnabledMouseOver () {
    document.getElementById ('Ratebox_cmdNext').src = '/images/BtnNextW.gif';
}
function NextEnabledMouseOut () {
    document.getElementById ('Ratebox_cmdNext').src = '/images/BtnNextG.gif';
}
function LastEnabledMouseOver () {
    document.getElementById ('Ratebox_cmdLast').src = '/images/BtnLastW.gif';
}
function LastEnabledMouseOut () {
    document.getElementById ('Ratebox_cmdLast').src = '/images/BtnLastG.gif';
}
function viewPage () {
    var index = parseInt (document.getElementById ('Ratebox_txtIndex').value);
    var text = document.getElementById ('Ratebox_txtSlides').value;
    var slides = text.split ('::');
    text = document.getElementById ('Ratebox_txtTitles').value;
    var titles = text.split ('::');
    var first = document.getElementById ('Ratebox_cmdFirst');
    var prev = document.getElementById ('Ratebox_cmdPrev');
    var next = document.getElementById ('Ratebox_cmdNext');
    var last = document.getElementById ('Ratebox_cmdLast');
    if (index <= 0) {
        first.src = '/images/BtnFirstX.gif';
        first.onmouseover = null;
        first.onmouseout = null;
        prev.src = '/images/BtnPrevX.gif';
        prev.onmouseover = null;
        prev.onmouseout = null;
    } else {
        first.src = '/images/BtnFirstG.gif';
        first.onmouseover = FirstEnabledMouseOver;
        first.onmouseout = FirstEnabledMouseOut;
        prev.src = '/images/BtnPrevG.gif';
        prev.onmouseover = PrevEnabledMouseOver;
        prev.onmouseout = PrevEnabledMouseOut;
    }
    if (index >= slides.length - 1) {
        next.src = '/images/BtnNextX.gif';
        next.onmouseover = null;
        next.onmouseout = null;
        last.src = '/images/BtnLastX.gif';
        last.onmouseover = null;
        last.onmouseout = null;
    } else {
        next.src = '/images/BtnNextG.gif';
        next.onmouseover = NextEnabledMouseOver;
        next.onmouseout = NextEnabledMouseOut;
        last.src = '/images/BtnLastG.gif';
        last.onmouseover = LastEnabledMouseOver;
        last.onmouseout = LastEnabledMouseOut;
    }
    document.getElementById ('Ratebox_imgPicture').src = slides[index];
    document.getElementById ('Ratebox_lblTitle').innerHTML = titles[index];
}
function moveFirst () {
    document.getElementById ('Ratebox_txtIndex').value = "0";
    viewPage ();
    return false;
}
function movePrev () {
    var index = parseInt (document.getElementById ('Ratebox_txtIndex').value);
    if (index > 0) --index;
    document.getElementById ('Ratebox_txtIndex').value = index;
    viewPage ();
    return false;
}
function moveNext () {
    var text = document.getElementById ('Ratebox_txtSlides').value
    var slides = text.split ('::');
    var index = parseInt (document.getElementById ('Ratebox_txtIndex').value);
    if (index + 1 < slides.length) ++index;
    document.getElementById ('Ratebox_txtIndex').value = index;
    viewPage ();
    return false;
}
function moveLast () {
    var text = document.getElementById ('Ratebox_txtSlides').value
    var slides = text.split ('::');
    document.getElementById ('Ratebox_txtIndex').value = slides.length - 1;
    viewPage ();
    return false;
}
//
// Modal Window Boxes
//
function ShowModal (url, name, height, width) {
    var theForm;
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {	
		theForm = document.Form1;
	    theForm[name] = window.open(url, name, 
	                                'scrollbars=yes' +
		    	  	     	        ',height=' + height +
			      		            ',width=' + width +
				    		    	',top=' + ((screen.height - height) / 2) +
					    		    ',left=' + ((screen.width - width) / 2));
	} else {
		theForm = document.forms['Form1'];
	    theForm[name] = window.open(url, name,
		                            'scrollbars=yes,dependent=yes,modal=yes,dialog=yes,minimizable=no' +
				    		        ',height=' + height +
					    		    ',width=' + width +
						    	    ',top=' + (window.screenY + ((window.outerHeight - height) / 2)) +
							        ',left=' + (window.screenX + ((window.outerWidth - width) / 2)));
	}
	theForm[name].focus();
	return false;
}

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();