/**********************************************************************
 *
 * $Id: startUp.js,v 1.5 2006/09/07 15:14:33 lbecchi Exp $
 *
 * purpose: start up code to bootstrap initialization of kaMap within
 *          the sample interface.  Examples of using many parts of
 *          the kaMap core api.
 *
 * purpose: This is the sample ka-Map interface.  Feel free to use it 
 *          as the basis for your own applications or just to find out
 *          how ka-Map works.
 *
 * author: Lorenzo Becchi and Andrea Cappugi (www.ominiverdi.org)
 *
 * ka-Explorer interface has been developer for Food and Agriculture 
 * Organization of the United Nations (FAO-UN)
 *
 *
 **********************************************************************
 *
 * Copyright (c) 2006 Food and Agriculture Organization of the United Nations (FAO-UN)
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 *
 **********************************************************************/

/******************************************************************************
 *
 * To customize startUp:
 *
 * 1) modify toolbar Layout
 *  act on screen.css file and modify the funcion myMapInitialized().
 *  If you change pan and identifyer images edit switchMode() function too.
 *
 *****************************************************************************/

var myKaMap = myKaOverlayMap = myKaNavigator = myKaQuery = myScalebar =  myKaRuler = myKaUliceSearch =  myKaPrint = myPropedit =  myHistory = myRoute = null;
var queryParams = null;
var xmlHTTP=null;
var myPropeditMapOverlay=null;
var myPropeditMode=1; // 0 - nije unet; 1 - po parcelama; 2 - pretraga
var myPropeditSearchArea; //minx,miny,maxx,maxy
var objectInit = false;
var georsInit = false;
var delim = '_::_';
var delim2 = '-::-';
var lionLoaded = false;
var leftcontent_pad = 5;
var currentService = '';
var cookie_cps = 'cps0';
var cookie_map = 'map0';
var cookie_layers = 'layers0';
/**
 * parse the query string sent to this window into a global array of key = value pairs
 * this function should only be called once
 */
function parseQueryString() {
    queryParams = {};
    var s=window.location.search;
    if (s!='') {
        s=s.substring( 1 );
        var p=s.split('&');
        for (var i=0;i<p.length;i++) {
            var q=p[i].split('=');
            queryParams[q[0]]=q[1];
        }
    }
}

/**
 * get a query value by key.  If the query string hasn't been parsed yet, parse it first.
 * Return an empty string if not found
 */
function getQueryParam(p) {
    if (!queryParams) {
        parseQueryString();
    }
    if (queryParams[p]) {
        return queryParams[p];
    } else if ((p == 'cps') && (typeof(default_x) != "undefined") && (typeof(default_y) != "undefined") && default_x && default_y) {
            return default_x+','+default_y+','+default_scale;
    } else {
        return '';
    }
}

function myOnLoad() {

	window.onresize=drawPage;
    

    

	myKaMap = new kaMap( 'viewport' );
//	myKaOverlayMap = new kaMap( 'overlayviewport', 'theOverlayInsideLayer');
    var szOverlayMap = 'overlay';
	var szMap = getQueryParam('map');
    if (szMap == '' && (typeof(szMapInit) != 'undefined')) {
        szMap = szMapInit;
    }
    cookie_map = 'map_'+szMap;
    cookie_layer = 'layer_' + szMap;
    cookie_cps = 'cps_' + szMap;

	var iVerID = getQueryParam('ver_id');
    var szExtents = getQueryParam('extents');
    var szCPS = getQueryParam('cps');
    if (szCPS == '') {
        szCPS = getCookie(cookie_cps);
        if (!szCPS) szCPS = '';
    }

    var legendOptions = {};
    legendOptions.visibility = typeof gbLegendVisibilityControl != 'undefined' ? gbLegendVisibilityControl : true;
    legendOptions.opacity = typeof gbLegendOpacityControl != 'undefined' ? gbLegendOpacityControl : true;
    legendOptions.order = typeof gbLegendOrderControl != 'undefined' ? gbLegendOrderControl : true;
    legendOptions.query = typeof gbLegendQueryControl != 'undefined' ? gbLegendQueryControl : false;
    
    var myKaLegend = new kaLegend( myKaMap, 'legend', false, legendOptions, typeof(layerTree) == "object" ? layerTree : false);
    var myKaKeymap = new kaKeymap( myKaMap, 'keymap' );
    myKaNavigator = new kaNavigator( myKaMap );
    myKaNavigator.activate();
    //myKaQuery = new kaQuery( myKaMap, KAMAP_POINT_QUERY );
    myPropedit = new kaQuery(myKaMap, KAMAP_POINT_QUERY);

    myKaRubberZoom = new kaRubberZoom( myKaMap );
    myKaTracker = new kaMouseTracker(myKaMap);
    myKaTracker.activate();
    
    myKaMap.registerForEvent( KAMAP_INITIALIZED, null, myInitialized );
    myKaMap.registerForEvent( KAMAP_MAP_INITIALIZED, null, myMapInitialized );
    myKaMap.registerForEvent( KAMAP_SCALE_CHANGED, null, myScaleChanged );
    myKaMap.registerForEvent( KAMAP_EXTENTS_CHANGED, null, myExtentChanged );
    myKaMap.registerForEvent( KAMAP_LAYERS_CHANGED, null, myLayersChanged );
    myKaMap.registerForEvent( KAMAP_LAYER_STATUS_CHANGED, null, myLayersChanged );
    myKaMap.registerForEvent( KAMAP_MOUSE_TRACKER, null, myMouseMoved );
    myKaMap.registerForEvent( KAMAP_QUERY, null, myGeorsClick );
    myKaMap.registerForEvent( KAMAP_MAP_CLICKED, null, myMapClicked);
    myKaMap.registerForEvent( KAMAP_MAP_LOCAL_MENU, null, myMapLocalMenu);

    myScalebar = new ScaleBar(1);
    myScalebar.divisions = 3;
    myScalebar.subdivisions = 2;
    myScalebar.minWidth = 50;
    myScalebar.maxWidth = 100;
    myScalebar.place('scalebar');
	myBalloon = new kaBalloon( myKaMap, 'myBalloon');
    myBalloon.onSwitchBalloonView = switchBalloonView;

	myToolTip = new kaToolTip( myKaMap );
    myToolTip.offsetLeft = 0;
    myToolTip.offsetTop = document.getElementById('explorer').offsetHeight;
	
    myKaRuler = new myKaRuler( myKaMap);
    toolobjects = new Array();
    toolobjects['ruler'] = myKaRuler;
    myKaPrint = new kaPrint(myKaMap, toolobjects);
//test

    
    //myKaMap.initialize( szMap, szExtents, szCPS );
    myKaMap.initialize( iVerID ? szMap + '&ver_id='+iVerID : szMap, szExtents, szCPS );
//    myKaOverlayMap.initialize(szOverlayMap, szExtents, szCPS);
    myHistory = new kaHistory(myKaMap,false);
    myHistory.backImg = '../slider/undo.png';
    myHistory.backDisabledImg = '../slider/undo_h.png';
    myHistory.forwardImg = '../slider/redo.png';
    myHistory.forwardDisabledImg = '../slider/redo_h.png';
    myHistory.init();

    myRoute = new kaRoute(myKaMap);
    myRoute.setLineColor('#aa0000');
    
    $('#route_start').autocomplete('manufaktura/route.php?content=suggest&', {
        minChars:1,
        selectFirst : true,
        autoFill : true,
        max:0
    });
    $('#route_start').result(function(event, data, formatted) {
        if(data) {
            var coords = data[1].split(' ');
            myRoute.setStart(coords, 'WGS84');
            return data[0];
        }
    });

    $('#route_end').autocomplete('manufaktura/route.php?content=suggest&', {
        minChars:1,
        selectFirst : true,
        autoFill : true,
        max:0
    });
    $('#route_end').result(function(event, data, formatted) {
        if(data) {
            var coords = data[1].split(' ');
            myRoute.setEnd(coords, 'WGS84');
            return data[0];
        }
    });
    $('#mercata_upload').uploadify({
        'uploader'  : 'jquery/uploadify/uploadify.swf',
        'script'    : 'jquery/uploadify/uploadify.php',
        'cancelImg' : 'jquery/uploadify/cancel.png',
        'auto'      : true,
        'folder'    : upload_baseurl + 'uploads/mercata',
        'height' : 25,
        'width' : 119,
        'buttonImg' : 'images/import_ruta.png',
        'onComplete' : function(event, queueID, fileObj) {importMercata(fileObj); }

    });


}
/**
 * event handler for KAMAP_INITIALIZED.
 *
 * at this point, ka-Map! knows what map files are available and we have
 * access to them.
 */
function myGeorsClick( eventID, queryType, coords ){
    if (g_disable_map_clicks==true)
        return;
    g_current_tool='geors';
    if (g_current_mode=='insert') {
        myAjaxExecute("manufaktura/kaObject_edit.php?x="+coords[0]+"&y="+coords[1]+"&tool="+g_current_tool+"&action=add", myObjectEditCallback);
    } else if (g_current_mode == 'search') {
        georsQuery(coords[0], coords[1]);
//        myObjectSearch(g_current_tool,'search','', coords[0], coords[1])
    }
    myObjectSetMode("search");
}
function myAmbrosiaClick( eventID, queryType, coords )
{
    if (g_disable_map_clicks==true)
        return;
    g_current_tool='ambrosia';
    if (g_current_mode=='insert') {
        myAjaxExecute("manufaktura/kaObject_edit.php?x="+coords[0]+"&y="+coords[1]+"&tool="+g_current_tool+"&action=add", myObjectEditCallback);
    } else if (g_current_mode == 'search') {
        myObjectSearch(g_current_tool,'search','', coords[0], coords[1])
    }
    myObjectSetMode("search");
}
function switchObjectTool(tool) {

        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myGeorsClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMessageClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMymapClick);
        if (tool == 'geors') {
            myKaMap.registerForEvent( KAMAP_QUERY, null, myGeorsClick );
        } else if (tool = 'ambrosia') {
            myKaMap.registerForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
        }
        g_result_mark_size = 24;
        g_result_mark_on_size = 48;
        g_current_tool = tool;
        g_current_mode = 'search';
}

function myInitialized() {
    //myMapInitialized( null, myKaMap.getCurrentMap().name );
}

/**
 * event handler for KAMAP_MAP_INITIALIZED
 *
 * the scales are put into a select ... this will be used for zooming
 */
function myMapInitialized( eventID, mapName ) {
    //get list of maps and populate the maps select box
    var aMaps = myKaMap.getMaps();
    var oSelect = document.toolbarform.maps;
    if (oSelect)
    {
        var j = 0;
        var opt = new Option( 'select a map', '', true, true );
        oSelect[j++] = opt;
        for(var i in aMaps) {
          oSelect[j++] = new Option(aMaps[i].title,aMaps[i].name,false,false);
        }

        //make sure the map is selected ...
        var oSelect = document.toolbarform.maps;
        if (oSelect.options[oSelect.selectedIndex].value != mapName) {
            for(var i = 0; i < oSelect.options.length; i++ ) {
                if (oSelect.options[i].value == mapName) {
                    oSelect.options[i].selected = true;	
                    break;
                }
           }
        }
    } 


	//update the scales select
    var currentMap = myKaMap.getCurrentMap();
    var scales = currentMap.getScales();
    

    var current_scale = default_scale;
    var szCPS = getQueryParam('cps');
    if (szCPS == '') {
        szCPS = getCookie(cookie_cps);
        if (!szCPS) szCPS = '';
    }
    aCPS = szCPS.split(',');
    if (aCPS[2]) {
        current_scale = aCPS[2];
    }
    
	oSelect = document.toolbarform.scales;
    var current_scale_index = 0;
	if(oSelect){
		while( oSelect.options[0] ) oSelect.options[0] = null;
	    j=0;
	    for(var i in scales)
	    {
            var c = current_scale == scales[i] ? true : false;
            if (c) current_scale_index = j;
            var dc = default_scale == scales[i] ? true : false;
            oSelect.options[j++] = new Option("1:"+scales[i],scales[i],dc,c);
	    }
        var o = getRawObject("zoomslider_div");
        if (o) {
            $("#zoomslider_div").slideDown("slow");
            var steps = oSelect.options.length-1
            $('#zoomslider').slider({ 
                orientation : 'vertical',
                animate : true, 
                min: 0, 
                max: steps, 
                value : current_scale_index, 
                change: function(e,ui) { 
//                    oSelect.selectedIndex = ui.value;
                    mySetScale(oSelect.options[ui.value].value);
                } 
            });
        }
	}
    
    myKaMap.zoomToScale(current_scale);
//    myKaOverlayMap.zoomToScale(current_scale);
   
    //Activate query button
    switchMode('toolPan');
    
	/* handle request for layer visibility */
	var layers = getQueryParam('layers');
    if (layers == '') {
        layers = getCookie(cookie_layers);
        if (!layers) layers = '';
    }
	if (layers != '') {
		var map = myKaMap.getCurrentMap();
		//turn off all layers
		var allLayers = map.getAllLayers();
		for (var i=0; i<allLayers.length; i++) {
			allLayers[i].setVisibility(false);
		}
		aLayers = layers.split(',');
		for (var i=0;i<aLayers.length; i++) {
			map.setLayerVisibility (unescape(aLayers[i]), true);
		}
	}
//    myKaStoppedQuery = new kaQuery(myKaMap, KAMAP_MOUSE_STOPPED, 1000);
//    setKaStoppedQueryState();
//   myKaMap.registerForEvent( KAMAP_MOUSE_STOPPED, null, myMouseOver);
   // var initBox = 'toolPropedit';
    var search = getQueryParam('search');
    try {
        $("#lion").tabs(); 
    } catch(e) {} 

    switchService('toolGeors');
    //handle search request from url

    
    
}
function modAutocomplete() {
    var f = document.forms['mainsearch_form'];
    var at = new Array();
    if (f.geors.checked) at.push('geors');
    if (f.ulica.checked) at.push('ulica');
    if (f.naselje.checked) at.push('naselje');
    var tool = at.join(',');
   $("#geors_input_search_kw").setOptions({extraParams : {tool:tool}});

}

function makeSearchTabs() {
    try {
        $("#object_searchtabs").tabs();
    } catch (e) {
    }
    
}

/**
 * handle the extents changing by updating a link in the interface that links
 * to the current view
 */
function myExtentChanged( eventID, extents ) {
	updateLinkToView();
    setKaStoppedQueryState();
}

function myMouseMoved( eventID, position) {
    var geopos = document.getElementById('geoPosition');
    if(geopos) geopos.innerHTML = 'x: ' + roundIt(position.x,2) + '<BR>y: ' + roundIt(position.y,2);
}

function myLayersChanged(eventID, map) {
	updateLinkToView();
    setKaStoppedQueryState();
}

function updateLinkToView()  {
	var port = (window.location.port)? window.location.port : 80;
	var url = window.location.protocol+'/'+'/'+window.location.host +':'+ port +''+window.location.pathname+'?';
	var extents = myKaMap.getGeoExtents();
	var cx = (extents[2] + extents[0])/2;
	var cy = (extents[3] + extents[1])/2;
    var cookie_expires = 7;
    var cookie_domain = cookieurl;
    var cookie_path = '/';
    var cps = cx+','+cy+','+myKaMap.getCurrentScale();
	var cpsURL = 'cps='+cps;
    if (parseFloat(cx) && parseFloat(cy)) {
        setCookie(cookie_cps, cps, cookie_expires,cookie_path, cookie_domain); 
    } else {
        deleteCookie(cookie_cps, cookie_path, cookie_domain);
    }
	var mapURL = 'map=' + myKaMap.currentMap;
    setCookie(cookie_map, myKaMap.currentMap, cookie_expires,cookie_path, cookie_domain); 
    var theMap = myKaMap.getCurrentMap();
	var aLayers = theMap.getLayers();
    var layers = '';
	var sep = '';
	for (var i=0;i<aLayers.length;i++) {
		layers += sep + aLayers[i].name;
		sep = ',';
	}
	var layersURL = 'layers='+layers;
    setCookie(cookie_layers, layers, cookie_expires,cookie_path, cookie_domain); 

	var link = getRawObject('linkToView');
	if(link) link.href = url + mapURL + '&' + cpsURL + '&' + layersURL;
	
	var linkContent = getRawObject('linkContent');
	if(linkContent) linkContent.value = myUrlEncode('Pozicija na mapi GIS Subotica:\n-------\n'+ url + mapURL + '&' + cpsURL + '&' + layersURL.replace(/ /g, '%20') +'\n-------\n\nIskopirajte link u celini!.');


	//this should stay in an independant function
	var geoExtent = getRawObject('geoExtent');
	
	if(geoExtent) {
		geoExtent.innerHTML = 'minx: ' + roundIt(extents[0],2) +'<br>' +
							'miny: ' + roundIt(extents[1],2) +'<br>' +
							'maxx: ' + roundIt(extents[2],2) +'<br>' +
							'maxy: ' + roundIt(extents[3],2) +'<br>';
	}
}


function sendLinkToView(email,body) {
	
	var mySubject = myUrlEncode('GIS Subotica - pozicija na mapi');
	var myBody = myUrlEncode(body);
		
	location.replace( 'mailto:' + email + '?subject=' + mySubject + '&body=' + body);
}



/**
 * called when kaMap tells us the scale has changed
 */
function myScaleChanged( eventID, scale ) {
    

	var oSelect = document.toolbarform.scales;
	if(oSelect){
	    for (var i=0; i<oSelect.options.length; i++)
	    {
	        if (oSelect.options[i].value == scale)
	        {
	            oSelect.options[i].selected = true;
	            //document.forms[0].zoomout.disabled = (i==0);
	            //document.forms[0].zoomin.disabled = (i==oSelect.options.length - 1);
	        }
	    }
    }
    $('#zoomslider').slider('option', 'value', oSelect.selectedIndex); 
    var o = getRawObject('zoomslider_scale');
    if (o) {
        o.title = scale;
    }
    //todo: update scale select and enable/disable zoomin/zoomout
    var currentMap = myKaMap.getCurrentMap();
    var scales = currentMap.getScales();
    for(var i in scales){
        var imgString = 'img'+scales[i];
        var scaleString = 'img'+scale;
        if(getRawObject(imgString)) {
            if(imgString == scaleString) {
                getRawObject(scaleString).src = 'images/pixel-red.png';
            } else {
                getRawObject(imgString).src = 'images/pixel-blue.png';
            }
        }
    }
    myScalebar.update(scale);
   
    /*
    if (scale >= 1000000) {
        scale = scale / 1000000;
        scale = scale + " Million";
    }
    var outString = 'current scale 1:'+ scale;
    getRawObject('scale').innerHTML = outString;
    */
    setKaStoppedQueryState();
    myKaRuler.reset();
    if (myKaRuler.state) {
        myKaRuler.deactivate();
        myKaRuler.activate();
    }

    if (myBalloon.visible)
    {
        myKaMap.zoomTo(myBalloon.curr_geoX,myBalloon.curr_geoY);
        
        myBalloon.moveGeo(myBalloon.curr_geoX,myBalloon.curr_geoY);
    }
    if (myHistory) {
        myHistory.push();
    }

}

/**
 * called when the user changes scales.  This will cause the map to zoom to
 * the new scale and trigger a bunch of events, including:
 * KAMAP_SCALE_CHANGED
 * KAMAP_EXTENTS_CHANGED
 */
function mySetScale( scale ) {
    myKaMap.zoomToScale( scale );
}

/**
 * called when the map selection changes due to the user selecting a new map.
 * By calling myKaMap.selectMap, this triggers the KAMAP_MAP_INITIALIZED event
 * after the new map is initialized which, in turn, causes myMapInitialized
 * to be called
 */
function mySetMap( name ) {
    myKaMap.selectMap( name );
}

function myPropeditMarkPoint(geo_x,geo_y)
{
    if (myPropeditMapOverlay == null)
    {
        myPropeditMapOverlay = new kaXmlOverlay( myKaMap, 250 );
    }

    myPropeditMapOverlay.removePoint();
    var my_point = myPropeditMapOverlay.addNewPoint('propedit_point', geo_x, geo_y);
    var my_symbol = new kaXmlSymbol();
    my_symbol.size = 12;
    my_symbol.color = '#ff0000';
    
    my_point.addGraphic(my_symbol);            
    
  
}

function myPropeditSwitchMode(mode)
{
    myPropeditMode=mode;
    if (mode==2)
    {
        document.getElementById("propedit_by_parcela").style.display="none";
        document.getElementById("propedit_search").style.display="block";
        if (document.getElementById("propedit_search_form")==null)
            myPropeditExecute("search=1","search");
    }
    else
    {
        document.getElementById("propedit_by_parcela").style.display="block";
        document.getElementById("propedit_search").style.display="none";        
    }
}

function myPropeditCallback()
{
    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {  
        var a=xmlHttp.responseText;
        var start,end;
        start=a.search('<vars>')+6;
        if (start!=-1)
            end=a.search('</vars>'); 

        var var_str=a.substring(start,end);
        a=a.substr(end+7);// 7 is strlen of </vars>
        var vars=var_str.split(' ');
        var reason=vars[0];
        var edit_id=vars[3];// -2 none, -1 insert, >0 edit
        var balloon_height=vars[4];
        

        if ((reason=="open") || (reason=="open_first") || (reason=="search"))
        {
            myBalloon.move();
            if (myPropeditMode==1)
                myPropeditMarkPoint(parseFloat(vars[1]),parseFloat(vars[2]));

            if (reason=="search")
            {
                document.getElementById("propedit_search").innerHTML=a;

                myPropeditOnSearchResult(vars);
                myResizeDiv("propedit");                                                
                myResizeDiv("propedit_search");                                
                myResizeDiv("propedit_search_result");                
            }
            else
            {
                if (myPropeditMode==1)
                    document.getElementById("propedit_by_parcela").innerHTML=a;
            }

            if ((reason=="open_first") && (edit_id>-2))
                myPropeditOnEditClick(edit_id,1);
            
        }
        else if (reason=="edit")
        {
            var x=parseFloat(vars[1]);
            var y=parseFloat(vars[2]);
            
            myBalloon.resizeHeight(vars[4]);
            myBalloon.setText(a);
            if ((myPropeditMode==1) && (myKaMap.getCurrentScale()>2500))
                myKaMap.zoomTo(x,y,2500);
            
            if (myIsMapPointVisible(x,y)==false)
                myKaMap.zoomTo(x,y);
            
            myBalloon.moveGeo( x , y );
        }
        else
        {
            if (reason!="")
                alert("myPropeditCallback unknown ajax reason!\n"+var_str+"\nReason"+reason+"!");
            
        }
    }  
}

function myPropeditOnSearchResult(vars)
{
    var count=vars[1];
    var i;
    var x=parseFloat(vars[2]);
    var y=parseFloat(vars[3]);    
    var min_X=x;
    var min_Y=y;
    var max_X=x;
    var max_Y=y;

    if (myPropeditMapOverlay==null)
    {
        myPropeditMapOverlay = new kaXmlOverlay( myKaMap, 250 );
    }

    myPropeditMapOverlay.removePoint();
    for(i=2;i<2+(count*2);i=i+2)
    {
        x=parseFloat(vars[i]);
        y=parseFloat(vars[i+1]);
        if (x<min_X)
            min_X=x;
        else if (x>max_X)
            max_X=x;
        if (y<min_Y)
            min_Y=y;
        else if (y>max_Y)
            max_Y=y;
        
        var my_point = myPropeditMapOverlay.addNewPoint(i,x,y);
        var my_symbol = new kaXmlSymbol();
        my_symbol.size = 12;
        my_symbol.color = '#00ff00';
        
        my_point.addGraphic(my_symbol);                    
    }

    if (count==1)
        myKaMap.zoomTo(min_X,min_Y,2500);
    else if (count>1)
    {
        myKaMap.zoomToExtents(min_X,min_Y,max_X,max_Y);
    }

    myPropeditSearchArea=[min_X,min_Y,max_X,max_Y];    
}

function myPropeditShowAllSearchResults()
{
    myKaMap.zoomToExtents(myPropeditSearchArea[0],
                          myPropeditSearchArea[1],
                          myPropeditSearchArea[2],
                          myPropeditSearchArea[3]);    
}

function myPropeditOnSearchResultMouseOver(x,y)
{
    var my_point = myPropeditMapOverlay.addNewPoint("pointer",x,y);
    if (x!=-1)
    {
        var my_symbol = new kaXmlSymbol();
        my_symbol.size = 16;
        my_symbol.color = '#ffff00';
        my_point.addGraphic(my_symbol);                    
    }   

}

function myPropeditOnSearchClick()
{
    var url="search=1&action=search";
    url+="&search_naziv="+document.propedit_search_form.search_naziv.value;
    url+="&search_tip="+document.propedit_search_form.search_tip.value;
    url+="&search_adresa="+document.propedit_search_form.search_adresa.value;
    url+="&search_mesto="+document.propedit_search_form.search_mesto.value;
    url+="&search_odg_lice="+document.propedit_search_form.search_odg_lice.value;
    myPropeditExecute(url,"search");   

    /*resize result div*/
 //   var res_dir=document.getElementByID("propedit_search_result");
//    var parent_dir=document.getElementByID("propedit");
}

function myPropeditExecute(url,reason)
{
    if(window.XMLHttpRequest)
    {
      xmlHttp=new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(xmlHttp==null)
    {
      alert ("Browser does not support HTTP Request");
      return;
    }

    xmlHttp.onreadystatechange=myPropeditCallback;
    xmlHttp.open("GET","manufaktura/propedit?"+url+"&a_reason="+reason,true);
    xmlHttp.send(null);
}

function myPropeditClick_old(eventID, queryType, coords) {
    if (myPropeditMode==1) //po parcelama]
    {
        var url="x="+coords[0]+"&y="+coords[1];
        myPropeditExecute(url,"open_first");
    }
}

function myPropeditOnSaveClick(isOk)
{
    if (isOk==false)
    {
        myBalloon.move();
        return;
    }

    var url;
    var trimmed_naziv = document.propedit_detail_form.naziv.value.replace(/^\s+|\s+$/g, '') ;
    if (isOk==true)
    if ((trimmed_naziv=="" ) || ( document.propedit_detail_form.tip.value==-1))
    {
        alert("Morate uneti tip i naziv objekta!");
        return;
    }

    url="parcela_id="+document.propedit_detail_form.parcela_id.value;
    url+="&desc_parcele_id="+document.propedit_detail_form.desc_parcele_id.value;
    if (isOk)
    {
        var checked=0;
        if (document.propedit_detail_form.private.checked)
            checked=1;
        
        url+="&tel="+document.propedit_detail_form.telefon.value;
        url+="&odg_lice="+document.propedit_detail_form.odg_lice.value;
        url+="&fax="+document.propedit_detail_form.fax.value;
        url+="&naziv="+document.propedit_detail_form.naziv.value;
        url+="&tip_id="+document.propedit_detail_form.tip.value;
        url+="&opis="+document.propedit_detail_form.opis.value;
        url+="&broj="+document.propedit_detail_form.broj.value;
        url+="&ulica_id="+document.propedit_detail_form.ulica_id.value;
        url+="&slika="+document.propedit_detail_form.slika.value;
        url+="&private="+checked;
       url+="&action=save";
    }
    else
    {
        var iesucks=document.getElementById('propedit_post_frame');
        if (iesucks!=null) 
            iesucks.src='manufaktura/propedit_img_edit.php?show=0&delete_image='+document.propedit_detail_form.slika.value;
        
    }
    myPropeditExecute(url,"open");
}


function myPropeditOnDeleteImage()
{
    document.getElementById('propedit_post_div').style.display='block';
    document.getElementById('propedit_img_div').style.display='none';
    document.getElementById('propedit_post_frame').src='manufaktura/propedit_img_edit.php?delete_image='+
                    document.propedit_detail_form.slika.value;
    document.propedit_detail_form.slika.value="";
}

function myPropeditOnEditClick(id,action,parcela_id) /*action: 1 - insert,update | -1 - delete*/
{
    var url,frm,reason,search_str;
    frm=document.getElementById("propedit_form");
    if (parcela_id>-1)
        url="parcela_id="+parcela_id;
    else
        url="parcela_id="+document.propedit_form.parcela_id.value;

    reason='edit';        
    
    if (id>-1) //edit
        url+="&desc_parcele_id="+id;
    if (action<1)
    {
        reason='open';        
        url+="&action=del";
        if (confirm("Da li ste sigurni da zelite izbrisati selektovani objekat?")!=true)
            return;
    }
    else
    {
        url+="&action=add";
    }
        

    if (myPropeditMode==2)
        search_str+="&search=1";
    myPropeditExecute(url,reason);
}

function myIsMapPointVisible(x,y)
{
    var rect;
    rect=myKaMap.getGeoExtents(); //minx,miny,maxx,maxy
    if ( (x>rect[0]) && (x<rect[2]) && (y>rect[1]) && (y<rect[3]))
        return true;
    else
        return false;
}

function myResizeDiv(div_id)
{
    var div=document.getElementById(div_id);
    if (div==null)
        alert("Can't find div : "+div_id);
    var div_parent=div.parentNode;
    var childs=div_parent.childNodes;
    var tmp=parseInt(div_parent.offsetHeight);
    if (div_parent.offsetParent==div.offsetParent)
        tmp=tmp-(div.offsetTop-div_parent.offsetTop);
    else
        tmp=tmp-parseInt(div.offsetTop);
    for(var i=0;i<childs.length;i++)
    {
        if (childs[i].tagName=="DIV")
        {
            var margin=parseInt(childs[i].style.marginTop);
            if (margin>0)
                alert(5);
        }
        if ((childs[i].tagName=="DIV") && (childs[i].offsetTop>div.offsetTop))
            tmp=tmp-parseInt(childs[i].offsetHeight);
    }
    div.style.height=tmp+'px';
}



function myMapClicked( eventID, coords ) {
	//myKaMap.zoomTo(coords[0],coords[1]);
    myToolTip.move();
	if (g_current_tool == 'geors') {
        myGeorsClick(eventID, KAMAP_POINT_QUERY, coords);
	} else if (g_current_tool == 'ambrosia') {
        var layer = myKaMap.getCurrentMap().getLayer('Objekti');
        if (layer && layer.visible) {
            myObjectSetMode("search");
            switchService('toolPropedit');
            myAmbrosiaClick(eventID, KAMAP_POINT_QUERY, coords);
        }
    } else if (g_current_tool == 'message') {
        myObjectSetMode("insert");
        myMessageClick(eventID, KAMAP_POINT_QUERY, coords);
    } else if (g_current_tool == 'mymap') {
        myObjectSetMode("insert");
        myMessageClick(eventID, KAMAP_POINT_QUERY, coords);
    }
}

function myZoomIn() {
    myKaMap.zoomIn();
    setKaStoppedQueryState();
}

function myZoomOut() {
    myKaMap.zoomOut();
    setKaStoppedQueryState();
}




/**
 * drawPage - calculate sizes of the various divs to make the app full screen.
 */
function drawPage() {
    var browserWidth = getInsideWindowWidth();
    var browserHeight = getInsideWindowHeight();

    var viewport = getRawObject('viewport');
    var page = getRawObject('page');
    var layoutFrame = getRawObject('layoutFrame');
    var toolbar = getRawObject('toolbar');
    var explorer = getRawObject('explorer');
    var service = getRawObject('service');
    var mercata = getRawObject('mercata');
    var leftcontent = getRawObject('leftcontent');

	
		var legend = getRawObject('legend');
		var keymap = getRawObject('keymap');
//		var link = getRawObject('link');
		var mapLegend = getRawObject('mapLegend');
		var content = getRawObject('content');
		var contentBackground = getRawObject('contentBackground');
		var contentText = getRawObject('contentText');
        var propedit = getRawObject('propedit');
        var ruler = getRawObject('ruler');
    var toggle_leftcontent = getRawObject('toggle_leftcontent');
    var toggle_leftcontent_img = getRawObject('toggle_leftcontent_img');
    var toggle_map_overview = getRawObject('toggle_map_overview');
    var map_overview = getRawObject('map_overview');
//    var zoomslider = getRawObject('zoomslider_div');
    var maptools = getRawObject('maptools');
		
		
	//Set Viewport Width
    if(isIE4) {
        //terrible hack to avoid IE to show scrollbar
        page.style.width = (browserWidth -2) + "px";
    } else {
        page.style.width = browserWidth + "px";
    }
    
     if(isIE4) {
        //terrible hack to avoid IE to show scrollbar
        page.style.height = (browserHeight -2) + "px";
    } else {
        page.style.height = browserHeight + "px";
    }
    var leftcontentLeft = findPosX(leftcontent);
    var leftcontentTop = findPosY(leftcontent);
//    zoomslider.style.left = parseInt(page.style.width) - maptools.offsetWidth - 5 + 'px';
    maptools.style.left = parseInt(page.style.width) - maptools.offsetWidth - 5 + 'px';
	//layoutFrame
	layoutFrame.style.width = parseInt(page.style.width) + "px";
	layoutFrame.style.height = parseInt(page.style.height) -parseInt(getObjectHeight(explorer))  + "px";
    var lft = parseInt(getObjectHeight(explorer));
    if (lft < 37) lft= 37;
	layoutFrame.style.top= lft + "px";
	layoutFrame.style.left="0";
	layoutFrame.style.right="0";
	
	//VIEWPORT
	viewport.style.width = parseInt(getObjectWidth(layoutFrame)) - 2 + "px";
	viewport.style.height = parseInt(getObjectHeight(layoutFrame)) -1  + "px";
	viewport.style.top="0px";
	viewport.style.left= "0px";
	viewport.style.right="0px";
    
    var splash = getRawObject('splash');
    if (splash) {
        splash.style.top = parseInt((viewport.offsetHeight - splash.offsetHeight)/2) + 'px';
        splash.style.left = parseInt((viewport.offsetWidth - splash.offsetWidth)/2) + 'px';
    }
	
	//CONTENT
	//content.style.top = viewport.style.top;
	content.style.left = parseInt(viewport.style.left) +10  + "px";
	content.style.width = parseInt(viewport.style.width) -20  + "px";
	content.style.height = parseInt(viewport.style.height) -20  + "px";
	contentBackground.style.height = parseInt(viewport.style.height) -20  + "px";
	contentText.style.height = parseInt(viewport.style.height) -65  + "px";
	contentText.style.width = parseInt(viewport.style.width) -50  + "px";
	
	//SERVICE - left space
    leftcontent.style.top = parseInt(layoutFrame.style.top) + 5 + 'px';
    var serviceHeight = parseInt(page.style.height) - leftcontent.offsetTop-2 -leftcontent_pad -2;
    leftcontent.style.height = serviceHeight + 2 +"px";
	service.style.height = serviceHeight + "px";
	mapLegend.style.height = serviceHeight + "px"; 
	mercata.style.height = serviceHeight + "px"; 
	//link.style.height = serviceHeight + "px"; 
	propedit.style.height = serviceHeight + "px"; 
    ruler.style.height = serviceHeight + "px";
    
    if (toggle_leftcontent && toggle_leftcontent_img) {
        toggle_leftcontent.style.top = leftcontentTop + 10 +'px';
        if (leftcontentLeft < 0) {
            toggle_leftcontent.style.left = "0px";
            toggle_leftcontent_img.src = 'images/sexpand.png';
        } else {
            toggle_leftcontent.style.left = leftcontentLeft + leftcontent.offsetWidth + "px";
            toggle_leftcontent_img.src = 'images/scollapse.png';
        }
    }
    georsAdjustTabHeights();
	
    if (myKaMap) {	
        myKaMap.resize();
    }
}

function showContent(url) {
	var content = getRawObject('content');
	var viewport = getRawObject('viewport');
	content.style.top = parseInt(viewport.style.top) + 10 + "px";
	call(url,this, setContent);
}

function setContent(szContent){
	var contentText = getRawObject('contentText');
	contentText.innerHTML = szContent;
}
function hideContent() {
	var content = getRawObject('content');
	var viewport = getRawObject('viewport');
	content.style.top = parseInt(viewport.style.top) + parseInt(viewport.style.height) + "px";
}

/**
 * getFullExtent
 * ...
 */
function getFullExtent() {
    var exStr = myKaMap.getCurrentMap().defaultExtents.toString();
    var ex = myKaMap.getCurrentMap().defaultExtents;
    myKaMap.zoomToExtents(ex[0],ex[1],ex[2],ex[3]);
}

/**
 * switchMode
 * ...
 */
function switchMode(id) {
    myToolTip.move();
    if (id=='toolQuery') {
        toggleLeftcontent('on');
        myKaQuery.activate();
    } else if (id=='toolPropedit') {
        toggleLeftcontent('on');

        myPropedit.activate();
        if (!objectInit) {
            myObjectInitSearch('geors','propedit','search');
            objectInit = true;
        }
        switchObjectTool('geors');
    } else if (id=='toolPan') {
        if (myKaMap.currentTool.name != 'toolMsg') {        
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMessageClick );
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myGeorsClick);
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMymapClick );
            myKaMap.deregisterForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );

            myKaMap.registerForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );
            g_current_mode = 'search';
            g_result_mark_size = 24;
            g_result_mark_on_size = 48;
        }
        myKaNavigator.activate();

    } else if (id=='toolZoomRubber') {
        myKaRubberZoom.activate();
    } else if (id=='toolRuler') {
        toggleLeftcontent('on');
    } else {
        myKaNavigator.activate();
    }
}


/**
 * switchMode
 * ...
 */
function switchService(id) {
    myToolTip.move();
    currentService = id;
	var service = getRawObject('service');
	
//    getRawObject('toolQuery').style.backgroundImage = 'url(images/icon_set_explorer/tool_query_1.png)';
    getRawObject('toolMsg').style.backgroundImage = 'url(images/icon_set_explorer/tool_msg2_1.png)';
    getRawObject('toolMymap').style.backgroundImage = 'url(images/icon_set_explorer/tool_propedit_1.png)';
    
		
    getRawObject('mapLegend').style.display = 'none'; 
//    getRawObject('link').style.display = 'none';
    getRawObject('propedit').style.display = 'none';
    getRawObject('ruler').style.display = 'none';
    getRawObject('georssearch').style.display = 'none';
    getRawObject('mapMsg').style.display = 'none';
    getRawObject('mapMymap').style.display = 'none';
    getRawObject('route').style.display = 'none';
try {
    getRawObject('mercata').style.display = 'none';
} catch(e) {}
try {
    getRawObject('lion').style.display = 'none';
} catch(e) {}


    if (id=='toolQuery') {
        toggleLeftcontent('on');
        myKaQuery.activate();
    } else if (id=='toolLegend') {
        toggleLeftcontent('on');
		getRawObject('mapLegend').style.display = 'block';
        
        if (myKaMap.currentTool.name != 'toolMsg') {        
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMessageClick );
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myGeorsClick);
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
            myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMymapClick );
            myKaMap.deregisterForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );

            myKaMap.registerForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );
            g_current_mode = 'search';
            g_result_mark_size = 24;
            g_result_mark_on_size = 48;
        }
        myKaNavigator.activate();
    } else if (id=='toolLink') {
        toggleLeftcontent('on');
        myKaNavigator.activate();
//		getRawObject('link').style.display = "block";
    } else if (id=='toolMapinfo') {
        toggleLeftcontent('on');
        myKaNavigator.activate();
    } else if (id=='toolPropedit') {
        toggleLeftcontent('on');
        myPropedit.activate();
        if (!objectInit) {
            myObjectInitSearch('geors','propedit','search');
            objectInit = true;
        }
        getRawObject('propedit').style.display = 'block';

        switchObjectTool('geors');
    } else if (id=='toolRoute') {
        toggleLeftcontent('on');
        getRawObject('route').style.display = 'block';
    } else if (id=='toolMercata') {
        toggleLeftcontent('on');
        getRawObject('mercata').style.display = 'block';
    } else if (id == 'toolGeors') {
        g_onAfterInitiateSearch = "onAfterInitGeorsSearch();";
        if (!georsInit) {
            myObjectInitSearch('geors','mainsearch_georsfilters','mapsearchheader');
        }
    } else if (id=='georsSearch') {
        getRawObject('georssearch').style.display = 'block';
        switchObjectTool('geors');
    } else if (id=='toolMsg') {
        toggleLeftcontent('on');
		getRawObject('toolMsg').style.backgroundImage = 'url(images/icon_set_explorer/tool_msg2_2.png)';
        myPropedit.activate();
        var msgAdmin = (user.level_1 != undefined) || user.admin ? true : false;
        myObjectInitSearch('message','mapMsg','search', msgAdmin ? 'pan' : 'insert');		
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myGeorsClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
        myKaMap.deregisterForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMessageClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMymapClick );
        
        g_result_mark_size = 32;
        g_result_mark_on_size = 32;
        
        if (!msgAdmin) {
            myKaMap.registerForEvent( KAMAP_QUERY, null, myMessageClick );
        }
        
		getRawObject('mapMsg').style.display =  "block";
    } else if (id=='toolMymap') {
        toggleLeftcontent('on');
		getRawObject('toolMymap').style.backgroundImage = 'url(images/icon_set_explorer/tool_propedit_2.png)';
        myPropedit.activate();
        var msgAdmin = (user.level_1 != undefined) || user.admin ? true : false;
        myObjectInitSearch('geors','mapMymap','search', 'insert');		
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myGeorsClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myAmbrosiaClick );
        myKaMap.deregisterForEvent( KAMAP_MAP_CLICKED, null, myMapClicked );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMessageClick );
        myKaMap.deregisterForEvent( KAMAP_QUERY, null, myMymapClick );
        
        g_result_mark_size = 32;
        g_result_mark_on_size = 32;
        
        if (!msgAdmin) {
            myKaMap.registerForEvent( KAMAP_QUERY, null, myMymapClick );
        }
        
		getRawObject('mapMymap').style.display =  "block";
    } else if (id=='toolRuler') {
        toggleLeftcontent('on');
        myKaRuler.activate();
        
        getRawObject('ruler').style.display = 'block';
    } else if (id=='toolLion') {
        toggleLeftcontent('on');
        if (!lionLoaded) {
            loadLionTabs();
        }
        getRawObject('lion').style.display = 'block';
    }else {
        myKaNavigator.activate();
    }

}

function myGetCoords( eventID, queryType, coords ) 
{
    var div=document.getElementById("coords_text");
    if (div==null)
    {
        div=document.createElement("DIV");
        div.id='coords_text';
        div.style.display="block";
        div.style.position='absolute';
        div.style.width="200px";        
        div.style.height="20px";
        div.style.top="0px";
        div.style.left="400px";
        document.body.appendChild(div);
        
    }
    div.innerHTML=coords;
}



/*
 *  applyPNGFilter(o)
 *
 *  Applies the PNG Filter Hack for IE browsers when showing 24bit PNG's
 *
 *  var o = object (this png element in the page)
 *
 * The filter is applied using a nifty feature of IE that allows javascript to
 * be executed as part of a CSS style rule - this ensures that the hack only
 * gets applied on IE browsers :)
 */
function applyPNGFilter(o) {
    var t="images/a_pixel.gif";
    if( o.src != t ) {
        var s=o.src;
        o.src = t;
        o.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+s+"',sizingMethod='scale')";
    }
}

//functions to open popup

function WOFocusWin( nn ) {
	eval( "if( this."+name+") this."+name+".moveTo(50,50); this."+name+".focus();" );
}

function WOOpenWin( name, url, ctrl ) {
    eval( "this."+name+"=window.open('"+url+"','"+name+"','"+ctrl+"');" );

    /*IE needs a delay to move forward the popup*/
    // window.setTimeout( "WOFocusWin(nome);", 300 );
}

function WinOpener() {
    this.openWin=WOOpenWin;
	this.focusWin=WOFocusWin;
}


//URL SYNTAX ENCODING
function myUrlEncode(string) {
  encodedHtml = escape(string);
  encodedHtml = encodedHtml.replace("/","%2F");
  encodedHtml = encodedHtml.replace(/\?/g,"%3F");
  encodedHtml = encodedHtml.replace(/=/g,"%3D");
  encodedHtml = encodedHtml.replace(/&/g,"%26");
  encodedHtml = encodedHtml.replace(/@/g,"%40");
  return encodedHtml;
};
  
function myUrlDecode(sz){
	return unescape(sz).replace(/\+/g," ");
};

//MATH FUNCTIONs
function roundIt(number,decimals){
	var base10 = 10;
	for(var i=0;i<decimals-1;i++)
		base10 = base10 *10;
	 
	return Math.round(number * base10)/base10;
}

function setKaStoppedQueryState() {
    return false;
    /*
    if (typeof(myKaStoppedQuery) == 'undefined') return false;
    var layer=myKaMap.getCurrentMap().getLayer('Generalni plan');
    if(layer.visible) {
        myKaStoppedQuery.activate();
    } else {
        myKaStoppedQuery.deactivate();
        hideToolTip();

    }
    */
}
function myMouseOver(eventID, queryType, coords) {
    if (coords == undefined) return false;
    myKaStoppedQuery.deactivate();
    var szLayers = "";
    var layers = myKaMap.getCurrentMap().getLayers();
    for (var i=0;i<layers.length;i++) {
        szLayers = szLayers + "," + layers[i].name;
    }
    var extent = myKaMap.getGeoExtents();
    var scale = myKaMap.getCurrentScale();
    var cMap = myKaMap.getCurrentMap().name;
	var params='map='+cMap+'&scale='+scale+'&groups='+szLayers+'&coords='+coords+'&extent='+extent[0]+'|'+extent[1]+'|'+extent[2]+'|'+extent[3];
    var url = baseurl + 'manufaktura/kaMouseOverQuery.php?'+params;
	call(url,this, myMouseOverOutput);

}
function myMouseOverOutput (szText) {
    if (szText != "empty") {
        var a = szText.split('_::_');
        var x = a.shift();
        var y = a.shift();
        var tip = '<b>' + 'Generalni plan:' + '</b>';
        tip +='<br>';
        tip += a.join('<br>');
        tip += '<div class="close"><a class="ql" onclick="myToolTip.move();">zatvori</a></div>';
        myToolTip.setText(tip);
        myToolTip.moveGeo(x, y);
//        myKaMap.zoomTo(x,y);
//        setTimeout('hideToolTip()', 1000);
//        alert(tip);
    }
    setKaStoppedQueryState();
}
function hideToolTip() {
    myToolTip.move();
}

function setMapPosition(map, layers, cps) {
    var cm = myKaMap.getCurrentMap(); 
    if ((map != '') && (map != cm.name)) { 
        myKaMap.selectMap(map);
    }
	if (layers != '') {
		var map = myKaMap.getCurrentMap();
		//turn off all layers
		var allLayers = map.getAllLayers();
		for (var i=0; i<allLayers.length; i++) {
			allLayers[i].setVisibility(false);
		}
		aLayers = layers.split(',');
		for (var i=0;i<aLayers.length; i++) {
			map.setLayerVisibility (unescape(aLayers[i]), true);
		}
	}
    var acps = cps.split(',');
    myKaMap.zoomTo(acps[0], acps[1], acps[2]);
}
function switchBalloonView() {
    if (myBalloon.balloonView) {
         if (myBalloon.balloonSet) {
            myBalloon.moveGeo(myBalloon.curr_geoX, myBalloon.curr_geoY);
         } else if (myBalloon.object_id) {
            myObjectSearchItemClick(myBalloon.object_id, g_current_tool);
        }
    } else {
        if (myBalloon.dynContentSet) {
            myBalloon.showDynContent();
        } else if (myBalloon.object_id) {
            myObjectSearchItemClick(myBalloon.object_id, g_current_tool);
        }
    }

}
function georsSearchFromUrl() {
    var go = false;
    var nopart = 0;
    var kw = '';
    var add = '&fromurl=1';
    var tool = rcategory;
    if (rcategory == 'naselje') {
        go = rnaselje != '';
        kw = rnaselje;
        nopart = 1;
    } else if (rcategory == 'ulica') {
        go = (rnaselje != '') &&  (rulica != '');
        kw = rulica + ' ' + rnaselje;
        nopart = 1;
    } else if (rcategory != '') {
        go = rkw != '';
        kw = rcategory + ' ' + rnaselje + ' ' + rkw;
        tool = 'geors';
    }
    if (go) {
        var f = document.forms['mainsearch_form'];
        //f.obj_name.value = kw;
        //f.nopart.value = nopart;
        var tip_id = '';
        if (false && tool == 'geors') {
            for (var i=0;i<f.obj_tip_id_tmp.options.length;i++) {
                if (f.obj_tip_id_tmp.options[i].text == rcategory) {
                    tip_id = f.obj_tip_id_tmp.options[i].value;
                }
            }
            f.obj_tip_id.value = tip_id;
        }
        if (currentService != 'georsSearch') {
            switchService('georsSearch');
        }
        call('manufaktura/geors_search.php?action=search&&tool='+tool+'&kw='+kw+'&nopart='+nopart+add, this, georsSearch_resp);
    }

}
var georsSearchResults = {};
function georsQuery(x,y) {
    call('manufaktura/geors_search.php?action=query&tool=geors&x='+x+'&y='+y, this, georsSearch_resp);
    
}
function georsSearch(tool, p, maxp) {
    if (currentService != 'georsSearch') {
        switchService('georsSearch');
    }
    var f = document.forms['mainsearch_form'];
    var kw = f.obj_name.value.replace(/^\s+|\s+$/, '');
    var nopart = f.nopart.value;
    var add = '';
    if (tool == undefined) {
        var at = new Array();
        if (f.geors.checked) at.push('geors');
        if (f.ulica.checked) at.push('ulica');
        if (f.naselje.checked) at.push('naselje');
        tool = at.join(',');
        if (tool == '') {
            f.geors.checked = true;
            f.ulica.checked = true;
            f.naselje.checked = true;
        }
    }
    if ((p != undefined) && (maxp != undefined)) {
        p = parseInt(p);maxp = parseInt(maxp);
        if (p < 0) page = 0;
        else if (p > maxp) page = maxp;
        else page = p;
        add += '&navig=1&o='+page;
    } 
    var geors_filters = false;
    if (parseInt(f.geors_filters.value)) {
        var addfilters = '';
        var gf = document.geors_searchfilters;
        if (gf.payment.value != '0') {
            addfilters += '&payment='+gf.payment.value;
            if (gf.payment.value == 'expires') {
                addfilters += '&expires_year=' + gf.expires_Year.value; 
                addfilters += '&expires_month=' + gf.expires_Month.value; 
                addfilters += '&expires_day=' + gf.expires_Day.value; 
            }
        }
        if (!gf.enabled.checked && !gf.disabled.checked) {
            alert('Morate izabrati barem jednu od opcije "dozvoljen", "zabranjen"');
        }
        if (!gf.enabled.checked) {
            addfilters += '&enabled=0';
        }
        if (!gf.disabled.checked) {
            addfilters += '&disabled=0';
        }
        var tip_id = gf.tip_id.options[gf.tip_id.selectedIndex].value;
        if (tip_id != '') {
            addfilters += '&tip_id='+ tip_id;
        }
        add += addfilters;
        if (addfilters != '') {
            geors_filters = true;
        }
    }
    if (kw == '' && !geors_filters) return false //disable empty search
    call('manufaktura/geors_search.php?action=search&tool='+tool+'&kw='+kw+'&nopart='+nopart+add, this, georsSearch_resp);
    f.obj_tip_id.value = '';
    f.nopart.value = 0;
    refreshAd(kw);
}
function georsSearch_resp(r) {
    $("#geors_input_search_kw").blur();
    var resp = JSON.parse(r);
    var action = resp[0];//search or query
    var navig = resp[1];
    var settings = resp.length > 3 ? resp[3] : false;
    var html = '';
    var restitle = getRawObject('georssearch_title_result');
    var norestitle = getRawObject('georssearch_title_noresult');
    if (navig) {
        toggleLeftcontent('on');
        var sel = $('#main_searchresults').tabs('option', 'selected');
        georsSearchResults[sel] = resp[2][0];
        for(var i in georsSearchResults) {
            var result = georsSearchResults[i];
            var o = getRawObject(result.tool + '_searchresult_list');
            var n = getRawObject(result.tool + '_searchresult_navig');
            if (n) {
                n.innerHTML = result.navig;
            }
            if (o) {
                o.innerHTML = result.html;
            }
        }
        georsAdjustTabHeights();
    } else {
        if (myObjectMapOverlay == null) {
            myObjectMapOverlay = new kaXmlOverlay( myKaMap, 250 );
        }
        myObjectMapOverlay.removePoint();
        georsSearchResults = resp[2];
        var on = georsSearchResults.length == 1 && georsSearchResults[0].count == 1 ? 'off' : 'on';
        toggleLeftcontent(on);
        if (georsSearchResults.length) {
            restitle.style.display = 'block';
            norestitle.style.display = 'none';
        } else {
            restitle.style.display = 'none';
            norestitle.style.display = 'block';
        }
        for(var i in georsSearchResults) {
            var result = georsSearchResults[i];
            html += '<li><a href="#' +result.tool+'_searchresult">' + result.caption + ' (' + result.all_count + ')' + '</a></li>'; 
        }
        if (html != '') {
            html = '<ul>' + html + '</ul>';
        }

        for(var i in georsSearchResults) {
            var result = georsSearchResults[i];
            html += '<div id="'+result.tool+'_searchresult" >'+ '<div id="'+result.tool+'_searchresult_list">'+result.html+'</div><div id="'+result.tool+'_searchresult_navig">' + result.navig +'</div></div>';
            if (result.tool == 'geors') {
                myObjectOnSearchResult(result, false);
            }
        }
        if (html != '') {
            html = '<div id="main_searchresults">' + html + '</div>';
        }
        var resdiv = getRawObject('mainsearch_result');
        if (resdiv) {
            resdiv.innerHTML = html;
            if (html != '') {
                $('#main_searchresults').tabs({
                    selected : 0,
                    show  : function(event, ui) {
                        if (action == 'search') {
                            var sel = $('#main_searchresults').tabs('option', 'selected');
                            var ae = georsSearchResults[sel].extents.split(',');
                            ae[0] = parseFloat(ae[0]);
                            ae[1] = parseFloat(ae[1]);
                            ae[2] = parseFloat(ae[2]);
                            ae[3] = parseFloat(ae[3]);
                            var tool = georsSearchResults[sel].tool
                            if ((tool == 'naselje') && ((ae[2]-ae[0]) * (ae[2]-ae[0]) + (ae[3]-ae[1]) * (ae[3]-ae[1]) < 625000000)) {
                                zoomTo((ae[0] + ae[2])/2, (ae[1] + ae[3])/2, 20000);
                            } else if (((ae[2]-ae[0]) * (ae[2]-ae[0]) + (ae[3]-ae[1]) * (ae[3]-ae[1]) < 4000000)) {
                                zoomTo((ae[0] + ae[2])/2, (ae[1] + ae[3])/2, 5000);
                            } else {
                                zoomToExtents(ae[0], ae[1], ae[2], ae[3]);
                            }
                        }
                        georsAdjustTabHeights();
                    }
                    
                });
                //georsAdjustTabHeights();
            }
        }
        if (settings && settings.zoomto) {
            zoomTo(settings.zoomto[0], settings.zoomto[1], settings.zoomto[2]);
        }
    }

}
function georsAdjustTabHeights() {
    try {
        var t = 0;
        var resdiv = getRawObject('mainsearch_result');
        var i = $('#main_searchresults').tabs('option', 'selected');
        var result = georsSearchResults[i];
        var o = getRawObject(result.tool+'_searchresult_list');
        var n = getRawObject(result.tool+'_searchresult_navig');
        var service = getRawObject('service');
        if (o && resdiv && n) {
            if (!t) t = resdiv.offsetTop + o.offsetTop + n.offsetHeight;
            var serviceHeight = parseInt(service.style.height);
            if (o) {
                o.style.height = serviceHeight - t + 'px';
                o.style.overflow = 'auto';
            }
        }
    } catch(e) {}
}
function georsUliceSearch_resp(r) {
    var resp = JSON.parse(r);
    var resdiv = getRawObject('geors_object_search_result');
    if (!resdiv) resdiv = getRawObject('object_search_result');
    var navdiv = getRawObject('geors_object_search_navig');
    if (!navdiv) navdiv = getRawObject('object_search_navig');
    var f = document.forms['geors_object_search_form'];
    if (resp['msg'] == 'ok') {
        f.result_page.value = resp['sp']['o'];
        if (resdiv) {
            resdiv.innerHTML = resp['html'];
        }
        if (navdiv) {
            navdiv.innerHTML = resp['navig'];
            navdiv.style.display = resp['navig'] == '' ? 'none' : 'block';
        }
        var count = resp['count'];
        var e = resp['extents'].split(',');
        var shall=getElement(g_show_all_label);
        if (shall) {
            shall.innerHTML= count ? 'Prikaži sve ('+count+')' : '';
            if (count > 1) {
                shall.onclick = function() {zoomToExtents(e[0], e[1], e[2], e[3], count == 1 ? 5000 : 0); return false;}
            }
        }
        if (count) {
            if (count == 1) {
                zoomToExtents(e[0], e[1], e[2], e[3], count == 1 ? 5000 : 0);    
            }
        }
    } else {
        if (resdiv) resdiv.innerHTML = '';
        if (navdiv) navdiv.innerHTML = '';
    }
    
    var d=getElement("object_search");
    if (d)
        d.style.height=getElement("viewport").offsetHeight+"px";

    myResizeDiv('object_search_result',false);
    
}
var g_in_suggest_request = false;
var g_suggest_string = '';
var g_in_suggest_select = false;
function closeSuggest(obj) {
    var o = getRawObject(obj+'_suggest');
    if (o) o.style.display = 'none';
    
}
function searchSuggest(s, inp, obj) {
    var o = getRawObject(obj+'_suggest');
    if (o) {
        if (s == '') {
            o.innerHTML = '';
            o.style.display = 'none';  
            g_in_suggest_select = false;
            g_in_suggest_request = false;
            g_suggest_string = s;
        } else if (!g_in_suggest_select) {
            o.style.display = 'block';
            if ((s != g_suggest_string) && !g_in_suggest_select) {   
                g_in_suggest_request = true;
                g_suggest_string = s;
                var url = 'manufaktura/kaUliceSearch.php?action=suggest&obj='+obj+'&kw='+g_suggest_string;
                call(url, this, searchSuggest_resp);
            }
            
        }
    }
}
function searchSuggest_resp(r) {
    var resp = JSON.parse(r);
    if (resp['msg'] == 'ok') {
        var o = getRawObject(resp['sp']['obj'] + '_suggest');
        if (o) o.innerHTML = resp['html'];
    }
    g_in_suggest_request = false;
    var f = document.forms['geors_object_search_form'];
    var v = f.obj_cityname.value;
    if (v != g_suggest_string) {
        searchSuggest(v);
    }
}
function selectSuggested(val, obj) {
    var f = document.forms['geors_object_search_form'];
    var inp = '';
    if (obj == 'naselje') { 
        inp = 'obj_cityname'
    }
    if (f.elements[inp]) {
        f.elements[inp].value = val;
    }
    var o = getRawObject(obj + '_suggest');
    if (o) o.style.display = 'none';
}
function zoomTo(x,y, scale) {
    if ((scale == undefined) || !scale || (scale == myKaMap.getCurrentScale())) {
        myKaMap.zoomTo(parseFloat(x),parseFloat(y));
    } else {
        myKaMap.zoomTo(parseFloat(x),parseFloat(y),parseInt(scale));
    }
}
function zoomToExtents(min_X,min_Y,max_X,max_Y, scale) {
    myKaMap.zoomToExtents(parseFloat(min_X),parseFloat(min_Y),parseFloat(max_X),parseFloat(max_Y));
    if ((scale != undefined) && scale && (scale != myKaMap.getCurrentScale())) {
        myKaMap.zoomToScale(parseInt(scale));
    }
}

function mapLogin() {
    var o = document.getElementById('loginBox');
    if (o) {
        showDynContent_resp('ok'+delim+'240'+delim+'160'+delim+o.innerHTML);
    }
}
function mapRegister() {
    var o = document.getElementById('registerBox');
    var html = o.innerHTML.replace('registerform0', 'registerform').replace('regerr0', 'regerr').replace('registerForm0', 'registerForm');
    if (o) {
        showDynContent_resp('ok'+delim+'300'+delim+'240'+delim+html);
    }
}
function showDynContent_resp(r) {

    var aresp = r.split(delim);
    if (aresp[0] == "ok") {
        var o = getRawObject('dyncontent');
        var oc = getRawObject('dyncontent_content');
        var mm = getRawObject('dyncontent_minmax');
        if (mm) {
            mm.style.display = 'none';
        }
        var headerh = 20;
        if (o) {
            var width, height;
            width = parseInt(aresp[1]);
            height = parseInt(aresp[2]);
            oc.innerHTML = aresp[3];
            var layoutFrame = getRawObject('layoutFrame');
            var w, h, t,l;
            if (width > (layoutFrame.offsetWidth - 20)) {
                width = layoutFrame.offsetWidth - 20;
            }
            w = layoutFrame.offsetWidth ;
            l = layoutFrame.offsetLeft;
            
            if (height > (layoutFrame.offsetHeight - 20)){
                height = layoutFrame.offsetHeight - 20;
            }
            
            h = layoutFrame.offsetHeight;
            t = layoutFrame.offsetTop;
            
            oc.style.width = '100%';//width - 26 + 'px';
            oc.style.height = height - headerh - 3 + 'px';
            o.style.width = width + 'px';
            o.style.height = height + 'px'; 
 
            o.style.left = l + parseInt((w-width) / 2) + 'px';
            o.style.top = t + parseInt((h-height) / 2) + 'px';
            o.style.display = 'block';
            if (aresp.length > 4) { 
                try {
                    eval(aresp[4]);
                } catch(e) {
                    alert(e);
                }
            }
        }
    } else {
        alert('error');
    }
}
function loadLionTabs() {
    var url = "x_lion.php?action=load_tabs";
    call(url, this, loadLionTabs_resp);
    
}
function loadLionTabs_resp(r) {
    lionLoaded = true;
}
function toggleLeftcontent(force) {
    var leftcontent = getRawObject('leftcontent');
    if (leftcontent) {
        if (force == undefined) {
            var x = findPosX(leftcontent);
            leftcontent.style.left = x < 0 ? (leftcontent_pad + 'px') : (- leftcontent.offsetWidth - leftcontent_pad + 'px');
        } else {
            leftcontent.style.left = force == 'on' ? (leftcontent_pad + 'px') : (- leftcontent.offsetWidth - leftcontent_pad + 'px');
        }
    }
    var o = getRawObject('toggle_leftcontent');
    if (o) {
        o.style.display = 'block';
    }
    drawPage();
}
function toggleMapOverview() {
    var mo = getRawObject('map_overview');
    if (mo) {
        mo.style.display = mo.style.display == 'none' ? 'block' : 'none';
        var tmo = getRawObject('toggle_map_overview_img');
        if (tmo) {
            tmo.src = mo.style.display == 'block' ? 'images/ocollapse.png' : 'images/oexpand.png';
        }
    }
    drawPage();

}
function mapSaveLink() {
    var o = document.getElementById('linkBox');
    if (o) {
        var html = o.innerHTML.replace('link_tmp', 'link').replace('print_tmp', 'print');
        showDynContent_resp('ok'+delim+'400'+delim+'150'+delim+html + delim + 'updateLinkToView();');
    }
}
function mapPrintLink() {
    var o = document.getElementById('printBox');
    if (o) {
        var html = o.innerHTML.replace('link_tmp', 'link').replace('print_tmp', 'print');
        showDynContent_resp('ok'+delim+'400'+delim+'200'+delim+html + delim + 'updateLinkToView();');
    }
}
function mapEmailLink() {
    var o = document.getElementById('emailBox');
    if (o) {
        var html = o.innerHTML.replace('link_tmp', 'link').replace('print_tmp', 'print');
        showDynContent_resp('ok'+delim+'400'+delim+'150'+delim+html + delim + 'updateLinkToView();');
    }
}
function onAfterInitGeorsSearch() {
//        "makeSearchTabs();";
    var f = document.forms['mainsearch_form'];
    var at = new Array();
    if (f.geors.checked) at.push('geors');
    if (f.ulica.checked) at.push('ulica');
    if (f.naselje.checked) at.push('naselje');
    var tool = at.join(',');
    $("#geors_input_search_kw").autocomplete('manufaktura/kaUliceSearch.php?action=suggest&', {
        minChars:2,
        selectFirst : false,
        autoFill : false,
        extraParams : {tool : tool}
    });
    var o = getRawObject('geors_searchfilters');
    if (o) {
        o.parentNode.removeChild(o);
        var f = document.createElement('FORM');
        f.name = 'geors_searchfilters';
        f.appendChild(o);
        document.body.appendChild(f);
    }
    georsSearchFromUrl();
}
function geors_filters(open) {
    if (open == undefined) open = true;
    var o = getRawObject('geors_searchfilters');
    if (o) {
        o.style.display = open ? 'block' : 'none';
    }
    document.mainsearch_form.geors_filters.value = open ? 1 : 0;

}
function geors_filter_changed(opt) {
    var o = getRawObject('geors_payment_expires');
    if (o) {
        o.style.display = opt == 'expires' ? 'block' : 'none';
    }
}
function setRoutePoint(tip, coords, id) {
    myToolTip.move();
    if (tip == 'start') {
        myRoute.setStart(coords);
    } else if (tip == 'end') {
        myRoute.setEnd(coords);
    } else if (tip == 'stopover') {
        if (id == undefined) {
            id = myRoute.getCurrentStopoverId();
        }
        if (!id) {
            var s = addStopover();
            id = s.id;
        }
        myRoute.setStopover(coords, 'm', id);
    }
}
function calcRoute() {
    switchService('toolRoute');
    myToolTip.move();
    var o = document.getElementById('route_result');
    if (o) {
        o.innerHTML = '';
    }
    
    myRoute.calcRoute(function(result) {
        if (o) {
            if (result) {
                html = '';
                html += '<div>Vreme: ' + (result.h ? result.h + 'h ': '') + result.min +' min </div>';
                html += '<div>Dužina: ' + (result.km ? result.km + 'km ': '') + result.m +'m.</div>';
                o.innerHTML = html;
            } else {
                o.innerHTML = myRoute.getLastError();
            }
        }
    })
}
function addStopover() {
    var stopover = myRoute.addStopover();
    var d = document.createElement('DIV');
    d.innerHTML = '<div id="stopoverdiv%id" style="padding:5px;" title="%title"><b><span id="stopovertitle%id">%label.</span></b>&nbsp;<input type="text" style="width:150px;" id="stopover%id" />&nbsp;<input type="checkbox" id="stopovercheckbox%id" checked onclick="enableStopover(%id);" />&nbsp;<a href="#" onclick="removeStopover(%id);return false;"><img src="images/delete.gif" align="absbottom"/></a></div>'.replace(/%id/g, stopover.id).replace(/%title/g, stopover.title).replace(/%label/g, stopover.label);
    var o = getRawObject('add_stopover');
    if (o) {
        o.parentNode.insertBefore(d, o);
    }
    return stopover;
}
function enableStopover(id) {
    var o = getRawObject('stopovercheckbox'+id);
    if (o) {
        myRoute.enableStopover(id, o.checked);
        var oo = getRawObject('stopover'+id);
        if (oo) {
            oo.style.backgroundColor = o.checked ? '#fff' : '#ccc';
        }
    }
}
function removeStopover(id) {
    myRoute.removeStopover(id);
    var o = getRawObject('stopoverdiv'+id);
    if (o) {
        o.parentNode.removeChild(o);
    }
    var stopovers = myRoute.getStopovers();
    for(var i=0;i<stopovers.length;i++) {
        var o = getRawObject('stopovertitle'+stopovers[i].id);
        if (o) {
            o.innerHTML = i+1 + '.';
        }
    }
        
    
}
function myMapLocalMenu(eventID, coords) {
    if (!route_enabled) return false;
    myToolTip.move();
    myToolTip.moveGeo(coords[0], coords[1]);
    myToolTip.routeLayer = 'tooltip_route';
    var html = '<div><a href="#" onclick="setRoutePoint(\'start\', ['+coords[0] + ',' + coords[1]+']);return false;">Start</a></div>';
    var s = myRoute.getStopovers();
    if (s.length) {
        for (var i=0;i<s.length;i++) {
            html += '<div><a href="#" onclick="setRoutePoint(\'stopover\', ['+coords[0] + ',' + coords[1]+'], '+s[i].id+');return false;">Stanica '+(i+1)+'</a></div>';
        }
    } else {
            html += '<div><a href="#" onclick="setRoutePoint(\'stopover\', ['+coords[0] + ',' + coords[1]+']);return false;">Stanica</a></div>';
    }
    html += '<div><a href="#" onclick="setRoutePoint(\'end\', ['+coords[0] + ',' + coords[1]+']);return false;">Cilj</a></div>';
    html += '<div><a href="#" onclick="calcRoute();return false;">Pronađi put</a></div>';
    html += '<div class="close"><a class="ql" onclick="myToolTip.move();">zatvori</a></div>';
    html = '<div style="width:100px;padding:5px;">' + html + '</div>';
    myToolTip.setText(html);
    
}
function RGB2HTML(red, green, blue)
{
    var decColor = red + 256 * green + 65536 * blue;
    return decColor.toString(16);
}
var mRoutes = null;
var routelinecolors = ['#c61649','#aa2fd2','#f3319e','#2f55d2','#069834','#9cde2a','#744211','#c6823f','#59abe0','#000000'];

function importMercata(fileObj) {
    var o = getRawObject('mercata_result');
    if(o) {
        o.innerHTML = '<img src="gfx/loading_small.gif" />';
    }
    var url = 'manufaktura/import_mercata.php?file='+fileObj.name + '&rnd='+Math.random();
    call(url, this, function(r) {
        var resp = eval('(' + r + ')');
        if (resp.success) {
            var o = getRawObject('mercata_result');
            if(o) {
                o.innerHTML = resp.html;
            }
            clearMercata();
            mRoutes = new Array();
            for(var i=0;i<resp.routes.length;i++) {
                var route = new kaRoute(myKaMap);
                if (i < routelinecolors.length) {
                    route.setLineColor(routelinecolors[i]);
                }
                route.setStopoverMark('circle');
                route.setStart([resp.routes[i].calc.from.x, resp.routes[i].calc.from.y], 'm', resp.routes[i].start.id);
                route.setEnd([resp.routes[i].calc.to.x, resp.routes[i].calc.to.y],'m', resp.routes[i].end.id);
                for(var j=0;j<resp.routes[i].stopovers.length;j++) {
                    var s = resp.routes[i].stopovers[j];
                    route.addStopover(s.id); 
                    route.setStopover([s.x, s.y], s.proj, s.id, s.id); 
                }
                route.setPoints(resp.routes[i].calc.points);
                mRoutes.push(route);
            }
        } else {
            if(o) {
                o.innerHTML = '';
            }
            alert(resp.error);
        }
    });
}
function drawMercataLine(o, i, linesonly) {
    if (o.checked) {
        drawMercata(i, linesonly);
    } else {
        clearMercata(i, linesonly);
    }
}
function drawMercata(i) {
    var f,t;
    if (i != undefined) {
        f = i;
        t=i+1;
    } else {
        f = 0;
        t = mRoutes.length;
    }
    for(var j=f;j<t;j++) {
        mRoutes[j].drawRoute(j);
        var o = getRawObject('logistika'+j+'line');
        if (o) {
            o.style.backgroundColor = mRoutes[j].getLineColor();
        }
        var oo;
        if(oo = getRawObject('logistika'+j+'linecb')) {
            oo.checked = true;
        }
    }
}
function clearMercata(i, linesonly) {
    if (!mRoutes) return false;
    if (linesonly == undefined) linesonly = false;
    var f,t;
    if (i != undefined) {
        f = i;
        t=i+1;
    } else {
        f = 0;
        t = mRoutes.length;
    }
    for(var j=f;j<t;j++) {
        mRoutes[j].clearRoute(linesonly ? j : -1 );
        var o = getRawObject('logistika'+j+'line');
        if (o) {
            o.style.backgroundColor = '';
        }
        var oo;
        if(oo = getRawObject('logistika'+j+'linecb')) {
            oo.checked = false;
        }
        if(oo = getRawObject('logistikalinecb')) {
            oo.checked = false;
        }
        
    }
}
function drawMercataStopovers(o, i) {
    if (i != undefined) {
        f = i;
        t=i+1;
    } else {
        f = 0;
        t = mRoutes.length;
    }
    for(var j=f;j<t;j++) {
        if (o.checked) {
            mRoutes[j].drawStopoverMarks();
        } else {
            mRoutes[j].clearStopoverMarks();
        }
        var oo;
        if(oo = getRawObject('logistika'+j+'pointcb')) {
            oo.checked = o.checked;
        }
    }
    if (!o.checked) {
        if(oo = getRawObject('logistikapointcb')) {
            oo.checked = false;
        }
    }
}
function refreshAd(kw) {
          var currentTime = new Date();
          googlead.location = "manufaktura/getad.php?kw="+kw+"&t=" + currentTime.getTime(); 
}

