﻿
var lastCbxCountryValue = "country";
var lastCbxStateValue = "state";
var lastCbxRegionValue = "region";
var lastCbxCityValue = "city";
var lastCbxCityAreaValue = "cityarea";


function MainTrack_Toolbar_OnCbxChange(pobj) {
//    alert("test normal cbx");
    StoreControlValue(pobj.id, pobj.value);
}

function MainTrack_OnCbxChange(pobj) {
    StoreControlValue(pobj.id, pobj.value);
}


function MainTrack_OnTxtChange(pobj) {
//alert(pobj.value);
    StoreControlValue(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);
    
    StoreControlValue(txtCityNameID, txtCityName.value);

    if (txtMainKey.value.length == 0)
    {
        txtMainKey.value = GenerateKeyString(txtCityName.value);
        StoreControlValue(txtMainKeyID, txtMainKey.value);
    }
    
    if (txtCityDisplayName.value.length == 0)
    {
        txtCityDisplayName.value = txtCityName.value;
        StoreControlValue(txtCityDisplayNameID, txtCityDisplayName.value);
    }

    if (txtCityId.value.length == 0)
    {
        txtCityId.value = GenerateKeyString(txtCityName.value);
        StoreControlValue(txtCityIdID, txtCityId.value);
    }    
}

function MT_OnCityMainKeyChange(cbxMainKeyID, txtMainKeyID)
{
    StoreControlValue(cbxMainKeyID, $get(cbxMainKeyID).value);
    $get(txtMainKeyID).value = $get(cbxMainKeyID).value;
    StoreControlValue(txtMainKeyID, $get(txtMainKeyID).value);
}




function MainTrack_OnChbClick(pobj) {
    if (pobj.checked)
        StoreControlValue(pobj.id, "TRUE");
    else StoreControlValue(pobj.id, "FALSE");
}

function MainTrack_OnRbtClick(pobj) {
    if (pobj.checked)
        StoreControlValue(pobj.id, "TRUE");
    else StoreControlValue(pobj.id, "FALSE");
} 


function MainTrack_OnChbClick_CtrlToggle2(pobj, pBtnSelect1ID, pBtnSelect2ID) {
    if (pobj.checked)
        StoreControlValue(pobj.id, "TRUE");
    else StoreControlValue(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);

    
}

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);





    
    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);
    }
    StoreControlValue(dlID, newSelIndex);
}

function MainTrack_SelectionMade(dlID, newSelIndex) 
{
    var dl = $get(dlID);
    StoreControlValue(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;
        StoreControlValue(rbtID, 'TRUE');
        StoreControlValue(rbtOffID, 'FALSE');
    }
    else
    {
        StoreControlValue(rbtID, 'FALSE');
        StoreControlValue(rbtOffID, 'TRUE');
    }
}





function MainTrack_OnChbClick_CtrlToggle(pobj, pBtnSelect1ID) {
    if (pobj.checked)
        StoreControlValue(pobj.id, "TRUE");
    else StoreControlValue(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;
    }
    StoreControlValue(ctlMinID, cbxMin.value);
    StoreControlValue(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;
    }
    StoreControlValue(ctlMinID, cbxMin.value);
    StoreControlValue(ctlMaxID, cbxMax.value);
    return false;
}




function MainTrack_Date_OnMinChange(ctlMinID, ctlMaxID, pDaysRequired) {
    var txtMin = $get(ctlMinID);
    var txtMax = $get(ctlMaxID);
    var min = txtMin.value;
    var max = txtMax.value;
    DefaultDatePairSync(txtMin , txtMax , pDaysRequired) ;
    
    
    StoreControlValue(ctlMinID, txtMin.value);
    StoreControlValue(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;

    
    DefaultDatePairSync(txtMin , txtMax , pDaysRequired) ;
    
    StoreControlValue(ctlMinID, txtMin.value);
    StoreControlValue(ctlMaxID, txtMax.value);
    return false;
}


function MainTrack_Select_OnTabChange(pobj) {
    }

function MainTrack_OnTabChange(pobj) {
        StoreControlValue(pobj.id, 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;
        StoreControlValue(cbxCountryID, $get(cbxCountryID).value);
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxCityID, city);
        StoreControlValue(cbxCityAreaID, cityArea);
        
        LoadTableState(country, cbxStateID);
        LoadTableCity(country, state, region, cbxCityID);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
        
        if (cbxRegionID.Length > 0)
        {
            StoreControlValue(cbxRegionID, region);
            LoadTableRegion(country, cbxRegionID);
        }
     }
        
    return false;
}

function MT_OnCountryAirportChange(cbxCountryID, cbxAirportID){

    var country = $get(cbxCountryID).value;
    var airport = MainTrack_Toolbar_EmptyString;

    StoreControlValue(cbxCountryID, country);
    StoreControlValue(cbxAirportID, airport);

    LoadTableAirport(country, cbxAirportID);
    return false;
}

function MT_OnCountrySeaportChange(cbxCountryID, cbxSeaportID){

    var country = $get(cbxCountryID).value;
    var seaport = MainTrack_Toolbar_EmptyString;

    StoreControlValue(cbxCountryID, country);
    StoreControlValue(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;
        StoreControlValue(cbxCountryID, $get(cbxCountryID).value);
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxCityID, city);
        StoreControlValue(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;
        StoreControlValue(cbxCountryID, $get(cbxCountryID).value);
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxMainKeyID, mainKey);
        
        LoadTableState(country, cbxStateID);
        LoadTableCityMainKey(country, state, cbxMainKeyID);
     }
        
    return false;
}

function LoadTableState(countryID, cbxStateID){
    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){
    TableLoadServices.JSGetRegionsCtlID(countryID, cbxRegionID, UpdateRegionList);
}

function UpdateRegionList(result){
    UpdateList(result);
    return ;
}

function LoadTableCity(countryID, stateID, regionID, cbxCityID){

    TableLoadServices.JSGetCitiesCtlID(countryID, stateID, regionID, cbxCityID, UpdateCityList);
}

function UpdateCityList(result){
    UpdateList(result);
    return ;
}

function LoadTableCityMainKey(countryID, stateID, cbxCityMainKeyID){

    TableLoadServices.JSGetCityMainKeysCtlID(countryID, stateID, cbxCityMainKeyID, UpdateCityMainKeyList);
}

function UpdateCityMainKeyList(result){
    UpdateList(result);
    return ;
}


function LoadTableCityArea(countryID, stateID, cityID, cbxCityAreaID){

    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;
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxCityID, city);
        StoreControlValue(cbxCityAreaID, cityArea);
        
        LoadTableCity(country, state, region, cbxCityID);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
        
        if (cbxRegionID.Length > 0)
        {
            StoreControlValue(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;

    StoreControlValue(cbxAircraftTypeID, aircraftType);
    StoreControlValue(cbxNumberOfPassengersID, "?");
    StoreControlValue(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;
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxCityID, city);
        StoreControlValue(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;
        StoreControlValue(cbxStateID, state);
        StoreControlValue(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;
        StoreControlValue(cbxStateID, state);
        StoreControlValue(cbxRegionID, region);
        StoreControlValue(cbxCityID, city);
        StoreControlValue(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;
        StoreControlValue(cbxCityID, city);
        StoreControlValue(cbxCityAreaID, cityArea);
        LoadTableCityArea(country, state, city, cbxCityAreaID);
     }
        
    return false;
}




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;

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;

function MainTrack_Log_trace(arg){
    if (MainTrack_LOG_TRACE >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
function MainTrack_Log_debug(arg){
    if (MainTrack_LOG_DEBUG >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
function MainTrack_Log_info(arg){
    if (MainTrack_LOG_INFO >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
function MainTrack_Log_warn(arg){
    if (MainTrack_LOG_WARN >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
function MainTrack_Log_error(arg){
    if (MainTrack_LOG_ERROR >= MainTrack_logLevel ){
        Sys.Debug.trace(arg);
    }
}
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;
}


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;
}

function CompareDates(dateStart , dateEnd , daysRequired )  {
    var secondsPerDay = 86400000 ;
    var secondsRequired = daysRequired * secondsPerDay ;
    var secondsStart  = dateStart.valueOf();
    var secondsEnd = dateEnd.valueOf() ;
    MainTrack_Log_trace("CompareDates: secondsEnd , secondsStart , (secondsEnd - secondsStart),  secondsRequired " + secondsEnd + " , " + secondsStart + " , " + (secondsEnd - secondsStart) + " , " + secondsRequired );
    if((secondsEnd - secondsStart) < secondsRequired){
        var dateRet = new Date((secondsStart + secondsRequired) );
        return dateRet;
    } else {
        return dateEnd;
    }
}

function CompareDateStrings(strStart , strEnd , daysRequired )  {
   MainTrack_Log_trace("CompareDateStrings: " + strStart+ " , " + strEnd + " , " + daysRequired);
   
   var dateStart = parseShortDate(strStart);
   var dateEnd = parseShortDate(strEnd);
   var dateRet = CompareDates(dateStart ,dateEnd, daysRequired);
   return toShortDate(dateRet);
}

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 );
}

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 );
    MainTrack_Log_trace("DefaulDtatePairSync : " + strStart + " , " + strEnd + " , "  + strResult) ;
    ctlEnd.value = strResult ;
    }

function DefaultDatePairSync2(ctlStart , ctlEnd , daysRequired) {
    MainTrack_Log_trace("DefaulDtatePairSync2 : " + ctlStart + " , " + ctlEnd + " , "  + daysRequired) ;
    ctlEnd.value = CompareDateControls(ctlStart , ctlEnd , daysRequired )
    }

function dumpDate(d) {
    MainTrack_Log_info ("dumpDate\ntoLocaleString() :" +d.toLocaleString()+"\n"
               + "toShortDate() :" + toShortDate(d)+"\n"
               + "dumpDate.toDateString() :" + d.toDateString()+"\n");
}

function MainTrack_Toolbar_SetLanguage(pCtlLanguageID, value) {
    MainTrack_Log_info("SetLanguage(" + pCtlLanguageID + " , " + value + ")");
    $get(pCtlLanguageID).value = value;
}

function MainTrack_Toolbar_UpdateStateList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateStateList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
    return ;
    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;
}

function MainTrack_Toolbar_UpdateRegionList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateRegionList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

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], 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;
}

function MainTrack_Toolbar_UpdateCityAreaList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdateCityAreaList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

function MainTrack_Toolbar_UpdatePortFromList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdatePortFromList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

function MainTrack_Toolbar_UpdatePortToList(result){
    MainTrack_Log_info("MainTrack_Toolbar_UpdatePortToList(" + result +")");
    MainTrack_Toolbar_UpdateList(result);
}

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;
}

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;
    }
}

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;
}

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;
}

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;
}

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;
}

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;
    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;
}

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;
}

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;
    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;
}

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;
}

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;
}

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);
    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;
}

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);
    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;
}

function MainTrack_Toolbar_OnStartDateChange(txtStartDate, pHfStartDateID, pHfEndDateID, pTxtEndDateID, pDaysRequired){
    MainTrack_Log_info("MainTrack_Toolbar_OnStartDateChange(" + txtStartDate + " , " + pHfStartDateID + " , " + pTxtEndDateID + " , " + pHfEndDateID + " , " + pDaysRequired  +")");
    var hfStart = $get(pHfStartDateID);
    var hfEnd = $get(pHfEndDateID);
    var txtEndDate = $get(pTxtEndDateID);
    DefaultDatePairSync(txtStartDate , txtEndDate , pDaysRequired) ;
    hfStart.value = txtStartDate.value;
    hfEnd.value = txtEndDate.value;
    return false;
}

function MainTrack_Toolbar_OnEndDateChange(txtEndDate, pHfEndDateID, pHfStartDateID, pTxtStartDateID, pDaysRequired){
    MainTrack_Log_info("MainTrack_Toolbar_OnEndDateChange(" + txtEndDate + " , " + pHfEndDateID + " , " + pTxtStartDateID + " , " + pHfStartDateID + " , " + pDaysRequired  +")");
    var hfStart = $get(pHfStartDateID);
    var hfEnd = $get(pHfEndDateID);
    var txtStartDate = $get(pTxtStartDateID);
    DefaultDatePairSync(txtStartDate , txtEndDate , pDaysRequired) ;
    hfStart.value = txtStartDate.value;
    hfEnd.value = txtEndDate.value;
    return false;
}

function MainTrack_Toolbar_UpdateLocationList(result){
    var options = eval("(" + result + ")");
    
    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;
        }
        StoreControlValue(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 ValueControlConditionalCopy(sourceID, targetID, chbID)
    {
        StoreControlValue(sourceID, $get(sourceID).value);
        if ($get(chbID).checked)
        {
            $get(targetID).value = $get(sourceID).value;
            StoreControlValue(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;
            
            StoreControlValue(targetCtrlID1, $get(targetCtrlID1).value);
            StoreControlValue(targetCtrlID2, $get(targetCtrlID2).value);
            StoreControlValue(targetCtrlID3, $get(targetCtrlID3).value);
            StoreControlValue(targetCtrlID4, $get(targetCtrlID4).value);
            StoreControlValue(targetCtrlID5, $get(targetCtrlID5).value);
        }
    }
    



if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

