﻿function testimageurl() {

    var a1 = document.getElementById('logoImg').src;
    var b1 = document.getElementById('progressImg'); //.src = './App_Themes/ThemeTripMate/Images/loading11.gif';

    var s = a1.replace('/en/hotels', '');

    
  
    return false;
}

function SendGoogleTransaction(mainReservationId, tpownerId, amountEur, quantity, cityName, stateId, countryId, reservationId, description, type) 
{
    var b = 0;

    try 
    {
        pageTracker._addTrans(mainReservationId, tpownerId, amountEur, '', '', cityName, stateId, countryId);
        pageTracker._addItem(mainReservationId, reservationId, description, type, amountEur, quantity);
        pageTracker._trackTrans();
        secondPageTracker._addTrans(mainReservationId, tpownerId, amountEur, '', '', cityName, stateId, countryId);
        secondPageTracker._addItem(mainReservationId, reservationId, description, type, amountEur, quantity);
        secondPageTracker._trackTrans();
    }
    catch (error) {
//       alert(error.Message);


    }
}


function InitTabContainer(id, data) {

    tabInfo = eval("(" + data + ")");

    if (typeof (tabInfo) == 'object') {

        // firefox count childnode with node containner
        var tabs;
        var shiftIndex = 0;

        if (typeof (navigator.product) != 'undefined') {
            shiftIndex++;
        } 

        tabs = $get(id).childNodes[shiftIndex];

        for (var i = 0; i < tabInfo.tabValues.length; i++) {
            if (tabInfo.tabValues[i].visible)
                tabs.childNodes[i + shiftIndex].className = tabInfo.css;
            else
                tabs.childNodes[i + shiftIndex].className = "nungTable";
        }
    }
}


function SetTabValue(sender, args) {

    var x = sender.get_id();
    var y = sender.get_activeTabIndex();
    StoreControlValue(x, y); 

    refreshMap();
}

//function clientActiveTabChanged(sender, args)
//{
//if ($get('<%=myControl2Test.ClientID %>').value=="1"){
//var tabs = $find('<%=TabContainer1.ClientID %>');
//tabs.set_activeTabIndex(0);
//}


/********************************************************************************************  
    
METHODS/VARIABLES TO STORE AND LOAD CONTROL VALUES FOR ASYNC DATA EXCHANGE 

/********************************************************************************************/
var controlValueList;
var marker_airport=new Array("a","b","c","d","e","f","g","h","i","g");
var index_airport=0;
var Tatol_airport=new Array();
var MCheck=0;
var City_Center_LaT;
var City_Center_LoN;
var Hotel_Select_LaT;
var Hotel_Select_LoN;
var ChecKAddAirport= true;
var Data_Airports;
var Air_Id_SelecT,Air_Name_SelecT;
var AiRSelect="";
var Data_AirportsTotal=new Array();
var Data_AirportsName=new Array();
var Air_Id_SelecTS= new Array();
var marker;
var getZoom = 12;


var airportPopUpID;
var mpeLoader;
var mpeLoaderID;

var mapItem;
var popUpAirportDeparture = false;

function MapItem(itemId, itemDescription, itemLatitude, itemLongitude, itemSelected)
{ 
    this.id = itemId;
    this.description = itemDescription;
    this.latitude = itemLatitude;
    this.longitude = itemLongitude;
    this.selected = itemSelected;
}

function ControlValue(id, value, typeName, visible, enabled, mandatory, promptFieldId, validationGroup, cssClass, parentId, evtChangeHandler)
{ 
    this.controlId = id;
    this.controlParentId = parentId;
    this.controlValue = value;
    this.controlTypeName = typeName;
    this.controlVisible = visible; 
    this.controlEnabled = enabled;
    this.controlMandatory = mandatory;
    this.controlPromptFieldId = promptFieldId;
    this.controlValidationGroup = validationGroup;
    this.controlCssClass = cssClass;
    this.controlHasChanged = false;
    this.controlChangeHandler = evtChangeHandler;
}


function RemoveCDATATags(s) 
{
    try {
        s = s.replace("<![CDATA[", '');
        s = s.replace("]]>", '');
     }
     catch (error) {}
     return s;
}

function InitClientManagedControls(values) {
   

    var controlList = eval("(" + values + ")"); 
        
    if (!controlValueList)
        controlValueList = new Array();

    for (var i = 0; i < controlList.managedControls.length; i++) {

        var position = FindControlPosition(controlList.managedControls[i].Id);

        controlList.managedControls[i].Va = RemoveCDATATags(controlList.managedControls[i].Va);
        

        if (position != -1) {
            controlValueList[position].controlValue = controlList.managedControls[i].Va;
            controlValueList[position].controlTypeName = controlList.managedControls[i].Ty;
            controlValueList[position].controlVisible = controlList.managedControls[i].Vi;
            controlValueList[position].controlEnabled = controlList.managedControls[i].En;
            controlValueList[position].controlMandatory = controlList.managedControls[i].Md;
            controlValueList[position].controlPromptFieldId = controlList.managedControls[i].Pf;
            controlValueList[position].controlValidationGroup = controlList.managedControls[i].Vg;
            controlValueList[position].controlCssClass = controlList.managedControls[i].Cc;
            controlValueList[position].controlHasChanged = false;
            if (controlList.managedControls[i].Ty != "tpg")
                UpdateControlValue(controlList.managedControls, i, position);
        }
        else {
            controlValueList.push(new ControlValue(controlList.managedControls[i].Id,
                                                   controlList.managedControls[i].Va,
                                                   controlList.managedControls[i].Ty,
                                                   controlList.managedControls[i].Vi,
                                                   controlList.managedControls[i].En,
                                                   controlList.managedControls[i].Md,
                                                   controlList.managedControls[i].Pf,
                                                   controlList.managedControls[i].Vg,
                                                   controlList.managedControls[i].Cc,
                                                   controlList.managedControls[i].Pi,
                                                   controlList.managedControls[i].Eh));
            if (controlList.managedControls[i].Ty != "tpg")

                UpdateControlValue(controlList.managedControls, i, controlValueList.length - 1);
        }

        SetMandatoryPromptField(controlList.managedControls[i]);
    }


}

function SetMandatoryPromptField(mc) {

    try {
        if (mc.Pf.length > 0) {
            var lbl = $get(mc.Pf);
            if (mc.Md) {
                if (lbl.innerHTML.lastIndexOf('*') != lbl.innerHTML.length - 1)
                    lbl.innerHTML += '*';
            }
            else {
                if (lbl.innerHTML.lastIndexOf('*') != -1)
                    lbl.innerHTML = lbl.innerHtml.replace('*', '');
            }
        }
    }
    catch (error) { }
}

function FindControlPosition(id)
{
    var position = -1;
    for (var i = 0; controlValueList != null && i < controlValueList.length && position == -1; i++)
    {
        if (controlValueList[i].controlId == id)
            position = i;
    }
    return position;
}

function StoreControlValue(id, value)
{
    var position = FindControlPosition(id);
    if (position != -1) {
        controlValueList[position].controlValue = value;
        controlValueList[position].hasChanged  = true;
    }
    
//    else
//        alert("Unregistered control : " + id);
}

function GetControlValue(id)
{
    var position = FindControlPosition(id);
    if (position != -1)
       return controlValueList[position].controlValue;
    else return "";
}

function ControlValues2JSONString(ctrl)
{
    var s = "{";
    if (ctrl)
        s = s + "pbControl:" + ctrl.id + ",";
    s = s + "controlValues:[";
    var count = 0;
    for (var i = 0; i < controlValueList.length; i++)
    {
        if (controlValueList[i].hasChanged)
        {
            if (count > 0) 
                s = s + ",";
            s = s + '{"Id":"' + controlValueList[i].controlId + '" ';
            s = s + ',"Va":"' + controlValueList[i].controlValue + '" ';
            s = s + ',"Vi":"' + controlValueList[i].controlVisible + '" ';
            s = s + ',"En":"' + controlValueList[i].controlEnabled + '"}';
            count++;

            controlValueList[i].hasChanged = false;
        }
    }
    s = s + "]}";
    return s;
}

function GetHelperFieldValue(pobjID)
{
    var result = GetControlValue(pobjID);
}

/*********************************************************************************************

FUNCTIONS TO HANDLE DATE CONTROLS DATA CHANGE

**********************************************************************************************/
function FormatDate(dt) {
    var result = "";
    if (dt)
    {
        if (dt.getDate() < 10)
            result += "0";
        result += dt.getDate().toString() + "-";
        if (dt.getMonth() < 9)
            result += "0";
        result += (dt.getMonth() + 1).toString() + "-";
        result += dt.getFullYear().toString();
    }
    return result;
}    

function ParseDate(s){
    if (s)
    {
        var parts = s.split("-");
        if (parts.length == 3)
            return new Date(parseInt(parts[2], 10),parseInt(parts[1], 10)-1,parseInt(parts[0], 10));
        else return null;
    }
    else return null;
}


function HandleDateChangeMinMax(txtDate, ceID, absMin, absMax, ctrlIDMin, ceIDMin, ctrlIDMax, ceIDMax, canBeEqual)
{
    var dtCurrent = ParseDate(txtDate.value);
    if (dtCurrent)
    {
        var ceMin = $find(ceIDMin);
        var ceMax = $find(ceIDMax);
    
        var dtAbsMin = ParseDate(absMin);
        var dtAbsMax = ParseDate(absMax);
        var dtCtrlMin = null;
        if  (ctrlIDMin && ctrlIDMin.length > 0)
            dtCtrlMin = ParseDate($get(ctrlIDMin).value);
        var dtCtrlMax = null;
        if  (ctrlIDMax && ctrlIDMax.length > 0)
            dtCtrlMax = ParseDate($get(ctrlIDMax).value);

        if (dtAbsMin && dtCurrent < dtAbsMin)
            dtCurrent = dtAbsMin;
            
        if (dtAbsMax && dtCurrent > dtAbsMax)
            dtCurrent = dtAbsMax;

        if (dtCtrlMin && dtCurrent <= dtCtrlMin)
        {
            var ctrlMin = $get(ctrlIDMin);
            var tmpDate = new Date(dtCurrent.getFullYear(), dtCurrent.getMonth(), dtCurrent.getDate());

            if (canBeEqual)
                tmpDate.setDate(tmpDate.getDate());
            else tmpDate.setDate(tmpDate.getDate() - 1);
            ctrlMin.value = FormatDate(tmpDate);
            ceMin.set_selectedDate(tmpDate);
            StoreControlValue(ctrlIDMin, ctrlMin.value);  
        }
        
        if (dtCtrlMax && dtCurrent >= dtCtrlMax)
        {
            var ctrlMax = $get(ctrlIDMax);
            var tmpDate = new Date(dtCurrent.getFullYear(), dtCurrent.getMonth(), dtCurrent.getDate());
            if (canBeEqual)
                tmpDate.setDate(tmpDate.getDate());
            else tmpDate.setDate(tmpDate.getDate() + 1);
            ctrlMax.value = FormatDate(tmpDate);
            ceMax.set_selectedDate(tmpDate);
            StoreControlValue(ctrlIDMax, ctrlMax.value);  

        }
    }
    
    txtDate.value = FormatDate(dtCurrent);
    $find(ceID).set_selectedDate(dtCurrent);
    StoreControlValue(txtDate.id, txtDate.value);  
        
    return true;
}

/**************************************************************************************/

function ToggleVisibility(chb, pnlID, showOn) {

    var pnl = $get(pnlID);
    if (chb.checked)
        StoreControlValue(chb.id, "TRUE");
    else StoreControlValue(chb.id, "FALSE");

    
    if ((chb.checked && showOn == 'TRUE') || (!chb.checked && showOn == 'FALSE')) {
        pnl.style.display = 'none';
    }
    else {
        pnl.style.display = "";
        pnl.className = "";
    }
}   

function ValuePairSelected(source, eventArgs)
{
    StoreControlValue(source.get_id(), eventArgs.get_value());  
}

function ValuePairSelectedLauncher(source, eventArgs) {
    $get(hfAutoCompleteLauncherClientID).value = eventArgs.get_value();
}


function CustomerSelected(source, eventArgs) {
    StoreControlValue(source.get_id(), eventArgs.get_value());
    return AsyncServerMessage("msgLoadPerson", eventArgs.get_value() + '|' + source.get_id(), ShowResponseDetails, false);
}

function MasterHotelSelected(source, eventArgs) {
    StoreControlValue(source.get_id(), eventArgs.get_value());
    return AsyncServerMessage("msgMasterHotelSelected", eventArgs.get_value(), ShowResponseDetails, false);
}


function LocationSelected(source, eventArgs)
{
    StoreControlValue(source.get_id(), eventArgs.get_value());
    var data = source.get_id() + '|' + eventArgs.get_value();
    AsyncServerMessage('LocationSelected', data, ShowResponseDetails, false);
    return false;
}

function HotelSelected(source, eventArgs)
{
    StoreControlValue(source.get_id(), eventArgs.get_value());  
}

function HandleChbBookerIsGuestClicked(chb)
{
    if (chb.checked)
        StoreControlValue(chb.id, "TRUE");
    else StoreControlValue(chb.id, "FALSE");
    SendCommandMsg(chb, 'msgChangeBookerIsGuest', false);
}


function HandleFilterContext(cbx, acClientID, txtClientID)
{
    var ac = $find(acClientID);
    ac.set_contextKey(cbx.value);
    
    var txt = $get(txtClientID);
    txt.innerText = "";

    StoreControlValue(cbx.id, cbx.value);  
    StoreControlValue(txt.id, txt.innerText);  
}
// NOTE ::
function HandleAirportMapSelected(cbxAirportID, cbxLocationID) {
    var cbxAirport = $get(cbxAirportID);
    var cbxLocation = $get(cbxLocationID);
    var location = cbxLocation.options[cbxLocation.selectedIndex].text;
    StoreControlValue(cbxAirportID, cbxAirport.value);
    TableLoadServices.JSGetAirportCoordinates(cbxAirport.value, location, AirportPopUpDistance, SetSelectedMarker);
}

// NOTE ::
function HandleAirportMapSelected(tableID, ctrl, numberImgID) {
    var table = $get(tableID);
    var selectedIndex = GetBodyRowIndex(table, ctrl);
    var currentIndex = -1;

    for (var i = 0; i < table.rows.length; i++)
        if (mapItems[i].selected)
            currentIndex = i;

    mapItems[selectedIndex].selected = true;
    var img = FindControl(table.rows[selectedIndex], numberImgID);
    var imagePath = document.getElementById('absImagePath');
    if (imagePath)
        img.src = imagePath.value + "ImageMarkerOnMap.aspx?MarkerNumber=" + (selectedIndex + 1).toString() + "&MarkerName=icon_number_airport_select.png";

    if (currentIndex != -1) {
        mapItems[currentIndex].selected = false;
        var img = FindControl(table.rows[currentIndex], numberImgID);
        if (imagePath)
            img.src = imagePath.value + "ImageMarkerOnMap.aspx?MarkerNumber=" + (currentIndex + 1).toString() + "&MarkerName=icon_number_airport.png";
    }

    PlotAirportsOnMap(mapItems, false);
}

// NOTE ::
function PlotAirportsOnMap(mapItems, init) {
    var Gcenter_Lat = 0;
    var Gcenter_Lon = 0;

    if (mapItems.length > 0) {
        if (init)
            initialize();

        var maxLat = mapItems[0].latitude;
        var maxLng = mapItems[0].longitude;
        var minLat = mapItems[0].latitude;
        var minLng = mapItems[0].longitude;
        var imagePath = document.getElementById('absImagePath');

        for (j = 0; j < mapItems.length; j++) {
            var gIcon = new GIcon(G_DEFAULT_ICON);

            gIcon.iconSize = new GSize(32, 41);
            if (imagePath)
                gIcon.image = imagePath.value + "ImageMarkerOnMap.aspx?MarkerNumber=" + (j + 1) + "&MarkerName=marker_airport.png";

            if (mapItems[j].selected) {
                gIcon.iconSize = new GSize(32, 41);
                if (imagePath)
                    gIcon.image = imagePath.value + "ImageMarkerOnMap.aspx?MarkerNumber=" + (j + 1) + "&MarkerName=marker_airport_select.png";
                Gcenter_Lat = mapItems[j].latitude;
                Gcenter_Lon = mapItems[j].longitude;
            }

            var FillAirportLat = mapItems[j].latitude;
            var FillAirportLng = mapItems[j].longitude;
            var FillAirportTitle = mapItems[j].description;
            var marker = new GMarker(new GLatLng(FillAirportLat, FillAirportLng),
                                        { title: mapItems[j].description, icon: gIcon });
            map.addOverlay(marker);

            maxLat = Math.max(maxLat, mapItems[j].latitude);
            maxLng = Math.max(maxLng, mapItems[j].longitude);
            minLat = Math.min(minLat, mapItems[j].latitude);
            minLng = Math.min(minLng, mapItems[j].longitude);
        }

        var swLatLng = new GLatLng(minLat, minLng);
        var neLatLng = new GLatLng(maxLat, maxLng);
        var center = new GLatLng((maxLat + minLat) / 2, (maxLng + minLng) / 2);
        var getBound = new GLatLngBounds(swLatLng, neLatLng);

        map.setCenter(center, map.getBoundsZoomLevel(getBound) - 2);
    }
    else {
        if (Gcenter_Lat != 0 && Gcenter_Lon != 0) {
            map.setCenter(new GLatLng(Gcenter_Lat, Gcenter_Lon), map.getBoundsZoomLevel(getBound) - 2)
        }
        else {
            map.setCenter(center, map.getBoundsZoomLevel(getBound) - 2);
        }
    }
    try {
        if (map.getBoundsZoomLevel(getBound) > getZoom) {
            if (Gcenter_Lat != 0 && Gcenter_Lon != 0) {
                map.setCenter(new GLatLng(Gcenter_Lat, Gcenter_Lon), getZoom)
            }
            else {
                map.setCenter(center, getZoom);
            }
        }
    }
    catch (err) {
        var txtErr = err;
        alert(txtErr);
    }
}

// NOTE ::
function PopUpAirportFillTable() {

    if (request.readyState == 4 && request.status == 200) {
        var data = eval("(" + request.responseText + ")");
        var managedControls = data.managedControls;

        UpdateControlValues(managedControls);

        var tbl = null;

        for (var i = 0; i < managedControls.length; i++) {
            if (managedControls[i].Id == "tblRepeaterAirports")
                tbl = managedControls[i].Jd;
        }

        if (tbl && !tbl.isDummy) {
            var posDescription = -1;
            var posLatitude = -1;
            var posLongitude = -1;
            var posSelected = -1;
            var posId = -1;

            for (var i = 0; i < tbl.columns.length; i++) {
                if (tbl.columns[i] == "rbtSelected") posSelected = i;
                else if (tbl.columns[i] == "lblLatitude") posLatitude = i;
                else if (tbl.columns[i] == "lblLongitude") posLongitude = i;
                else if (tbl.columns[i] == "lblAirportName") posDescription = i;
                else if (tbl.columns[i] == "airportId") posId = i;
            }

            mapItems = new Array();

            for (var i = 0; i < tbl.rows.length; i++) {
                mapItems.push(new MapItem(tbl.rows[i][posId], tbl.rows[i][posDescription], tbl.rows[i][posLatitude],
                                          tbl.rows[i][posLongitude], tbl.rows[i][posSelected]));
            }
            PlotAirportsOnMap(mapItems, true);
        }
        else {
            $find(airportPopUpID).hide();
            alert('No airports found for this location !!!');
        }
    }
}

// NOTE ::
function OkBtnAirportPopUp() {
    var currentIndex = -1;

    for (var i = 0; i < mapItems.length; i++)
        if (mapItems[i].selected)
            currentIndex = i;

    var s = mapItems[currentIndex].id;

    if (popUpAirportDeparture)
        s += "|D";
    else
        s += "|A";

    return AsyncServerMessage("msgAirportSelected", s, ShowResponseDetails, false);
}

// NOTE ::
function SendValidatedCommandMessage(ctrl, msg, asyncCallback) {
alert('is outdated message and needs to be replaced');

    mpeLoader = $find('mpeLoadingBehaviorID1');

    if (mpeLoader)
        mpeLoader.show();

    return AsyncServerMessage(msg, ControlValues2JSONString(), ShowValidationResponse, false);
}

// NOTE ::
function ShowValidationResponse() {
    if (request.readyState == 4 && request.status == 200) {
        var result = eval("(" + request.responseText + ")");

        if (result.validationError == 'N')
            CallPostBack(result.triggerControlID, '');
        else {
            if (result.mandatoryFields) {
                for (var i = 0; i < result.mandatoryFields.length; i++) {
                    var ctl = $get(result.mandatoryFields[i].id);

                    if (ctl)
                        ctl.className = result.mandatoryFields[i].value;
                }
            }
            if (result.businessRules) {
                for (var i = 0; i < result.businessRules.length; i++) {
                    var ctl = $get(result.businessRules[i].id);

                    if (ctl)
                        ctl.innerHTML = result.businessRules[i].value;
                    else alert(result.businessRules[i].value);
                    //                        ctl.value = result.businessRules[i].value;
                }
            }
        }
        if (mpeLoader)
            mpeLoader.hide();
    }
}

// NOTE ::
function InitAirportPopUp(mepID, acLocationID, msgId, departure) {
    var value = GetControlValue(acLocationID);

    if (value.length > 0) {
        popUpAirportDeparture = departure;
        $find(mepID).show();
        airportPopUpID = mepID;

        return AsyncServerMessage(msgId, ControlValues2JSONString(), PopUpAirportFillTable, false);
    } else return false;
}

// NOTE ::
function InitAirportPopUpAircraft(mepID, tableID, lbtAirport, msgId) {
    mpeLoader = $find(mepID);
    if (mpeLoader)
        mpeLoader.show();

    airportPopUpID = mepID;

    var table = $get(tableID);
    var selectedIndex = GetBodyRowIndex(table, lbtAirport);
    if (table != null && selectedIndex != null) {
        SetRowStyles(table.id, selectedIndex);
        StoreControlValue(table.id, selectedIndex);

        return AsyncServerMessage(msgId, ControlValues2JSONString(), PopUpAirportFillTable, true);
    }
    else return false;
}

// NOTE ::
function SendMsgActiveStepChange(ctrl, eventName) {
    postbackCtrlId = ctrl.uniqueID;

    return AsyncServerMessage(eventName, ControlValues2JSONString(), PostbackServerResponse, false);
}

// NOTE ::
function PostbackServerResponse() {
    if (request.readyState == 4 && request.status == 200) {
        CallPostBack(postbackCtrlId, '');
    }
}

function StoreCbxValue(cbxID)
{
    StoreControlValue(cbxID, $get(cbxID).value);
}

function FillCascadedControls(result){
    var options = eval("(" + result + ")");
    
    for (i = 0; i < options.dataTable.length; i++)
    {
        cbx = $get(options.dataTable[i].controlId);
        cbx.options.length=0;

        if (options.dataTable[i].rows.row.length > 0)
        {
            for (j = 0; j < options.dataTable[i].rows.row.length; j++) 
            {
                var option = new Option(options.dataTable[i].rows.row[j].val, options.dataTable[i].rows.row[j].id);
                cbx.options[cbx.options.length] = option;
            }
        }
        StoreControlValue(options.dataTable[i].controlId, cbx.value);
        cbx.disabled = false;    
    }
    return ;
}

function CascadedChangeHandler(triggerId, functionId, jsControls)
{
    var cbx = $get(triggerId);

    if (cbx.value != GetControlValue(triggerId))
    {
        StoreControlValue(triggerId, cbx.value);

        var controlInfo = eval("(" + jsControls + ")");

        var cascKeys = new Array();
        var cascControlIds = new Array();
    
        for (i = 0; i < controlInfo.cascControls.length; i++)
        {
            $get(controlInfo.cascControls[i].controlID).disabled = true;
            cascKeys.push(controlInfo.cascControls[i].id);
            cascControlIds.push(controlInfo.cascControls[i].controlID);
        }

        var valKeys = new Array();
        var values = new Array();
    
        for (i = 0; i < controlInfo.valControls.length; i++)
        {
            valKeys.push(controlInfo.valControls[i].id);
            $get(controlInfo.valControls[i].controlID).value;
            values.push($get(controlInfo.valControls[i].controlID).value);
        }

        TableLoadServices.HandleCascadedControls(functionId , valKeys, values, cascKeys, 
                                                    cascControlIds, FillCascadedControls);
    }
}



function HandleRentalCarLocationChange(cbx, msgId) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    StoreControlValue(cbx.id, cbx.value);
    return AsyncServerMessage(msgId, ControlValues2JSONString(), ShowResponseDetails, false);
}


function HandleRadioButtonInRepeater(chb, msgId) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    var table = GetParentTable(chb);

    var startIndex = FirstDataRow(table);
    var endIndex = LastDataRow(table);
    var itemIndex = GetRowIndex(chb);

    for (var i = startIndex; i <= endIndex; i++) {
        for (var j = 0; j < table.rows[i].cells.length; j++) {
            var inputType = table.rows[i].cells[j].getElementsByTagName("input");
            for (var k = 0; k < inputType.length; k++) {
                if (typeof (inputType[k]) != 'undefined') {
                    if (inputType[k].type == "radio") {
                        StoreControlValue(inputType[k].id, "FALSE");
                    }
                }
            }
        }
    }

    if (chb.checked)
        StoreControlValue(chb.id, "TRUE");
    else StoreControlValue(chb.id, "FALSE");

    return AsyncServerMessage(msgId, ControlValues2JSONString(), ShowResponseDetails, false);
}


function HandleFilterTableRequest(ctlId, tableId) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    var ctl = $get(ctlId);
    StoreControlValue(ctl.id, ctl.checked);
    var index = GetRowIndex(ctl);
    return AsyncServerMessage("msgFilterList" + tableId, index.toString() + '|' + ctl.checked, ShowResponseDetails, false);
}

function HandleFilterTableTdRequest(ctlId, tableId) {

    var ctl = $get(ctlId);
    StoreControlValue(ctl.id, ctl.checked);
    var index = GetColumnIndex(ctl);
    return AsyncServerMessage("msgFilterList" + tableId, index.toString() + '|' + ctl.checked, ShowResponseDetails, false);
}

function HandleFilterCbxTableRequest(ctlId, tableId) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    StoreCbxValue(ctlId)
    return AsyncServerMessage("msgFilterList" + tableId, $get(ctlId).value, ShowResponseDetails, false);
}
/************************************************************

FOR MANAGE FUNCTIONS
to
************************************************************/



/************************************************************/

var request;
var requestReady = false;



function GetNewRequest()
{
    if (window.ActiveXObject)
        request = new ActiveXObject('Msxml2.XMLHTTP');
    else request = new XMLHttpRequest();
}


/**************  Raising and capturing results from async server events  **************************/

/****************************************************************
Approved async request methods
*****************************************************************/
function ValidateMandatoryFields(msg) {
    var ok = true;
    var textMandatory="";
    for (var i = 0; i < controlValueList.length; i++)
    {
        var mustValidate = false;   
        if (controlValueList[i].controlMandatory)
        {
            if (controlValueList[i].controlValidationGroup.length == 0)
                mustValidate = true;
            else
            {
                msgList = controlValueList[i].controlValidationGroup.split('|');
                for (var j = 0; j < msgList.length; j++)
                {
                    if (msgList[j] == msg)
                    {
                        mustValidate = true;
                    }
                }
            }
        }
        if (mustValidate) 
        {
            if (controlValueList[i].controlValue.length == 0) {
                    ok = false;
                    textMandatory += FindManagedControl(controlValueList[i].controlPromptFieldId).innerHTML + "\r\n";
            }
//            else if (controlValueList[i].controlValue == 0) {
//                ok = false;
//                textMandatory += FindManagedControl(controlValueList[i].controlPromptFieldId).innerHTML + "\r\n";
//            }
            else
                if (controlValueList[i].controlTypeName == 'cbx') {
                    if (controlValueList[i].controlValue == '?') {
                        ok = false;
                        textMandatory += FindManagedControl(controlValueList[i].controlPromptFieldId).innerHTML;
                        if (controlValueList[i].controlId.lastIndexOf("cbxDateOfBirth") > 0) {
                            var textDateOfBirth = controlValueList[i].controlId;
                            textDateOfBirth = textDateOfBirth.substring(textDateOfBirth.lastIndexOf('cbxDateOfBirth')).replace("cbxDateOfBirth", "");
                            textMandatory += " " + textDateOfBirth;
                        }
                        textMandatory += "\r\n";
                    }
                }
        }
    }

    if (!ok)
        alert($.i18n._("mandatory field error !") + "\r\n" + textMandatory);
//            controlValueList[position].controlPromptFieldId = controlList.managedControls[i].Pf;
//            controlValueList[position].controlValidationGroup = controlList.managedControls[i].Vg;
    return ok;
}


function AsyncServerMessage(id, data, myCallBackFunction, doPostback)
{
    if (request == null)
        GetNewRequest();
    request.open("POST", document.location.href, true);
    request.onreadystatechange = myCallBackFunction;
    request.setRequestHeader('asyncServerMessage', 'true');
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var body = id.toString() + '|' + data.toString();
    request.send(body);
    return doPostback;
}

function SendCommandMsg(ctrl, msg, asyncCallback) {
    if (ValidateMandatoryFields(msg)) {
        mpeLoader = $find('mpeLoadingBehaviorID1');

        ModifyLoadingPopup(msg);

        if (mpeLoader)
            mpeLoader.show();
        if (asyncCallback)
            return AsyncServerMessage(msg, ControlValues2JSONString(ctrl), ShowResponseDetails, false);
        return AsyncServerMessage(msg, ControlValues2JSONString(), ShowResponseDetails, false);
    }
    else return false;
}



function SendCommandMsgTable(ctrl, msg, asyncCallback, selectOff)
{
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();
    ModifyLoadingPopup(msg);
        
    var table = GetParentTable(ctrl);
    var selectedIndex = GetBodyRowIndex(table, ctrl);
    if (table != null && selectedIndex != null)
    {
        if (!selectOff) {
            SetRowStyles(table.id, selectedIndex);
        }
        StoreControlValue(table.id, selectedIndex);
        
        if (asyncCallback)
            return AsyncServerMessage(msg, ControlValues2JSONString(ctrl), ShowResponseDetails, false);
        else 
            return AsyncServerMessage(msg, ControlValues2JSONString(), ShowResponseDetails, false);
    }
    else return false;
}




function HandleMatrixLeftClick(ctrl, msg) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;

    if (table != null && rowIndex != null && columnIndex != null) {
        return AsyncServerMessage(msg, rowIndex.toString() + '|' + columnIndex.toString(), ShowResponseDetails, false);
    }
    else return false;
}

function HandleMatrixClick(ctrl) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();

    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;

    if (table != null && rowIndex != null && columnIndex != null) {
        return AsyncServerMessage("msgMatrixClick", rowIndex.toString() + '|' + columnIndex.toString(), ShowResponseDetails, false);
    }
    else return false;
}

function HandleMatrixHeaderMouseOver(ctrl) {
    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;

    if (rowIndex == -1) {
        for (var i = 1; i < table.rows.length; i++) {
//            if (table.rows[i].cells[columnIndex].className != "nungTable" && table.rows[i].cells[columnIndex].className != "selectedMatrixCell" && $(table.rows[i].cells[columnIndex]).hasClass('True'))
            //                table.rows[i].cells[columnIndex].className = 'matrixOver';

            if ($(table.rows[i].cells[columnIndex]).hasClass('matrixCell'))
                $(table.rows[i].cells[columnIndex]).addClass('matrixOver');
        }
    } else if (columnIndex == 0) {
        var tbody = table.tBodies[0];
        for (var i = 1; i < tbody.rows[rowIndex].cells.length; i++) {
//            if (tbody.rows[rowIndex].cells[i].className != "nungTable" && tbody.rows[rowIndex].cells[i].className != "selectedMatrixCell")
            //                tbody.rows[rowIndex].cells[i].className = 'matrixOver';

            if ($(tbody.rows[rowIndex].cells[i]).hasClass('matrixCell'))
                $(tbody.rows[rowIndex].cells[i]).addClass('matrixOver');
        }
    }
    
    return true;
}

function HandleMatrixHeaderMouseOver2(ctrl, ctrlId) {
    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;
    var tblTarget = document.getElementById(ctrlId);

    if (rowIndex == -1) {
        for (var i = 0; i < tblTarget.rows.length; i++) {
            if ($(tblTarget.rows[i].cells[columnIndex]).hasClass('matrixCell'))
                $(tblTarget.rows[i].cells[columnIndex]).addClass('matrixOver');
        }
    } else if (columnIndex == 0) {
        var tbody = tblTarget.tBodies[0];
        for (var i = 0; i < tbody.rows[rowIndex].cells.length; i++) {
            if ($(tbody.rows[rowIndex].cells[i]).hasClass('matrixCell'))
                $(tbody.rows[rowIndex].cells[i]).addClass('matrixOver');
        }
    }

    return true;
}

function HandleMatrixHeaderMouseOut(ctrl) {
    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;

    if (rowIndex == -1) {
        for (var i = 1; i < table.rows.length; i++) {
//            if (table.rows[i].cells[columnIndex].className == "matrixOver")
            //table.rows[i].cells[columnIndex].className = 'matrixCell';

            if ($(table.rows[i].cells[columnIndex]).hasClass('matrixOver'))
                $(table.rows[i].cells[columnIndex]).removeClass('matrixOver');
        }
    } else if (columnIndex == 0) {
        var tbody = table.tBodies[0];
        for (var i = 1; i < tbody.rows[rowIndex].cells.length; i++) {
//            if (tbody.rows[rowIndex].cells[i].className == "matrixOver")
            //                tbody.rows[rowIndex].cells[i].className = 'matrixCell';

            if ($(tbody.rows[rowIndex].cells[i]).hasClass('matrixOver'))
                $(tbody.rows[rowIndex].cells[i]).removeClass('matrixOver');

        }
    }

    return true;
}

function HandleMatrixHeaderMouseOut2(ctrl, ctrlId) {
    var table = GetParentTable(ctrl);
    var rowIndex = GetBodyRowIndex(table, ctrl);
    var columnIndex = ctrl.cellIndex;
    var tblTarget = document.getElementById(ctrlId);

    if (rowIndex == -1) {
        for (var i = 0; i < tblTarget.rows.length; i++) {
            if ($(tblTarget.rows[i].cells[columnIndex]).hasClass('matrixOver'))
                $(tblTarget.rows[i].cells[columnIndex]).removeClass('matrixOver');
        }
    } else if (columnIndex == 0) {
        var tbody = tblTarget.tBodies[0];
        for (var i = 0; i < tbody.rows[rowIndex].cells.length; i++) {
            if ($(tbody.rows[rowIndex].cells[i]).hasClass('matrixOver'))
                $(tbody.rows[rowIndex].cells[i]).removeClass('matrixOver');

        }
    }

    return true;
}


function ModifyLoadingPopup(msg) {
    var loadingTxt = document.getElementById('loadingTxt');
    switch (msg) {
        default:
//            loadingTxt.innerHTML = 'We are processing your request...';
            break;
    }
}

function HideMPELoader()
{
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.hide();
}

/**********  Async Response Handling Methods *******************************************************/

function DefaultServerEventResponse()
{
    if (request.readyState == 4 && request.status == 200)
    {
    }
}


function CallPostBack(eventTarget, eventArgument)
{
//    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
//    {
        __doPostBack(eventTarget, eventArgument);
//    }
//    else 
//    {    
//        var theForm;
//        theForm = document.forms["Form1"];
//        theForm.__EVENTTARGET.value = eventTarget.split("$").join(".");
//        theForm.__EVENTARGUMENT.value = eventArgument;
//        theForm.submit();
//    }
}

function ShowResponseDetails() 
{
    if (request.readyState == 4 && request.status == 200)
    {
        try
        {
            var exception = false;


            var result = eval("(" + request.responseText + ")");
           
            var x = result.pbControl;
            var y = result.error;
            
            if (!result.error && result.pbControl)
            {
              //  ShowControlValues2(result.controlValues) 
                CallPostBack(result.pbControl, ControlValues2JSONString());
          //      mpeLoader = $find('mpeLoadingBehaviorID1');
            }
            else 
            {
                try {
                    //ShowControlValues(result.managedControls);
                    UpdateControlValues(result.managedControls) 
  //        window.scrollBy(0, 500000);
  
                }
                catch (errorShow)
                {
                }
                try {

                    if (mpeLoader)
                        mpeLoader.hide();

                    ShowStatusMessages(result.statusMessages) 
                }
                catch (errorShow)
                {
                }
            }

     
        }
        catch (error) {
            exception = true;
        }

        // check if result is not object and mpeLoader is show
        // to hide mpeLoader
        if (typeof (result) == 'object') {
            if (mpeLoader && !result.pbControl) {
                mpeLoader.hide();
            }
        }
        if (exception && mpeLoader) {
                mpeLoader.hide();
        }
    }    
}

function UpdateControlValues(managedControls) {

    for (var i = 0; i < managedControls.length; i++) {
        var position = FindControlPosition(managedControls[i].Id);
        managedControls[i].Va = RemoveCDATATags(managedControls[i].Va);
        
        try {
            if (position != -1) {
                controlValueList[position].controlValue = managedControls[i].Va;
                controlValueList[position].controlTypeName = managedControls[i].Ty;
                controlValueList[position].controlVisible = managedControls[i].Vi;
                controlValueList[position].controlEnabled = managedControls[i].En;
                controlValueList[position].controlMandatory = managedControls[i].Md;
                controlValueList[position].controlPromptFieldId = managedControls[i].Pf;
                controlValueList[position].controlValidationGroup = managedControls[i].Vg;
                controlValueList[position].controlCssClass = managedControls[i].Cc;
                controlValueList[position].controlHasChanged = false;                
            }
            else {
                controlValueList.push(new ControlValue(managedControls[i].Id,
                                                   managedControls[i].Va,
                                                   managedControls[i].Ty,
                                                   managedControls[i].Vi,
                                                   managedControls[i].En,
                                                   managedControls[i].Md,
                                                   managedControls[i].Pf,
                                                   managedControls[i].Vg,
                                                   managedControls[i].Cc,
                                                   managedControls[i].Pi));
                position = controlValueList.length - 1;
            }
            UpdateControlValue(managedControls, i, position);
        }
        catch (error)
        { }

        SetMandatoryPromptField(managedControls[i]);
    }
}

function UpdateControlValue(managedControls, sourcePostion, targetPosition)
{
    switch (controlValueList[targetPosition].controlTypeName) {
        case "lbl":
            UpdateLabel(managedControls[sourcePostion]);
            break;
        case "cbx":
            UpdateCombobox(managedControls[sourcePostion]);
            break;
        case "txt":
            UpdateText(managedControls[sourcePostion]);
            break;
        case "lbt":
            UpdateLinkButton(managedControls[sourcePostion]);
            break;
        case "img":
            UpdateImage(managedControls[sourcePostion]);
            break;
        case "himg":
            UpdateHtmlImage(managedControls[sourcePostion]);
            break;
        case "rbt":
            UpdateRadioButton(managedControls[sourcePostion]);
            break;
        case "ibt":
            UpdateImageButton(managedControls[sourcePostion]);
            break;
        case "chb":
            UpdateCheckBox(managedControls[sourcePostion]);
            break;
        case "tbc":
            UpdateTabControl(managedControls[sourcePostion]);
            break;
        case "pnl":
            UpdatePanel(managedControls[sourcePostion]);
            break;
        case "btn":
            UpdateButton(managedControls[sourcePostion]);
            break;
        case "tpg":
            UpdateTablePager(managedControls[sourcePostion]);
            break;
        case "ace":
            UpdateAutoCompleteExtender(managedControls[sourcePostion]);
            break;
        case "cpe":
            UpdateCollapsiblePanelExtender(managedControls[sourcePostion]);
            break;
        case "wud":
            UpdateWUDateControl(managedControls[sourcePostion]);
            break;
        case "wut":
            UpdateWUTimeControl(managedControls[sourcePostion]);
            break;
        case "map":
            UpdateMapControl(managedControls[sourcePostion]);
            break;
        case "edt":
            UpdateEditorControl(managedControls[sourcePostion]);
            break;
        case "hf":
            UpdateHiddenFieldControl(managedControls[sourcePostion]);
            break;
    }

}

function FindManagedControl(id) {
    var ctl = $get(id);
    if (!ctl)
        ctl = $find(id);
    return ctl;   
}

function UpdateLabel(controlInfo) {
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) 
    {
        ctl.innerHTML = controlInfo.Va;
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}




function UpdateCombobox(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        //ctl.value = controlInfo.Va;  ///Note state and city no default value

        if (!ctl.onchange)
            ctl.onchange = function () { MainTrack_OnCbxChange(ctl) };

        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
        if (controlInfo.Jd)
            UpdateCbxData(ctl, controlInfo.Jd);

        ctl.value = controlInfo.Va; ///Note Set default value After OK
    }
}

function UpdateText(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.value = controlInfo.Va;
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");

        if (!ctl.onchange)
            ctl.onchange = function () { MainTrack_OnTxtChange(ctl) };

        if (!ctl.onblur)
            ctl.onblur = function () { MainTrack_OnTxtChange(ctl) };

        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateLinkButton(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.innerHTML = controlInfo.Va;
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateImage(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.src = controlInfo.Va;
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateHtmlImage(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.src = controlInfo.Va;
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function AddRestaurantAreaHandler(ctl) {
    var tableId = GetTableId(ctl);
    return function () { HandleListRbtRestaurantArea(ctl, 'msgRestaurantAreaSelected') };
}

function UpdateRadioButton(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {

        if (!ctl.onclick) {
            if (controlInfo.Eh == 'filter')
                ctl.onclick = AddListFilterHandler(ctl);
            else
                ctl.onclick = function () { MainTrack_Toolbar_OnRbtClick(ctl) };
        }
        ctl.checked = controlInfo.Va.toString().toUpperCase() == "TRUE";
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateImageButton(controlInfo) {
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function AddListFilterHandler(ctl)
{
    var tableId = GetTableId(ctl);

    return function () { HandleFilterTableRequest(ctl.id, tableId) };
}


function UpdateCheckBox(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {

        if (!ctl.onclick)
        {
            if (controlInfo.Eh == 'filter')
                ctl.onclick = AddListFilterHandler(ctl);
            else 
                ctl.onclick = function () { MainTrack_OnChbClick(ctl) };
        }
        ctl.checked = controlInfo.Va.toString().toUpperCase() == "TRUE";
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateTabControl(controlInfo)
{
    var ctl = $find(controlInfo.Id);
    if (ctl) {
        if (!ctl.onclick)
            ctl.onclick = function () { MainTrack_OnTabClick(ctl) };


        ctl.set_activeTabIndex(parseInt(controlInfo.Va, 10));
        if (controlInfo.Jd)
            ShowTabControl(ctl, controlInfo.Jd);
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdatePanel(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateButton(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.disabled = !(controlInfo.En.toString().toUpperCase() == "TRUE");
        if (controlInfo.Vi.toString().toUpperCase() == "TRUE")
            ctl.className = controlInfo.Cc;
        else ctl.className = 'nungTable';
    }
}

function UpdateTablePager(controlInfo) {
    var ctl = $get(controlInfo.Id);
    if (ctl) {
        if (controlInfo.Jd)
        {
            ShowTable(controlInfo.Jd);
            if (controlInfo.Jd.isDummy.toString().toUpperCase() != "TRUE")
                ctl.className = controlInfo.Cc;
            else ctl.className = 'nungTable';
        }
        else ctl.className = 'nungTable';
    }
}

function UpdateCollapsiblePanelExtender(controlInfo)
{
    var ctl = FindManagedControl(controlInfo.Id);
    if (ctl) {
        ctl.set_Collapsed(controlInfo.Va.toString().toUpperCase() == "TRUE");
    }
}


function UpdateAutoCompleteExtender(controlInfo) {
    var ctl = FindManagedControl(controlInfo.Id);


 //   ctl.on
//    if (!ctl.onclick) {
//        if (controlInfo.Eh == 'filter')
//            ctl.onclick = AddListFilterHandler(ctl);
//        else
//            ctl.onclick = function () { MainTrack_OnChbClick(ctl) };
//    }

}

function UpdateMapControl(controlInfo) {

    if (controlInfo.Jd) {
        DeleteMapMarkers();
        InitializeMapMarkers(controlInfo.Jd);
    } else {
        //        MapRefresh(); 
        DeleteMapMarkers();
        InitializeMapMarkers(BMhotelDetail);
    }
}

//function GetHtmlEditorControl(controlId) {
//    var editor = $get(controlId).control;

//    $get(controlId).onactivate = function () {
//        var editor = $get(controlId).control;
//        var editPanel = editor.get_editPanel();
//        var designPanel = editPanel.get_modePanels()[0];
//        var htmlPanel = editPanel.get_modePanels()[1];

//        var onContentChanged = function () {
//            var value = editor.get_content();
//            //var escaped = value;
//            //var findReplace = [[/&/g, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"], [/"/g, "&quot;"], [/\\n/g, ""]];
//            //for (i = 0; i < findReplace.length; i++)
//                //escaped = escaped.replace(findReplace[i][0], findReplace[i][1]);



//            MainTrack_OnTxtChange({ id: controlId, value: value.replace(/"/g, "'") });
//        }

//        designPanel.onContentChanged = onContentChanged;
//        htmlPanel._element.onchange = onContentChanged;

//        $get(controlId).onactivate = null; // unbind event
//    }

//    return editor;
//}

function UpdateEditorControl(controlInfo) {
    //    var editor = GetHtmlEditorControl(controlInfo.Id);
    //    if (editor != undefined) {
    //        var value = controlInfo.Va;
    //        if (value != "") {
    //            var unescaped = value;
    //            var findReplace = [[/&amp;/g, "&"], [/&lt;/g, "<"], [/&gt;/g, ">"], [/&quot;/g, "\""], [/\[_/g, "<"], [/_\]/g, ">"], [/\\n/g, ""], [/\[_/g, "<"], [/_\]/g, ">"]];
    //            for (i = 0; i < findReplace.length; i++)
    //                unescaped = unescaped.replace(findReplace[i][0], findReplace[i][1]);
    //            editor.set_content(unescaped);
    //        } else {
    //            editor.set_content("");
    //        }
    //    }

    if (tinyMCE.get(controlInfo.Id) != undefined) {
        var editor = tinyMCE.get(controlInfo.Id);
        editor.setContent(controlInfo.Va);
    } else {
        $(document).ready(function () { SetupEditorControl(); });
    }
}

function SetupEditorControl() {
    tinyMCE.init({
        mode: "textareas",
        theme: "advanced",
        plugins: "table,searchreplace,fullscreen",

        theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor",
        theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen",
        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        theme_advanced_statusbar_location: "bottom",
        theme_advanced_resizing: true,

        convert_urls: false,

        skin: "o2k7",
        skin_variant: "silver",

        template_external_list_url: "js/template_list.js",
        external_link_list_url: "js/link_list.js",
        external_image_list_url: "js/image_list.js",
        media_external_list_url: "js/media_list.js",

        setup: function (ed) {
            ed.onSetContent.add(function (ed, e) {
                var value = ed.getContent();
                MainTrack_OnTxtChange({ id: ed.id, value: value.replace(/"/g, "'") });
            });
            ed.onKeyUp.add(function (ed, e) {
                var value = ed.getContent();
                MainTrack_OnTxtChange({ id: ed.id, value: value.replace(/"/g, "'") });
            });
            ed.onBeforeSetContent.add(function (ed, o) {
                var unescaped = o.content;
                if (unescape != '') {
                    var findReplace = [[/&amp;/g, "&"], [/&lt;/g, "<"], [/&gt;/g, ">"], [/&quot;/g, "\""], [/\[_/g, "<"], [/_\]/g, ">"], [/\\n/g, ""]];
                    for (i = 0; i < findReplace.length; i++)
                        unescaped = unescaped.replace(findReplace[i][0], findReplace[i][1]);
                }
                o.content = unescaped;
            });
        }
    });
}

function UpdateHiddenFieldControl(controlInfo) {
    if (controlInfo.Va != "") {
        var td = eval("(" + controlInfo.Va + ")");
        if (typeof (td) == "object" && $.i18n != undefined)
            $.i18n.setDictionary(td);
    }
}

function UpdateWUTimeControl(controlInfo) {
}

function UpdateWUDateControl(controlInfo) {
}


function ShowTabControl(tabControl, tabInfo) {

    var tabs = tabControl.get_tabs();

    for (var i = 0; i < tabInfo.tabValues.length; i++) {
        if (tabInfo.tabValues[i].visible) {
            if (tabs[i]._active)
                tabs[i]._tab.className = "ajax__tab_active ajax__tab_outer";
            else
                tabs[i]._tab.className = tabInfo.css;
        }
        else tabs[i]._tab.className = "nungTable";
    }
}

function ShowStatusMessages(statusMessages) 
{
    for (var i = 0; i < statusMessages.length; i++)
    {
        alert(statusMessages[i].msgText);
    }
}

function UpdateCbxData(cbx, data)
{
    if (cbx == null){
        return ;
    }

    cbx.options.length=0;

    if (data.length > 0){
        for (i = 0; i < data.length; i++) {
            var option = new Option(data[i].value, data[i].id);
            cbx.options[cbx.options.length] = option;
        }
    }
}

function UpdateOptionList(cbx, data)
{
    if (cbx == null){
        return ;
    }

    cbx.options.length=0;

    if (data.length > 0){
        for (i = 0; i < data.length; i++) {
            var option = new Option(data[i].value, data[i].id);
            cbx.options[cbx.options.length] = option;
        }
    }
    cbx.disabled = false;
}


function OnLoadError(error)
{
    alert(error.get_message());
}


/****************************************************************************
    Approved table methods
****************************************************************************/

function SetRbtGroupName(ctrl, grpName) {
    if (ctrl == null)
        return;

    if (ctrl.tagName == "INPUT" && ctrl.type == "radio") {
        ctrl.name = grpName;
    }

    for (var i = 0; i < ctrl.childNodes.length; i++) {
        SetRbtGroupName(ctrl.childNodes[i], grpName)
    }
}

function ResetListRbtCheck(ctrl, value) {
    if (ctrl == null)
        return;

    if (ctrl.tagName == "INPUT" && ctrl.type == "radio") {
        ctrl.checked = value;
        StoreControlValue(ctrl.id, "FALSE");
    }

    for (var i = 0; i < ctrl.childNodes.length; i++) {
        ResetListRbtCheck(ctrl.childNodes[i], value)
    }
}

function FindControl(ctrl, key) //finds a control in a table
{
   var result;

   if (ctrl.id && ctrl.id.length >= key.length && key == ctrl.id.substr(ctrl.id.length - key.length))
        result = ctrl;

   for (var i = 0; i < ctrl.childNodes.length && !result; i++)
        result = FindControl(ctrl.childNodes[i], key)        
   return result;
}

function FirstDataRow(table)
{
    if (table.tHead != null)
        return 1;
    else return 0;
}

function LastDataRow(table)
{
    if (table.tFoot != null)
        return table.rows.length - 1;
    else return table.rows.length;
}

function LastDataCol(table) {
    return table.rows[0].getElementsByTagName('td').length;
}

function GetParentTable(ctrl)
{
    var parent = ctrl.parentNode;
    while (parent.tagName != 'TABLE')
        parent = parent.parentNode;
    return parent;    
}

function HandleListRbtCheck2(element, msgId) {

    var table = GetParentTable(element);

    if (table == null)
        return;    

    // Overwrite control name for setting up group name
    for (var i = 0; i <= table.rows.length; i++) {
        SetRbtGroupName(table.rows[i], table.id);
        
        // Reset rbt group check
        ResetListRbtCheck(table.rows[i], false);
    }

    // Set current selected
    var startIndex = FirstDataRow(table);
    var endIndex = LastDataRow(table);
    var itemIndex = GetRowIndex(element);

    for (var i = startIndex; i <= endIndex; i++) {
        var rbt = FindControl(table.rows[i], element.id);
        if (rbt != null) {
            rbt.checked = (i == itemIndex);
            StoreControlValue(rbt.id, rbt.checked.toString());
        }
    }

    return true;
}


function HandleListRbtRestaurantArea(triggerRbt, msgId) {

    var table = GetParentTable(triggerRbt);

    if (table == null)
        return;    

    // Set current selected
    var startIndex = FirstDataRow(table);
    var endIndex = LastDataRow(table);
    var itemIndex = GetRowIndex(triggerRbt);

    for (var i = startIndex; i <= endIndex; i++) {
        var rbt = FindControl(table.rows[i], triggerRbt.id);
        if (rbt != null) {
            rbt.checked = (i == itemIndex);
            StoreControlValue(rbt.id, rbt.checked.toString());
        }
    }

    return AsyncServerMessage(msgId, itemIndex.toString(), ShowResponseDetails, false);    
}



function HandleListRbtCheck(triggerRbt, btnId, message)
{   
    var table = GetParentTable(triggerRbt);
    
    var startIndex = FirstDataRow(table);
    var endIndex = LastDataRow(table);
    var itemIndex = GetRowIndex(triggerRbt);
    
    
    for (var i = startIndex; i < endIndex; i++)
    {
        var rbt = FindControl(table.rows[i], btnId);
        if (rbt != null)
        {
           rbt.checked = (i == itemIndex);
           StoreControlValue(rbt.id, rbt.checked.toString());
        }
    }
    
    AsyncServerMessage(message, itemIndex.toString(), DefaultServerEventResponse, false);    
    return true;
}

function ResetListBtnClick(ctrl) {
    if (ctrl == null)
        return;

    if (ctrl.tagName == "SPAN" && ctrl.innerHTML != "") 
    {
        ctrl.className = "BbuttonsRestaurantTime";
    }

    for (var i = 0; i < ctrl.childNodes.length; i++) {
        ResetListBtnClick(ctrl.childNodes[i])
    }
}

function HandleListBtnClick(element, element2, element3, element4) {
    if (element.tagName == "SPAN" && element.innerHTML != "") {


        var table = GetParentTable(element);

        if (table == null)
            return;

        for (var i = 0; i <= table.rows.length; i++) {
            ResetListBtnClick(table.rows[i]);
        }

        var startRow = FirstDataRow(table);
        var rowCount = LastDataRow(table);
        var colCount = LastDataCol(table);

        for (var i = startRow; i < rowCount; i++) {
            var ctrl = FindControl(table.rows[i], element.id);
            if (ctrl != null) {
                ctrl.className = "BbuttonsRestaurantTimeClick";
                StoreControlValue(element2, ctrl.innerHTML);
                EnableControl(element3);
                EnableControl(element4);
            }
        }
    }
    return true;
}

function HandleListChbCheck(triggerChb, chbID, message) {
    var table = GetParentTable(triggerChb);

    var startIndex = FirstDataRow(table);
    var endIndex = LastDataRow(table);
    var itemIndex = GetRowIndex(triggerChb);

    var msgData = itemIndex.toString();

    var chb = FindControl(table.rows[itemIndex], chbID);
    if (chb != null) 
    {
        msgData = msgData + '|' + chb.checked.toString();
        StoreControlValue(chb.id, chb.checked.toString());
    }

    AsyncServerMessage(message, msgData, ShowResponseDetails2, false);
    return true;
}


function GetTableId(ctrl) {
    try {
        var parent = ctrl.parentNode;
        while (parent.tagName != 'TABLE')
            parent = parent.parentNode;
        return parent.id;
    }
    catch (err) {
        return "";
    }
}


function GetRowIndex(ctrl)
{
    try {
    var parent = ctrl.parentNode;
    while (parent.tagName != 'TR')
        parent = parent.parentNode;
    return parent.rowIndex;    
    }
    catch (err) 
    {
    return 0;
    }    
}

function GetColumnIndex(ctrl)
{
    var parent = ctrl.parentNode;
    while (parent.tagName != 'TD')
        parent = parent.parentNode;
    return parent.cellIndex;    
}


function GetBodyRowIndex(table, ctrl)
{
    var index = GetRowIndex(ctrl);
    if (table.tHead != null)
        return index - table.tHead.rows.length;    
    else return index;    
}



function SetFooterData(id, currentPage, numberOfPages, numberOfItems)
{
    var table = $get(id);
    if (table != null && table.tFoot != null && table.tFoot.rows.length > 0)
    {
        cbx = FindControl(table.tFoot, 'cbxPager');
        cbx.options.length = 0; // clear drop down option
        while (cbx.options.length < numberOfPages)
        {
            var pageNumber = cbx.options.length + 1;
            var option = new Option(pageNumber.toString(), pageNumber.toString());
            cbx.options[cbx.options.length] = option;
        }
        var index = currentPage + 1;
        cbx.value = index.toString();
        cbx.disabled = (numberOfPages <= 1);
        lblCurrentPage = FindControl(table.tFoot, 'lblCurrentPage');
        lblCurrentPage.innerHTML = index.toString();
        lblNumberOfPages = FindControl(table.tFoot, 'lblPages');
        lblNumberOfPages.innerHTML = numberOfPages.toString();
        lblNumberOfItems = FindControl(table.tFoot, 'lblItems');
        lblNumberOfItems.innerHTML = numberOfItems.toString();
        
        FindControl(table.tFoot, 'btnNext').disabled = (index == numberOfPages);
        FindControl(table.tFoot, 'btnEnd').disabled = (index == numberOfPages);
        FindControl(table.tFoot, 'btnPrev').disabled = (index == 1);
        FindControl(table.tFoot, 'btnStart').disabled = (index == 1);
    }
}

function HandleNumberOfColumns(table, numberOfColumns) {

    for (var i = 1; i < table.rows.length; i++)
    {
        var k = 1;
        for (var j = 1; j < table.rows[i].cells.length; j++)
        {
            if (table.rows[i].cells[j].className != "skipCell") {
                if (k > numberOfColumns) {
                    table.rows[i].cells[j].className = "nungTable";
                }   

                k++;
            }         
        }
    }

}

function HandleNumberOfHeaders(table, numberOfColumns) {

    var k = 1;
    for (var j = 1; j < table.rows[0].cells.length; j++)
    {
        if (table.rows[0].cells[j].className != "skipCell") {
            if (k > numberOfColumns) {
                table.rows[0].cells[j].className = "nungTable";
            }   
            k++;
        }         
    }    
}


function InitPagedTable(id, pagerId, selectedIndex, currentPage, numberOfPages, numberOfItems, isDummy, numberOfColumns)
{
    var table = $get(id);
    if (isDummy)
        table.className = 'nungTable';


    SetRowStyles(id, selectedIndex);

    if (numberOfColumns && numberOfColumns > 0) {
        HandleNumberOfColumns(table, numberOfColumns);
        HandleNumberOfHeaders(table, numberOfColumns);
    }

    try {
        var hfPager = FindControl($get(id).tFoot, 'hfPagerId');

        if (typeof(hfPager) != 'undefined')
            hfPager.value = pagerId;

        SetFooterData(id, currentPage, numberOfPages, numberOfItems);
    }
    catch (err)
    { }


    //window.onbeforeunload = UnLoadWindow;

}

function UnLoadWindow() {
    alert("hallo unload");
    
}


function SetTableStyle(tableId, tableClass, isDummy)
{
    var table = $get(tableId);
    if (isDummy)
        table.className = 'nungTable';
    else table.className = tableClass;
}

function InitTable(id, selectedIndex)
{
    SetRowStyles(id, selectedIndex);
}

function SetRowStyles(id, selectedIndex)
{
    var table = $get(id);
    if (table != null)
    {
        var tbody = table.tBodies[0];
        
        for (var i=0; i < tbody.rows.length; i++)
        {
            if (selectedIndex != null && i == selectedIndex)
                tbody.rows[i].className = 'tablerow selectedrow';
            else 
                if ((i%2)!=0)
                {
                    tbody.rows[i].className = 'tablerow alternate';
                }
                else 
                    tbody.rows[i].className = 'tablerow';

        }   
    }
}

function AdjustNumberOfRows(tbody, count, columns)
{
    if (tbody.rows.length < count)
    {
        var counter = tbody.rows.length;
        while (tbody.rows.length < count)
        {
            counter++;
            var row = tbody.rows[0];
            var clone = row.cloneNode(true);
            var ctlNumber = counter.toString();
            if (ctlNumber.length == 1) 
                ctlNumber = '0' + ctlNumber;
            for (var i = 0; i < columns.length; i++)
            {
                var z = FindControl(clone, columns[i]);
                var p = FindControl(clone, "acLocation_completionListElem");
                if (z)
                {
                    var c = z.id;
                    z.id = z.id.replace('01_' + columns[i], ctlNumber + '_' + columns[i].toString());
                }
            }
            tbody.appendChild(clone);                         
        }
    }
    else 
        if (tbody.rows.length > count)
        {
            while (tbody.rows.length > count)
            {
                var row = tbody.rows[tbody.rows.length - 1];
                while (row.firstChild != null)
                  row.removeChild(row.firstChild);
                tbody.deleteRow(tbody.rows.length - 1);
            }
        }
}

function AdjustNumberOfRows2(tbody, count, columns, acInformation) {
    if (tbody.rows.length < count) {
        var counter = tbody.rows.length;
        while (tbody.rows.length < count) {
            counter++;
            var row = tbody.rows[0];
            var clone = row.cloneNode(true);
            var ctlNumber = counter.toString();
            if (ctlNumber.length == 1)
                ctlNumber = '0' + ctlNumber;
            for (var i = 0; i < columns.length; i++) {
                var z = FindControl(clone, columns[i]);
                var p = FindControl(clone, "acLocation_completionListElem");
                if (z) {
                    var c = z.id;
                    z.id = z.id.replace('01_' + columns[i], ctlNumber + '_' + columns[i].toString());
                }
            }
            tbody.appendChild(clone);

            if (acInformation) {
                var txtControl = FindControl(clone, acInformation.txtControl);
                var id = txtControl.id.replace(acInformation.txtControl, acInformation.acControl);
                try {
                    var c = Sys.Application.findComponent(id);
                    if (c != null) {
                        Sys.Application.removeComponent(c);
                        c = Sys.Application.findComponent(id + 'PopupBehavior');
                        if (c != null)
                            Sys.Application.removeComponent(c);
                    }
                    c = $create(Sys.Extended.UI.AutoCompleteBehavior,
                        { "id": id, "minimumPrefixLength": 3,
                            "serviceMethod": acInformation.serviceMethod,
                            "servicePath": acInformation.servicePath
                        }, null, null, txtControl);
                    c.add_itemSelected(ValuePairSelected);
                    }
                catch (error) {
                    error = 'my error ' + error;
                }
            }


        }
    }
    else
        if (tbody.rows.length > count) {
            while (tbody.rows.length > count) {
                var row = tbody.rows[tbody.rows.length - 1];
                while (row.firstChild != null)
                    row.removeChild(row.firstChild);
                tbody.deleteRow(tbody.rows.length - 1);
            }
        }
}




function AddAutoCompleteExtenders(tbody, acInformation) {
    var counter = 0;
    for (var i = 0; i < tbody.rows.length; i++) {
        counter++;
        var row = tbody.rows[i];
        var ctlNumber = counter.toString();
        if (ctlNumber.length == 1)
            ctlNumber = '0' + ctlNumber;

      //  var z = FindControl(row, 'txtAttribute');
        var txtControl = FindControl(row, acInformation.txtControl);

        var id = txtControl.id.replace(acInformation.txtControl, acInformation.acControl)
       // var id = 'ctl00_cphMiddle_ctl01_dgLocationAttributes_ctl' + ctlNumber + '_acLocation';

        try {
            var c = Sys.Application.findComponent(id);
            if (c != null) {
                Sys.Application.removeComponent(c);
                c = Sys.Application.findComponent(id + 'PopupBehavior');
                if (c != null)
                    Sys.Application.removeComponent(c);
            }

       //     acInformation

//            c = $create(Sys.Extended.UI.AutoCompleteBehavior,
//                        { "id": id, "minimumPrefixLength": 3,
//                            "serviceMethod": "GetLocationsAttributes",
//                            "servicePath": "WSAutoComplete.asmx"
//                        }, null, null, z);

            c = $create(Sys.Extended.UI.AutoCompleteBehavior,
                        { "id": id, "minimumPrefixLength": 3,
                            "serviceMethod": acInformation.serviceMethod,
                            "servicePath": acInformation.servicePath
                        }, null, null, txtControl);
            //$get(newTId));
        }
        catch (error) {
            error = 'my error ' + error;
        }


        var p = 5;
    }
}




function SetSelectedCells(table, rowIndex, columnIndex) {

    var tbody = table.tBodies[0];
    if (columnIndex != -1) {  //if (columnIndex != -1 && rowIndex != -1) {
        
        for (var i = 0; i < tbody.rows.length; i++) {
            for (var j = 0; j < tbody.rows[i].cells.length; j++) {
//                if (tbody.rows[i].cells[j].className != "nungTable" && tbody.rows[i].cells[j].className != "matrixRowTitle")
                //                    tbody.rows[i].cells[j].className = "matrixCell";
                if ($(tbody.rows[i].cells[j]).hasClass("selectedMatrixCell"))
                    $(tbody.rows[i].cells[j]).removeClass("selectedMatrixCell");
            }
        }


        if (columnIndex != 0 || table.id == "tblMatrixScroll") {
            if (rowIndex != -1) {
//                if (table.rows[i].cells[columnIndex].className != "nungTable")
                //                    tbody.rows[rowIndex].cells[columnIndex].className = 'selectedMatrixCell';
                if ($(tbody.rows[rowIndex].cells[columnIndex]).hasClass("matrixCell"))
                    $(tbody.rows[rowIndex].cells[columnIndex]).addClass("selectedMatrixCell");
            }
            else {
                for (var i = 1; i < table.rows.length; i++) {
//                    if (table.rows[i].cells[columnIndex].className != "nungTable")
                    //                        table.rows[i].cells[columnIndex].className = 'selectedMatrixCell';
                    if ($(table.rows[i].cells[columnIndex]).hasClass("matrixCell"))
                        $(table.rows[i].cells[columnIndex]).addClass("selectedMatrixCell");
                }
            }
        }
        else if (rowIndex != -1) {
            for (var i = 1; i < tbody.rows[rowIndex].cells.length; i++) {
//                if (tbody.rows[rowIndex].cells[i].className != "nungTable")
                //                    tbody.rows[rowIndex].cells[i].className = 'selectedMatrixCell';
                if ($(tbody.rows[rowIndex].cells[i]).hasClass("matrixCell"))
                    $(tbody.rows[rowIndex].cells[i]).addClass("selectedMatrixCell");
            }
        }
    }
    // For flight matrix, When selected column number of stop
    else if (columnIndex == -1 && rowIndex != -1 && table.id == "tblMatrixScroll") {
        // clean up matrix cell
        for (var i = 0; i < tbody.rows.length; i++) {
            for (var j = 0; j < tbody.rows[i].cells.length; j++) {
//                if (tbody.rows[i].cells[j].className != "nungTable" && tbody.rows[i].cells[j].className != "matrixRowTitle")
                //                    tbody.rows[i].cells[j].className = "matrixCell";
                if ($(tbody.rows[i].cells[j]).hasClass("selectedMatrixCell"))
                    $(tbody.rows[i].cells[j]).removeClass("selectedMatrixCell");
            }
        }

        for (var i = 0; i < tbody.rows[rowIndex].cells.length; i++) {
//            if (tbody.rows[rowIndex].cells[i].className != "nungTable")
            //                tbody.rows[rowIndex].cells[i].className = 'selectedMatrixCell';
                if ($(tbody.rows[rowIndex].cells[i]).hasClass("matrixCell"))
                    $(tbody.rows[rowIndex].cells[i]).addClass("selectedMatrixCell");
        }
    }
}




function OnTableLoadOk(result)
{
    var data = eval("(" + result + ")");
    ShowTable(data);
}

function ShowTable(data)
{
    var table = $get(data.tableName);
    if (table != null)
    {
        var tbody = table.tBodies[0];
        AdjustNumberOfRows2(tbody, data.rows.length, data.columns, data.acInformation);
        for (var i = 0; i < data.rows.length; i++)
        {
            for (var j = 0; j < data.columns.length; j++)
            {
                var ctl = FindControl(tbody.rows[i], data.columns[j]);
                if (ctl)
                {
                    if (ctl.tagName == 'SPAN' || ctl.tagName == 'A')
                    {
                        if (ctl.className == 'percentage')
                        {
                            ctl.style.width = data.rows[i][j];
                        }
                        else
                        {
                            ctl.innerHTML = data.rows[i][j];
                        }
                    }
                    else                    
                        if  (ctl.tagName == 'TEXTAREA')
                            ctl.value = data.rows[i][j];

                    else     
                    if (ctl.tagName == 'INPUT')
                    {
                        var z = data.rows[i];
                        var z1 = data.rows[i][j];
                        StoreControlValue(ctl.id, data.rows[i][j].toString(), '0', ''); 
                        if (ctl.type == 'text')
                            ctl.value = data.rows[i][j];
                        else if (ctl.type == 'checkbox' || ctl.type == 'radio' )
                            ctl.checked = data.rows[i][j];
                        else if (ctl.type == 'image')
                        {
                            ctl.src = data.rows[i][j].toString();
                            if (data.tableName == "tblRepeaterImages") {
                                if (ctl.src.indexOf("emptyImage.png") >= 0) {
                                    ctl.className = "Hide";
                                }
                            }
                        }
                        else if (ctl.type == 'submit')
                        {
                            try {
                                if (data.rows[i][j].toString() == 'FALSE')
                                    ctl.disabled= true;
                                else ctl.disabled = false;
                            }
                            catch(err) {}
                        }
                    }
                    else 
                    if (ctl.tagName == 'SELECT')
                    {
                        ctl.value = data.rows[i][j];
                    }
                    else 
                    if  (ctl.tagName == 'IMG')
                    {
                        ctl.src = data.rows[i][j];
                    }
                }

            }
            
        }

        SetTableStyle(data.tableName, data.className, data.isDummy);
        SetRowStyles(table.id, parseInt(data.selectedIndex, 10));

        if (data.selectedCellIndexX && data.selectedCellIndexY)
            SetSelectedCells(table, data.selectedCellIndexX, data.selectedCellIndexY);

        SetFooterData(table.id, parseInt(data.currentPage, 10), parseInt(data.numberOfPages, 10), 
                      parseInt(data.numberOfItems, 10))
    }   
}


function HandlePagingButton(ctrl, item) {
    var c = ctrl.parentNode;
    while (c.id != 'tblFooter')
        c = c.parentNode;
    var hfPager = FindControl(c, 'hfPagerId');
    c = c.parentNode;
    while (c.tagName != 'TABLE')
        c = c.parentNode;

    GetTableData(c.id, hfPager.value, item);
    //var s = PageMethods.GetTableData(c.id, hfPager.value, item, OnTableLoadOk, OnLoadError);
    return false;
}

function HandlePagerChange(cbxPager)
{
    var c = cbxPager.parentNode;
    while (c.id != 'tblFooter')
        c = c.parentNode;
    var hfPager = FindControl(c, 'hfPagerId');
    c = c.parentNode;
    while (c.tagName != 'TABLE')
        c = c.parentNode;

    var pageNumber = cbxPager.value;
    GetTableData(c.id, hfPager.value, pageNumber.toString());
    //var s = PageMethods.GetTableData(c.id, hfPager.value, pageNumber.toString(), OnTableLoadOk, OnLoadError);
}

function HandleListSortCommand(lbtSort, message)
{
    var c = lbtSort.parentNode;
    while (c.tagName != 'TABLE')
        c = c.parentNode;
//    var s = PageMethods.GetTableData(c.id, c.id, 'sort' + message, OnTableLoadOk, OnLoadError);
    GetTableData(c.id, c.id, 'sort' + message);
    return false;
}


function GetTableData(id, reference, action) {
    return AsyncServerMessage("msgPageTable", id + '|' + reference + '|' + action, OnTableLoadOk, false);
}

//function OnTableLoadOk(result) {
//    var data = eval("(" + result + ")");
//    ShowTable(data);
//}

function OnTableLoadOk() {
    if (request.readyState == 4 && request.status == 200) {

        try {
            var data = eval("(" + request.responseText + ")");
            ShowTable(data);
        }
        catch (error) {
        }
    }
}



/************ End of the table related javascript functions **************************/

function HandleCopyButton(item) {
    var table = $get("tblRepeater");
    var row   = table.rows[1];
    var parent   = row.parentNode; 
    var clone = row.cloneNode(true);
    var btn = FindControl(clone, "btn1");
    btn.id = "dataListItem_ctl11_btn1";
    parent.appendChild(clone); 
    var btn = FindControl(clone, "btn1");
    var btn2 = FindControl(table.rows[2], "btn1");
    
//    alert("hallo");
    return false;
}

function UpdateList(result){
    var options = eval("(" + result + ")");
    if (options.description.length < 1){
        return ;
    }

    var cbxID = options.description[0];
    var cbx = $get(cbxID);
    if (cbx == null){
        return ;
    }

    cbx.disabled = true;
    cbx.options.length=0;

    if (options.id.length > 1){
        for (i = 1; i < options.id.length; i++) {
            var option = new Option(options.description[i], options.id[i]);
            cbx.options[cbx.options.length] = option;
        }
    }
    cbx.disabled = false;
}









function GetSSRRateValue(ctrl, key)
{
    var tmpLbl = FindControl(ctrl, key);
    if (tmpLbl && tmpLbl.innerHTML != "")  
        return parseFloat(tmpLbl.innerHTML);
    else return 0; 
}

//function HandleRentalCarSSRChbChange(chbID, dlSSRID, dlMandatoryID, itemRateID, itemRateReqCurID,
//                                     rateID, ssrTotalID, totalID, rateReqCurID, ssrTotalReqCurID, totalReqCurID) 
//{
//    var rate = parseFloat($get(rateID).innerText);
//    var rateReqCur = parseFloat($get(rateReqCurID).innerText);
//    
//    var mandatoryRate = 0;
//    var mandatoryRateReqCur = 0;
//    
//    var dlMandatory = $get(dlMandatoryID);
//    var r = dlMandatory.rows[0];
//    var r2 = dlMandatory.rows[1];
//    for (var i = 0; i < dlMandatory.rows.length; i++)
//    {
//        mandatoryRate += GetSSRRateValue(dlMandatory.rows[i], itemRateID);
//        mandatoryRateReqCur += GetSSRRateValue(dlMandatory.rows[i], itemRateReqCurID);
//    }
//        
//    var ssrRate = mandatoryRate;
//    var ssrRateReqCur = mandatoryRateReqCur;

//    var dlSSR = $get(dlSSRID);
//    
//    for (var i = 0; i < dlSSR.rows.length; i++)
//    {
//        var chb = FindControl(dlSSR.rows[i], chbID);
//        if (chb && chb.checked) 
//        {
//            ssrRate += GetSSRRateValue(dlSSR.rows[i], itemRateID);
//            ssrRateReqCur += GetSSRRateValue(dlSSR.rows[i], itemRateReqCurID);
//        }
//    }
//    
//    var totalRate = rate + ssrRate;
//    var totalRateReqCur = rateReqCur + ssrRateReqCur;
//    
//    var txtSSR = $get(ssrTotalID);
//    txtSSR.innerText = ToMoneyString(ssrRate);
//    
//    var txtSSRReqCur = $get(ssrTotalReqCurID);
//    txtSSRReqCur.innerText = ToMoneyString(ssrRateReqCur);

//    var txtTotal = $get(totalID);
//    txtTotal.innerText = ToMoneyString(totalRate);

//    var txtTotalReqCur = $get(totalReqCurID);
//    txtTotalReqCur.innerText = ToMoneyString(totalRateReqCur);
//}

function HandleRentalCarSSRChbChange(chbID, dlSSRID, dlMandatoryID, itemRateID, itemRateReqCurID,
                                     rateID, ssrTotalID, totalID) {
    var rate = document.getElementById(rateID).innerHTML; //var rate = parseFloat($get(rateID).innerText);
    var mandatoryRate = 0;

    var dlMandatory = document.getElementById(dlMandatoryID); // $get(dlMandatoryID);
 
    for (var i = 0; i < dlMandatory.rows.length; i++) {
        mandatoryRate += GetSSRRateValue(dlMandatory.rows[i], itemRateReqCurID);
    }

    if (isNaN(mandatoryRate))
        mandatoryRate = 0;

    var ssrRate = mandatoryRate;

    var dlSSR = document.getElementById(dlSSRID);  // $get(dlSSRID);

    for (var i = 0; i < dlSSR.rows.length; i++) {
        var chb = FindControl(dlSSR.rows[i], chbID);
        if (chb) {
            if (chb.checked) {         
                ssrRate += GetSSRRateValue(dlSSR.rows[i], itemRateReqCurID);
            }
            StoreControlValue(chb.id, chb.checked.toString());
        }
    }
    
    var totalRate = parseFloat(rate) + parseFloat(ssrRate);

    var txtSSR = document.getElementById(ssrTotalID);  // $get(ssrTotalID);
    txtSSR.innerHTML = ToMoneyString(ssrRate);

    var txtTotal = document.getElementById(totalID); // $get(totalID);
    txtTotal.innerHTML = ToMoneyString(totalRate);


    var dlReservations = document.getElementById("tblRepeaterReservations");  //$get("tblRepeaterReservations");
    var totalPriceId = "ctl00_cphspecail_ctl03_dgReservations_ctl0" + (dlReservations.rows.length - 1) + "_lblTotalPrice";
    var Currency = document.getElementById("ctl00_cphMiddle_ctl01_lblCurrencyId3");  // $get("ctl00_cphMiddle_ctl01_lblCurrencyId3");
    var lblTotalPrice = document.getElementById(totalPriceId); // $get(totalPriceId);
    lblTotalPrice.innerHTML = new Number(totalRate).toFixed(0) + " " + Currency.innerHTML;
}



function SSRSelectionChangeHandler(pObjID) 
{
    var pObj = $get(pObjID);
    StoreControlValue(pObj, pObj.value);
    var s = "{'index':'" + GetRowIndex(pObj).toString() + "', 'value': '" + pObj.value + "'}";
   
    AsyncServerMessage('ssrSelected', s, ShowResponseDetails, false);
}




var filePath;

function HandleBtnAddImageClick(btn, ctlID)
{
    var obj = $get(ctlID);
    var filePath = obj.value;
    CallServer(obj.value, '');

    return false;    
}




/* GOOGLE MAP RELATED SCRIPTS   */
var map = null;
var Hmap = null;
var BMhotelDetail ;
var BMhotelCenter;
var markersArray = [];
var bounds = null;

function InitializeGoogleMap() {
    try {
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map"));
            map.setCenter(new GLatLng(52.373056, 4.892222), 10);
            map.setUIToDefault();
        }
    }
    catch (error) {
        alert(error);
    }
}

function InitializeMapMarkers(hotelInfo) {

    //if (!map)
        InitializeGoogleMap();

    if (!hotelInfo)
        return;

    BMhotelDetail = hotelInfo;

    try {
        bounds = new GLatLngBounds();
        bounds.extend(new GLatLng(hotelInfo.centerLatitude, hotelInfo.centerLongitude));

    // Add hotel markers
    for (var i = 0; i < hotelInfo.hotels.length; i++) {
        if (hotelInfo.hotels[i].validCoordinates) {
            AddHotelMarker(hotelInfo.hotels[i], hotelInfo.hotels[i].markerUrl);
            bounds.extend(new GLatLng(hotelInfo.hotels[i].latitude, hotelInfo.hotels[i].longitude));
            Hotel_Select_LaT = hotelInfo.hotels[i].latitude;
            Hotel_Select_LoN = hotelInfo.hotels[i].longitude;
        }
    }

    // City center icon
    var gIcon = new GIcon(G_DEFAULT_ICON);
    gIcon.iconSize = new GSize(30, 39);
    gIcon.image = hotelInfo.centerMarkerUrl;

    var marker = new GMarker(new GLatLng(hotelInfo.centerLatitude, hotelInfo.centerLongitude), { title: hotelInfo.centerText, icon: gIcon });
    map.addOverlay(marker);

    City_Center_LaT = hotelInfo.centerLatitude;
    City_Center_LoN = hotelInfo.centerLongitude;

        MapRefresh();
    } catch (error) { }
}

function MapRefresh() {
    if (!map)
        InitializeGoogleMap();

//    if (bounds && $get("map").parentNode.className == "nungTable") {
//        setTimeout("MapZoom()", 1000);
//        return;
//    }

    MapZoom();    
}

function MapZoom() {
    if (map && bounds) {
        if (markersArray.length == 0)
            map.setZoom(14);
        else if (markersArray.length == 1) {
            var dist = distance(City_Center_LaT, City_Center_LoN, Hotel_Select_LaT, Hotel_Select_LoN, 'K');
            if (dist <= 2)
                map.setZoom(14);
            else if (dist <= 4)
                map.setZoom(12);
            else
                map.setZoom(10);
        }else if (map.getBoundsZoomLevel(bounds) < 10)
            map.setZoom(10);
        else
            map.setZoom(map.getBoundsZoomLevel(bounds) - 1);
        map.setCenter(bounds.getCenter());
        map.savePosition();
    }
}

function distance(lat1, lon1, lat2, lon2, unit) {
    var radlat1 = Math.PI * lat1 / 180
    var radlat2 = Math.PI * lat2 / 180
    var radlon1 = Math.PI * lon1 / 180
    var radlon2 = Math.PI * lon2 / 180
    var theta = lon1 - lon2
    var radtheta = Math.PI * theta / 180
    var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
    dist = Math.acos(dist)
    dist = dist * 180 / Math.PI
    dist = dist * 60 * 1.1515
    if (unit == "K") { dist = dist * 1.609344 }
    if (unit == "N") { dist = dist * 0.8684 }
    return dist
}     

function initialize() {
    try {
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map"));
            var mapControl = new GMapTypeControl();
            map.addControl(mapControl);
            map.addControl(new GMapTypeControl(true));

            if (navigator.appName == 'Microsoft Internet Explorer') {
                map.setUIToDefault();
                map.setCenter(new GLatLng(52.373056, 4.892222), 13);
            }

            GEvent.addListener(map, "moveend",
            function () {
                var center = map.getCenter();
            }
        );

        }
    }
    catch (error) { }
}

function refreshMap() 
{
    if (map) {
        // for firefox
        if (typeof(navigator.product) != 'undefined') {
            map.setUIToDefault();
            map.setCenter(new GLatLng(City_Center_LaT, City_Center_LoN), getZoom);
        }

        var newLat = map.getCenter().lat();
        var newLng = map.getCenter().lng();
        var newZoom = map.getZoom();

        map.checkResize();
        map.setCenter(new GLatLng(newLat, newLng), newZoom);
    }
}
    
function InitGoogleMap(hotelInfo) 
{
    if (hotelInfo)
    {
        initialize();
        
        for (var i = 0; i < hotelInfo.hotels.length; i++)
            if (hotelInfo.hotels[i].validCoordinates)
        {
//            if(Hotel_Select_LaT==hotelInfo.hotels[i].latitude && Hotel_Select_LoN==hotelInfo.hotels[i].longitude)
//            {
//                AddHotelMarker(hotelInfo.hotels[i], "ImageMarkerOnMap.aspx?MarkerNumber=" +(i+1)+"&MarkerName=marker_hotel_select.png"); 
//            }
//            else
//            {
//                AddHotelMarker(hotelInfo.hotels[i], "ImageMarkerOnMap.aspx?MarkerNumber=" + (i+1)+"&MarkerName=marker_hotel.png");  
//            }
            //        
            

            AddHotelMarker(hotelInfo.hotels[i], hotelInfo.hotels[i].markerUrl);
            var Latitude = hotelInfo.hotels[0].latitude;
            var Longitude = hotelInfo.hotels[0].longitude;
          
            var maxLatitude = Math.max(Latitude,hotelInfo.hotels[i].latitude);
            var maxLongitude = Math.max(Longitude,hotelInfo.hotels[i].longitude);       
            var minLatitude = Math.min(Latitude,hotelInfo.hotels[i].latitude);
            var minLongitude = Math.min(Longitude,hotelInfo.hotels[i].longitude);    
        
        }
        var swLatLng = new GLatLng(minLatitude,minLongitude);   
        var neLatLng = new GLatLng(maxLatitude,maxLongitude);
        var center = new GLatLng((maxLatitude+minLatitude)/2,(maxLongitude+minLongitude)/2);
        var getBound=new GLatLngBounds(swLatLng, neLatLng); 
        BMhotelCenter=new GLatLng((maxLatitude+minLatitude)/2,(maxLongitude+minLongitude)/2);

        if (map.getBoundsZoomLevel(getBound)> getZoom) {
        }
        else {        
            getZoom = map.getBoundsZoomLevel(getBound) - 1;
        }
        if (getZoom < 12)
            getZoom = 12;


        var center = new GLatLng(hotelInfo.centerLatitude, hotelInfo.centerLongitude);

        if (navigator.appName == 'Microsoft Internet Explorer') 
        {
            map.setCenter(center, getZoom);
        }
               
        var gIcon = new GIcon(G_DEFAULT_ICON);     
        gIcon.iconSize = new GSize(30,39);
        gIcon.image = hotelInfo.centerMarkerUrl; //"images/markers/marker_poi.png";
//        gIcon.image = "images/markers/marker_poi.png";
        var marker = new GMarker(new GLatLng(hotelInfo.centerLatitude, hotelInfo.centerLongitude),{title:hotelInfo.centerText, icon:gIcon});       
        map.addOverlay(marker);       

        City_Center_LaT = hotelInfo.centerLatitude;
        City_Center_LoN = hotelInfo.centerLongitude;
    }
    else 
    {
        BMhotelDetail = hotelInfo;
        initialize();
    }
}

function PopUpHotelDetails(s)
{
    alert(s);
}

function AddHotelMarker(hotelInfo, HotelIcoN) {
    var hIcon = new GIcon(G_DEFAULT_ICON);
    hIcon.iconSize = new GSize(30, 39);
    hIcon.image = HotelIcoN;
    var point = new GLatLng(hotelInfo.latitude, hotelInfo.longitude);
    var marker = new GMarker(new GLatLng(hotelInfo.latitude, hotelInfo.longitude), { title: hotelInfo.hotelName, icon: hIcon });
    GEvent.addListener(marker, "click", function () { PopUpHotelDetails(hotelInfo.hotelName) });
    map.addOverlay(marker);

    markersArray.push(marker);
}

// Deletes all markers in the array by removing references to them
function DeleteMapMarkers() {
  if (markersArray) {
    for (i in markersArray) {
        map.removeOverlay(markersArray[i]);
    }
    markersArray.length = 0;
  }
}


/* END OF GOOGLE MAP RELATED SCRIPTS   */

Sys.Application.add_load(function pageLoad(){});
Sys.Application.add_unload(function pageUnload(){});



//--------------------------------------------------------------------------------------------//
function ToggleCbxPanel(cbxID, panelID, jsIDs, cssString)
{
    var cbx = $get(cbxID);
    StoreControlValue(cbx.id, cbx.value);
    var ids = eval("(" + jsIDs + ")"); 
    var pnl = $get(panelID);
    
    var showPanel = false;
    for (var i = 0; i < ids.keysVisible.length; i++)
      if (ids.keysVisible[i] == cbx.value)
        showPanel = true;
        
    if (showPanel)
        pnl.style.display= cssString;
    else 
        pnl.style.display= 'none';
}


function DisableControl(ctlID)
{
    var ctl = $get(ctlID);
    ctl.disabled = true;
}    
function Visible(ctlID)
{
    var ctl = $get(ctlID);
   ctl.style.display='';
}
function InVisible(ctlID)
{
    var ctl = $get(ctlID);
   ctl.style.display='none';
}
function EnableControl(ctlID)
{
    var ctl = $get(ctlID);
    ctl.disabled = false;
}    

var AirportPopUpTargetCtlID = '';
var AirportPopUpDistance = '50';


    
function AirportPopUpLocationChanged(ctrl, msg)
{
    StoreControlValue(ctrl.id, ctrl.value);

    return AsyncServerMessage(msg, ControlValues2JSONString(), PopUpAirportFillTable3, false);
}

function ModalReservationDetailsClick(msg, mep, btn)
{
    AsyncServerMessage(msg, GetRowIndex(btn).toString(), ShowResponseDetails, false);
    mep.show();
}


function ModalAircraftClick(mep, btn)
{
    AsyncServerMessage('getImages', GetRowIndex(btn).toString(), PopUpImagesFillTable, false);
    mep.show();
}

var indexImage = -1;
var mepImage;

function LaunchModalImageSelect(mep, btn)
{
    mepImage = mep;
    indexImage = GetRowIndex(btn);
    mep.show();
}

function HandleUploadImageCompleted(okPressed)
{
    mepImage.hide();
    if (okPressed)
        return AsyncServerMessage("msgImageUploaded", indexImage.toString(), ShowResponseDetails, false);
    else
        return AsyncServerMessage("msgImageUploaded", "-1", ShowResponseDetails, false);
}


function PopUpImagesFillTable() {
    if (request.readyState == 4 && request.status == 200) {
        var images = eval("(" + request.responseText + ")");
        UpdateControlValues(images.managedControls);
    }
}

function HandleTableLoad(table)
{
    alert("table load");
}


function ImageClick(srcCtrl, targetID, pagerID)
{
    
    $get(targetID).src = srcCtrl.src;
//    target.
//    var table  = $get(tableID);
//    var cols =  table.tBodies[0].rows[0].getElementsByTagName('td').length;
//        
//    var r = GetRowIndex(source);
//    var c = GetColumnIndex(source);

//    var item = (cols * r) + c;

//    var s = PageMethods.GetImageData(pagerID, item.toString(), OnImageLoadOk, OnImageLoadError);
    return false;
}

function ButtonImageViewerClick(tableID, action, pagerID)
{
    AsyncServerMessage("getImageDetails", action, ShowResponseDetails, false);
    return false;
}


function OnImageLoadError(result)
{
    alert ('Image load error' + result);
}

function ChangeCalculationTotal(ctrl, sumType, itemIndex)
{
    var data = sumType + '|' + ctrl.value + '|' + itemIndex.toString();
    AsyncServerMessage('CalculationChange', data, ShowResponseDetails, false);
    return false;
}

// Add segments for charters alone


function AddSegmentEventResponse()
{
//alert("keru ==== AddSegmentEventResponse")
    if (request.readyState == 4 && request.status == 200)
    {
        OnTableLoadOk(request.responseText);
        return true;
    }
}

function AddSegmentButtonClickHandler(triggerId, tableID, jsControls)
{
//alert("keru ==== AddSegmentButtonClickHandler")
    var controlInfo = eval("(" + jsControls + ")");
    response = '{values:[';
    
    for (i = 0; i < controlInfo.ctrls.length; i++)
    {
        response = response + '{' + "'" + controlInfo.ctrls[i] + "'" + "," + "'" + GetFieldValue(controlInfo.ctrls[i]) + "'" + '}';
        if (i < controlInfo.ctrls.length - 1)
            response = response + ',';

    }
    response = response + ']}';

    var table = $get(tableID);
    if (table != null)
    {
        AsyncServerMessage('AddSegment', response, ShowResponseDetails, false);
        return false;
    }
    else 
    {
        AsyncServerMessage('AddSegment', response, ShowResponseDetails, true);
        return true;
    }

}

function HandleLocationAirportChange(ctrlTriggerID, ctrlTargetID, ctrlIdID)
{


}


function LoadAirportRequest(ctlTriggerID, ctrlTargetID)
{
    lbtn.innerText = "Select airport";   
}



/************************************************************/
function HotelAvailabilityTimer(hfSessionID, hfStatusID, lblMessageID, btnRefreshID) 
{ 
//    alert('timer is started');
//    var t2 = window.setInterval("CheckHotelAsyncAvailability('" + hfSessionID + "', '" + hfStatusID + "', '" +
//                                 lblMessageID + "', '" + btnRefreshID + "')", 5000);
}

function CheckHotelAsyncAvailability(hfSessionID, hfStatusID, lblMessageID, btnRefreshID)
{
// //  alert('timer');
//    var sessionId = $get(hfSessionID);
//    var statusId =  $get(hfStatusID);

//    if (sessionId != null && statusId != null)
//        if (sessionId.value != "0" && statusId.value == "0") // sessionId can not be 0 for an existing session  
//        {                                                    // status = 0 means not searching inactive
//            statusId.value = "1";                            // status = 1 means start searching
//            WSHotelsSearchProgress.GetAvailabilityUpdates(sessionId.value, hfSessionID, hfStatusID,
//                                                          lblMessageID, btnRefreshID, HandleAvailabilityResponse);
//        }
}

function HandleAvailabilityResponse(result) 
{
    var status = eval("(" + result + ")");
    if (status.available > 0) 
    {
        if ($get(status.btnRefreshID) != null)
            $get(status.btnRefreshID).disabled = false;
                 
        if ($get(status.lblMessageID) != null)
            $get(status.lblMessageID).innerHTML = "Press refresh to see more results!";
    }
        
    var statusId = $get(status.hfStatusID);
    if (status.completed == "Y")
    {
        statusId.value = "2";                       // set status to completed
        if (status.available == 0) 
            $get(status.lblMessageID).innerHTML = "";
    }
    else statusId.value = "0";                      // set status to idle
}






function FilterAircraft(ctrl, msg, asyncCallback) {
    StoreControlValue(ctrl.id, ctrl.checked);

    return AsyncServerMessage(msg, ControlValues2JSONString(), ShowResponseDetails, asyncCallback);
}

//function HandleListSelect(ctrl, eventName, asyncCallback)
//{
//    var table = GetParentTable(ctrl);
//    var selectedIndex = GetBodyRowIndex(table, ctrl);
//    if (table != null && selectedIndex != null)
//    {
//        SetRowStyles(table.id, selectedIndex);
//        if (asyncCallback)
//            return AsyncServerMessage(eventName, selectedIndex, DefaultServerEventResponse, asyncCallback);
//        else return false;
//    }
//    else return false;
//}

//function HandleListDelete(ctrl, eventName, asyncCallback)
//{
//    var table = GetParentTable(ctrl);
//    var selectedIndex = GetBodyRowIndex(table, ctrl);
//    
//    if (table != null && selectedIndex != null)
//    {
//        AsyncServerMessage(eventName, selectedIndex.toString(), ShowResponseDetails, false);
//        return false;
//    }
//    else return false;
//}


//function HandleManageSelect(ctrl, eventName, asyncCallback)
//{
//    var table = GetParentTable(ctrl);
//    var selectedIndex = GetBodyRowIndex(table, ctrl);
//    if (table != null && selectedIndex != null)
//    {
//        SetRowStyles(table.id, selectedIndex);
//        return AsyncServerMessage(eventName, selectedIndex, ShowResponseDetails, asyncCallback);
//    }
//    return asyncCallback;
//}

function ChangeCountry(cbxId) {
    var cbx = $get(cbxId);
    StoreControlValue(cbx.id, cbx.value);
    return AsyncServerMessage('msgChangeCountry', cbx.value, ShowResponseDetails, true)
}

function ChangeCurrency(cbxId) {
    mpeLoader = $find('mpeLoadingBehaviorID1');
    if (mpeLoader)
        mpeLoader.show();
    var cbx = $get(cbxId);
    StoreControlValue(cbx.id, cbx.value);
    return AsyncServerMessage('msgChangeCurrency', ControlValues2JSONString(cbx), ShowResponseDetails, true)
}

function ChangeLanguage(ctrl, msg, asyncCallback) {
    postbackCtrlId = ctrl.uniqueID;
    return AsyncServerMessage('msgChangeLanguage', msg, PostbackServerResponse, false);
}

function RestaurantAvailabilityTimer(ctlId, msg) {
    return AsyncServerMessage(msg, ctlId.value, ShowResponseDetails, false);
}


function HandlePOIChange(txtControl) {
    var currentValue = GetControlValue(txtControl.id);
    if (currentValue != txtControl.value) {
        StoreControlValue(txtControl.id, txtControl.value);   
        AsyncServerMessage("msgPOITextChanged", txtControl.value, ShowResponseDetails, false);
    }
}

function HandleResultPOISearch()
{
    if (request.readyState == 4 && request.status == 200)
    {
        try
        {
            var result = eval("(" + request.responseText + ")");

            if (!result.error) {
                ShowStatusMessages(result.statusMessages)
            }
            else {
            }
        }
        catch (error) {
            exception = true;
        }
    }    
}

// not animated collapse/expand
function togglePannelStatus(content) {
    var divObject = document.getElementById(content);
    var expand = (divObject.style.display == "none");
    divObject.style.display = (expand ? "block" : "none");
}


function checktab(ctrl) 
{
    StoreControlValue(ctrl.get_id(), ctrl.get_activeTab().get_tabIndex());
    refreshMap();
    
}
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

function setDropdownlistValueChange(pobj, hfobj) {
    $get(hfobj).value = pobj.value;
    StoreControlValue(pobj.id, pobj.value);
    $get(hfobj).value = pobj.value;
    StoreControlValue($get(hfobj).id, $get(hfobj).value);
}

function setCustomerInfoValue(value1, value2) {
    StoreControlValue(value1.id, value1.value)
    $get(value2).value = value1.value;
    StoreControlValue(value2, value1.value);
}
