﻿//var request;
//var requestReady = false;


//function GetNewRequest()
//{
//    if (window.XMLHttpRequest)
//        request = new XMLHttpRequest();
//    else if (window.ActiveXObject)
//        request = new ActiveXObject('Msxml2.XMLHTTP');
//}
         

function readyStateChangeCallback()
{
    if (request.readyState == 4 && request.status == 200)
    {
        alert('old method call readyStateChangeCallback ');
        var a = request.responseText.split('|');
        for (var i = 0; i < a.length; i=i+2)
            StoreFieldValue(a[i], a[i+1]);
        //alert(request.responseText);
    }
}

function submitCallback()
{
    alert('old method call submitCallback ');

    request = GetNewRequest();// new XMLHttpRequest();
    request.open("POST", document.location.href, true);
    request.onreadystatechange = readyStateChangeCallback;
    request.setRequestHeader('selectionheader', 'true');
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    var body = 'test request';
    request.send(body);

}



function SelectionCallback(item, doPostback)
{
    alert('old method call SelectionCallback');

    if (request == null)
        GetNewRequest();
        
    request.open("POST", document.location.href, true);
    request.onreadystatechange = readyStateChangeCallback;
    request.setRequestHeader('selectionheader', 'true');
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    var body = item.toString();
    request.send(body);

    return doPostback;
}

function DeletionCallback(item, doPostback)
{
    alert('old method call DeletionCallback');
    if (request == null)
        GetNewRequest();
        
    request.open("POST", document.location.href, true);
    request.onreadystatechange = readyStateChangeCallback;
    request.setRequestHeader('deletionheader', 'true');
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    var body = item.toString();
    request.send(body);

    return doPostback;
}

function TabChangeCallback(item, doPostback)
{
    alert('old method call TabChangeCallback');

    if (request == null)
        GetNewRequest();
        
    request.open("POST", document.location.href, true);
    request.onreadystatechange = readyStateChangeCallback;
    request.setRequestHeader('tabchangeheader', 'true');
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    var body = item.toString();
    request.send(body);

    return doPostback;
}

function MainTrack_OnAsyncTabChange(pobj, tabObjID) 
{
    alert('old method call MainTrack_OnAsyncTabChange');

    var tabObj = $get(tabObjID);
    var selectedTab = pobj.control.get_activeTabIndex();

    TabChangeCallback(selectedTab.toString(), true);
    return false;
}

function MainTrack_OnAsyncBtnChange(id) 
{
    if (id == 'hotel')
        TabChangeCallback('2', true);
    else if (id == 'car')
        TabChangeCallback('3', true);
    else if (id == 'charter')
        TabChangeCallback('1', true);
    
    return true;
}

function HandleServerTabChange() {
return "true"

}

function HandleClientTabChange(sender, e) {
    var z2 = sender.get_activeTab();
    var z1 = z2.get_tabIndex();
    return TabChangeCallback(z1.toString());
    //var z2 = sender.get_activeTab();
return "true"
}
                                
function TestTab(sender, e) {

    TabChangeCallback(sender.get_activeTab().get_tabIndex(), true);
    return true;
}

var lastCbxCountryValue = "country";
var lastCbxStateValue = "state";
var lastCbxRegionValue = "region";
var lastCbxCityValue = "city";
var lastCbxCityAreaValue = "cityarea";


function MainTrack_Toolbar_OnCbxChange(pobj) {
//    alert("test normal cbx");
    StoreFieldValue(pobj.id, pobj.value);
}

function MainTrack_OnTxtChange(pobj) {
//alert(pobj.value);
    StoreFieldValue(pobj.id, pobj.value);
} 


function GenerateKeyString(sIn)
{
    var sOut = "";
    var ch = ' ';
    for (var i = 0; i < sIn.length; i++)
    {
        ch = sIn.charAt(i);
        ch = ch.toUpperCase();
        if (ch >= 'A' && ch <= 'Z')
            sOut = sOut + ch;    
    }

    return sOut;
}


function MainTrack_OnCityTxtChange(txtCityNameID, txtMainKeyID, txtCityDisplayNameID, txtCityIdID)
{
    var txtCityName = $get(txtCityNameID);
    var txtMainKey = $get(txtMainKeyID);
    var txtCityDisplayName = $get(txtCityDisplayNameID);
    var txtCityId = $get(txtCityIdID);
    
    StoreFieldValue(txtCityNameID, txtCityName.value);

    if (txtMainKey.value.length == 0)
    {
        txtMainKey.value = GenerateKeyString(txtCityName.value);
        StoreFieldValue(txtMainKeyID, txtMainKey.value);
    }
    
    if (txtCityDisplayName.value.length == 0)
    {
        txtCityDisplayName.value = txtCityName.value;
        StoreFieldValue(txtCityDisplayNameID, txtCityDisplayName.value);
    }

    if (txtCityId.value.length == 0)
    {
        txtCityId.value = GenerateKeyString(txtCityName.value);
        StoreFieldValue(txtCityIdID, txtCityId.value);
    }    
}

function MT_OnCityMainKeyChange(cbxMainKeyID, txtMainKeyID)
{
    StoreFieldValue(cbxMainKeyID, $get(cbxMainKeyID).value);
    $get(txtMainKeyID).value = $get(cbxMainKeyID).value;
    StoreFieldValue(txtMainKeyID, $get(txtMainKeyID).value);
}


//function MainTrack_Toolbar_OnDLChange(pobj, index) {
//    alert(pobj.value);
//    alert(index);
//    alert(pobj.selectedIndex);
//    x = d/5;
//    StoreFieldValue(pobj.id, pobj.value);
//} 

function MainTrack_Toolbar_OnDLChange(triggerObjID, dlObjID, index) {
//    alert(triggerObjID);
//    alert(dlObjID);
//    alert(index);
    StoreFieldValue(dlObjID, index);
} 


//function MainTrack_Toolbar_OnDLChange2(index) {
//    alert(pobj.value);
//    alert(index);
//    alert(pobj.selectedIndex);
//    x = d/5;
//    StoreFieldValue(pobj.id, pobj.value);
//} 


function MainTrack_OnChbClick(pobj) {
    if (pobj.checked)
        StoreFieldValue(pobj.id, "TRUE");
    else StoreFieldValue(pobj.id, "FALSE");
} 

function MainTrack_OnChbClick_CtrlToggle2(pobj, pBtnSelect1ID, pBtnSelect2ID) {
    if (pobj.checked)
        StoreFieldValue(pobj.id, "TRUE");
    else StoreFieldValue(pobj.id, "FALSE");
    $get(pBtnSelect1ID).disabled = !pobj.checked;
    $get(pBtnSelect2ID).disabled = !pobj.checked;
}

function ToMoneyString(d)
{
    return new Number(d).toFixed(2);
}

function GetTableFromCell(table, row, col) {
    return table.rows[row].cells.item(col).children[0];
}

function GetLblFromCell(table, row, col) {
    return table.rows[row].cells.item(col).children[0];
}

function GetChbFromCell(table, row, col) {
    return table.rows[row].cells.item(col).children[0].children[0];
}

function GetCbxFromCell(table, row, col) {
    return table.rows[row].cells.item(col).children[0].children[0];
}



function GetRbtFromCell(table, row, col) {
    return table.rows[row].cells.item(0).children[0].children[0].children[0].children[0].children[0].children[0];
}

function MainTrack_DataListChbClick(pObjID, dlSSRID, dlMandatoryID, 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);
 
    for (var i = 1; i < dlMandatory.rows.length; i++)
    {
        mandatoryRateReqCur += parseFloat(GetLblFromCell(GetTableFromCell(dlMandatory, i, 3), 0, 0).innerText);
        mandatoryRate += parseFloat(GetLblFromCell(GetTableFromCell(dlMandatory, i, 3), 1, 0).innerText);
    }
    
    var ssrRate = mandatoryRate;
    var ssrRateReqCur = mandatoryRateReqCur;
    var dlSSR = $get(dlSSRID);
    
    for (var i = 1; i < dlSSR.rows.length; i++)
    {
        if (GetChbFromCell(dlSSR, i, 0).checked)
        {
            ssrRateReqCur += parseFloat(GetLblFromCell(GetTableFromCell(dlSSR, i, 3), 0, 0).innerText);
            ssrRate += parseFloat(GetLblFromCell(GetTableFromCell(dlSSR, i, 3), 1, 0).innerText);
        }
    }
    
    
    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);

    
//    alert(mandatoryRate);
//    
//    
//    var dl = $get(DataListID);
//    
//    var total = 0;
//    var count = dl.rows.length;
////    var r = dl.rows[rowNumber];
//        var r = dl.rows[1];
//        var c0 = r.cells.item(0);
//    var c1 = r.cells.item(1);
//    var c3 = r.cells.item(3);
//    var ctrl = c0.children[0].children[0];
//    var ctrl3 = c3.children[0];
////    alert(ctrl3.innerText);
////    var s = c3.innerText;
////   
//  //  alert(rowNumber + "  " + ctrl.checked + "   "   + ctrl3.innerText);
//    for (var i = 1; i < count; i++)
//    {
//        r = dl.rows[i];
//        c0 = r.cells.item(0);
//        c3 = r.cells.item(3);
//        ctrl = c0.children[0].children[0];
//        ctrl3 = c3.children[0];
//        alert(ctrl3.innerText);
//        alert(parseFloat(ctrl3.innerText));// + //dl.rows[i].Item(3).children[0].innerText);
//        if (dl.rows[i].cells.item(0).children[0].children[0].checked){
//            alert(parseFloat("99") + "  ");// + //dl.rows[i].Item(3).children[0].innerText);
//            total = total + parseFloat(parseFloat(ctrl3.innerText));
//        }
//        alert(i + "   " + ctrl.checked + "  "+ total);

//    }
//    
//    
//    
//    var txt = $get(ssrTotalID);
//    txt.innerText = total;
////  
////    alert(rowNumber + "  " + ctrl.checked + "   "   + ctrl3.innerText);
////    for (int i = 1; i < count; i++)
////    {
////        if (dl.rows[i].cells.item(0).children[0].children[0].checked)
////            total = total + dl.rows[i].Item(3).children[0].innerText;
////    }
//    
////    var ctrl3 = c3.children[0];
////    alert(ctrl3.innerText);
////    var s = c3.innerText;
////    var pobj = $get(pObjID);
////    if (pobj.checked)
////        alert(" true " + rowNumber);
////    else alert(" false " + rowNumber);
}

function FindCbxFromCell(table, row, col) 
{
    var item = table.rows[row].cells.item(col);
    while (item.tagName != 'SELECT')
        item = item.children[0];
    return item;    
}

function FindTxtFromCell(table, row, col) 
{
    var item = table.rows[row].cells.item(col);
    while (item.tagName != 'SPAN')
        item = item.children[0];
    return item;    
}



function MainTrack_SSRDataListCbxQuantityChange(pObjID, dlSSRID, rateID, ssrTotalID, totalID, 
                                                rateReqCurID, ssrTotalReqCurID, totalReqCurID) 
{
    
    var rate = parseFloat($get(rateID).innerText);
    var rateReqCur = parseFloat($get(rateReqCurID).innerText);
        
    var ssrRate = 0;
    var ssrRateReqCur = 0;
    var cbx = $get(pObjID);
    var dlSSR = $get(dlSSRID);


//    var r = dlSSR.rows[1];
//    var cbx1 = FindCbxFromCell(dlSSR, 1, 0);
//    var txt1 = FindTxtFromCell(dlSSR, 1, 2);


//    var c0 = r.cells.item(0).children[0];;
//    var c1 = r.cells.item(1).children[0];
//    var c3 = r.cells.item(2).children[0];
//    var ctrl = c1.children[0].children[0];
//    var ctrl3 = c3.children[0];


    
    for (var i = 1; i < dlSSR.rows.length - 1; i++)
    {
        var quantity = FindCbxFromCell(dlSSR, i, 1).value;
        var amount = parseFloat(FindTxtFromCell(dlSSR, i, 3).innerText);
        ssrRateReqCur += quantity * amount;
        ssrRate += quantity * amount;
    }
    
    
    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 MainTrack_DataListRbtClick(dlID, newSelIndex) 
{
    var dl = $get(dlID);
     
    for (var i = 0; i < dl.rows.length; i++)
    {
        var rbt = GetRbtFromCell(dl, i, 0);
        rbt.checked = (i == newSelIndex);
    }
    StoreFieldValue(dlID, newSelIndex);
}

function MainTrack_SelectionMade(dlID, newSelIndex) 
{
    var dl = $get(dlID);
    StoreFieldValue(dlID, newSelIndex);
    submitCallback();
    return false;
}

function ToggleCtrlVisibility(rbtID, rbtOffID, id1, txt1, id2, txt2)
{
    var rbtOn = $get(rbtID);
    if (rbtOn.checked)
    {
        $get(id1).innerText = txt1;
        $get(id2).innerText = txt2;
        $get(rbtOffID).checked = false;
        StoreFieldValue(rbtID, 'TRUE');
        StoreFieldValue(rbtOffID, 'FALSE');
    }
    else
    {
        StoreFieldValue(rbtID, 'FALSE');
        StoreFieldValue(rbtOffID, 'TRUE');
    }
}

//function MainTrack_DataListRbtClick(dlID) 
//{
//    var selIndex = parseInt(GetFieldValue(dlID));
//    var newSelIndex = -1;

//    var dl = $get(dlID);

//     
//    for (var i = 0; i < dl.rows.length; i++)
//    {
//        var rbt = GetRbtFromCell(dl, i, 0);
//        if (rbt.checked)
//        {
//            if (i == selIndex)
//                rbt.checked = false;
//            else
//                newSelIndex = i;
//        }
//    }
//    StoreFieldValue(dlID, newSelIndex);
//}



function MainTrack_OnChbClick_CtrlToggle(pobj, pBtnSelect1ID) {
    if (pobj.checked)
        StoreFieldValue(pobj.id, "TRUE");
    else StoreFieldValue(pobj.id, "FALSE");
    $get(pBtnSelect1ID).disabled = !pobj.checked;
}


function MainTrack_Cbx_OnMinChange(ctlMinID, ctlMaxID) {
    var cbxMin = $get(ctlMinID);
    var cbxMax = $get(ctlMaxID);
    var min = cbxMin.selectedIndex;
    var max = cbxMax.selectedIndex;
    if (max > 0 && max < min){
        cbxMax.selectedIndex = min;
    }
    StoreFieldValue(ctlMinID, cbxMin.value);
    StoreFieldValue(ctlMaxID, cbxMax.value);
    return false;
}

function MainTrack_Cbx_OnMaxChange(ctlMinID, ctlMaxID) {
    var cbxMin = $get(ctlMinID);
    var cbxMax = $get(ctlMaxID);

    var min = cbxMin.selectedIndex;
    var max = cbxMax.selectedIndex;
    if (min > 0 && max < min && max > 0){
        cbxMin.selectedIndex = max;
    }
    StoreFieldValue(ctlMinID, cbxMin.value);
    StoreFieldValue(ctlMaxID, cbxMax.value);
    return false;
}


function CheckDate(sender, args)
{
    var hfStorage = GetStorageField();
    if (hfStorage) 
    { 
        var a = hfStorage.value.split('|');
        var posMin = FindPosition(a, sender._id + 'MIN');
        var posMax = FindPosition(a, sender._id + 'MAX');
        
        if (posMin != -1)
        {
            if (sender._selectedDate < parseShortDate(a[posMin + 1]))
            {
                sender._selectedDate = parseShortDate(a[posMin + 1]);
                sender._textbox.set_Value(sender._selectedDate.format(sender._format));
            }
        }
        if (posMax != -1)
        {
            if (sender._selectedDate > parseShortDate(a[posMax + 1]))
            {
                sender._selectedDate = parseShortDate(a[posMax + 1]);
                sender._textbox.set_Value(sender._selectedDate.format(sender._format));
            }
        }
            
    }
}


//function MainTrack_Date_OnMinChange(ctlMinID, ctlMaxID, absMin, absMax, pDaysRequired) {
function MainTrack_Date_OnMinChange(ctlMinID, ctlMaxID, pDaysRequired) {
    var txtMin = $get(ctlMinID);
    var txtMax = $get(ctlMaxID);
    var min = txtMin.value;
    var max = txtMax.value;
 //   alert(txtMin.value + "    " + txtMax.value + "    " + pDaysRequired);   
    DefaultDatePairSync(txtMin , txtMax , pDaysRequired) ;
    
 //   alert(txtMin.value + "    " + txtMax.value);   
    
    StoreFieldValue(ctlMinID, txtMin.value);
    StoreFieldValue(ctlMaxID, txtMax.value);
    return false;
}

//function MainTrack_Date_OnMaxChange(ctlMinID, ctlMaxID, absMin, absMax, pDaysRequired) {

function MainTrack_Date_OnMaxChange(ctlMinID, ctlMaxID, pDaysRequired) {
    var txtMin = $get(ctlMinID);
    var txtMax = $get(ctlMaxID);
    var min = txtMin.value;
    var max = txtMax.value;

//    alert(txtMin.value + "    " + txtMax.value + "    " + pDaysRequired);   
    
    DefaultDatePairSync(txtMin , txtMax , pDaysRequired) ;
    
    StoreFieldValue(ctlMinID, txtMin.value);
    StoreFieldValue(ctlMaxID, txtMax.value);
    return false;
}


function MainTrack_Select_OnTabChange(pobj) {
 //   alert("error cause");
 //   GetStorageField().value = pobj.control.get_activeTabIndex();
    }

function MainTrack_OnTabChange(pobj) {
        StoreFieldValue(pobj.id, pobj.control.get_activeTabIndex());
 //       alert(pobj.control.get_activeTabIndex());
    }

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 MT_OnCountryChange(cbxCountryID, cbxStateID, cbxRegionID, cbxCityID, cbxCityAreaID){

    var country = $get(cbxCountryID).value;
    
    var state = MainTrack_Toolbar_EmptyString;
    if ((country != 'AU') && (country != 'US') && (country != 'CA'))
        state = '00';
    var region = MainTrack_Toolbar_EmptyString;
    var city = MainTrack_Toolbar_EmptyString;
    var cityArea = "";

    if (lastCbxCountryValue != country)
    {
        lastCbxCountryValue = country;
        StoreFieldValue(cbxCountryID, $get(cbxCountryID).value);
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxCityAreaID, cityArea);
        
        LoadTableState(country, cbxStateID);
        LoadTableCity(country, state, region, cbxCityID);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
        
        if (cbxRegionID.Length > 0)
        {
            StoreFieldValue(cbxRegionID, region);
            LoadTableRegion(country, cbxRegionID);
        }
     }
        
    return false;
}

function MT_OnCountryAirportChange(cbxCountryID, cbxAirportID){

    var country = $get(cbxCountryID).value;
    var airport = MainTrack_Toolbar_EmptyString;

    StoreFieldValue(cbxCountryID, country);
    StoreFieldValue(cbxAirportID, airport);

    LoadTableAirport(country, cbxAirportID);
    return false;
}

function MT_OnCountrySeaportChange(cbxCountryID, cbxSeaportID){

    var country = $get(cbxCountryID).value;
    var seaport = MainTrack_Toolbar_EmptyString;

    StoreFieldValue(cbxCountryID, country);
    StoreFieldValue(cbxSeaportID, seaport);

    LoadTableSeaport(country, cbxSeaportID);
    return false;
}





function MT_OnManageCityCountryChange(cbxCountryID, cbxStateID, cbxCityID, cbxMainKeyID){

    var country = $get(cbxCountryID).value;
    
    var state = MainTrack_Toolbar_EmptyString;
    if ((country != 'AU') && (country != 'US') && (country != 'CA'))
        state = '00';
    var city = MainTrack_Toolbar_EmptyString;
    var mainKey = "";

    if (lastCbxCountryValue != country)
    {
        lastCbxCountryValue = country;
        StoreFieldValue(cbxCountryID, $get(cbxCountryID).value);
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxMainKeyID, mainKey);
        
        LoadTableState(country, cbxStateID);
        LoadTableCity(country, state, null, cbxCityID);
        LoadTableCityMainKey(country, state, cbxMainKeyID);
     }
        
    return false;
}

function MT_OnManageCity2CountryChange(cbxCountryID, cbxStateID, cbxMainKeyID){

    var country = $get(cbxCountryID).value;
    
    var state = MainTrack_Toolbar_EmptyString;
    if ((country != 'AU') && (country != 'US') && (country != 'CA'))
        state = '00';
    var mainKey = "";

    if (lastCbxCountryValue != country)
    {
        lastCbxCountryValue = country;
        StoreFieldValue(cbxCountryID, $get(cbxCountryID).value);
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxMainKeyID, mainKey);
        
        LoadTableState(country, cbxStateID);
        LoadTableCityMainKey(country, state, cbxMainKeyID);
     }
        
    return false;
}

function LoadTableState(countryID, cbxStateID){
//alert(" load state ");
    TableLoadServices.JSGetStatesCtlID(countryID, cbxStateID, UpdateStateList);
}

function UpdateStateList(result){
    UpdateList(result);
    return ;
}

function LoadTableAirport(countryID, cbxAirportID){
    TableLoadServices.JSGetAirportsCtlID(countryID, cbxAirportID, UpdateAirportList);
}

function UpdateAirportList(result){
    UpdateList(result);
    return ;
}

function LoadTableRegion(countryID, cbxRegionID){
//alert(" load region ");
    TableLoadServices.JSGetRegionsCtlID(countryID, cbxRegionID, UpdateRegionList);
}

function UpdateRegionList(result){
    UpdateList(result);
    return ;
}

function LoadTableCity(countryID, stateID, regionID, cbxCityID){
//alert(" load city ");

    TableLoadServices.JSGetCitiesCtlID(countryID, stateID, regionID, cbxCityID, UpdateCityList);
}

function UpdateCityList(result){
//alert(" update city ");
    UpdateList(result);
    return ;
}

function LoadTableCityMainKey(countryID, stateID, cbxCityMainKeyID){
//alert(" load city ");

    TableLoadServices.JSGetCityMainKeysCtlID(countryID, stateID, cbxCityMainKeyID, UpdateCityMainKeyList);
}

function UpdateCityMainKeyList(result){
//alert(" update city ");
    UpdateList(result);
    return ;
}


function LoadTableCityArea(countryID, stateID, cityID, cbxCityAreaID){
//alert(" load city area ");

    TableLoadServices.JSGetCityAreasCtlID(countryID, stateID, cityID, cbxCityAreaID, UpdateCityAreaList);
}

function UpdateCityAreaList(result){
    UpdateList(result);
    return ;
}

function MT_OnStateChange(cbxCountryID, cbxStateID, cbxRegionID, cbxCityID, cbxCityAreaID){
    var country = $get(cbxCountryID).value;
    var state = $get(cbxStateID).value;
    var region = MainTrack_Toolbar_EmptyString;
    var city = MainTrack_Toolbar_EmptyString;
    var cityArea = MainTrack_Toolbar_EmptyString;

    if (lastCbxStateValue != state)
    {
        lastCbxStateValue = state;
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxCityAreaID, cityArea);
        
        LoadTableCity(country, state, region, cbxCityID);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
        
        if (cbxRegionID.Length > 0)
        {
            StoreFieldValue(cbxRegionID, region);
        }

     }
        
    return false;
}

function LoadNumberOfPassengers(aircraftTypeId, cbxNumberOfPassengerID){
    TableLoadServices.JSGetNumberOfPassengersCtlID(aircraftTypeId, cbxNumberOfPassengerID, 
                                                   UpdateNumberOfPassengers);
}

function UpdateNumberOfPassengers(result){
    UpdateList(result);
    return ;
}


function LoadNumberOfSeats(aircraftTypeId, cbxNumberOfSeatsID){
    TableLoadServices.JSGetNumberOfSeatsCtlID(aircraftTypeId, cbxNumberOfSeatsID, UpdateNumberOfSeats);
}

function UpdateNumberOfSeats(result){
    UpdateList(result);
    return ;
}



function MT_OnAircraftTypeChange(cbxAircraftTypeID, cbxNumberOfPassengersID, cbxNumberOfSeatsID){
    var aircraftType = $get(cbxAircraftTypeID).value;

    StoreFieldValue(cbxAircraftTypeID, aircraftType);
    StoreFieldValue(cbxNumberOfPassengersID, "?");
    StoreFieldValue(cbxNumberOfSeatsID, "?");
        
    LoadNumberOfPassengers(aircraftType, cbxNumberOfPassengersID);
    LoadNumberOfSeats(aircraftType, cbxNumberOfSeatsID);
    return false;
}


function MT_OnManageCityStateChange(cbxCountryID, cbxStateID, cbxCityID, cbxMainKeyID){
    var country = $get(cbxCountryID).value;
    var state = $get(cbxStateID).value;
    var city = MainTrack_Toolbar_EmptyString;
    var mainKey = MainTrack_Toolbar_EmptyString;

    if (lastCbxStateValue != state)
    {
        lastCbxStateValue = state;
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxMainKeyID, mainKey);
        
        LoadTableCity(country, state, null, cbxCityID);
        LoadTableCityMainKey(country, state, cbxMainKeyID);
     }
        
    return false;
}

function MT_OnManageCity2StateChange(cbxCountryID, cbxStateID, cbxMainKeyID){
    var country = $get(cbxCountryID).value;
    var state = $get(cbxStateID).value;
    var mainKey = MainTrack_Toolbar_EmptyString;

    if (lastCbxStateValue != state)
    {
        lastCbxStateValue = state;
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxMainKeyID, mainKey);
        
        LoadTableCityMainKey(country, state, cbxMainKeyID);
     }
        
    return false;
}

function MT_OnRegionChange(cbxCountryID, cbxStateID, cbxRegionID, cbxCityID, cbxCityAreaID){
    var country = $get(cbxCountryID).value;
    var state = MainTrack_Toolbar_EmptyString;
    var region = $get(cbxRegionID).value;
    var city = MainTrack_Toolbar_EmptyString;
    var cityArea = MainTrack_Toolbar_EmptyString;

    if (lastCbxRegionValue != region)
    {
        lastCbxRegionValue = region;
        StoreFieldValue(cbxStateID, state);
        StoreFieldValue(cbxRegionID, region);
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxCityAreaID, cityArea);
        
        LoadTableCity(country, state, region, cbxCityID);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
     }
        
    return false;
}

function MT_OnCityChange(cbxCountryID, cbxStateID, cbxRegionID, cbxCityID, cbxCityAreaID){
    var country = $get(cbxCountryID).value;
    var state = "";
    if (cbxStateID.Length > 0)
        state = $get(cbxStateID).value;
    var region = "";
    if (cbxRegionID.Length > 0)
        region = $get(cbxStateID).value;


    var city = $get(cbxCityID).value;
    var cityArea = MainTrack_Toolbar_EmptyString;

    if (lastCbxCityValue != city)
    {
        lastCbxCityValue = city;
        StoreFieldValue(cbxCityID, city);
        StoreFieldValue(cbxCityAreaID, cityArea);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
     }
        
    return false;
}




/// <summary>
/// Constants for TableLoadServices() do not base on zero to catch unitianalized vars
/// Should be an Enum
/// </summary>
var MainTrack_Toolbar_EmptyString="";
var MainTrack_Toolbar_States= 1 ;
var MainTrack_Toolbar_Regions= 2 ;
var MainTrack_Toolbar_Cities= 3 ;
var MainTrack_Toolbar_CityAreas = 4 ;
var MainTrack_Toolbar_PortsFrom  = 5;
var MainTrack_Toolbar_PortsTo  = 6;

/// <summary>
/// Constants for Log.X() do not base on zero to catch unitianalized vars
/// Should be an Enum
/// </summary>
var MainTrack_LOG_TRACE = 1 ;
var MainTrack_LOG_DEBUG = 2 ;
var MainTrack_LOG_INFO = 3 ;
var MainTrack_LOG_WARN = 4 ;
var MainTrack_LOG_ERROR = 5 ;
var MainTrack_logLevel = MainTrack_LOG_INFO;

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Log_trace(arg){
    if (MainTrack_LOG_TRACE >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Log_debug(arg){
    if (MainTrack_LOG_DEBUG >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Log_info(arg){
    if (MainTrack_LOG_INFO >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Log_warn(arg){
    if (MainTrack_LOG_WARN >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Log_error(arg){
    if (MainTrack_LOG_ERROR >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function parseShortDate(s){
    MainTrack_Log_trace("parseShortDate : " + s);
    var sep= "-";
    var ret;
    var sd = 1;
    var sm =  0;
    var sy = 2000;
    var parts = s.split(sep);
    
    switch(parts.length) {
    case 1:
        sd = parseInt(parts[0], 10);
        break;
    case 2:
        sd = parseInt(parts[0], 10);
        sm = parseInt(parts[1], 10);
        break;
    case 3:
        sd = parseInt(parts[0], 10);
        sm = parseInt(parts[1], 10);
        sy = parseInt(parts[2], 10);
        break;
    }
    MainTrack_Log_trace("parseShortDate : sd :" + sd+ " sm :" + sm+ " sy :" + sy);
    ret = new Date(sy,sm-1,sd);
    MainTrack_Log_trace("parseShortDate :ret : " + ret);
    return ret;
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function toShortDate(dt){
    MainTrack_Log_trace("toShortDate : " + dt);
    var zero= "0";
    var sep="-";
    var ret ;
    var dtd = dt.getDate();
    var dtm = dt.getMonth()+1;
    var dty = dt.getFullYear();
    if (dtd < 10) dtd = zero + dtd ;
    if (dtm < 10) dtm = zero + dtm ;
    ret = dtd + sep + dtm + sep + dty ;
    MainTrack_Log_trace("toShortDate.ret : " + ret);
    return ret;
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function CompareDates(dateStart , dateEnd , daysRequired )  {
 //   alert("CompareDates: " + dateStart + " , " + dateEnd + " , " +  daysRequired  );
    var secondsPerDay = 86400000 ;
    var secondsRequired = daysRequired * secondsPerDay ;
    var secondsStart  = dateStart.valueOf();
    var secondsEnd = dateEnd.valueOf() ;
 //   alert("CompareDates: " + secondsStart + " , " + secondsEnd + " , " +  secondsRequired  );
    MainTrack_Log_trace("CompareDates: secondsEnd , secondsStart , (secondsEnd - secondsStart),  secondsRequired " + secondsEnd + " , " + secondsStart + " , " + (secondsEnd - secondsStart) + " , " + secondsRequired );
    if((secondsEnd - secondsStart) < secondsRequired){
  //  alert("date ret " + dateRet);
        var dateRet = new Date((secondsStart + secondsRequired) );
        return dateRet;
    } else {
        return dateEnd;
    }
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function CompareDateStrings(strStart , strEnd , daysRequired )  {
   MainTrack_Log_trace("CompareDateStrings: " + strStart+ " , " + strEnd + " , " + daysRequired);
   
 //  alert("compare date strings  " + strStart + "    " + strEnd)
   var dateStart = parseShortDate(strStart);
   var dateEnd = parseShortDate(strEnd);
   var dateRet = CompareDates(dateStart ,dateEnd, daysRequired);
   return toShortDate(dateRet);
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function CompareDateControls(ctlStart , ctlEnd , daysRequired )  {
   MainTrack_Log_trace("CompareDateControls: " + ctlStart+ " , " + ctlEnd + " , " + daysRequired);
   var strStart = ctlStart.value;
   var strEnd = ctlEnd.value;
   return CompareDateStrings(strStart , strEnd , daysRequired );
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function DefaultDatePairSync(ctlStart , ctlEnd , daysRequired) {
    MainTrack_Log_trace("DefaulDtatePairSync : " + ctlStart + " , " + ctlEnd + " , "  + daysRequired) ;
    var strStart = ctlStart.value;
    var strEnd = ctlEnd.value;
    var strEnd = ctlEnd.value;
    var strResult = strEnd;
    var strResult = CompareDateStrings(strStart , strEnd , daysRequired );
//    alert("string result  " + strResult);
    MainTrack_Log_trace("DefaulDtatePairSync : " + strStart + " , " + strEnd + " , "  + strResult) ;
    ctlEnd.value = strResult ;
    }

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function DefaultDatePairSync2(ctlStart , ctlEnd , daysRequired) {
    MainTrack_Log_trace("DefaulDtatePairSync2 : " + ctlStart + " , " + ctlEnd + " , "  + daysRequired) ;
    ctlEnd.value = CompareDateControls(ctlStart , ctlEnd , daysRequired )
    }


/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function dumpDate(d) {
    MainTrack_Log_info ("dumpDate\ntoLocaleString() :" +d.toLocaleString()+"\n"
               + "toShortDate() :" + toShortDate(d)+"\n"
               + "dumpDate.toDateString() :" + d.toDateString()+"\n");
}

/// <summary>
/// Change Language and store in ctl identified by pCtlLanguageID
/// </summary>
/// <field name="pCtlLanguageID" type="String">
/// ID of the HTML element to strore the languege value in
/// </field>
/// <field name="value" type="String"=>
/// Value t\to be stored
/// </field>
function MainTrack_Toolbar_SetLanguage(pCtlLanguageID, value) {
    MainTrack_Log_info("SetLanguage(" + pCtlLanguageID + " , " + value + ")");
    $get(pCtlLanguageID).value = value;
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdateStateList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateStateList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
    return ;
//    var cbx = $get('ctl00_ContentPlaceHolder2_ToolbarActivity1_cbxState');
    MainTrack_Log_info("MainTrack_Toolbar_UpdateList(" + result +")");
    var options = eval("(" + result + ")");
    if (options.description.length<1){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: options.description.length<1, returning" );
        return ;
    }

    var cbxID = options.description[0];
    var cbx = $get(cbxID);
    if (cbx == null){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbx == null, returning" );
        return ;
    }

    MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbxID , cbx :" + cbxID + " , " + cbx );
    cbx.disabled = true;
    cbx.options.length=0;
//    while (cbx.length > 0) {
//        cbx.remove(0);
//    }
    if (options.id.length>1){
        for (i = 1; i < options.id.length; i++) {
//            var option = new Option((options.description[i]).toString(), (options.id[i]).toString());
            var option = new Option(options.description[i], options.id[i]);
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbxID , options[" + i + "] : " + cbxID + " , " + options.id[i]+ ": "+ options.description[i] );
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbx , option= : " + cbx + " , " + option + "->" + option.text + ": "+ option.value );
            cbx.options[cbx.options.length] = option;
        }
    }
    cbx.disabled = false;
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdateRegionList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateRegionList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdateCityList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateCityList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
    return ;
    var options = eval("(" + result + ")");
    if (options.description.length<1){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: options.description.length<1, returning" );
        return ;
    }

    var cbxID = options.description[0];
    var cbx = $get(cbxID);
    if (cbx == null){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbx == null, returning" );
        return ;
    }

    MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbxID , cbx :" + cbxID + " , " + cbx );
    cbx.disabled = true;
    while (cbx.length > 0) {
        cbx.remove(0);
    }
    if (options.id.length>1){
        for (i = 1; i < options.id.length; i++) {
//            var option = new Option((options.description[i]).toString(), (options.id[i]).toString());
            var option = new Option(options.description[i], options.id[i]);
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbxID , options[" + i + "] : " + cbxID + " , " + options.id[i]+ ": "+ options.description[i] );
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbx , option= : " + cbx + " , " + option + "->" + option.text + ": "+ option.value );
            cbx.options[i-1] = option;
        }
    }
    cbx.disabled = false;
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdateCityAreaList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateCityAreaList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdatePortFromList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdatePortFromList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdatePortToList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdatePortToList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_UpdateList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateList(" + result +")");
    var options = eval("(" + result + ")");
    if (options.description.length<1){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: options.description.length<1, returning" );
        return ;
    }

    var cbxID = options.description[0];
    var cbx = $get(cbxID);
    if (cbx == null){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbx == null, returning" );
        return ;
    }

    MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbxID , cbx :" + cbxID + " , " + cbx );
    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]);
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbxID , options[" + i + "] : " + cbxID + " , " + options.id[i]+ ": "+ options.description[i] );
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbx , option= : " + cbx + " , " + option + "->" + option.text + ": "+ option.value );
            cbx.options[cbx.options.length] = option;
        }
    }
    cbx.disabled = false;
}

/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_TableLoadServices(pCountry, pState, pCityOrRegion, pCbxID, pWhich){
    MainTrack_Log_info("MainTrack_Toolbar_TableLoadServices(" + pCountry + " , " + pState + " , " + pCityOrRegion + " , " +
                     pCbxID + " , " + pWhich + ")");
    var which = pWhich ;
    switch (which) {
        case MainTrack_Toolbar_States : {// States by Country
            MainTrack_Log_debug("MainTrack_Toolbar_States");
            TableLoadServices.JSGetStatesCtlID(pCountry, pCbxID, MainTrack_Toolbar_UpdateStateList);
        }
        break;
        case MainTrack_Toolbar_Regions : { // Region by Country
            MainTrack_Log_debug("MainTrack_Toolbar_Regions");
            TableLoadServices.JSGetRegionsCtlID(pCountry, pCbxID, MainTrack_Toolbar_UpdateRegionList);
        }
        break;
        case MainTrack_Toolbar_Cities : { // Cities by or State #pState# Or Region #PCity#
            MainTrack_Log_debug("MainTrack_Toolbar_Cities");
            TableLoadServices.JSGetCitiesCtlID(pCountry, pState, pCityOrRegion, pCbxID, MainTrack_Toolbar_UpdateCityList);
        }
        break;
        case MainTrack_Toolbar_CityAreas : { // CitieAreas by or State #pState# Or Region #PCity#
            MainTrack_Log_debug("MainTrack_Toolbar_CityAreas");
            TableLoadServices.JSGetCityAreasCtlID(pCountry, pState, pCityOrRegion, pCbxID, MainTrack_Toolbar_UpdateCityAreaList);
        }
        break;
        case MainTrack_Toolbar_PortsFrom : { // Airports by Country
            MainTrack_Log_debug("MainTrack_Toolbar_Cities");
            TableLoadServices.JSGetAirportsCtlID(pCountry, pCbxID, MainTrack_Toolbar_UpdatePortFromList);
        }
        break;
        case MainTrack_Toolbar_PortsTo : { // Airports by Country
            MainTrack_Log_debug("MainTrack_Toolbar_PortsTo");
            TableLoadServices.JSGetAirportsCtlID(pCountry, pCbxID, MainTrack_Toolbar_UpdatePortToList);
        }
        break;
        default : {
            MainTrack_Log_error("MainTrack_Toolbar_TableLoadServices(" + pCountry + " , " + pState + " , " + pCityOrRegion + " , " +
                             pCbxID + " , " + pWhich + ") : Unknown Type");
        }
        break;
    }
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnCountryChangeSRCCa(pCbxCountry, pHfCountryID,pCbxStateID, pHfStateID, pCbxRegionID, pHfRegionID
                                           , pCbxCityID, pHfCityID, pCbxCityAreaID, pHfCityAreaID){
    MainTrack_Log_info("MainTrack_Toolbar_OnCountryChangeSRCCa(" + pCbxCountry + " , " + pHfCountryID + " , " + pCbxStateID + " , " + pHfStateID + " , " +
                  pCbxRegionID + " , "  + pHfRegionID + " , " + pCbxCityID + " , " + pHfCityID + " , " +
                  pCbxCityAreaID + " , " + pHfCityAreaID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfRegion = $get(pHfRegionID);
    var hfCity = $get(pHfCityID);
    var hfCityArea = $get(pHfCityAreaID);

    var country = pCbxCountry.value;
    var state = MainTrack_Toolbar_EmptyString;
    var region = MainTrack_Toolbar_EmptyString;
    var city = MainTrack_Toolbar_EmptyString;

    hfCountry.value = country;
    hfState.value =MainTrack_Toolbar_EmptyString;
    hfRegion.value =MainTrack_Toolbar_EmptyString;
    hfCity.value =MainTrack_Toolbar_EmptyString;
    hfCityArea.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxStateID, MainTrack_Toolbar_States);
    MainTrack_Toolbar_TableLoadServices(country, region, city, pCbxRegionID, MainTrack_Toolbar_Regions);
    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxCityID, MainTrack_Toolbar_Cities);
    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxCityAreaID, MainTrack_Toolbar_CityAreas);
    return false;
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnCountryChangeSC(pCbxCountry, pHfCountryID,pCbxStateID, pHfStateID, pCbxCityID, pHfCityID){
    MainTrack_Log_info("MainTrack_Toolbar_OnCountryChangeSC(" + pCbxCountry + " , " + pHfCountryID + " , " + pCbxStateID + " , " + pHfStateID + " , " +
                  pCbxCityID + " , " + pHfCityID  + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfCity = $get(pHfCityID);

    var country = pCbxCountry.value;
    var state = MainTrack_Toolbar_EmptyString;
    var city = MainTrack_Toolbar_EmptyString;

    hfCountry.value = country;
    hfState.value =MainTrack_Toolbar_EmptyString;
    hfCity.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxStateID, MainTrack_Toolbar_States);
    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxCityID, MainTrack_Toolbar_Cities);
    return false;
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnCountryChangePortFrom(pCbxCountry, pHfCountryID, pCbxPortID, pHfPortID){
    MainTrack_Log_info("MainTrack_Toolbar_OnCountryChangePortFrom(" + pCbxCountry + " , " + pHfCountryID + " , " + pCbxPortID + " , " + pHfPortID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfPort = $get(pHfPortID);

    var country = pCbxCountry.value;

    hfCountry.value = country;
    hfPort.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, MainTrack_Toolbar_EmptyString, MainTrack_Toolbar_EmptyString, pCbxPortID, MainTrack_Toolbar_PortsFrom);
    return false;
}
/// <todo responsible="rvi" what="Unify MainTrack_Toolbar_OnCountryChangePortTo and MainTrack_Toolbar_OnCountryChangePortFrom"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnCountryChangePortTo(pCbxCountry, pHfCountryID, pCbxPortID, pHfPortID){
    MainTrack_Log_info("MainTrack_Toolbar_OnCountryChangePortTo(" + pCbxCountry + " , " + pHfCountryID + " , " + pCbxPortID + " , " + pHfPortID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfPort = $get(pHfPortID);

    var country = pCbxCountry.value;

    hfCountry.value = country;
    hfPort.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, MainTrack_Toolbar_EmptyString, MainTrack_Toolbar_EmptyString, pCbxPortID, MainTrack_Toolbar_PortsTo);
    return false;
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnStateChangeCCa(pCbxState, pHfStateID, pCbxCityID, pHfCityID, pCbxCityAreaID, pHfCityAreaID, pHfCountryID){
    MainTrack_Log_info("MainTrack_Toolbar_OnStateChangeCCa(" + pCbxState + " , " + pHfStateID + " , " + pCbxCityID +
    " , " + pHfCityID + " , " + pCbxCityAreaID + " , " + pHfCityAreaID + " , " + pHfCountryID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfCity = $get(pHfCityID);
    var hfCityArea = $get(pHfCityAreaID);

    var country = hfCountry.value;
    var state = pCbxState.value;
    var region = MainTrack_Toolbar_EmptyString ;
    hfState.value = state;
//    hfRegion.value = MainTrack_Toolbar_EmptyString;
    hfCity.value =MainTrack_Toolbar_EmptyString;
    hfCityArea.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityID, MainTrack_Toolbar_Cities);
    MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityAreaID, MainTrack_Toolbar_CityAreas);
    return false;
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnStateChangeCity(pCbxState, pHfStateID, pCbxCityID, pHfCityID, pHfCountryID){
    MainTrack_Log_info("MainTrack_Toolbar_OnStateChangeCity(" + pCbxState + " , " + pHfStateID + " , " +
        pCbxCityID + " , " + pHfCityID + " , " + pHfCountryID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfCity = $get(pHfCityID);

    var country = hfCountry.value;
    var state = pCbxState.value;
    var region = MainTrack_Toolbar_EmptyString ;

    hfState.value = state;
    hfCity.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityID, MainTrack_Toolbar_Cities);
    return false;
}

/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnRegionChange(pCbxRegion, pHfRegionID, pCbxCityID, pHfCityID, pCbxCityAreaID, pHfCityAreaID, pHfCountryID,pHfStateID){
    MainTrack_Log_info("MainTrack_Toolbar_OnRegionChange(" + pCbxRegion + " , " + pHfRegionID + " , " + pCbxCityID + " , " + pHfCityID + " , " + pCbxCityAreaID + " , " + pHfCityAreaID + " , " + pHfCountryID + " , " + pHfStateID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfRegion = $get(pHfRegionID);
    var hfCity = $get(pHfCityID);
    var hfCityArea = $get(pHfCityAreaID);

    var country = hfCountry.value;
    var state = hfState.value;
    var region = pCbxRegion.value;

    hfRegion.value = region;
//    hfState.value =MainTrack_Toolbar_EmptyString;
    hfCity.value =MainTrack_Toolbar_EmptyString;
    hfCityArea.value =MainTrack_Toolbar_EmptyString;
    if (region != "?"){
        state = MainTrack_Toolbar_EmptyString;
        MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityID, MainTrack_Toolbar_Cities);
        MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityAreaID, MainTrack_Toolbar_CityAreas);
    } else {
            if (state != "?"){
                region = MainTrack_Toolbar_EmptyString ;
                MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityID, MainTrack_Toolbar_Cities);
                MainTrack_Toolbar_TableLoadServices(country, state, region, pCbxCityAreaID, MainTrack_Toolbar_CityAreas);
            }
    }
    return false;
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnCityChange(pCbxCity, pHfCityID, pCbxCityAreaID, pHfCityAreaID, pHfCountryID, pHfStateID){
    MainTrack_Log_info("MainTrack_Toolbar_OnCityChange(" + pCbxCity + " , " + pHfCityID + " , " + pCbxCityAreaID + " , " + pHfCityAreaID + " , " + pHfCountryID + " , " + pHfStateID + ")");
    var hfCountry = $get(pHfCountryID);
    var hfState = $get(pHfStateID);
    var hfCity = $get(pHfCityID);
    var hfCityArea = $get(pHfCityAreaID);

    var country = hfCountry.value;
    var state = hfState.value;
    var city = pCbxCity.value;
    hfCity.value = city;
    hfCityArea.value =MainTrack_Toolbar_EmptyString;

    MainTrack_Toolbar_TableLoadServices(country, state, city, pCbxCityAreaID, MainTrack_Toolbar_CityAreas);
    return false;
}
/// <todo responsible="rvi" what="docDezePoep"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnSimpleChange(pCtlChange, pHfID){
    MainTrack_Log_info("MainTrack_Toolbar_OnSimpleChange(" + pCtlChange + " , " + pHfID + ")");
    var hf = $get(pHfID);
    var value = pCtlChange.value;
    hf.value = value;
    return false;
}

/// <todo responsible="rvi" what="Unify MainTrack_Toolbar_OnMinChange and MainTrack_Toolbar_OnMaxChange"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnMinChange(cbxMin, pHfMinID, pHfMaxID, pCbxMaxID){
    MainTrack_Log_info("MainTrack_Toolbar_OnMinChange(" + cbxMin + " , " + pHfMinID + " , " + pCbxMaxID + " , " + pHfMaxID + ")");
    var hfMin = $get(pHfMinID);
    var hfMax = $get(pHfMaxID);
    var cbxMax = $get(pCbxMaxID);
//alert("min");
    var min = cbxMin.selectedIndex;
    var max = cbxMax.selectedIndex;
    if (max > 0 && max < min){
        cbxMax.selectedIndex = min;
    }
    hfMin.value = cbxMin.value;
    hfMax.value = cbxMax.value;
    return false;
}

/// <todo responsible="rvi" what="Unify MainTrack_Toolbar_OnMinChange and MainTrack_Toolbar_OnMaxChange"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnMaxChange(cbxMax,pHfMaxID, pHfMinID, pCbxMinID){
    MainTrack_Log_info("MainTrack_Toolbar_OnMaxChange(" + cbxMax + " , " + pHfMaxID + " , " + pCbxMinID + " , " + pHfMinID + ")");
    var hfMin = $get(pHfMinID);
    var hfMax = $get(pHfMaxID);
    var cbxMin = $get(pCbxMinID);
//    alert("max");
    var min = cbxMin.selectedIndex;
    var max = cbxMax.selectedIndex;
    if (min > 0 && max < min && max > 0){
        cbxMin.selectedIndex = max;
    }
    hfMin.value = cbxMin.value;
    hfMax.value = cbxMax.value;
    return false;
}

/// <todo responsible="rvi" what="Unify MainTrack_Toolbar_OnStartDateChange and MainTrack_Toolbar_OnEndDateChange"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnStartDateChange(txtStartDate, pHfStartDateID, pHfEndDateID, pTxtEndDateID, pDaysRequired){
  //  alert("onendstartchange");
    MainTrack_Log_info("MainTrack_Toolbar_OnStartDateChange(" + txtStartDate + " , " + pHfStartDateID + " , " + pTxtEndDateID + " , " + pHfEndDateID + " , " + pDaysRequired  +")");
    var hfStart = $get(pHfStartDateID);
    var hfEnd = $get(pHfEndDateID);
    var txtEndDate = $get(pTxtEndDateID);
  //  alert("txt start datechange  " +txtStartDate.value + "   " + txtEndDate.value);
    DefaultDatePairSync(txtStartDate , txtEndDate , pDaysRequired) ;
    hfStart.value = txtStartDate.value;
    hfEnd.value = txtEndDate.value;
    return false;
}

/// <todo responsible="rvi" what="Unify MainTrack_Toolbar_OnStartDateChange and MainTrack_Toolbar_OnEndDateChange"/>
/// <summary>
/// </summary>
/// <field name="result" type="String">
/// </field>
function MainTrack_Toolbar_OnEndDateChange(txtEndDate, pHfEndDateID, pHfStartDateID, pTxtStartDateID, pDaysRequired){
  //  alert("onenddatechange");
    MainTrack_Log_info("MainTrack_Toolbar_OnEndDateChange(" + txtEndDate + " , " + pHfEndDateID + " , " + pTxtStartDateID + " , " + pHfStartDateID + " , " + pDaysRequired  +")");
    var hfStart = $get(pHfStartDateID);
    var hfEnd = $get(pHfEndDateID);
    var txtStartDate = $get(pTxtStartDateID);
   // alert("end date change " + txtStartDate.value + "   " + txtEndDate.value);
    DefaultDatePairSync(txtStartDate , txtEndDate , pDaysRequired) ;
    hfStart.value = txtStartDate.value;
    hfEnd.value = txtEndDate.value;
    return false;
}

function MainTrack_Toolbar_UpdateLocationList(result){
    var options = eval("(" + result + ")");
 //   alert("end search");
    
    if (options.description.length<2){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: options.description.length<1, returning" );
        return ;
    }

    var cbxID = options.description[0];
    var cbx = $get(cbxID);
    if (cbx == null){
        MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbx == null, returning" );
        return ;
    }

    MainTrack_Log_info("MainTrack_Toolbar_UpdateList: cbxID , cbx :" + cbxID + " , " + cbx );
    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]);
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbxID , options[" + i + "] : " + cbxID + " , " + options.id[i]+ ": "+ options.description[i] );
            MainTrack_Log_debug("MainTrack_Toolbar_UpdateList: cbx , option= : " + cbx + " , " + option + "->" + option.text + ": "+ option.value );
            cbx.options[cbx.options.length] = option;
        }
        StoreFieldValue(cbxID, options.id[1]);
    }
    cbx.disabled = false;
}





function MainTrack_Toolbar_OnBtnLocationClick(pBtnLocation, pCbxLocationID, pTxtLocationID){
    var txtLocation = $get(pTxtLocationID);
    TableLoadServices.JSGetPickUpLocations(txtLocation.value, pCbxLocationID, MainTrack_Toolbar_UpdateLocationList);
    return false;
}



//function MainTrack_Toolbar_OnTxtChange(pBtnLocation, pCbxLocation, pHfLocationID){
//    var hfLocation = $get(pHfLocationID);

//    TableLoadServices.JSGetPickUpLocations(hfLocation.value, pCbxLocation, MainTrack_Toolbar_UpdateLocationList);
//    return false;
//}

//        string js = "javascript: MainTrack_Toolbar_OnTxtChange(this";
//        js = js + ", '" + ctlStore.ClientID + "')";
//        ctlTrigger.Attributes.Add("onchange", js);

    function ValueControlConditionalCopy(sourceID, targetID, chbID)
    {
        StoreFieldValue(sourceID, $get(sourceID).value);
        if ($get(chbID).checked)
        {
            $get(targetID).value = $get(sourceID).value;
            StoreFieldValue(targetID, $get(targetID).value);
        }
    }

    function BookerIsGuest_OnChbClick(chb, sourceCtrlID1, targetCtrlID1, sourceCtrlID2, targetCtrlID2, 
                                           sourceCtrlID3, targetCtrlID3, sourceCtrlID4, targetCtrlID4, 
                                           sourceCtrlID5, targetCtrlID5)
    {
        $get(targetCtrlID1).disabled = chb.checked;
        $get(targetCtrlID2).disabled = chb.checked;
        $get(targetCtrlID3).disabled = chb.checked;
        $get(targetCtrlID4).disabled = chb.checked;
        $get(targetCtrlID5).disabled = chb.checked;
        if (chb.checked)
        {
            $get(targetCtrlID1).value = $get(sourceCtrlID1).value;
            $get(targetCtrlID2).value = $get(sourceCtrlID2).value;
            $get(targetCtrlID3).value = $get(sourceCtrlID3).value;
            $get(targetCtrlID4).value = $get(sourceCtrlID4).value;
            $get(targetCtrlID5).value = $get(sourceCtrlID5).value;
            
            StoreFieldValue(targetCtrlID1, $get(targetCtrlID1).value);
            StoreFieldValue(targetCtrlID2, $get(targetCtrlID2).value);
            StoreFieldValue(targetCtrlID3, $get(targetCtrlID3).value);
            StoreFieldValue(targetCtrlID4, $get(targetCtrlID4).value);
            StoreFieldValue(targetCtrlID5, $get(targetCtrlID5).value);
        }
    }
    


//        
//    for (var i = 1; i < dlMandatory.rows.length; i++)
//    {
//        mandatoryRateReqCur += parseFloat(GetLblFromCell(GetTableFromCell(dlMandatory, i, 3), 0, 0).innerText);
//        mandatoryRate += parseFloat(GetLblFromCell(GetTableFromCell(dlMandatory, i, 3), 1, 0).innerText);
//    }
//    
//    var ssrRate = mandatoryRate;
//    var ssrRateReqCur = mandatoryRateReqCur;
//    var dlSSR = $get(dlSSRID);
//    
//    for (var i = 1; i < dlSSR.rows.length; i++)
//    {
//        if (GetChbFromCell(dlSSR, i, 0).checked)
//        {
//            ssrRate += parseFloat(GetLblFromCell(GetTableFromCell(dlSSR, i, 3), 0, 0).innerText);
//            ssrRateReqCur += parseFloat(GetLblFromCell(GetTableFromCell(dlSSR, i, 3), 1, 0).innerText);
//        }
//    }
//    
//    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);

//    
////    alert(mandatoryRate);
////    
////    
////    var dl = $get(DataListID);
////    
////    var total = 0;
////    var count = dl.rows.length;
//////    var r = dl.rows[rowNumber];
////        var r = dl.rows[1];
////        var c0 = r.cells.item(0);
////    var c1 = r.cells.item(1);
////    var c3 = r.cells.item(3);
////    var ctrl = c0.children[0].children[0];
////    var ctrl3 = c3.children[0];
//////    alert(ctrl3.innerText);
//////    var s = c3.innerText;
//////   
////  //  alert(rowNumber + "  " + ctrl.checked + "   "   + ctrl3.innerText);
////    for (var i = 1; i < count; i++)
////    {
////        r = dl.rows[i];
////        c0 = r.cells.item(0);
////        c3 = r.cells.item(3);
////        ctrl = c0.children[0].children[0];
////        ctrl3 = c3.children[0];
////        alert(ctrl3.innerText);
////        alert(parseFloat(ctrl3.innerText));// + //dl.rows[i].Item(3).children[0].innerText);
////        if (dl.rows[i].cells.item(0).children[0].children[0].checked){
////            alert(parseFloat("99") + "  ");// + //dl.rows[i].Item(3).children[0].innerText);
////            total = total + parseFloat(parseFloat(ctrl3.innerText));
////        }
////        alert(i + "   " + ctrl.checked + "  "+ total);

////    }
////    
////    
////    
////    var txt = $get(ssrTotalID);
////    txt.innerText = total;
//////  
//////    alert(rowNumber + "  " + ctrl.checked + "   "   + ctrl3.innerText);
//////    for (int i = 1; i < count; i++)
//////    {
//////        if (dl.rows[i].cells.item(0).children[0].children[0].checked)
//////            total = total + dl.rows[i].Item(3).children[0].innerText;
//////    }
////    
//////    var ctrl3 = c3.children[0];
//////    alert(ctrl3.innerText);
//////    var s = c3.innerText;
//////    var pobj = $get(pObjID);
//////    if (pobj.checked)
//////        alert(" true " + rowNumber);
//////    else alert(" false " + rowNumber);
//}


function TestHandleTabClick()
{
    alert("hallo");
    return false;
}


if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

