﻿// calendar
function StartShowCalendar(senderID)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    senderControl.calendarTimer = setTimeout('ShowCalendar("' + senderID + '")', 200);
}

function ShowCalendar(senderID)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    var textBoxControl = $get(senderID + "_date");
    var calendarControl = $get(senderID + "_calendar");
    textBoxControl.focus();
    if (calendarControl.style.visibility == "visible") 
    {
        calendarControl.style.visibility = "hidden";
    }
    else 
    {
        var context = new Object();
        context.senderID = senderID;
        var associatedControl = $get(senderID + "_associatedControlID");
        var associatedDate = null;
        if (associatedControl != null) associatedDate = $get(associatedControl.value + "_date");
        WSBookNow.GetCalendar(/*sessionSequence*/"123", senderID, textBoxControl.value, associatedDate == null ? null : associatedDate.value, ShowCalendarReply, null, context);
    }
}

function StartHideCalendar(senderID)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    senderControl.calendarTimer = setTimeout('HideCalendar("' + senderID + '")', 200);
}

function HideCalendar(senderID)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    var calendarID = senderID+"_calendar";
    var calendarControl = $get(calendarID);
    calendarControl.style.visibility = "hidden";
}

function ShowCalendarReply(result, context, methodName)
{
    var senderID = context.senderID;
    var senderControl = $get(senderID);
    var textBoxID = senderID + "_date";
    var textBoxControl = $get(textBoxID);
    var calendarID = senderID+"_calendar";
    var calendarControl = $get(calendarID);
//    var hiddenID = senderID + "_hotelID";
//    var hiddenControl = $get(hiddenID);
    if (result.html != "") 
    {
        calendarControl.style.visibility = "visible";
        calendarControl.style.width = "210px";
        SetTotalOffset(textBoxControl, calendarControl.style, textBoxControl.offsetHeight+1);
        calendarControl.innerHTML = result.html;
    }
    else
    {
        calendarControl.innerHTML = null;
        calendarControl.style.visibility = "hidden";
    }
}

function CalendarSetDate(senderID, date)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    var calendarID = senderID+"_calendar";
    var calendarControl = $get(calendarID);
    calendarControl.style.visibility = "hidden";
    var textBoxID = senderID + "_date";
    var textBoxControl = $get(textBoxID);
    textBoxControl.focus();
    textBoxControl.value = date;
}

function CalendarMove(senderID, date)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
    var textBoxID = senderID + "_date";
    var textBoxControl = $get(textBoxID);
    textBoxControl.focus();
    var context = new Object();
    context.senderID = senderID;
    var hotelIDControl = $get(senderID + "_hotelID");
    var associatedControl = $get(senderID + "_associatedControlID");
    var associatedDate = null;
    if (associatedControl != null) associatedDate = $get(associatedControl.value + "_date");
    WSBookNow.GetCalendar(/*sessionSequence*/"123", senderID, date, associatedDate.value, ShowCalendarReply, null, context);
}

function CalendarFocus(senderID)
{
    var senderControl = $get(senderID);
    if (senderControl.calendarTimer != null) 
    {
        clearTimeout(senderControl.calendarTimer );
        senderControl.calendarTimer = null;
    }
}

function BookNowUnMark(sender)
{
    var ioo = sender.className.lastIndexOf("_O");
    if (ioo!=-1)
    {
        sender.className = sender.className.substr(0,ioo);
    }
}

function BookNowMark(sender)
{
    var ioo = sender.className.lastIndexOf("_O");
    if (ioo==-1)
    {
        sender.className = sender.className + '_O';
    }
}

function SetTotalOffset(obj,toPos,shift) {
  toPos.top = 0
  toPos.left = 0
  var sobj = obj
  var ttop = 0
  var tleft = 0
  while (sobj!=null) {
    ttop += sobj.offsetTop
    tleft += sobj.offsetLeft
    sobj = sobj.offsetParent
  }
  toPos.top = ttop+shift + "px"
  toPos.left = tleft + "px"
}

// SelectHotel
function StartShowList(senderID, delayed) {
    var senderControl = $get(senderID);
    InitializeHotelListControl(senderControl);
    if (delayed) {
        if (senderControl.getListTimer != null) {
            clearTimeout(senderControl.getListTimer);
            senderControl.getListTimer = null;
        }
        senderControl.getListTimer = setTimeout('ShowList("' + senderID + '")', 200);
    }
    else {
        ShowList(senderID);
    }
}


function ShowList(senderID) {
    var senderControl = $get(senderID);
    if (senderControl.getListTimer != null) {
        clearTimeout(senderControl.getListTimer);
        senderControl.getListTimer = null;
    }
    //    if (typeof(sessionSequence) == "undefined") 
    //    {
    //        senderControl.getListTimer = setTimeout('ShowList("' + senderID + '")', 200);
    //        return;
    //    }
    var textBoxID = senderID + "_data"
    var textBoxControl = $get(textBoxID);
    var data = textBoxControl.value;
    var language = "";
    if ($get('ctl00_ContentLanguageChoice_DE') != null) { language = "de"; }
    else if ($get('ctl00_ContentLanguageChoice_EN') != null) { language = "en"; }
    
    
    // var language = $get("ctl00_ContentLanguageChoice_Language").value;
    if (senderControl.lastSearch != data) {
        senderControl.lastSearch = data;
        var context = new Object();
        context.senderID = senderID;
        WSBookNow.GetList(/*sessionSequence*/"123", senderID, data, language, ShowListReply, null, context);
    }
}

//function ShowList( senderID )
//{
//    var senderControl = $get(senderID);
//    if (senderControl.getListTimer != null) 
//    {
//        clearTimeout(senderControl.getListTimer);
//        senderControl.getListTimer = null;
//    }
////    if (typeof(sessionSequence) == "undefined") 
////    {
////        senderControl.getListTimer = setTimeout('ShowList("' + senderID + '")', 200);
////        return;
////    }
//    var textBoxID = senderID + "_data";
//    var textBoxControl = $get(textBoxID);
//    var data = textBoxControl.value;

//    var language = "";
//    if (typeof (ctl00_ContentLanguageChoice_DE) != 'undefined') { language = "de"; }
//    else if (typeof (ctl00_ContentLanguageChoice_EN) != 'undefined') { language = "en"; }
//    if (senderControl.lastSearch != data) {
//        senderControl.lastSearch = data;
//        var context = new Object();
//        context.senderID = senderID;
//        WSBookNow.GetList(/*sessionSequence*/"123", senderID, data, language, ShowListReply, null, context);
//    }
//}

function ShowListReply(result, context, methodName)
{
    var senderID = context.senderID;
    var senderControl = $get(senderID);
    var textBoxID = senderID + "_data";
    var textBoxControl = $get(textBoxID);
    var resultID = senderID+"_result";
    var resultControl = $get(resultID);
    var hiddenID = senderID + "_hotelID";
    var hiddenControl = $get(hiddenID);
    senderControl.hotelItems = result.hotelItems;
    if (!result.single) hiddenControl.value = 0;
    if (result.html != "") 
    {
        senderControl.single = result.single;
        resultControl.style.visibility = result.matched && result.single && hiddenControl.value != 0 ? "hidden" : "Visible";
        SetTotalOffset(textBoxControl,resultControl.style, textBoxControl.offsetHeight+1);
        resultControl.style.height = "";
        resultControl.style.width = "";
        resultControl.innerHTML = result.html;
        if (resultControl.offsetHeight > 227) 
        {
            var width = resultControl.offsetWidth;
            resultControl.style.width = (width + 30) + "px"; 
            resultControl.style.height = "227px";
            resultControl.style.width = (width + 30) + "px"; 
        }
        else
        {
            resultControl.style.width = (resultControl.offsetWidth + 10) + "px"; 
        }
        senderControl.selectedRow = 0;
    }
    else
    {
        resultControl.innerHTML = null;
        resultControl.style.visibility = "hidden";
    }
}

function ShowListError(exception, context, methodName) {}

function StartHideList( senderID )
{
    var senderControl = $get(senderID);
    if (senderControl.getListTimer != null) 
    {
        clearTimeout(senderControl.getListTimer);
        senderControl.getListTimer = null;
    }
    senderControl.getListTimer = setTimeout('HideList("' + senderID + '")', 300);
}

function HideList(senderID)
{
    var senderControl = $get(senderID);
    var textBoxID = senderID + "_data"
    var textBoxControl = $get(textBoxID);
    var resultID = senderID + "_result";
    var resultControl = $get(resultID);
    senderControl.lastSearch = null;
    resultControl.style.visibility = "Hidden";
    var hiddenID = senderID + "_hotelID";
    var hiddenControl = $get(hiddenID);
    if (senderControl.single) senderControl.selectedRow = 1;
    if (senderControl.hotelItems == null) {
        textBoxControl.value = "";
        return;
    }
    if (textBoxControl.value == "" || senderControl.hotelItems[senderControl.selectedRow].id != 0)
    {
        hiddenControl.value = senderControl.hotelItems[senderControl.selectedRow].id;
        textBoxControl.value = senderControl.hotelItems[senderControl.selectedRow].name;
    }
}

function SelectHotel(senderID, id, hotelName)
{
    var senderControl = $get(senderID);
    var textBoxID = senderID + "_data";
    var textBoxControl = $get(textBoxID);
    var hiddenID = senderID + "_hotelID";
    var hiddenControl = $get(hiddenID);
    if (senderControl.getListTimer != null) 
    {
        clearTimeout(senderControl.getListTimer);
        senderControl.getListTimer = null;
    }
    textBoxControl.focus();
    textBoxControl.value = hotelName;
    hiddenControl.value = id;
    StartHideList(senderID);
}

function InitializeHotelListControl(control)
{
    if (typeof(control.getListTimer) == "undefined") 
    {
        control.getListTimer = null;
        control.lastSearch = null;
    }
}

function ShowSelectHotel(show, targetID)
{
    var targetControl = $get(targetID);
    targetControl.style.visibility = show ? "Visible" : "Hidden";
}

function KeyDownHotelList(event, senderID)
{
    var senderControl = $get(senderID);
    var textBoxID = senderID + "_data"
    var textBoxControl = $get(textBoxID);
    var resultID = senderID+"_result";
    var resultControl = $get(resultID);
    var hiddenID = senderID + "_hotelID";
    var hiddenControl = $get(hiddenID);
    var e = window.event || event;
    if (typeof(resultControl.firstChild.rows) === 'undefined') return;
    switch (e.keyCode)
    {
        case 40: // down
            resultControl.firstChild.rows[senderControl.selectedRow].className = "mn";
            if (senderControl.selectedRow < resultControl.firstChild.rows.length-1) senderControl.selectedRow++;
            resultControl.firstChild.rows[senderControl.selectedRow].className = "ms";
            if (resultControl.firstChild.rows[senderControl.selectedRow].offsetTop > 205 + resultControl.scrollTop) 
            {
                resultControl.scrollTop += 105;
            }
            break;
        case 38: // up
            resultControl.firstChild.rows[senderControl.selectedRow].className = "mn";
            if (senderControl.selectedRow != 0) senderControl.selectedRow--;
            resultControl.firstChild.rows[senderControl.selectedRow].className = "ms";
            if (resultControl.firstChild.rows[senderControl.selectedRow].offsetTop < 20 + resultControl.scrollTop) 
            {
                resultControl.scrollTop -= 105;
            }
            break;
        case 34: // page down
            resultControl.firstChild.rows[senderControl.selectedRow].className = "mn";
            senderControl.selectedRow += 14;
            if (senderControl.selectedRow > resultControl.firstChild.rows.length-1) senderControl.selectedRow = resultControl.firstChild.rows.length-1
            resultControl.firstChild.rows[senderControl.selectedRow].className = "ms";
            resultControl.scrollTop += 210; 
            break;
        case 33: // page up
            resultControl.firstChild.rows[senderControl.selectedRow].className = "mn";
            senderControl.selectedRow -= 14;
            if (senderControl.selectedRow < 0) senderControl.selectedRow = 0
            resultControl.firstChild.rows[senderControl.selectedRow].className = "ms";
            resultControl.scrollTop -= 210; 
            break;
        case 9:
        case 13: 
            hiddenControl.value = senderControl.hotelItems[senderControl.selectedRow].id;
            textBoxControl.value = senderControl.hotelItems[senderControl.selectedRow].name;
            e.keyCode = 9;
            break;
    }
}

if (typeof(Sys) != 'undefined') Sys.Application.notifyScriptLoaded();