MapAppLoader.onStartApplication = function() {
    startApplication();
};

MapAppLoader.load({
    uiLibrary: "",
    proxy: "http://" + location.hostname + "/mapy/proxy.php?url=",
    scripts: [
        "http://apps.hfbiz.cz/glog/Glog/MapPortal/www/mapportal-core.js"
    ]
});

function afterLoad() {
    //HSLayers.Apps.MapPortal.Rincon.ShowObject.setVisibleLayer("poi", true);
    document.getElementById("map").style.background = "";
    document.getElementById("map_load").style.display = "none";
};

function afterSearch() {
    showAllObject();
    HSLayers.Apps.Utility.getElement("map").style.visibility = "visible";
    document.getElementById("map_load").style.display = "none";
    
};

function beforeSearch(request) {
  document.getElementById("map_load").style.display = "";
  var continueSearch = true;
  if (request.fromMap) {
      alert(
          "SouĹadnice zadanĂŠho vĂ˝Ĺezu : \n" +
          request.fromMap.minx + ", " + request.fromMap.miny + "\n" +
          request.fromMap.maxx + ", " + request.fromMap.maxy
      ); 
      continueSearch = false;
  }
  return continueSearch;
};

function hideControlPanel() {
    HSLayers.Apps.MapPortal.Rincon.ShowObject.setControlPanelVisible(false);
};
  
function getObjectId() {
    return HSLayers.Apps.Utility.getElement("objectid").value;
};

// bublina  
function getPopupContent(dataObject) {
    var content = "";
    if (dataObject != null) {
        if (dataObject.objectId != "") {
            //content = "Informace o objektu ID=" + dataObject.objectId;
            content = '<div id="mapbuble" style="width: 300px; height: 180px; overflow: auto;">'+ dataObject.objectId + '</div>';
            loadData2Buble();
        }
    }
    return content;
};

function getSkatId() {
    return HSLayers.Apps.Utility.getElement("skatid").value;
};

function getVisibleSkatArray() {
    return [{layerName:"poi",skat: getSkatId()}];
};

function onLoad() {
    MapAppLoader.afterDocLoaded();
};

function setVisibleSkat(skatid) {
    HSLayers.Apps.MapPortal.Rincon.ShowObject.setVisibleSkat(
        getVisibleSkatArray(),
        true
    );
};

function setZoom() {
    HSLayers.Apps.MapPortal.Rincon.ShowObject.zoomTo(
        HSLayers.Apps.Utility.getElement("zoom").value
    );
};

function showControlPanel() {
    HSLayers.Apps.MapPortal.Rincon.ShowObject.setControlPanelVisible(true);
};

function showObjectInMap() {
    HSLayers.Apps.MapPortal.Rincon.ShowObject.showObjectInMapById(
        getObjectId(), {zoomLevel: 5}
    );
};

function startApplication() {
    
    HSLayers.Apps.MapPortal.Rincon.ShowObject.initOptions({
        
        afterLoad: afterLoad,
        
        // callback funkce, ktera se zavola po vyhledani pozadovaneho objektu
        afterSearch: afterSearch,
        
        // callback funkce, ktera se zavola pred vyhledanim pozadovaneho objektu
        // a po zadani vyhledavaciho vyrezu v mape
        beforeSearch: beforeSearch,
        
        // zakladni URL pro volani funkcionality implementovane na serverove strane
        // !!! NEMENIT !!!
        baseUrl: "http://apps.hfbiz.cz/glog/glog",
        
        // id HTML elementu (DIV), do ktereho bude vygenerovane mapove okno
        containerId: "map",
        
        // nastaveni viditelnosti nastrojove listy v mape
        controlPanelVisible: false,

        // nastroj, ktery je implicitne zapnuty :
        //   "info"                     - zapne nastroj info
        //   "" , nebo nezadana hodnota - zapne nastroj "navigation" (pohyb 
        //                                v mape - pan, zoom)
        defaultControl: "",

        // callback funkce, ktera se zavola pri zobrazeni informacni bubliny
        getPopupContent: getPopupContent,
        
        // cesta k obrazkum, ktere nahrava mapova knihovna
        // !!! NEMENIT !!!
        imgPath: "http://apps.hfbiz.cz/glog/JavaScript/hslayers/trunk/img/",

        // nazev projektu na serveru, ktery obsahuje definici prislusnych dat
        // !!! NEMENIT !!!
        projectName: "RinconPublic4u",
        
        // urcuje jestli budou zobrazeny vsechny objektu (POI) v mape, nebo 
        // pouze pozadovany objekt (false - pouze pozadovany, true - vsechny 
        // objekty)
        showObjectsInMap: true
    });

    // vyhledani objektu a zazoomovani na nej. Predava se ID pozadovaneho
    // objektu (takze v realne aplikaci se bude generovat). Jako parameter lze
    // zadat jednu z nasledujicich moznosti :
    // - jedno ID jako cislo
    // - jedno ID jako retezec
    // - vice ID oddelenych mezerou jako retezec
    // - null - neni vyhledano nic, pokud je zadany zoomLevel, provede se zoom
    //
    // Dalsi volitelny parametr je pole se seznamem SKATID pro jednotlive vrstvy s POI
    // a zoomLevel (platne jen pokud je parametr id=null)

    HSLayers.Apps.MapPortal.Rincon.ShowObject.showMap(
            null, [{layerName:"poi",skat:"70"}], 2
        );
/*
    HSLayers.Apps.MapPortal.Rincon.ShowObject.showMap(
        null, 70, 5
    );
*/
};

function loadData2Buble(){
  if(document.getElementById('mapbuble')){
    
    var iddr = document.getElementById('mapbuble').innerHTML;
    document.getElementById('mapbuble').innerHTML = "Load...";
    
    var params = "&s=" + iddr;
    $('#mapbuble').load('/redakce/ajax.php?akce=mapa&s=' + iddr);

  } else {
    setTimeout('loadData2Buble()',50);
  }
}

function findOnMap(){
  
  var params = "&subakce=find_prodejce";
  $.post("/redakce/ajax.php?akce=mapa" + params, {map_mesto: $("#map_mesto").val(),
                                                  map_sortiment: $("#map_sortiment").val(),
                                                  map_typ: $("#map_typ").val()
                                                 },
		function(xml) {
      $(xml).find('response').each(function(){
        if($(this).find('alert').text() == 'OK'){
          var idString = $(this).find('id').text();
          var pocetBodu = $(this).find('pocet').text();
          if(pocetBodu == 1){
            HSLayers.Apps.MapPortal.Rincon.ShowObject.showObjectInMapById(idString, {zoomLevel: 7});
          } else {
            HSLayers.Apps.MapPortal.Rincon.ShowObject.showObjectInMapById(idString);
          }
        } else {
          alert($(this).find('alert').text());
        }
			});
		}, "xml");
}

function showAllObject(){
  HSLayers.Apps.MapPortal.Rincon.ShowObject.setVisibleLayer("poi", true);
}

