// JavaScript Document
 var http_request2 = false;
 var pole_ok = true;
 var kod_pocz='';
 var miasto_pocz='';

function inicjuj()
{
 kod_pocz=document.getElementById('kod').value;
 miasto_pocz=document.getElementById('miasto').value;
 odswiez_droge();
}

var lat_=0;
var lng_=0;
var nroferty=0;

function onclick_dojazd()
{
}
// funkcje obslugi mapy:

    var map;
    var geocoder;
	var punkt_centralny;
	var punkt_agent;
	var najblizszy_agent;
    var highlightCircle; 
    var currentMarker; 
	
	function odswiez_droge()
	{
	}
	
	
    function highlightCurrentMarker(){ 
      var markerPoint = currentMarker.getPoint(); 
 
      var polyPoints = Array(); 
 
      if (highlightCircle) { 
        map.removeOverlay(highlightCircle); 
      } 
 
      var mapNormalProj = G_NORMAL_MAP.getProjection(); 
      var mapZoom = map.getZoom(); 
      var clickedPixel = mapNormalProj.fromLatLngToPixel(markerPoint, mapZoom); 
 
      var polySmallRadius = 20; 
 
      var polyNumSides = 20; 
      var polySideLength = 18; 
 
      for (var a = 0; a<(polyNumSides+1); a++) {
	    var aRad = polySideLength*a*(Math.PI/180);
	    var polyRadius = polySmallRadius; 
       	    var pixelX = clickedPixel.x + polyRadius * Math.cos(aRad);
	    var pixelY = clickedPixel.y + polyRadius * Math.sin(aRad);
	    var polyPixel = new GPoint(pixelX,pixelY);
	    var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom);
	    polyPoints.push(polyPoint);
      }
      // Using GPolygon(points,  strokeColor?,  strokeWeight?,  strokeOpacity?,  fillColor?,  fillOpacity?)
      highlightCircle = new GPolygon(polyPoints,"#000000",2,0.0,"#0CF",.5);
      map.addOverlay(highlightCircle);
   }
	

    function load(nrof) {
	  nroferty=nrof;
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GLargeMapControl());  // GSmallMapControl()  GLargeZoomControl()
        map.addControl(new GScaleControl());  // skala 
        map.addControl(new GMapTypeControl());
     //   map.setCenter(new GLatLng(40, -100), 4);
      }
    }


   function searchLocations() {
     var s = document.getElementById('ulica').value;
	 if (s=='') s=document.getElementById('kod').value;
     var address = 'POLSKA, '+document.getElementById('miasto').value+', '+s;
     document.getElementById('button_agent').style.display='none';
//	 alert (address);
     geocoder.getLatLng(address, function(latlng) {
	   document.getElementById('button_agent').style.display='block';
       if (!latlng) {
         //alert('Adresu : <br />'+ address + '<br /> nie zneleziono !');
		 document.getElementById('div_brak_adresu').style.display='block';
 		 document.getElementById('div_checkbox').style.display='none';
       } else {
		// map.setCenter(latlng,17);
        searchLocationsNear(latlng);

       }
     });
   }

   function searchLocationsNear(center) {
     var radius = 100; // document.getElementById('radiusSelect').value;
     var searchUrl = 'wyszukaj_agenci.php?lat=' + center.lat() + '&lng=' + center.lng();
	
     GDownloadUrl(searchUrl, function(data) {
									  
									  
								
       var xml = GXml.parse(data);
	
       var markers = xml.documentElement.getElementsByTagName('marker');
	
       map.clearOverlays();

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
	   
	 
       if (markers.length == 0) {
         sidebar.innerHTML = 'Brak agentów !';
         map.setCenter(new GLatLng(lat_, lng_), 7);
         return;
       }

       var bounds = new GLatLngBounds();
	   var point0 = false;
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var nazwisko = markers[i].getAttribute('nazwisko');
	     var id = markers[i].getAttribute('id');
//		 alert (address);
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         if (i==0) point0=point;  // zapamietaj najblizszego agenta.
         var marker = createMarker(point, name, address, nazwisko, id);

         map.addOverlay(marker);

         var sidebarEntry = createSidebarEntry(marker, name, distance);

         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(point0, 7);//map.getBoundsZoomLevel(bounds));
	   punkt_centralny=center;
	   punkt_agent=point0;
	   najblizszy_agent=point0;
	   odswiez_droge();
     });
   }

function createMarker(point, name, address, nazwisko, id) {
var icon = new GIcon(); 
    icon.image = 'http://www.polisowo.pl/img/lupka.png';
    icon.shadow = 'http://www.polisowo.pl/img/lupka_s.png';
    icon.iconSize = new GSize(32, 32);
    icon.shadowSize = new GSize(55, 32);
//    icon.shadowAnchor = new GSize(0, 32);
    icon.iconAnchor = new GPoint(32, 32);
    icon.infoWindowAnchor = new GPoint(16, 16);
      var marker = new GMarker(point,icon);
      var html = '<div style="width:250px"><table width="100%"><tr><td width="90%"><b>' + name + '</b><br/>adres: <b>' + address + '</b><br/>'+
	      'kontakt : <b>'+ nazwisko + '</b><br/>'+
	      '</td><td width="10%" valign="bottom"><img src="http://www.polisowo.pl/img/lupka.png" /> </td></div>';
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
		punkt_agent=marker.getPoint();
		odswiez_droge();
	    currentMarker = marker;
	    highlightCurrentMarker();	
      });
      GEvent.addListener(marker, "mouseover", function() {
	      currentMarker = marker;
	      highlightCurrentMarker();	
          });
      GEvent.addListener(marker, "mouseout", function() {
         if (highlightCircle) { 
            map.removeOverlay(highlightCircle); 
		    }
      });
      return marker;
    }

    function createSidebarEntry(marker, name, distance) {
      var div = document.createElement('div');
//      var html = '<b>' + name + '</b> (' + distance.toFixed(1) + ')';
      var html = '<b>' + name + '</b>';
      div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#eee';
	      currentMarker = marker;
	      highlightCurrentMarker();	
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#fff';
         if (highlightCircle) { 
            map.removeOverlay(highlightCircle); 
		    }
      });
      return div;
    }

function setCenter(address)
{
     geocoder.getLatLng(address, function(point) { 
	   if (!point) { // blad
        } else {
          map.setCenter(point, 7);
		  lat_=point.lat();
		  lng_=point.lng();
        }
      } // function
    ); // getLatLng
}


var newMarkers = [];
var latLngs = [];
var icons = [];
 
// Note the 'addoverlay' GEvent listener inside initialize() function of the original code (above).
// 'load' event cannot be used

/*function setDirections(fromAddress, toAddress, locale) {
  ;
}*/

 
function onGDirectionsAddOverlay(){ 
/*  // Remove the draggable markers from previous function call.
  for (var i=0; i<=gdir.getNumRoutes(); i++){
    var originalMarker = gdir.getMarker(i);
    latLngs[i] = originalMarker.getLatLng();
    icons[i] = originalMarker.getIcon();
    newMarkers[i] = new GMarker(latLngs[i],{icon:icons[i], draggable:true, title:'Draggable'});
    map.addOverlay(newMarkers[i]);
 
    // Get the new waypoints from the newMarkers array and call loadFromWaypoints by dragend
    GEvent.addListener(newMarkers[i], "dragend", function(){
      var points = [];
      for (var i=0; i<newMarkers.length; i++){

        points[i]= newMarkers[i].getLatLng();

      }

      gdir.loadFromWaypoints(points);

    });



    //Bind 'click' event to original markers 'click' event

    copyClick(newMarkers[i],originalMarker);



    // Now we can remove the original marker safely

    map.removeOverlay(originalMarker);
  }



  function copyClick(newMarker,oldMarker){

    GEvent.addListener(newMarker, 'click', function(){

      GEvent.trigger(oldMarker,'click');

    });

  }
*/
}





function popraw_mape_ie7()
{
	var x=document.getElementById('map');
	if (x!=null)
	   { 
	    x.style.display='none';
	    x.style.display='block';
	   }
}

function wstawMiasto()
 {
  if (http_request2.readyState == 4) 
  {
      if (http_request2.status == 200) 
	  {
		 var linia=http_request2.responseText;   // .split(';')
		 if (linia!=-1) 
		    {  
   		     var lista=linia.split(';');
		     // alert(lista[1]);
		     kod_pocz=lista[0];     // zapamietaj
		     miasto_pocz=lista[1];  // zapamietaj
		     document.getElementById('miasto').value=lista[1];
			}
			else alert ('Kod pocztowy nie istnieje !');
		 document.getElementById('miasto').style.display='block';
		 document.getElementById('ulica').style.display='block';
         document.getElementById('button_agent').style.display='block';
      }
	  else { 
	         alert('brak polaczenia z serwerem MIASTA '+http_request2.status);  
		     document.getElementById('miasto').style.display='block';
		     document.getElementById('ulica').style.display='block';
             document.getElementById('button_agent').style.display='block';
		   }
   }
  }


 function getMiasto()
 {
  kod=document.getElementById('kod').value;
//  alert (kod);
  if (window.XMLHttpRequest) { // Mozilla, Safari, IE7...
 	  http_request2 = new XMLHttpRequest(); }
  	  else if (window.ActiveXObject) { // IE6 and older
   	      http_request2 = new ActiveXObject("Microsoft.XMLHTTP"); } 
  http_request2.onreadystatechange = wstawMiasto;
  http_request2.open('POST', 'kody_gminy_powiaty.php?kod='+kod, true);
  http_request2.send(null);
  document.getElementById('miasto').style.display='none';
  document.getElementById('ulica').style.display='none';
  document.getElementById('button_agent').style.display='none';
 }




// --------------------------------------------------------------------------------------------------------------
// walidacja pola "kod pocztowy"

function ZnakToCyfra(znak)
{
 var k=parseInt(znak,10);
 return (!isNaN(k));
}

function StrToInt(str)
{
 var x=-1;
 var b=true;
 for (var i=0;i<str.length;i++)
     {
   	  b=b&&(ZnakToCyfra(str.substr(i,1)));
	  if (!b) { break; }
     }
 if (b) { x=parseInt(str,10); }
 return (x);
}


function walidujKodPocztowy(nazwapola)
{
 var src=document.getElementById(nazwapola);
 var kod=src.value;
 var b=false;
 var p=kod.indexOf('-');
 if (p>=0) { kod=kod.substr(0,p)+kod.substr(p+1,3); }  // usun "-"
 if (kod.length==5)
    {
     var i=StrToInt(kod);
	 if (i>0) 
	    { 
  	     var s=kod.substr(0,2)+'-'+kod.substr(2,3);
	     kod=s;
		 b=true;
		}
	}
 pole_ok=b;
 if (!b) kod='';
 src.value=kod;
 if (kod!=kod_pocz) if (b) getMiasto();
}


