   var is_ie6 = (
	window.external &&
	typeof window.XMLHttpRequest == "undefined"
); 

function showMapLegend2(vis)
{
	var l = document.getElementById('map_legend');
	var l2 = document.getElementById('map_legend2');

	vis2 = vis == 1 ? 'none' : 'block';
	vis = vis == 1 ? 'block' : 'none';

	l.style.display = vis;
	l2.style.display = vis2;
}

   
function TextualZoomControl() {}

    TextualZoomControl.prototype = new GControl();
    TextualZoomControl.prototype.initialize = function(map) 
		{
      var container = document.createElement("div");
	  
	    var restore = document.createElement("img");
	    restore.src='images/maps/1.png';
      this.setButtonStyle_(restore);
      container.appendChild(restore);
      GEvent.addDomListener(restore, "click", function() {
          map.setCenter(new GLatLng(cooX, cooY), 7);
    		  map.clearOverlays();
    		  drawMarkers('markers.php?zoom='+map.getZoom() + '&gr=' + Math.random()+'&lang='+lang);
      });
	  
	    var zoomInDiv = document.createElement("img");
	    zoomInDiv.src='images/maps/2.png';
      this.setButtonStyle_(zoomInDiv);
      container.appendChild(zoomInDiv);
      GEvent.addDomListener(zoomInDiv, "click", function() {
          map.zoomIn();
	  	    map.clearOverlays();
		      drawMarkers('markers.php?zoom='+map.getZoom() + '&gr=' + Math.random()+'&lang='+lang);
      });
	  
	  

		  var zoomOutDiv = document.createElement("img");
	    zoomOutDiv.src='images/maps/3.png';
      this.setButtonStyle_(zoomOutDiv);
      container.appendChild(zoomOutDiv);
      GEvent.addDomListener(zoomOutDiv, "click", function() {
        map.zoomOut();
		    map.clearOverlays();
		    drawMarkers('markers.php?zoom='+map.getZoom() + '&gr=' + Math.random()+'&lang='+lang);
      });

      map.getContainer().appendChild(container);
      return container;
    }

    TextualZoomControl.prototype.getDefaultPosition = function() {
      return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
    }

    TextualZoomControl.prototype.setButtonStyle_ = function(button) {
      button.style.cursor = "pointer";
    }

	
	
	
	
    if (GBrowserIsCompatible()) {
		var side_bar_html = "";
function urldecode( str ) {
    var histogram = {}, histogram_r = {}, code = 0, str_tmp = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urlencode.
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
	
	//alert(replace);
	
    if( (typeof replace) != 'undefined')
	{
		for (replace in histogram) {
	        search = histogram[replace]; // Switch order when decoding
	        ret = replacer(search, replace, ret) // Custom replace. No regexing   
	    }
	}	
		
    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);
 
    return ret;
}

      function createMarker(point, name ,html, lat, lng, ft) {
	  
	   var blueIcon = new GIcon(G_DEFAULT_ICON);
	   
		if (map.getZoom() <= 8) 
			blueIcon.image = is_ie6 ?  _base + "images/maps/iki_city.gif" : _base + "images/maps/iki_city.png";
		else
			blueIcon.image = is_ie6 ?  _base + "images/maps/iki_shop.gif" : _base + "images/maps/iki_shop.png";
		
		markerOptions = { icon:blueIcon };
        var marker = new GMarker(point, markerOptions);
        GEvent.addListener(marker, "click", function() {
			if (map.getZoom() <= 8) 
			{
	            map.setCenter(new GLatLng(lat, lng), 12);
				drawMarkers('markers.php?zoom='+map.getZoom() + '&city=' +  name +'&lang='+lang);  // + '&gr=' + Math.random() 
			}
			else
			{
	            map.setCenter(new GLatLng(lat, lng), map.getZoom());
				var text = '';
				text += '<h2 style="margin:0 0 10px 0;">'+name+'</h2>';
				text += html;
				if (lang == 'lt' || lang == 'en' )
				{
				text += '<br><img src="images/maps/9.jpg"><table style="margin-bottom: 0px; width:233px; height:66px;"><tr><td valign="top">';
				if (ft[1] == 1) { text += '<img src="images/maps/1.jpg" width="69" height="44">'; }
//				if (ft[2] == 1) { text += '<img src="images/maps/2.jpg" width="52" height="43">'; }
				if (ft[3] == 1) { text += '<img src="images/maps/3.jpg" width="49" height="43">'; }
				if (ft[4] == 1) { text += '<img src="images/maps/4.jpg" width="93" height="43">'; }
				//if (ft[5] == 1) { text += '<img src="images/maps/5.jpg" width="69" height="43">'; }
				if (ft[6] == 1) { text += '<img src="images/maps/6.jpg" width="52" height="43">'; }
				if (ft[7] == 1) { text += '<img src="images/maps/7.jpg" width="82" height="43">'; }
				//if (ft[8] == 1) { text += '<img src="images/maps/18.gif" width="59" height="43">'; }
				}
				text += '<div style="clear:both;"><img src="images/maps/10.jpg"></div></td></tr></table>';
				marker.openInfoWindowHtml(text, {maxWidth:266});
			}
			
        });
        return marker;
      }
	  
	  
	  
	  
function urlencode(str) 
{
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}	  
	  
function showAddress(address) 
{
		if (address==0)
		{
			alert(choose_city);
			return;
		}	
		
	  
	  if (geocoder) 
		{
        geocoder.getLatLng(
          address,
          function(point) {
            if (point) {
			        map.clearOverlays();
              map.setCenter(point, 12);
							
							//exception start when jurmala is displayed
//							if ( address == "Jūrmala" )
//    							map.setZoom( 11 );
							//exception end
							
//							alert( 'markers.php?zoom=' + map.getZoom() + '&gr=' + Math.random() + '&city=' + encodeURI(address) +'&lang='+lang );
			        drawMarkers('markers.php?zoom=' + map.getZoom() + '&gr=' + Math.random() + '&city=' + encodeURI(address) +'&lang='+lang);
			        //searchResults('markers.php?zoom=' + map.getZoom()+ '&gr=' + Math.random(), address);
            }
          }
        );
      }
}

	function drawMarkers(xml)
	{	
	var features = 8;
				var qry ='';
			    if (lang == 'lt' || lang == 'en')
				{
					for (var i = 1; i <= features; i++) {
					  if ( i != 2 )
  						if (document.getElementById('ft_'+i).checked == true)
  						{
  							qry += i+',';
  						}
					}
				
				xml += '&qry='+qry;
		}
		//alert(xml);
		
		map.clearOverlays();
	    GDownloadUrl(xml, function(doc) 
		{
	        var sidebar = document.getElementById('search_results');
			sidebar.innerHTML = '';
			
			// rezultatai
			if(map.getZoom() > 8)
			{
				showMapLegend2(0);
				document.getElementById('search_form').style.display = 'none';
			}	
			else	
			{
				showMapLegend2(1);
				document.getElementById('search_form').style.display = 'block';
			}	
			
			var xmlDoc = GXml.parse(doc);
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	        for (var i = 0; i < markers.length; i++) 
			{
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var html = urldecode(markers[i].getAttribute("html"));
				var label = markers[i].getAttribute("label");
				if (map.getZoom() > 8)
				{
					var ft = new Array();
					 if (lang == 'lt' || lang == 'en')
					{
						for (var a = 1; a <= 8; a++) 
						{
							if (markers[i].getAttribute("ft_"+a)) {ft[a] = markers[i].getAttribute("ft_"+a);}
						}
					}
				}
				var marker = createMarker(point,label,html, lat, lng, ft);
				map.addOverlay(marker);

				// sudesim i  side bara
				if (map.getZoom() > 8)
				{
					var sidebarEntry = createSidebarEntry(marker, label);
					sidebar.appendChild(sidebarEntry);
				}
				
			}

			// atgal mygtukas
			if (map.getZoom() > 8)
			{
				var back = document.createElement('a');
				back.href= map_back;
				back.style.marginTop = '20px' ;
				back.style.fontWeight = 'bold' ;
				back.innerHTML = back_str;
				back.className = 'atgal';
				sidebar.appendChild(back);
		
				
			}	

			
			
		});
	}
	
	function searchResults(xml, city)
	{	
		document.getElementById('search_form').style.display = 'none';
		var features = 7;
		var qry ='';
		if (lang == 'lt' || lang == 'en')
		{
			for (var i = 1; i <= features; i++) 
			{
				if (document.getElementById('ft_'+i).checked == true)
				{
					qry += i+',';
				}
			}
		}
		
		xml += '&qry='+qry+'&city='+city + '&gr=' + Math.random();
		GDownloadUrl(xml, function(doc) 
		{
	        var xmlDoc = GXml.parse(doc);
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			
			/*
			var sidebar = document.getElementById('search_results');
			for (var i = 0; i < markers.length; i++) 
			{
		        var label = markers[i].getAttribute('label');
		        var path = markers[i].getAttribute('path');
				var zoom = parseInt(markers[i].getAttribute('z'));

		        var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
		                                 parseFloat(markers[i].getAttribute('lng')));
		        var photos = markers[i].getAttribute('p');
		        var stories = markers[i].getAttribute('s');

		        var sidebarEntry = createSidebarEntry(markers[i], label);
		        sidebar.appendChild(sidebarEntry);
		        //bounds.extend(point);
			}
				
			*/	
			
			/*
			document.getElementById('search_results').innerHTML = '';
	        for (var i = 0; i < markers.length; i++) 
			{
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var label = markers[i].getAttribute("label");
				document.getElementById('search_results').innerHTML += "<div class='menu_1'><span><a href='#' onClick='map.setCenter(new GLatLng("+lat+", "+lng+"), map.getZoom()); return false;'>" + label+'</a></span></div>';
				
			}
			document.getElementById('search_results').innerHTML += '<br><br><a class="atgal" href="' + map_back + '"><strong>Atgal</strong></a>';
			*/
			
	    }
		);
	}
	
	
	sel_shop = 0;
	sel_shop_name = '';
	
	function createSidebarEntry(marker, name ) 
	{
		var div = document.createElement('div');
		shopDivHTML(div, name);
		GEvent.addDomListener(div, 'click', function() {
			
			map_top_scroll = 247;
			
			if (document.documentElement.scrollTop > map_top_scroll)
				document.documentElement.scrollTop = map_top_scroll;
			
			if(sel_shop!=0)
			{
				olddiv = document.getElementById(sel_shop);
				shopDivHTML(olddiv, sel_shop_name);
			}
			
			div.className = 'menu_1 selected';
			html = '<span><a style="cursor:pointer">' +  name + '</a><img class="top" alt="" src="images/menu/side_manu/side_menu_1_top.gif"/>';
			html += '<img class="bottom" alt="" src="images/menu/side_manu/side_menu_1_bottom.gif"/></span>';
			div.innerHTML =  html;
			
			sel_shop = div.id;
			sel_shop_name = name;
			
			GEvent.trigger(marker, 'click');
			
		});
	  
      return div;
    }	
	
	
	function shopDivHTML(div, name)
	{
		div.id = 'shop_' + name;
		var html = '<span ><a style="cursor:pointer" >' + name + '</a></span>';
		div.innerHTML = html;
		div.className = 'menu_1';
	}
	


	var geocoder = null;
	var map = new GMap2(document.getElementById("map"));
	map.addControl(new TextualZoomControl());

	geocoder = new GClientGeocoder();
    map.setCenter(new GLatLng(cooX, cooY), 7);
	drawMarkers('markers.php?zoom=' + map.getZoom() + '&gr=' + Math.random()+'&lang='+lang);


    }
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
