﻿// Includes
document.write('<script type="text/javascript" src="scripts/prototype.js"></script>');
document.write('<script type="text/javascript" src="scripts/scriptaculous/src/scriptaculous.js" ></script>');
document.write('<script type="text/javascript" src="scripts/CITMap_Tabs.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/CITMap_Events.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/CITMap_Ajax.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/common.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/collection.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/menu.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/internetMenuDef.js"><\/script>');
document.write('<script type="text/javascript" src="SCRIPTS/GeoMapGuideUtils.js"></script>');
document.write('<script type="text/javascript" src="scripts/Mapguide.js"><\/script>');
document.write('<script type="text/javascript" src="scripts/tabs.js"><\/script>');

var mSiteLanguage;              // Language
var aBusRouteIds = new Array(); // 
var sTramCode = "";             // Current Tram Code
var tbRoutes = null;            // Tab box Route Schedules
var tbInfos = null;             // Tab box Infos
var idTO = null;                // ID of Resize Timeout
var ST = [];                    // StringTable
var seeAllRoutes = true;        // See All Routes Layer (Checkbox value)
var currentRouteId = "";        // Single Displayed Route (Radio button value)
var ItineraryTabId = null;      // Tab corresponding to Itinerary Route (if in itinerary mode)

window.onload = function() {
    InitPage();    
}

window.onresize = function() {
    if (idTO) window.clearTimeout(idTO);
    idTO = window.setTimeout("OnWindowResize()", 100);
}

function UpdateBusStop(oStop) //Called from MG SelectionChanged Event
{
    $('divRoutes').hide();
    $('divRoutes').update(''); // Clear all contents   
    $('divInfos').hide();
    $('divInfos').update(''); // Clear all contents
    sTramCode = null;
    
    $('divRoutes').appendChild(new Element('div', {'id':'divTabBoxRoutes'}));
    aBusRouteIds.length = 0;

    if (oStop) {
        // Create empty Tab when no stop is selected
        sTramCode = oStop.properties.busStopTramCode;
        AjaxRoute(sTramCode);
        AjaxStop(sTramCode);
    }
    else {
        // Create empty Tab when no stop is selected
        var oDiv = new Element('div', {'id':'divRoute', 'class':'divRouteImgElement'});
        var oImg = new Element('img', {'src':'IMAGES/CITLogo.gif', 'id':'imgCITLogo'});
        oImg.setStyle({display:'none'});
        oDiv.appendChild(oImg);
        $('divRoutes').appendChild(oDiv);

        tbRoutes = new TabBox('divTabBoxRoutes', [{text:ST["SelectStop"], code:' ', icon:'images/msg.png'}], tabRouteClick, 10, 50);
        tbRoutes.items[0].select()
        Effect.Appear('imgCITLogo', {duration: 2.0});
        //Resize the tabs right bottom border
        ResizeTabs();
        BuildInfos();
    }
    $('divRoutes').show();
    $('divInfos').show();

    if (PageMode=="I") HighlightSchedule(sTramCode);

    window.setTimeout("initialize()",500);
}

function BuildRoutes(oRoutes) //Build Schedule Tabs and Fill with Schedules
{
    var sTmpC = '';    
    var tabs = 0;
    for (var i=0; i<oRoutes.length; i++)
    {
        if (!$('divRoute'+oRoutes[i].BusRouteCode)) {
            var oDiv = new Element('div', {'id':'divRoute' + oRoutes[i].BusRouteCode, 'display':'none', 'class':'divRouteElement'});
            sTmpC += "{text: ' ";
            sTmpC += (i==0) ? " " + ST["Route"] + " " : "";
            sTmpC += '#' + oRoutes[i].BusRouteCode + " ', code:'" + oRoutes[i].BusRouteCode + "', icon: 'images/smallclock.png'}";
            sTmpC += ","
            if (sItinerarySchedId==oRoutes[i].BusRouteId.toString()) ItineraryTabId = tabs;
            tabs++;
        }
        else {
            var oDiv = $('divRoute'+oRoutes[i].BusRouteCode);
        }
        oDiv.innerHTML += '<div style="height:10px;"></div>';
        BuildRouteSchedules(oRoutes[i], oDiv);
        
        $('divRoutes').appendChild(oDiv);
        aBusRouteIds[aBusRouteIds.length] = oRoutes[i].BusRouteCode;
    }
    if (sTmpC != "") sTmpC = sTmpC.substring(0, sTmpC.length-1); 
    tbRoutes = new TabBox('divTabBoxRoutes', eval("([" + sTmpC + "])"), tabRouteClick, 10, 50);
    tbRoutes.items[0].select();
    ResizeTabs(true, false);
}

function BuildInfos(oStop) //Build Tabs and Fill with Schedules
{    
    $('divInfos').update();
    $('divInfos').appendChild(new Element('div', {'id':'divTabBoxInfos'}));

    if (oStop) {
        tbInfos = new TabBox('divTabBoxInfos', [
            {text:'', code:'Help', icon:'images/help.png'}, 
            {text:ST['Routes'], code:'Routes', icon:'images/routes.png'}, 
             
            {text:oStop.TramCode, code:'Stop', icon:'images/busStop.png'}], 
        tabInfoClick, 10, 0);
        //{text:ST['Search'], code:'Search', icon:'images/search.png'},
    }
    else {
        tbInfos = new TabBox('divTabBoxInfos', [
            {text:'', code:'Help', icon:'images/help.png'}, 
            {text:ST['Routes'], code:'Routes', icon:'images/routes.png'}
            ], 
        tabInfoClick, 10, 0);
        //, 
        //{text:ST['Search'], code:'Search', icon:'images/search.png'} ***//change tab line 128
    }
    
    $('divInfos').appendChild(new Element('div', {'id':'divInfoHelp',   'class':'divInfoElement'}));
    $('divInfos').appendChild(new Element('div', {'id':'divInfoRoutes', 'class':'divInfoElement'}));
    $('divInfos').appendChild(new Element('div', {'id':'divInfoStop',   'class':'divInfoElement'}));
    $('divInfos').appendChild(new Element('div', {'id':'divInfoSearch', 'class':'divInfoElement'}));
    
    if (oStop) GenerateStopTab($('divInfoStop'), oStop);
    GenerateHelpTab($('divInfoHelp'));
    GenerateRoutesTab($('divInfoRoutes'));
    //GenerateSearchTab($('divInfoSearch'));
    
    if (oStop) {
        tbInfos.items[2].select();
    }
    else {
        tbInfos.items[0].select();
    }
    
    // Check activated route options
    if ($('optAllRoutes')) $('optAllRoutes').checked = seeAllRoutes;
    if ($('optRoute'+currentRouteId)) $('optRoute'+currentRouteId).checked = true;

}


function GetStopId(BusStops)
{
    var id = null;
    for (var i=0; i<BusStops.length; i++)
    {
        if (BusStops[i].TramCode == sTramCode) return i;
    }
    return id;
}



