﻿var map=null;
var mapCentreX=null;
var mapCentreY=null;
var mapCentreZoom=null;
var mapSource=null;
var zoom=null;
var layers=null;
var linkAttrib=null;
var urlArray=null;
var gmlUrlArray=null;
var mapMarker=null;
var wms=null;
var zoomlength=null;
var resolution=null;
var resolutionArray=null;
var markerCentreX=0;
var markerCentreY=0;
var vmapBase=null;
var xMax=null;
var xMin=null;
var yMax=null;
var yMin=null;
var fromDate=null;
var toDate=null;
var popupMarker=null;
var markerClicked=null;
var format='image/png';

function init()
{
    mapCentreX=document.getElementById('mapCentreX').value;
    mapCentreY=document.getElementById('mapCentreY').value;
    mapCentreZoom=document.getElementById('mapCentreZoom').value;
    mapSource=document.getElementById('mapSource').value.toLowerCase();
    layers=document.getElementById('mapLayers').value;
    linkAttrib=document.getElementById('linkAttrib').value;
    xMax=document.getElementById('xMax').value;
    xMin=document.getElementById('xMin').value;
    yMax=document.getElementById('yMax').value;
    yMin=document.getElementById('yMin').value;
    urlArray=document.getElementById('UrlArray').value.split(',');
    gmlUrlArray=document.getElementById('GMLUrlArray').value.split(',');
    fromDate=document.getElementById('hdnFromDateString').value;
    toDate=document.getElementById('hdnToDateString').value;
    resolution=document.getElementById('resolution').value;
    resolutionArray=resolution.toString().split(',');
    zoomlength=resolutionArray.length-1;
    markerCentreX=mapCentreX;
    markerCentreY=mapCentreY;
    
    if(navigator.appVersion.toLowerCase().indexOf('msie 6.')!=-1) format='image/gif';
    
    if(mapSource=='google')
    {
        zoomlength=17;
        map=new OpenLayers.Map('map',{
            controls:[],
            tileSize:new OpenLayers.Size(256,256),
            numZoomLevels:14,
            projection:new OpenLayers.Projection('EPSG:900913'),
            displayProjection:new OpenLayers.Projection('EPSG:4326'),
            units:'m',
            numZoomLevels:18,
            maxResolution:156543.0339,
            maxExtent:new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508.34),
            controls:[new OpenLayers.Control.MouseDefaults()]
        });
    }
    else
    {
        map=new OpenLayers.Map('map',{
            controls:[],
            tileSize:new OpenLayers.Size(256,256),
            numZoomLevels:zoomlength,
            resolutions:resolutionArray,
            minResolution:1.0,
            maxResolution:'auto',
            projection:new OpenLayers.Projection('EPSG:27700'),
            maxExtent:new OpenLayers.Bounds(0,0,700000,1100000),//new OpenLayers.Bounds(xMin,yMin,xMax,yMax),
            restrictedExtent:new OpenLayers.Bounds(0,0,700000,1100000),//new OpenLayers.Bounds(xMin,yMin,xMax,yMax),
            units:'degrees',
            controls:[new OpenLayers.Control.MouseDefaults()]
        });
    }
    //avoid pink tiles
    OpenLayers.IMAGE_RELOAD_ATTEMPTS=2;
    OpenLayers.Util.onImageLoadErrorColor='transparent';
    switch(mapSource)
    {
        case 'metacarter':
            map.addLayer(new OpenLayers.Layer.WMS('OpenLayers WMS','http://labs.metacarta.com/wms/vmap0?',
                {layers:'basic'},
                {'buffer':0},
                {'attribution':''+linkAttrib+''}
            ));
           break;
        case 'ito':
            map.addLayer(new OpenLayers.Layer.WMS('OpenLayers WMS','http://models.itoworld.com/map/wms',{
                    'layers':'vwa,vpa,via,r,rw,vlb',
                    'srs':'EPSG:27700',
                    'format':'image/png',
                    'transparent':'false'
                },{
                    'isBaseLayer':true,
                    'maxExtent':new OpenLayers.Bounds(0,0,700000,1100000),
                    'attribution':''+linkAttrib+'',
                    'maxResolution':1000,
                    'projection':'EPSG:27700'
                },{'buffer':0}
            ));
            break;
        case 'voyager_osgb':
            wms=new OpenLayers.Layer.WMS('Cloud Amber OSGB',urlArray,{
                'layers':layers,
                'srs':'EPSG:27700',
                'format':'image/jpeg',
                'transparent':'false'
            },{'attribution':linkAttrib,'buffer':0});
            //registerEvents(wms);
            map.addLayers([wms]);
            AddSelectedLayers();
            break;
        case 'google':
            vmapBase=new OpenLayers.Layer.Google('Google Streets',{'sphericalMercator':true});
            AddSelectedLayers();
            map.addLayers([vmapBase]);
            break;
        default:
            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',urlArray,{
                'layers':layers,
                'version':'1.3.0',
                'CRS':'EPSG:4326',
                'format':'image/png',
                'transparent':'false'
            },{'attribution':'© Crown copyright. All rights reserved 100030252 (2008).'},
            {
                'isBaseLayer':true,
                'maxExtent':new OpenLayers.Bounds(0,0,700000,1100000),
                'maxResolution':1000,
                'projection':'EPSG:27700'
            },{'buffer':0}));
            break;
    }
    map.addControl(new OpenLayers.Control.PanZoomBar());
    map.addControl(new OpenLayers.Control.NavToolbar());
    map.addControl(new OpenLayers.Control.MousePosition());
    map.addControl(new OpenLayers.Control.Attribution());
    map.events.register('moveend',map,function(e)
    {
        var obj=getSelectedLayer();
        if(obj!=undefined && obj.value=='naptan')
        {
            var cxy=new OpenLayers.LonLat(map.center.lon,map.center.lat);//this.center;
            if(mapSource=='google')
            {
                cxy.transform(map.projection,map.displayProjection);//to lonlat
            }
            document.getElementById('mapCentreX').value=cxy.lon;
            document.getElementById('mapCentreY').value=cxy.lat;
            document.getElementById('mapCentreZoom').value=map.zoom;
            var x=markerCentreX-cxy.lon;
            var y=markerCentreY-cxy.lat;
            var margin=map.layers[0].getResolution()*500*((map.zoom)*(map.zoom)+(map.zoom+1));
            if(!((x<=margin && x>=(margin*-1))&&(y<=margin && y>=(margin*-1))))
            {
                ShowDetails(obj,cxy.lon,cxy.lat);
                markerCentreX=cxy.lon;
                markerCentreY=cxy.lat;
            }
        }
    });
    map.events.register('zoomend',map,function(e)
    {
        var cxy=new OpenLayers.LonLat(map.center.lon,map.center.lat);//this.center;
        if(mapSource=='google')
        {
	        cxy.transform(map.projection,map.displayProjection);//to lonlat
        }
        document.getElementById('mapCentreX').value=cxy.lon;
        document.getElementById('mapCentreY').value=cxy.lat;
        document.getElementById('mapCentreZoom').value=map.zoom;
        var obj=getSelectedLayer();
        if(obj!=undefined && (obj.value=='naptan'||obj.value=='event'))
            ShowDetails(obj,cxy.lon,cxy.lat);
    });
    map.events.register('click',map,function(e)
    {
        var cxy=map.center;
    });
//    this.SetSelectedMarker=function()
//    {
//        //AddSelectedLayers();
//        markerinit(document.getElementById('mapMarker').value,'zibo',true);
//        if(popupMarker)
//        {
//            popupMarker.events.triggerEvent('mousedown',null);
//            popupMarker=null;
//        }
//    }
    centre();
    for(i=map.controls.length-1;i>0;i--)
    {
        if(map.controls[i].CLASS_NAME=='OpenLayers.Control.NavToolbar')
        {
            map.removeControl(map.controls[i]);
        }
        else if(mapSource!='google' && map.controls[i].CLASS_NAME=='OpenLayers.Control.MousePosition')
        {
            map.controls[i].numDigits=0;
        }
        else if(map.controls[i].CLASS_NAME=='OpenLayers.Control.PanZoomBar')
        {
            map.controls[i].moveZoomBar();
        }
    }
    var obj=getSelectedLayer();
    if(obj!=undefined && !(obj.value=='naptan'||obj.value=='event'))//Get markers for voyager, naptan and event are called by zoomend function
    {
        var cxy=map.center;
        ShowDetails(obj,cxy.lon,cxy.lat);
    }
}
//For PopUps
var layer,markers;
var currentPopup;
OpenLayers.Popup.FramedCloud.prototype.autoSize=false;
var AutoSizeFramedCloud=OpenLayers.Class(OpenLayers.Popup.FramedCloud,{'autoSize':true});
function markerinit(responseTest,layerName,isPopup)
{
    if(responseTest!='')
    {
        var cnt=0;
        var markerContent='';
        markers=new OpenLayers.Layer.Markers(layerName);
        registerEvents(layer);
        map.addLayer(markers);
        responseTest=responseTest.split('*em');
        var cxy=new OpenLayers.LonLat(document.getElementById('mapCentreX').value,document.getElementById('mapCentreY').value);
        if(mapSource=='google')
        {
	        cxy.transform(map.displayProjection,map.projection);
        }
        for(cnt=0;cnt<responseTest.length-1;cnt++)
        {
            markerContent=responseTest[cnt].split('*m');
            var coordinates=markerContent[0].split(',');
			var title=markerContent[1];
			var popupContentHTML=markerContent[2];
            var ll,popupClass;
            ll=new OpenLayers.LonLat(coordinates[0],coordinates[1]);
            if(mapSource=='google')
            {
                ll.transform(map.displayProjection,map.projection);
            }
            popupClass=AutoSizeFramedCloud;
            popupContentHTML="<div><table cellpading='0' cellspacing='0' style='font-family:Century Gothic;font-size:8pt;padding-left:5px;padding-right:5px;'><tr style='font-size:12pt;font-weight:bold'><td>"+title+'</td></tr><tr><td>'+popupContentHTML+'</td></tr></table></div>';
            addMarker(ll,popupClass,popupContentHTML,true,true,markerContent[3],markerContent[4],title,markerContent[5],markerContent[6],markerContent[7],cxy,isPopup);
        }
    }
}
/**
 * Function: addMarker
 * Add a new marker to the markers layer given the following lonlat,
 *     popupClass, and popup contents HTML. Also allow specifying
 *     whether or not to give the popup a close box.
 *
 * Parameters:
 * ll - {<OpenLayers.LonLat>} Where to place the marker
 * popupClass - {<OpenLayers.Class>} Which class of popup to bring up
 *     when the marker is clicked.
 * popupContentHTML - {String} What to put in the popup
 * closeBox - {Boolean} Should popup have a close box?
 * overflow - {Boolean} Let the popup overflow scrollbars?
 */
function addMarker(ll,popupClass,popupContentHTML,closeBox,overflow,iconPath,iconSize,title,scn,mode,toolTip,cxy,isPopup)
{
    var feature=new OpenLayers.Feature(markers,ll);
    var marker=feature.createMarker();
    if(isPopup)
    {
        feature.closeBox=closeBox;
        feature.popupClass=popupClass;
        feature.data.popupContentHTML=popupContentHTML;
        //feature.data.overflow=(overflow)?'auto':'hidden';
        this.popup=null;
        var markerClick=function(evt)
        {
            clearPopups();
            feature.popup=null;
            if(feature.popup==null)
            {
                this.closeBox=closeBox;
                this.popup=feature.createPopup(this.closeBox);
                map.addPopup(this.popup);
                if((scn!='')&&(mode!=null)&&((mode.toString().toLowerCase()=='bus')||(mode.toString().toLowerCase()=='tmu')))
                {
                    var obj=getSelectedLayer();
                    if(obj!=undefined && (obj.value=='naptan'))
                        PageMethods.GetDeparture(scn,OnGetDepartures,OnGetMarkerFailed);
                 }
                 else
                 {
                    var divs=this.popup.contentDiv.getElementsByTagName('div')
                    for(cnt=0;cnt<divs.length;cnt++)
                    {
                        if(divs[cnt].id=='departures')
                            divs[cnt].innerHTML='';
                    }
                 }
                this.popup.show();
                changeURL();
                markerClicked=true;
            }
            currentPopup=this.popup;
            OpenLayers.Event.stop(evt);
        };
        var markerClose=function(evt)
        {
            alert('It\'s closes.....');
        };
        marker.events.register('mousedown',feature,markerClick);
        //if((document.getElementById('mapCentreX').value==ll.lon) && (document.getElementById('mapCentreY').value==ll.lat))
        if(cxy.lon.toFixed(3)==ll.lon.toFixed(3) && cxy.lat.toFixed(3)==ll.lat.toFixed(3))
        {
            popupMarker=marker;
        }
    }
    iconSize=iconSize.split(',');
    marker.icon.url=iconPath;
    marker.icon.size=new OpenLayers.Size(iconSize[0],iconSize[1]);
    marker.icon.imageDiv.style.cursor='hand';
    marker.icon.imageDiv.title=toolTip;
    marker.icon.offset=new OpenLayers.Pixel(-160,-160);
    markers.addMarker(marker);
}
function clearPopups()
{
    var len=map.popups.length-1;
    for(len;len>=0;len--)
        map.removePopup(map.popups[len]);
}
function clearPopupsAndLayers()
{
    clearPopups();
    len=map.layers.length-1;
    for(len;len>=0;len--)
        if(!map.layers[len].isBaseLayer)
            map.layers[len].destroy();
}
function centre()
{
    switch(mapSource)
    {
        /*case 'ito_osgb':
        case 'voyager_osgb':
        {
            var centre=new OpenLayers.LonLat(parseFloat(mapCentreX),parseFloat(mapCentreY));
            map.setCenter(
                centre.transform(
                    new OpenLayers.Projection('EPSG:4326'),
                    new OpenLayers.Projection('EPSG:27700')),
                parseInt(mapCentreZoom));
        }
        break;*/
        case 'google':
        {
           var centre=new OpenLayers.LonLat(parseFloat(mapCentreX),parseFloat(mapCentreY));
           map.setCenter(centre.transform(map.displayProjection,map.projection),parseInt(mapCentreZoom));
        }
        break;
        default:
            map.setCenter(new OpenLayers.LonLat(mapCentreX,mapCentreY),parseInt(mapCentreZoom));
        break;
    }
}
function SetZoomOut(centerX,centerY,isZoomIn)
{
    document.getElementById('mapCentreX').value=centerX;
    document.getElementById('mapCentreY').value=centerY;
    mapCentreX=centerX;
    mapCentreY=centerY;
    if(isZoomIn==true)
        map.zoomIn();
    else
        map.zoomOut();
    document.getElementById('mapCentreZoom').value=map.zoom;
    mapCentreZoom=map.zoom;
    centre();
}
function SetZoomIn(centerX,centerY,isZoomIn)
{
    document.getElementById('mapCentreX').value=centerX;
    document.getElementById('mapCentreY').value=centerY;
    mapCentreX=centerX;
    mapCentreY=centerY;
    if(isZoomIn==true)
        mapCentreZoom=zoomlength;
    else
        map.zoomOut();
    document.getElementById('mapCentreZoom').value=zoomlength;
    centre();
}
function SetCenterandZoom(centerX,centerY,isZoomIn)
{
    document.getElementById('mapCentreX').value=centerX;
    document.getElementById('mapCentreY').value=centerY;
    mapCentreX=centerX;
    mapCentreY=centerY;
    if(isZoomIn==true)
        map.zoomIn();
    else
        map.zoomOut();
    document.getElementById('mapCentreZoom').value=map.zoom;
    mapCentreZoom=map.zoom;
    centre();
}
function AddSelectedLayers()
{
    layers=document.getElementById('mapLayers').value;
    if(mapSource=='google')
    {
        if(layers.indexOf('itn[JourneyTimes]')>-1)
        {
            var jtn=new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
                'layers':'itn[JourneyTimes]',
                'format':format,
                'transparent':'true',
                'Type':'sperical'
            },{'buffer':0});
            registerEvents(jtn);
            map.addLayer(jtn);
        }
    }
    else
    {
        if(layers.indexOf('itn[JourneyTimes]')>-1)
        {
            var jtn=new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
                'layers':'itn[JourneyTimes]',
                'format':format,
                'transparent':'true'
            },{'buffer':0});
            registerEvents(jtn);
            map.addLayer(jtn);
        }
//        if(layers.indexOf('naptan')>-1)
//        {
//            var jtn=new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                'layers':'naptan',
//                'format':format,
//                'transparent':'true'
//            },{'buffer':0});
//            registerEvents(jtn);
//            map.addLayer(jtn);
//        }
//        if(layers.indexOf('ArgonautHome')>-1)
//        {
//            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                'layers':'TrafficSignal,Traffic_Signal,VMS,cctv,Detector',
//                'format':'image/png',
//                'transparent':'true'
//            },{'buffer':0}));
//        }
////Cambridgeshire
        var layerValue='';
        var layerArray=layers.split(',');
        var length=layerArray.length;
        layerValue=layerArray[2];
////Catrographic
//        if(length<=5)
//        {
//            for(var i=3;i<length;i++)
//            {
//                layerValue=layerValue+','+layerArray[i];
//            }
//        }
//        else
//        {
//            alert('Please select only 3 layers at a time');
//            clearPopupsAndLayers();
//            layerValue='';
//            layers='';
//            var chkbox='';
//            chkbox=document.getElementById('filters').getElementsByTagName('input');
//            for(var i=0;i<chkbox.length;i++)
//            {
//                if(chkbox[i].checked)
//                {
//                    chkbox[i].checked=false;
//                }
//            }
//        }
//        if(layerValue==null)
//            layerValue='places';
////Cambridgeshire
////        (layers.indexOf('event')>-1)||(layers.indexOf('Car Parks')>-1)||
//        if((layers.indexOf('County')>-1)||(layers.indexOf('District')>-1)||(layers.indexOf('DistrictWards')>-1)||(layers.indexOf('ElectoralDivisions')>-1)||(layers.indexOf('Parish')>-1)||(layers.indexOf('ParliamentaryConstituencies')>-1)||(layers.indexOf('PrimaryCatchment')>-1)||(layers.indexOf('Secondarycatchment')>-1)||(layers.indexOf('Highwayssupervisorboundaries')>-1)||(layers.indexOf('Highwaysdivisionalboundaries')>-1)||(layers.indexOf('Policesection')>-1)||(layers.indexOf('Policedivision')>-1))
//        {
//            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                'layers':'places,'+layerValue,
//                'format':format,
//                'transparent':'true'
//            },{'buffer':0}));
//        }
//        if((layers.indexOf('Bridges')>-1)||(layers.indexOf('BusStops')>-1)||(layers.indexOf('AirQuality')>-1)||(layers.indexOf('Clustersites')>-1)||(layers.indexOf('CGBRoutecentreline')>-1)||(layers.indexOf('CycleCounts')>-1)||(layers.indexOf('Cycleroutes')>-1)||(layers.indexOf('CyclingSurveyData')>-1)||(layers.indexOf('Engineeringdifficulty')>-1)||(layers.indexOf('Footwayhierarchy')>-1)||(layers.indexOf('Grittingroutes')>-1)||(layers.indexOf('HgvSigns')>-1)||(layers.indexOf('HighLoadRoute')>-1)||(layers.indexOf('HeavyLoadRoute')>-1)||(layers.indexOf('IlluminatedBollard')>-1)||(layers.indexOf('IlluminatedSigns')>-1)||(layers.indexOf('OSaddresspoint')>-1)||(layers.indexOf('NationalCyclenetworkSustrans')>-1)||(layers.indexOf('NationalStreetGazetteer')>-1)||(layers.indexOf('Roadhierarchy')>-1)||(layers.indexOf('SubStandardBridges')>-1)||(layers.indexOf('SchoolLocations')>-1)||(layers.indexOf('ScientificInterest')>-1)||(layers.indexOf('Signs')>-1)||(layers.indexOf('StreetLighting')>-1)||(layers.indexOf('SchoolPatrol')>-1)||(layers.indexOf('Specialsurfacing')>-1)||(layers.indexOf('Trees')>-1)||(layers.indexOf('TrafficAccident')>-1)||(layers.indexOf('TrafficCounts')>-1)||(layers.indexOf('TrafficSpeeds')>-1)||(layers.indexOf('Trafficsensitivestreets')>-1)||(layers.indexOf('TrafficSignal')>-1))
//        {
//            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                'layers':layerValue,
//                'format':format,
//                'transparent':'true'
//            },{'buffer':0}));
//        }
////Oxfordshire
////        if((layers.indexOf('District')>-1)||(layers.indexOf('FloodRisk')>-1)||(layers.indexOf('Parish')>-1)||(layers.indexOf('OxonbndLL')>-1)||(layers.indexOf('ParkandRideSites')>-1)||(layers.indexOf('FireStations')>-1)||(layers.indexOf('FloodedRoads')>-1)||(layers.indexOf('GrittingRoutes')>-1))
//        if((layers.indexOf('District')>-1)||(layers.indexOf('FloodRisk')>-1)||(layers.indexOf('Parish')>-1)||(layers.indexOf('OxonbndLL')>-1))
//        {
//            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                //'layers':'places,'+layerValue,
//                'layers':'itn,places,'+layerValue,
//                'format':format,
//                'transparent':'true'
//            },{'buffer':0}));
//        }
//        if((layers.indexOf('ParkandRideSites')>-1)||(layers.indexOf('FireStations')>-1)||(layers.indexOf('FloodedRoads')>-1)||(layers.indexOf('GrittingRoutes')>-1)||(layers.indexOf('GrittingRoutes2')>-1)||(layers.indexOf('GrittingRoutes3')>-1))
//        {
//            map.addLayer(new OpenLayers.Layer.WMS('Cloud Amber WMS',gmlUrlArray,{
//                //'layers':'places,'+layerValue,
//                'layers':'itn,'+layerValue,
//                'format':format,
//                'transparent':'true'
//            },{'buffer':0}));
//        }
    }
}
function ShowDetails(obj,easting,northing)
{
    if(obj==undefined)
        return;
    var layers='itn,places';
    var element='';
    var chkbox='';
    var checked=false;
    var count=0;
    var layerName='';

    if(obj.type=='checkbox')
    {
        chkbox=document.getElementById('filters').getElementsByTagName('input');
        for(var i=0;i<chkbox.length;i++)
        {
            if(chkbox[i].checked)
            {
                count=count+1;
                checked=true;
                element=chkbox[i].nextSibling.innerHTML;
                layerName=document.getElementsByTagName('span')[i+1].value1;
                if(element!=undefined && element.length>0)
                layers=layers+','+layerName;
                //layers=layers+','+element;
            }
        }
    }
    else
    {
        checked=true;
        if(obj.value!=undefined && obj.value.length>0)
            layers=layers+','+obj.value;
    }
    if((layers.indexOf('car_park')>-1)||(layers.indexOf('itn[JourneyTimes]')>-1)||(layers.indexOf('traffic_signal')>-1)||(layers.indexOf('naptan')>-1)||(layers.indexOf('cctv')>-1)||(layers.indexOf('vms')>-1))
        displayCalander(true);
    else
        displayCalander(false);
    clearPopupsAndLayers();
    if(checked)
    {
        markerLoading=true;
        document.getElementById('waitImage').style.visibility='visible';
        document.body.style.cursor='wait';
        document.getElementById('mapLayers').value=layers;
        if(!document.getElementById('chkToClear').checked && document.getElementById('hdnFromDateString').value.length==0)
            SetStartandEndDates();
        var fromDate=document.getElementById('hdnFromDateString').value;
        var toDate=document.getElementById('hdnToDateString').value;
        document.getElementById('mapCentreZoom').value=map.zoom;
        if(easting==undefined||easting=='0')
        {
            easting=document.getElementById('mapCentreX').value;
            northing=document.getElementById('mapCentreY').value;
        }
        AddSelectedLayers();
        PageMethods.GetMarker(layers,map.layers[0].getResolution(),easting,northing,map.zoom,fromDate,toDate,OnGetMarkerSuccess,OnGetMarkerFailed,obj.value);
    }
}
function OnGetMarkerSuccess(result,layer)
{
    var obj=getSelectedLayer();
    if(obj!=undefined&&obj.value==layer)
    {
        if(result=='Please select End date and time greater than Start date and time.')
        {
            alert(result);
        }
        else
        {
            //$get('mapMarker').value=result;
            //clearPopupsAndLayers();
            //SetSelectedMarker();
            markerinit(result,'zibo',true);
            if(popupMarker)
            {
                popupMarker.events.triggerEvent('mousedown',null);
                popupMarker=null;
            }
        }
        markerLoading=false;
        if(layerLoading==false)
        {
            document.getElementById('waitImage').style.visibility='hidden';
            document.body.style.cursor='default';
        }
    }
}
function updateSize(obj)
{
    obj.style.height=obj.height+'px';
    obj.style.width=obj.width+'px';
}
function OnGetDepartures(result)
{
    if(result=='')
        result=' No current  departures available';
    var text=result.split('*em');
    var divs=currentPopup.contentDiv.getElementsByTagName('div')
    for(cnt=0;cnt<divs.length;cnt++)
    {
        if(divs[cnt].id=='departures')
        {
            divs[cnt].innerHTML=result;
            break;
        }
    }
    currentPopup.updateSize();
}
function OnGetMarkerFailed(error,layer)
{
    var obj=getSelectedLayer();
    if(obj!=undefined&&obj.value==layer)
    {
        markerLoading=false;
        alert('OnGetMarkerFailed : '+error.get_message());
        clearPopupsAndLayers();
        if(layerLoading==false)
        {
            document.getElementById('waitImage').style.visibility='hidden';
            document.body.style.cursor='default';
        }
    }
}
function ClickDetails()
{
    SetStartandEndDates();
    var cxy=map.center;
    var obj=getSelectedLayer();
    ShowDetails(obj,cxy.lon,cxy.lat);
}
var layerLoading=false;
var markerLoading=false;
function registerEvents(layer)
{
    if(layer==undefined)
        return;
    layer.events.register('loadstart',layer,function()
    {
        layerLoading=true;
        document.getElementById('waitImage').style.visibility='visible';
        document.body.style.cursor='wait';
    });
    layer.events.register('loadend',layer,function()
    {
        for(var i=0;i<map.layers.length;i++)
        {
            if(map.layers[i].numLoadingTiles>0)
                return;
        }
        layerLoading=false;
        if(markerLoading==false)
        {
            document.getElementById('waitImage').style.visibility='hidden';
            document.body.style.cursor='default';
        }
    });
}
function getSelectedLayer()
{
    var layerGroups=document.getElementsByName('cbLayerGroups');
    for(var i=0;i<layerGroups.length;i++)
    {
        if(layerGroups[i].checked)
            return layerGroups[i];
    }
}
function ShowDiv(obj)
{
    var divDetail=obj.parentNode.getElementsByTagName('div')[1];
    if(divDetail.style.display=='none')
        divDetail.style.display='block';
    else
        divDetail.style.display='none';
    if(currentPopup!=undefined)
    {
        currentPopup.updateSize();
        currentPopup.panIntoView();
    }
}
function displayCalander(isDisable)
{
    document.getElementById('txtFromDate').disabled=isDisable;
    document.getElementById('txtToDate').disabled=isDisable;
    document.getElementById('sltFromHour').disabled=isDisable;
    document.getElementById('sltToHour').disabled=isDisable;
    document.getElementById('chkToClear').disabled=isDisable;
    document.getElementById('ClickDate').disabled=isDisable;
}
function changeURL(){}

