//
// *** RateBox Functions
//
function launchHotelsCom()
{
    var Uri = $get('Ratebox_txtHotels').value;
    Uri = Uri +
        '&am=' + (parseInt($get('Ratebox_drpPickupMonth').value, 10) - 1) +
        '&ad=' + $get('Ratebox_drpPickupDay').value +
        '&dm=' + (parseInt($get('Ratebox_drpReturnMonth').value, 10) - 1) +
        '&dd=' + $get('Ratebox_drpReturnDay').value;
    $get('Ratebox_hlHotels').href = Uri;
    var session = $get('Ratebox_txtSession').value;
    var location = $get('Ratebox_txtHidden').value;
    AceWebService.HotelReferral(session, location, null);
    return true;
}
function checkRateBox()
{
    $get('Ratebox_txtJavascript').value = 'ECMA';
    if ($get('Ratebox_txtHidden').value == '') {
        alert('Please select a pickup location.');
        return false;
    }

    var pickupdate = getDateTime('Pickup');
    var pickupmonth = $get('Ratebox_drpPickupMonth').value;
    if (pickupdate.getMonth() + 1 != parseInt(pickupmonth, 10)) {
        alert('Invalid pickup date.');
        return false;
    }

    var returndate = getDateTime('Return');
    var returnmonth = $get('Ratebox_drpReturnMonth').value;
    if (returndate.getMonth() + 1 != parseInt(returnmonth, 10)) {
        alert('Invalid return date.');
        return false;
    }

    var now = new Date($get('Ratebox_txtPickupNow').value);
    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;
    }
    $get('RateCalendar_Data_selecteddates').value = ""
    $get('RateCalendar_Data_visibledate').value = "0001.1.1"
    return true;
}
function getDateOnly(name)
{
    var today = new Date($get('Ratebox_txtPickupNow').value);
    today.setHours(0, 0, 0, 0);
    var month = parseInt($get('Ratebox_drp' + name + 'Month').value, 10);
    var day = parseInt($get('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 = $get('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($get('Ratebox_txtPickupNow').value);
    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($get('Ratebox_txtPickupNow').value);
    today.setHours(0, 0, 0, 0);
    var value = calendar.GetSelectedDate();
    $get('Ratebox_drpPickupMonth').value = value.getMonth() + 1;
    $get('Ratebox_drpPickupDay').value = value.getDate();

    var pickupdate = getDateTime('Pickup');
    $get('Ratebox_lblPickupYear').innerHTML = pickupdate.getFullYear();

    var returndate = getDateTime('Return');
    $get('Ratebox_lblReturnYear').innerHTML = returndate.getFullYear();

    if (returndate <= pickupdate) {
        pickupdate.setHours(24);
        $get('Ratebox_drpReturnMonth').value = pickupdate.getMonth() + 1;
        $get('Ratebox_drpReturnDay').value = pickupdate.getDate();
        $get('Ratebox_lblReturnYear').innerHTML = pickupdate.getFullYear();
    }
}
function onReturnChange(calendar)
{
    var value = calendar.GetSelectedDate();
    $get('Ratebox_drpReturnMonth').value = value.getMonth() + 1;
    $get('Ratebox_drpReturnDay').value = value.getDate();
    $get('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($get('Ratebox_txtPickupNow').value);
    today.setHours(0, 0, 0, 0);
    var element = $get('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();
    $get('lblTitle').innerHTML = elementname;
    RateCalendar_Data.SetProperty('ClientSideOnSelectionChanged', callback);
    if (parseInt($get('Ratebox_txtEmbedded').value, 10)) {
        var cntrl = $get("Ratebox_divMain");
        RateCalendar_Data.Show(cntrl);
        RateCalendar_Data.Hide();
        RateCalendar_Data.Show(cntrl);
    } else {
        RateCalendar_Data.Show(element);
        RateCalendar_Data.Hide();
        RateCalendar_Data.Show(element);
    }
    return false;
}
function onShowPickup()
{
    var minDate = new Date($get('Ratebox_txtPickupNow').value);
    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($get('Ratebox_txtPickupNow').value);
    today.setHours(0, 0, 0, 0);
    var pickupdate = new Date($get('Ratebox_drpPickupMonth').value + '/' +
                              $get('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');
    $get('Ratebox_lblPickupYear').innerHTML = pickupdate.getFullYear();

    var returndate = getDateTime('Return');
    $get('Ratebox_lblReturnYear').innerHTML = returndate.getFullYear();

    if (returndate <= pickupdate) {
        pickupdate.setHours(24);
        $get('Ratebox_drpReturnMonth').value = pickupdate.getMonth() + 1;
        $get('Ratebox_drpReturnDay').value = pickupdate.getDate();
        $get('Ratebox_lblReturnYear').innerHTML = pickupdate.getFullYear();
    }
    return true;
}
function onReturnClick()
{
    var returndate = getDateTime('Return');
    $get('Ratebox_lblReturnYear').innerHTML = returndate.getFullYear();
}
//
// *** SlideShow Functions ***
//
function FirstEnabledMouseOver()
{
    $get('Ratebox_cmdFirst').src = '/images/BtnFirstW.gif';
}
function FirstEnabledMouseOut()
{
    $get('Ratebox_cmdFirst').src = '/images/BtnFirstG.gif';
}
function PrevEnabledMouseOver()
{
    $get('Ratebox_cmdPrev').src = '/images/BtnPrevW.gif';
}
function PrevEnabledMouseOut()
{
    $get('Ratebox_cmdPrev').src = '/images/BtnPrevG.gif';
}
function NextEnabledMouseOver()
{
    $get('Ratebox_cmdNext').src = '/images/BtnNextW.gif';
}
function NextEnabledMouseOut()
{
    $get('Ratebox_cmdNext').src = '/images/BtnNextG.gif';
}
function LastEnabledMouseOver()
{
    $get('Ratebox_cmdLast').src = '/images/BtnLastW.gif';
}
function LastEnabledMouseOut()
{
    $get('Ratebox_cmdLast').src = '/images/BtnLastG.gif';
}
function viewPage()
{
    var index = parseInt($get('Ratebox_txtIndex').value);
    var text = $get('Ratebox_txtSlides').value;
    var slides = text.split('::');
    text = $get('Ratebox_lblTitles').innerHTML;
    var titles = text.split('::');
    var first = $get('Ratebox_cmdFirst');
    var prev = $get('Ratebox_cmdPrev');
    var next = $get('Ratebox_cmdNext');
    var last = $get('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;
    }
    $get('Ratebox_imgPicture').src = slides[index];
    $get('Ratebox_lblTitle').innerHTML = titles[index];
}
function moveFirst()
{
    $get('Ratebox_txtIndex').value = "0";
    viewPage();
    return false;
}
function movePrev()
{
    var index = parseInt($get('Ratebox_txtIndex').value);
    if (index > 0) --index;
    $get('Ratebox_txtIndex').value = index;
    viewPage();
    return false;
}
function moveNext()
{
    var text = $get('Ratebox_txtSlides').value
    var slides = text.split('::');
    var index = parseInt($get('Ratebox_txtIndex').value);
    if (index + 1 < slides.length) ++index;
    $get('Ratebox_txtIndex').value = index;
    viewPage();
    return false;
}
function moveLast()
{
    var text = $get('Ratebox_txtSlides').value
    var slides = text.split('::');
    $get('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();
