﻿		var mapa;
		var geocoder = null;
		var markers=[];
		var bounds=null;
		var markerSigns =['A', 'B', 'C'];
		var ns6=document.getElementById&&!document.all;
		var ie=document.all;
		function mapaStart()
		{

			if(GBrowserIsCompatible())  
			{
				mapa = new GMap2(document.getElementById('mapCanvas'),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});
				mapa.setCenter(new GLatLng(52.03897658307622,19.22607421875),6);   
				mapa.addControl(new GLargeMapControl());
				var typyMapy = mapa.getMapTypes();    
				geocoder = new GClientGeocoder();
				typyMapy[0].getName= function() { return "Mapa";}
				typyMapy[1].getName = function() { return "Satelita";}
				typyMapy[2].getName = function() { return "Hybryda";}
				mapa.addControl(new GMapTypeControl());
				//mapa.addControl(new GOverviewMapControl()); 
				mapa.addControl(new GScaleControl());
				updateStatus();
				GEvent.addListener(mapa,'click',function(marker,point) {
					if(marker)
					{
						
					}
					else
					{	
						if(markers.length<3)
						{
						var ikona = new GIcon(G_DEFAULT_ICON);
						var litera = '';
						litera = pobierzLitere();
						ikona.image='http://www.google.com/intl/en_ALL/mapfiles/marker'+litera+'.png';
						var marker = new GMarker(point,{draggable: true, icon: ikona});
						marker.label='';
						marker.sid = litera;
					    marker.radius = 2;
						GEvent.addListener(marker, "dragend", function() {
						redrawMap();
						alterLinks();
						});

						mapa.addOverlay(marker);
						marker.txt = '<div id="maptooltip"><br/>Lokalizacja - '+marker.sid+'<br /><strong>'+marker.label+'</strong>';
						if(marker.radius > 0)
						{
							marker.txt += '<br/><strong>Wyszukiwanie w promieniu:</strong> '+marker.radius+' kilometrów';
						}
						marker.txt += '<br/><br/><a href="javascript:removeMarker(\''+marker.sid+'\')">Odznacz - poszukam w innym miejscu</a>';
						if(document.getElementById('sess').value==1)
						{
							marker.txt += '<br /><br />Zapamiętaj to miejsce na mojej liście jako: <br/><br/>';
							marker.txt += '<input type="text" size="30" maxlength="22" id="save'+marker.sid+'"/> <a href="javascript:s(\''+marker.sid+'\')">zapisz</a><div style="height:25px;" id="infoWindowRes"></div></div>';
						}
						else{
							marker.txt += '</div>';
						}
						GEvent.addListener(marker, "click", function() { 
						marker.openInfoWindowHtml(marker.txt);
						}); 

						markers.push(marker);
						addMarkerDiv(marker.sid, false);
						alterLinks();
						drawCircPolygon(marker.sid)
						marker.openInfoWindowHtml(marker.txt);
						updateStatus();
						}
					}
					
				});

			}
		}
		
		function updateStatus(mlength)
		{
			if(mlength){
			markers.length=mlength;
			}
			if(markers.length>=3)
			{
			document.getElementById('geoLocFindBtn').disabled=true;
			
			}
			else
			{
			document.getElementById('geoLocFindBtn').disabled=false;
			}

			if(markers.length>0)
			{
			if(document.getElementById('nullMarkers'))
			{
			document.getElementById('searchMarkers').removeChild(document.getElementById('nullMarkers'));
			}
			document.getElementById('headerRowStart').innerHTML='Obszar w którym będziesz szukał ofert <a style="color: 13559A; margin-left: 15px; font-size:10px;font-weight: normal;" href="javascript:zoomfit()">Pokaż na mapie</a>';
			var radiusSet = false;
			for (var i=0;i<markers.length;i++)
			{
				if (markers[i].radius > 0)
				{
					radiusSet=true;
				}
			}
			if(!radiusSet)
				{
				if(!document.getElementById('noradiusDiv')){
				var noradiusDiv = document.createElement('div');
				noradiusDiv.setAttribute('id','noradiusDiv');
				noradiusDiv.setAttribute('class','infoRow');
				noradiusDiv.setAttribute('className','infoRow');
				noradiusDiv.innerHTML = 'Będziesz przeglądał wszystkie oferty, ponieważ nie zaznaczyłeś promienia względem swojej lokalizacji.';
				document.getElementById('searchMarkers').insertBefore(noradiusDiv, document.getElementById('searchMarkers').firstChild);
				}
				}
				else
				{
				if(document.getElementById('noradiusDiv')){
					document.getElementById('searchMarkers').removeChild(document.getElementById('noradiusDiv'));
					}
				}

			}
			else
			{
			document.getElementById('headerRowStart').innerHTML='Obszar w którym będziesz szukał ofert';
			document.getElementById('searchMarkers').innerHTML='<div id="nullMarkers" class="infoRowC"><table><tr><td><img src="/css/nullMark.png" /></td><td>Wszystkie oferty -nie zaznaczyłeś lokalizacji</td></tr></table></div>';
			}
						
		}
		
		function pobierzLitere()
		{
			
			var litera = '';
			
			markerSigns = markerSigns.sort();
			litera = markerSigns[0];
			markerSigns.splice(0,1);
			
			return litera;
		}


		
		function showAddress(address) {
		  if(markers.length < 3)
		  {
		  if (geocoder) {
		    geocoder.getLatLng(
		      address,
		      function(point) {
		        if (!point) {
   					document.getElementById('divSearch').innerHTML='<div class="errorRow">Nie znalazłem takiego miejsca..</div>';
		        } else {
		          mapa.setCenter(point, 13);
		         var ikona = new GIcon(G_DEFAULT_ICON);
	             var litera = '';
				 litera = pobierzLitere();
				 ikona.image='http://www.google.com/intl/en_ALL/mapfiles/marker'+litera+'.png';
				 var marker = new GMarker(point,{draggable: true, icon: ikona});
				 marker.sid = litera;
				 marker.radius = 2;
				 marker.label=address;
				 marker.txt = '<div id="maptooltip"><br/>Lokalizacja - '+marker.sid+'<br /><br /><strong>'+marker.label+'</strong>';
						if(marker.radius > 0)
						{
							marker.txt += '<br/><br/><strong>Wyszukiwanie w promieniu:</strong> '+marker.radius+' kilometrów';
						}
						marker.txt += '<br/><br/><a href="javascript:removeMarker(\''+marker.sid+'\')">Odznacz - poszukam w innym miejscu</a>';
						if(document.getElementById('sess').value==1)
						{
							marker.txt += '<br /><br />Zapamiętaj to miejsce na mojej liście jako: <br/><br/>';
							marker.txt += '<input type="text" size="30" maxlength="22" id="save'+marker.sid+'"/> <a href="javascript:s(\''+marker.sid+'\')">zapisz</a><div style="height:25px;" id="infoWindowRes"></div></div>';
						}
						else{
							marker.txt += '</div>';
						}
				 var txt = marker.txt;
				 GEvent.addListener(marker, "dragend", function() {
						redrawMap();
						alterLinks();
						});
 	 			 GEvent.addListener(marker, "click", function() { 
						marker.openInfoWindowHtml(marker.txt);
						}); 
				 markers.push(marker);
 	 			 updateStatus(markers.length);
				 addMarkerDiv(marker.sid, false);
				 mapa.addOverlay(marker);
  				 document.getElementById('divSearch').innerHTML='';
				 redrawMap();
				 alterLinks();
				 marker.openInfoWindowHtml(txt);
				 document.getElementById('geoLocAddress').value='';
				 document.getElementById('headerRowStart').innerHTML='Obszar w którym będziesz szukał ofert &nbsp; &nbsp; <a style="margin-left: 15px; font-size:10px;font-weight: normal;" href="javascript:zoomfit()">Pokaż na mapie</a>';
						
		        }
		   }
		    );
		  }
		 }

		}

		function zoomfit()
		{
		bounds = null;
		bounds = new GLatLngBounds;
		for (var i=0;i<markers.length;i++) {
			 bounds.extend(markers[i].getLatLng());
			}
		mapa.setCenter(bounds.getCenter(), mapa.getBoundsZoomLevel(bounds)); 
		
		}
		
		function removeMarker(sid)
		{
			for (var i=0;i<markers.length;i++)
			{
				if (markers[i].sid == sid)
				{
					mapa.removeOverlay(markers[i]);
					removeMarkerDiv(sid)
					markerSigns.push(markers[i].sid);
					markers.splice(i,1);	
					redrawMap();
					alterLinks();
					document.getElementById('savedListResp').innerHTML = '';
				}
			}
		}
		
		function setLabel(sid)
		{
			for (var i=0;i<markers.length;i++)
			{
				if (markers[i].sid == sid)
				{
					markers[i].label=document.getElementById('markerdivlabel'+sid).value;
					markers[i].txt = '<div id="maptooltip"><br/>Lokalizacja - '+markers[i].sid+'<br /><br /><strong>'+markers[i].label+'</strong>';
						if(markers[i].radius > 0)
						{
							markers[i].txt += '<br/><strong>Wyszukiwanie w promieniu:</strong> '+markers[i].radius+' kilometrów';
						}
						markers[i].txt += '<br/><br/><a href="javascript:removeMarker(\''+markers[i].sid+'\')">Odznacz - poszukam w innym miejscu</a></div>';
						markers[i].openInfoWindowHtml(markers[i].txt);

					alterLinks();
				}
			}
		}

		function decodeAddress(response) {


      if (!response || response.Status.code != 200) {
        alert("Status Code:" + response.Status.code);
      } else {
        place = response.Placemark[0];
		if(place!=null){
        markers[markers.length-1].openInfoWindowHtml(
        '<b>Address:</b>' + place.address + '<br>' +
        '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);}
      }
    }
		
		function addMarkerDiv(sid, saved) {
		
		var newsearchdiv = document.createElement('div');
		var searchMarkersCanvas = document.getElementById('searchMarkers');
		var searchdivIdName = 'searchmarkerdiv'+sid;
        newsearchdiv.setAttribute('id',searchdivIdName);
		newsearchdiv.setAttribute('class','searchmarkerDiv');
		newsearchdiv.setAttribute('className','markerDiv');
		if(saved){
				newsearchdiv.innerHTML = '<img src="/css/m/marker_white'+sid+'.png"/> <strong>'+sid+'</strong> Szukaj ofert w promieniu: [km] &nbsp; &nbsp; <input id="inp'+searchdivIdName+'" onKeyPress="isE(event);" type="text" size="3" value="2"/> &nbsp; &nbsp; <a href="javascript:NaNCheck(\''+sid+'\', document.getElementById(\'inp'+searchdivIdName+'\'))" alt="Ustaw promień" title="Ustaw promień">Zmień</a> &nbsp; &nbsp; &nbsp; &nbsp; <img title="Odznacz lokalizację" alt="Odznacz lokalizację" src="/css/delete.gif" style="cursor:pointer;cursor:hand;" onclick="javascript:removeMarker(\''+sid+'\');"/>';
			}
		else
			{
				newsearchdiv.innerHTML = '<img src="/css/m/marker'+sid+'.png"/> <strong>'+sid+'</strong> Szukaj ofert w promieniu: [km] &nbsp; &nbsp; <input id="inp'+searchdivIdName+'" onKeyPress="isE(event);" type="text" size="3" value="2"/> &nbsp; &nbsp; <a href="javascript:NaNCheck(\''+sid+'\', document.getElementById(\'inp'+searchdivIdName+'\'))" alt="Ustaw promień" title="Ustaw promień">Zmień</a> &nbsp; &nbsp; &nbsp; &nbsp; <img title="Odznacz lokalizację" alt="Odznacz lokalizację" src="/css/delete.gif" style="cursor:pointer;cursor:hand;" onclick="javascript:removeMarker(\''+sid+'\');"/>';
			}
		searchMarkersCanvas.appendChild(newsearchdiv);
		}
		
		
		function removeMarkerDiv(sid) {
		
		var d = document.getElementById('searchMarkers');
		var remdiv = document.getElementById('searchmarkerdiv'+sid);
		d.removeChild(remdiv);
		}

		
		function setMarkerRadius(sid, radius){
		for (var i=0;i<markers.length;i++)
			{
				if (markers[i].sid == sid)
				{
					markers[i].radius = radius;
					document.getElementById('inpsearchmarkerdiv'+sid).value=radius;
					redrawMap(markers[i].sid);
				}
			}
		
		alterLinks();
		
		}
		
		
		function drawCircPolygon(sid){
		
		for (var i=0;i<markers.length;i++)
			{
				if (markers[i].sid == sid)
				{
					
					var centre = markers[i].getLatLng();
					drawCircle(centre, markers[i].radius);
				}
			}
		}

	function drawCircle(center, radius, nodes, liColor, liWidth, liOpa, fillColor, fillOpa)
	{
	// Esa 2006
	//calculating km/degree
	var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
	var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;

	//Loop 
	var points = [];
	nodes=20+radius*10;
	var step = parseInt(360/nodes)||10;
	for(var i=0; i<=360; i+=step)
	{
	var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
	(radius/lngConv * Math.sin(i * Math.PI/180)));
	points.push(pint);
	}
	points.push(points[0]); // Closes the circle, thanks Martin
	fillColor = fillColor||liColor||"#0055ff";
	liWidth = liWidth||2;
	var poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
	mapa.addOverlay(poly);
	}


	function redrawMap(sid){
			
		mapa.clearOverlays();
		for (var i=0;i<markers.length;i++)
		{
			mapa.addOverlay(markers[i]);
			if(markers[i].radius > 0)
			{
				drawCircPolygon(markers[i].sid);
			}
					
			if(markers[i].sid == sid)
			{markers[i].txt = '<div id="maptooltip"><br/>Lokalizacja - '+markers[i].sid+'<br /><strong>'+markers[i].label+'</strong>';
						if(markers[i].radius > 0)
						{
							markers[i].txt += '<br/><strong>Wyszukiwanie w promieniu:</strong> '+markers[i].radius+' kilometrów';
						}
						markers[i].txt += '<br/><br/><a href="javascript:removeMarker(\''+markers[i].sid+'\')">Odznacz - poszukam w innym miejscu</a>';
						if(document.getElementById('sess').value==1)
						{
							markers[i].txt += '<br /><br />Zapamiętaj to miejsce na mojej liście jako: <br/><br/>';
							markers[i].txt += '<input type="text" size="30" maxlength="22" id="save'+markers[i].sid+'"/> <a href="javascript:s(\''+markers[i].sid+'\')">zapisz</a><div style="height:25px;" id="infoWindowRes"></div></div>';
						}
						else{
							markers[i].txt += '</div>';
						}
						markers[i].openInfoWindowHtml(markers[i].txt);
			}
		}
			updateStatus();
		    
	}

	function alterLinks() {
	var endPart='';
	var endPartLat='/lt';
	var endPartLng='/lg';
	var endPartMrk='/mk';
	var endPartRad='/rd';
	
	if(markers.length>0)
	{
		for (var i=0;i<markers.length;i++)
		{
				if(markers[i].radius > 0){
				var point = markers[i].getLatLng();
				var lat = point.lat();
				var lng = point.lng();
				endPartLat+=','+lat;
				endPartLng+=','+lng;
				endPartMrk+=','+markers[i].sid;
				endPartRad+=','+encodeURIComponent(markers[i].radius);
				
				}
		}
	
	 }
	endPart=endPartLat+endPartLng+endPartMrk+endPartRad+'/';
	if(endPart == '/lt/lg/mk/rd/')
	{
		endPart='';
	}
		var nolink = document.getElementById('nohref');
		var startPart = nolink.href.substring(0, nolink.href.indexOf("/selc/c,")+8);
		nolink.href=startPart+endPart;
		var searchLink = document.getElementById('searchForm');
		searchLink.action='http://mamsprzedam.pl/szukaj'+endPart;
		var shallLink = document.getElementById('shall');
		shallLink.onclick=function(){document.location.href='http://mamsprzedam.pl/szukaj'+endPart;};
		

		var categoriesList = document.getElementById('categoriesList');
		if(categoriesList.firstChild) 
		{
			var div = categoriesList.firstChild;
			while(div) 
			{ 
				if(div.nodeType==1) 
				{ // element
					var link = div.firstChild;
					startPart = link.href.substring(0, link.href.indexOf(".html")+5);
					link.href=startPart+endPart;
				}
				 div = div.nextSibling;
			}
		} 

	}

function NaNCheck(sid, inpObject) {
	

	if ( !inpObject.value.match(/^\d+$/) || parseInt(inpObject.value) <= 0 || parseInt(inpObject.value) > 1000 ){
	for (var i=0;i<markers.length;i++)
			{
				if (markers[i].sid == sid)
				{
				inpObject.value=markers[i].radius;
				}
			}
	}
	else {
	setMarkerRadius(sid, inpObject.value);
	}
}


function s(sid) {

    
	var infoWindowRes = document.getElementById("infoWindowRes");
	var label = document.getElementById('save'+sid).value;
	if (label.length < 2 || label == ' ')
	{
		infoWindowRes.innerHTML='<div class="errorRow">Podaj etykietę lokalizacji..</div>';
			
	}
	else
	{
	for (var i=0;i<markers.length;i++)
	{
		if(markers[i].sid == sid){
		var point = markers[i].getLatLng();
		var poststr = "lat=" + encodeURIComponent(point.lat())  +
                    "&lon=" + encodeURIComponent(point.lng()) + "&label=" + encodeURIComponent(label);

		break;
		}
	}

	makePOSTRequest('http://mamsprzedam.pl/s', poststr, sid, point.lat(), point.lng(), label);
	}
}



function makePOSTRequest(url, parameters, sid, lat, lng, label) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = function(){
	  if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            if(http_request.responseText == 'error')
			{
			infoWindowRes.innerHTML='<div class="errorRow">Wystapil problem :( ..</div>';
            }
			else if (http_request.responseText == 'limit')
			{
			infoWindowRes.innerHTML='<div class="errorRow">Osiągnięto limit 70 zapisanych lokalizacji</div>';
			}
			else if (http_request.responseText == 'unique')
			{
			infoWindowRes.innerHTML='<div class="errorRow">To miejsce jest już na liście..</div>';
			}
			else
			{
			document.getElementById('savedList').innerHTML = http_request.responseText;
			removeMarker(sid);
			setMarker(lat, lng, label);
						
			
			}            
         } else {
            alert('Wystąpił problem podczas łączenia z serwerem :( ..');
         }
      } 
	  
	  
	  };
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http_request.send(parameters);
}

function r2(sid)
{
	url = 'http://mamsprzedam.pl/d';
	for (var i=0;i<markers.length;i++)
	{
		if(markers[i].sid == sid){
		var point = markers[i].getLatLng();
		var parameters = "lat=" + encodeURIComponent(point.lat())  +
                    "&lon=" + encodeURIComponent(point.lng());

		break;
		}
	}

	
	
	http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = function()
	  {
	  if (http_request.readyState == 4) 
	  {
         if (http_request.status == 200) 
		 {
            if(http_request.responseText == 'error')
			{
				infoWindowRes.innerHTML='<div class="errorRow">Wystąpił problem :( ..</div>';
            }
			else
			{
				removeMarker(sid);
				document.getElementById('savedList').innerHTML = http_request.responseText;	
			}            
         } 
		 else 
		 {
            alert('Wystąpił problem podczas łączenia z serwerem :( ..');
         }
      } 
	  };
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http_request.send(parameters);
}


function setMarker(lt, lg, label){

		var uniq=true;
		for (var i=0;i<markers.length;i++)
		{	
			
			var point = markers[i].getLatLng();
						
			if( point.lat() == lt && point.lng() == lg)
			{
				uniq=false;
				break;
			}
		}
		
		
		if(markers.length >2 )
		{
            document.getElementById('savedListResp').innerHTML = '<div class="errorRow">Wybrałeś już 3 lokalizacje wyszukiwania. Usuń którąś z nich aby dodać inną.</div>';

		}
		else if(!uniq){
		
			document.getElementById('savedListResp').innerHTML = '<div class="errorRow">W tej lokalizacji marker już istnieje.</div>';
		}
		else
		{
			
				var ikona = new GIcon(G_DEFAULT_ICON);
						var litera = '';
						litera = pobierzLitere();
						ikona.image='http://www.google.com/intl/en_ALL/mapfiles/marker_white'+litera+'.png';
						var marker = new GMarker(new GLatLng(lt,lg),{draggable: false, icon: ikona});
						marker.label=label;
						marker.sid = litera;
						marker.radius = 2;
						GEvent.addListener(marker, "click", function() { 
					    marker.txt = '<div id="maptooltip"><br/>'+marker.sid+' - Lokalizacja z Twojej listy<br /><br /><strong>'+marker.label+'</strong>';
						marker.txt += '<br/><br/><strong>Wyszukiwanie w promieniu:</strong> '+marker.radius+' kilometrów';
						marker.txt += '<br/><br/><a href="javascript:removeMarker(\''+marker.sid+'\')">Odznacz - poszukam w innym miejscu</a>';
						marker.txt += '<br /><br />Usuń to miejsce z mojej listy <a href="javascript:r2(\''+marker.sid+'\')">Usuń</a><div style="height:25px;" id="infoWindowRes"></div></div>';
						marker.openInfoWindowHtml(marker.txt);
						}); 
				markers.push(marker);
 	 			updateStatus(markers.length);
				addMarkerDiv(marker.sid, true);
				mapa.addOverlay(marker);
				redrawMap();
				alterLinks();
				mapa.setCenter(new GLatLng(lt,lg),11);   
				marker.txt = '<div id="maptooltip"><br/>'+marker.sid+' - Lokalizacja z Twojej listy<br /><br /><strong>'+marker.label+'</strong>';
				marker.txt += '<br/><br/><strong>Wyszukiwanie w promieniu:</strong> '+marker.radius+' kilometrów';
				marker.txt += '<br/><br/><a href="javascript:removeMarker(\''+marker.sid+'\')">Odznacz - poszukam w innym miejscu</a>';
				marker.txt += '<br /><br />Usuń to miejsce z mojej listy <a href="javascript:r2(\''+marker.sid+'\')">Usuń</a><div style="height:25px;" id="infoWindowRes"></div></div>';
				marker.openInfoWindowHtml(marker.txt);
				document.getElementById('savedListResp').innerHTML = '';
			
		}
}



function isE(e) 
{ 
var key=e.keyCode? e.keyCode : e.charCode

if(key=="13") 
{
	
	source=ie? event.srcElement : e.target; 

	for (var i=0;i<markers.length;i++)
	{	

		if('inpsearchmarkerdiv'+markers[i].sid == source.id)
		{
			NaNCheck( markers[i].sid, document.getElementById('inpsearchmarkerdiv'+markers[i].sid));
			break;
		}
	}
} 
}

function presearch() 
{ 
alterLinks();
}
