﻿    function QSObject(querystring)
    //============================
    // dostane parametry z parametrickeho stringu
    { 
        //Create regular expression object to retrieve the qs part 
        var qsReg = new RegExp("[?][^#]*","i"); 
        hRef = unescape(querystring); 
        var qsMatch = hRef.match(qsReg); 

        //removes the question mark from the url 
        qsMatch = new String(qsMatch); 
        qsMatch = qsMatch.substr(1, qsMatch.length -1); 

        //split it up 
        var rootArr = qsMatch.split("&"); 
        for(i=0;i<rootArr.length;i++){ 
            var tempArr = rootArr[i].split("="); 
            if(tempArr.length ==2){ 
                tempArr[0] = unescape(tempArr[0]); 
                tempArr[1] = unescape(tempArr[1]); 
                this[tempArr[0]]= tempArr[1]; 
            } 
        } 
    } 



/**************************************************
*
* Mapa na strance kontakty
*
*/
    
    var MAPLat = 0;
    var MAPLNG = 0;
    
    
    function InitMapOnMap()
    //=====================
    {
        if (GBrowserIsCompatible()) 
        {
            // predava souradnice objektu
            var scriptSrc = document.getElementById("map_js").src.toLowerCase();
            qs = new QSObject(scriptSrc); 
        
            // map
            var latS = qs.lat.replace(",", ".");
            var lngS = qs.lng.replace(",", ".");
            var lat = parseFloat(latS);
            var lng = parseFloat(lngS);
           // var lat = 51.593236;
           // var lng = 16.161734;
            var MAPLat = lat;
            var MAPLng = lng;

            var point = new GLatLng(lat, lng);
            var Map = new GMap2(document.getElementById("OLMMap"));  
            Map.addControl(new GSmallMapControl());
            Map.addControl(new GMapTypeControl());
            Map.addControl(new GOverviewMapControl());
            Map.setCenter(point, 15);

            // icon
            var icon = new GIcon();
            icon.image = "http://www.olivio.cz/common/img/sign/sign.png";
            icon.iconSize = new GSize(60, 60);
            icon.iconAnchor = new GPoint(30, 30);
            icon.infoWindowAnchor = new GPoint(30, 30);
            icon.shadow = "http://www.olivio.cz/common/img/sign/signshadow.png";
            icon.shadowSize = new GSize(60, 60);

            // just do it
            var title = StrFormat("GPS ({0}, {1})", latS, lngS);
            var marker = new GMarker(point, {title: title, icon: icon});
            Map.addOverlay(marker);
        }    
    }
    
    // inicializace na startu
   // window.onload = InitMap;


    function OpenRoutePlanner()
    //=========================
    {
        alert("Plánovač tras. Tato funkce je v procesu interních testů. Děkujeme za pochopení.");
    }




/**************************************************
*
* Mapa na strance zajimavosti
*
*/

    /***** PoiClass *****/

    var PoiClass = function(Id, Lat, Lng, Title)
    //==========================================
    {
        this.Id = Id;
        this.Lat = Lat;
        this.Lng = Lng;
        this.Title = Title;
        this.Marker = null;
    }


    PoiClass.prototype.CreateHtml = function()
    //========================================
    {
        return "<h3>" + this.Title + "</h3>";
    }




    /***** PoiMapPanel *****/


    var PoiMapPanel = null;

    var PoiMapPanelClass = function(Map)
    {
        this.Map = Map;
        this.List = null;
    };
    
    
    PoiMapPanelClass.prototype.Load = function()
    {
    };
    



    /***** global functions *****/
    
    
    function CreateMarker(Dot)
    //========================
    // creates a marker (pin) on the map
    {
        // icon
        var icon = new GIcon();
        icon.image = "http://www.olivio.cz/common/img/icons/PinMap.png";
        icon.iconSize = new GSize(24, 28);
        icon.iconAnchor = new GPoint(12, 28);
        icon.infoWindowAnchor = new GPoint(12, 28);
        icon.shadow = "http://www.olivio.cz/common/img/icons/PinShadow.png";
        icon.shadowSize = new GSize(30, 28);        
      //  icon.image = StrFormat("mapmap/Pin{0}.png", Dot.Data.StatusColors[Dot.Category]);
      //  icon.iconSize = new GSize(60, 42);
       // icon.iconAnchor = new GPoint(30, 42);
      //  icon.infoWindowAnchor = new GPoint(30, 21);        
        
        // create marker
        var point = new GLatLng(Dot.Lat, Dot.Lng);
        var marker = new GMarker(point, {title: Dot.Title, icon:icon});
        Dot.Marker = marker;
            
	    // on click, creates info window
	    var clickOnMap = function() 
        {
            var point = new GLatLng(Dot.Lat, Dot.Lng);
            var html = Dot.CreateHtml(); 
            PoiMapPanel.Map.openInfoWindowHtml(point, html);
            return false;
        };
       
        // click eventu
        GEvent.addListener(Dot.Marker, 'click', clickOnMap);
	    
	    // add marker to the map
	    PoiMapPanel.Map.addOverlay(marker);
    }
    
        
  
    function GetListResponseFromWs(Data, ResponseCode)
    //================================================
    // main mathod for getting data from web service
    {
        var panel = PoiMapPanel;
	    var xml = GXml.parse(Data);
	    var items = xml.documentElement.getElementsByTagName("PoiClass");
	    panel.List = new Array();  

	    for (var i = 0; i < items.length; i++) 
	    {
            // get values
	        var id = GetXmlNumber(items[i], "Id");
	        var lat = GetXmlNumber(items[i], "Lat");
	        var lng = GetXmlNumber(items[i], "Lng");
	        var title = GetXmlString(items[i], "Title");
            var poi = new PoiClass(id, lat, lng, title);
            panel.List.push(poi);
   	        CreateMarker(poi);
	    }
    }
  
  
  
    

    function ShowOnMap()
    //==================
    {
     //   MMPanel.ClearPanel();
        var callString = StrFormat("/public/PublicWs.asmx/GetPois");
//        MMPanel.SetCenterAndZoom = true;
        GDownloadUrl(callString, GetListResponseFromWs);    
    }



    function InitMapOnPoi()
    //=====================
    {
        if (GBrowserIsCompatible()) 
        {
            // predava souradnice objektu
            var scriptSrc = document.getElementById("map_js").src.toLowerCase();
            qs = new QSObject(scriptSrc); 
        
            // map
            var latS = qs.lat.replace(",", ".");
            var lngS = qs.lng.replace(",", ".");
            var lat = parseFloat(latS);
            var lng = parseFloat(lngS);
//            var lat = 50.593236;
  //         var lng = 15.161734;

            var point = new GLatLng(lat, lng);
            var Map = new GMap2(document.getElementById("OLPMap"));  
            Map.addControl(new GSmallMapControl());
            Map.addControl(new GMapTypeControl());
            Map.setCenter(point, 10);

            PoiMapPanel = new PoiMapPanelClass(Map);
            ShowOnMap();
        }    
    }
