﻿if (typeof (EIS) == 'undefined') EIS = {};

EIS.TravelTime = function() {

    this.drawMarkerWithTabWindow = drawMarkerWithTabWindow;
    this.removeTravelTimeOverlay = removeTravelTimeOverlay;
    this.formatTravelTime = formatTravelTime;
    this.getWelcmCenterTravelTime = getWelcmCenterTravelTime;
    this.createPublicDisplayCenterMarkerWithEWindow = createPublicDisplayCenterMarkerWithEWindow;
    this.createPublicDisplayDestinationMarkersWithEWindow = createPublicDisplayDestinationMarkersWithEWindow;
    this.createEWinString = createEWinString;

    function drawMarkerWithTabWindow(_imgURL, _gLatLng, _travelInfo, _map, _objOverlay, _display) {
        var newIcon = new GIcon(G_DEFAULT_ICON);
        newIcon.image = _imgURL;
        var markerOptions = { icon: newIcon };
        var marker = new GMarker(_gLatLng, markerOptions);
        GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(_travelInfo) });
        var arryOvery = _objOverlay.getValue()
        arryOvery.push(marker);
        _objOverlay.setValue(arryOvery);
        _map.addOverlay(marker);
        if (_display) marker.openInfoWindowHtml(_travelInfo);

    }


    function removeTravelTimeOverlay(_map, _ovlayArry) {
        if (_ovlayArry.length > 0) {
            for (i = 0; i < _ovlayArry.length; i++) {
                _map.removeOverlay(_ovlayArry[i]);
            }

            // reset the _ovlayArry length
            _ovlayArry.length = 0;
        }
    }


    function formatTravelTime(dMinute) {

        if (dMinute >= 60) {
            var Hours = Math.floor(dMinute / 60);
            var Minutes = dMinute % 60;
            return Hours + " hr " + ((Minutes > 0) ? Minutes + " min" : "");
        }
        else {
            return dMinute + " min";
        }


    }

    function getWelcmCenterTravelTime(_token, _routeid) {
//        alert(_routeid);
        var tUrl = "InrixProxy1.ashx?Action=";
        tUrl += "GetRoute&token=" + _token;
        //        alert(_odpairID);
        tUrl += "&RouteId=" + _routeid;

        try {

            var xmlLoader = new EIS.LoadXml(tUrl, null, "GET", null, false);

            xmlLoader.load();

            //alert(xmlLoader._method);

            var xml = xmlLoader.getXmlResponse();

            // get traveltime, distance
            var route = xml.getElementsByTagName("Route")[0];
            //            alert(route.getAttribute("travelTimeMinutes"));
            //            alert(route.getAttribute("totalDistance"));
            totalTravelTime.length = 0;
            distance.length = 0;

            totalTravelTime.push(route.getAttribute("travelTimeMinutes"));
            distance.push(route.getAttribute("totalDistance"));

        }
        catch (err) {
//            alert('An error occurred: " + err.description);
            totalTravelTime.length = 0;
            distance.length = 0;
            totalTravelTime.push('-1');
            distance.push('-1');
        }

    }


    function createPublicDisplayCenterMarkerWithEWindow(locMarker, ewinHTML, ewinStyle, toggled, _map, _objOverlay) {

        var newIcon = new GIcon(G_DEFAULT_ICON);
        //            newIcon.image = "Image/red-pushpin.png";
        newIcon.image = "Image/icon_rt_start.png";
        var markerOptions = { icon: newIcon };
        var marker = new GMarker(locMarker, markerOptions);
        // ========== Open a *new* EWindow  ==========
        var ew = new EWindow(_map, ewinStyle);
        if (toggled == 1) {
            var _tempObj = _objOverlay.getValue()
            _tempObj.push(ew);
            _objOverlay.setValue(_tempObj);
            _tempObj = null;
        };

        _map.addOverlay(ew);
        ew.openOnMarker(marker, ewinHTML);

        return marker;
    }


    function createPublicDisplayDestinationMarkersWithEWindow(locMarker, ewinHTML, ewinStyle, toggled, _map, _objOverlay) {

        var newIcon = new GIcon(G_DEFAULT_ICON);
        newIcon.image = "Image/icon_rt_end.png";
        var markerOptions = { icon: newIcon };
        var marker = new GMarker(locMarker, markerOptions);
        var _curMap = gmap.getValue();
        // ========== Open a *new* EWindow  ==========
        var ew = new EWindow(_map, ewinStyle);
        if (toggled == 1) {
            var _tempObj = _objOverlay.getValue()
            _tempObj.push(ew);
            _objOverlay.setValue(_tempObj);
            _tempObj = null;
        };

        _map.addOverlay(ew);
        ew.openOnMarker(marker, ewinHTML);

        _map = null;
        return marker;
    }

    function createEWinString(header, content, headeronly) {
        // use table tag
        //            return '<table border="0" cellpadding="0" cellspacing="0"><tr><td width="100%" class="EWTitle" nowrap>' + header + '<\/td><\/tr>' +
        //               '<tr><td nowrap>' + content + '<\/td><\/tr><\/table>';

        // use div tag
        var sText;
        sText = '<div class="EWTitle">' + header + '</div>';
        if (headeronly == 0) {
            sText += '<div class="EWContent">' + content + '</div>';
        };
        return sText;
    }

}