////////////////////// Google Maps /////////////////

var map;
var geo;
var geocoder;
var markery=[];
var GeocoderStatus;
var bgcolor	= "#FCFCFC";

var icoOt = '<img src="/images/ico/gmaps/orb.jpg" alt="OT" align="left" /> ';
var icoAgn = '<img src="/images/ico/gmaps/agn.jpg" alt="Agent" align="left" /> ';
var icoAgnDiament = '<img src="/images/ico/gmaps/diamentowy.jpg" alt="AGN Di" align="left" /> ';
var icoAgnZloto = '<img src="/images/ico/gmaps/zloty.jpg" alt="AGN Zl" align="left" /> ';
var icoAgnSrebro = '<img src="/images/ico/gmaps/srebrny.jpg" alt="AGN Sr" align="left" /> ';


/*
 * google maps v3 
 */
 
/** rozpoznanie przeglądarki do urządzeń moblinych **/
function detectBrowser() {
  var useragent = navigator.userAgent;
//  var mapdiv = document.getElementById("boxBigMap");
  var mapdiv = $("#boxBigMap");
    	
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
    mapdiv.style.width = '100%';
    mapdiv.style.height = '100%';
  } 
  else {
    mapdiv.style.width = '100%';
    mapdiv.style.height = '343px';
  } 
}


/** start mapy **/
function initializeMaps(lat,lng,zoom) {

if(lat && lng) {
	var lat = lat;
	var lng = lng;
	var zoom = zoom;
	var showmarker = 'true';
} else {
	var lat		= geoip_latitude();
	var lng 	= geoip_longitude();
	var zoom 		= 6;
	var showmarker = 'false';
	//var lat		= 52.5;
	//var lng 		= 19.7;
}
//var bgcolor 	= "#FCFCFC";


	/** mapa **/
    var latlng = new google.maps.LatLng(lat, lng);
    var myOptions = {
      zoom: zoom,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
	  keyboardShortcuts: true,
	  backgroundColor: bgcolor
    };
    map = new google.maps.Map(document.getElementById("boxBigMap"), myOptions);
	//$('#boxBigMap').animate({height: '230px'}, 500 )
	/** warstwy **/
	/*	var panes =	new google.maps.ControlPosition ({
		MapPanes:	floatPane,
				  });
	map.MapPanes(floatPane);
	*/
	//	var InfoWindowOptions = {
	//		};

    //var info = new google.maps.InfoWindow(	opts: InfoWindowOptions );
	
	if(showmarker == 'true') {	  
	  var image = '/images/ico/parking.png';
	  /** marker **/
	  var marker = new google.maps.Marker({
	  position: latlng, 
	  map: map,
	  draggable: true,
	  icon: image,
	  title: "kliknij aby znaleźc najbliższe biura...",
	  flat: true
	  
	  });
	  
  	//google.maps.event.addListener(marker, 'click', function() {
	 // alert('test');
	//});

	}


	//geocoder = new Geocoder();
	
	
/*	  var reasons=[];
      reasons[G_GEO_SUCCESS]            = "Success";
      reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
      reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
      reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
      reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
*/	


}



function showOnMap(lat,lng,zoom,name,address,typico) {

var ico;

	switch (typico) {
		case 'ot':
		case '0':
			ico = icoOt;
		break;
		case 'diament':
		case '1':
			ico = icoAgnDiament;
		break;
		case 'zloto':
		case '2':
			ico = icoAgnZloto;
		break;
		case 'srebro':
		case '3':
			ico = icoAgnSrebro;
		break;
		default:
			ico = icoAgn;
		break;
	}

	var infowindow = new google.maps.InfoWindow({
		content: '<div class="dymek">'+ico+' <b>'+name+'</b><br />'+address+'</div>',
		size: new google.maps.Size(100, 50)
	}); 


	 var latlng = new google.maps.LatLng(lat, lng);	
	  var myOptions = {
      zoom: zoom,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
	  keyboardShortcuts: true,
	  backgroundColor: bgcolor
    };
     map = new google.maps.Map(document.getElementById("boxBigMap"), myOptions);
	
	 var image = '/images/ico/home.png';
	 /** marker **/
//	  var image = ico;

	var marker = new google.maps.Marker({
	  position: latlng, 
	  map: map,
	  draggable: true,
	  icon: image,
	 // title: "kliknij aby znaleźc najbliższe biura...",
	  flat: true
	  });
	
	
//	var marker	=	'<div class="dymek">'+ico+' <b>'+name+'</b><br />'+address+'</div>';
	infowindow.open(map, marker);
	
	
	
//			var lat 		= szer;
//			var lng 		= dl;
//			var zoom		= zoom;
			//var info1 		= ico+ ' ' +info;
//			var nazwa 		= info;
	//		var ikona_url 	= ico;
	//		var miasto		= "";
	//		var ulica 		= "";
		/*
			mapa.openInfoWindow(new GLatLng(lat,lng),name);
			mapa.setCenter(new GLatLng(lat,lng),zoom);
			var marker = new GMarker(mapa.getCenter(),{draggable: true});
			mapa.clearOverlays();
			mapa.addOverlay(marker);
			marker.txt	=	'<div class="dymek">'+ico+' <b>'+name+'</b><br />'+address+'</div>';
			marker.openInfoWindowHtml(marker.txt);
			*/
}


/* ********* */











//----------------------------------




function showAddress2(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
    }
	
	

 //if (GBrowserIsCompatible()) { 
	
		//map = new google.maps.Map(document.getElementById("boxBigMap"), myOptions);

    //  var map = new GMap(document.getElementById("map"));
    //  map.addControl(new GLargeMapControl());
     // map.addControl(new GMapTypeControl());
     // map.setCenter(new GLatLng(20,0),2);
      
      // ====== Create a Client Geocoder ======


      // ====== Array for decoding the failure codes ======
    
     // display a warning if the browser was not compatible
	// } else {
     // alert("Sorry, the Google Maps API is not compatible with this browser");
   // }
	
	
	// ====== Geocoding ======

  function showAddress1111(adres) {
//        var search = document.getElementById("search").value;
				
     var geo = new GClientGeocoder(); 
        var searcher = adres;
		
		geo.getLatLng(searcher, function (result) {
			alert(result);
		});
		
        // ====== Perform the Geocoding ======        
        geo.getLocations(searcher, function (result)
          { 
            // If that was successful
            if (result.Status.code == G_GEO_SUCCESS) {
              // How many resuts were found
              document.getElementById("message").innerHTML = "Found " +result.Placemark.length +" results";
              // Loop through the results, placing markers
              for (var i=0; i<result.Placemark.length; i++) {
                var p = result.Placemark[i].Point.coordinates;
                var marker = new GMarker(new GLatLng(p[1],p[0]));
                document.getElementById("message").innerHTML += "<br>"+(i+1)+": "+ result.Placemark[i].address + marker.getPoint();
                map.addOverlay(marker);
              }
              // centre the map on the first result
              var p = result.Placemark[0].Point.coordinates;
              // ===== Look for the bounding box of the first result =====
              var N = result.Placemark[0].ExtendedData.LatLonBox.north;
              var S = result.Placemark[0].ExtendedData.LatLonBox.south;
              var E = result.Placemark[0].ExtendedData.LatLonBox.east;
              var W = result.Placemark[0].ExtendedData.LatLonBox.west;
              var bounds = new GLatLngBounds(new GLatLng(S,W), new GLatLng(N,E));
              // Choose a zoom level that fits
              var zoom = map.getBoundsZoomLevel(bounds);

              map.setCenter(bounds.getCenter(),zoom);

              var points=[new GLatLng(N,W),new GLatLng(N,E),new GLatLng(S,E),new GLatLng(S,W),new GLatLng(N,W)];
              map.addOverlay(new GPolyline(points));

            }
            // ====== Decode the error status ======
            else {
              var reason="Code "+result.Status.code;
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
              } 
              alert('Could not find "'+search+ '" ' + reason);
            }
          }
        );
      }
    //}
    
	
	
function showAddress23(adres)  { 



      
    

    // This Javascript is based on code provided by the
    // Community Church Javascript Team
    // http://www.bisphamchurch.org.uk/   
    // http://econym.org.uk/gmap/





//var latlongpoint = new GLatLng() ;
//latlongpoint = geocodeAddress(adres); 
//alert(latlongpoint);
  geo = new GClientGeocoder(); 
alert(geo);
if(!geo) return; 

   geo.getLatLng(adres,function(punkt)  {  
          if (!punkt)  {  
             alert(adres + " nie został znaleziony!");  
          }  else  {  
			mapa.panTo(punkt);
			mapa.zoomIn(punkt);

  alert(mapa.panTo(punkt));  
//  return false;
/*
			mapa.setCenter(punkt,11);
						
			mapa.clearOverlays();  
			var ikona = new GIcon(G_DEFAULT_ICON);
			var marker = new GMarker(punkt,{draggable: true,icon: ikona, title: adres});  
			mapa.addOverlay(marker);  	
			
			var dispunkt = document.getElementById('dispunkt');
			dispunkt.value = punkt;
			
			var czytajpunkt = document.getElementById('dispunkt').value;
			var punkty = czytajpunkt.replace('(', '').replace(')','').replace(' ','');		
			*/
		  }
  });


//var geocoder = new Geocoder();
//alert(geocoder);

/*
var GeocoderRequest = {
	types: adres
 }
*/
/*
geocode ( GeocoderRequest , function(GeocoderResponse,GeocoderStatus) {
									alert(GeocoderResponse);
									alert(GeocoderStatus);
									}); 
	





	if(!geo) return;  
	geocoder.geocode( adres, function(punkt){ 
			 if (!punkt)  {  
             alert(adres + " nie został znaleziony!");  
    	      }   else    { 
			  alert(punkt);
			  }
	
	});
	
	//) )
	*/
	/*
//     geo.getLatLng(adres,function(punkt)  
      {  
          if (!punkt)  {  
             alert(adres + " nie został znaleziony!");  
          }   else    {  
		  	
			alert(punkt);
			map.panTo(punkt);
			map.zoomIn(punkt);

			map.setCenter(punkt,11);
						
			map.clearOverlays();  

		  }
	  }); 
*/


}













		
function otworzMarker(id)	{
			if(markery.length-1<id) {
				return;
			} else {
			markery[id].openInfoWindowHtml(markery[id].txt);
			}
}
		
function odswiezPasekBoczny() {
			var html = '';
			//document.getElementById('boxMapNavi').innerHTML = html;
			
			for(var i=0; i<markery.length;i++)	{
				html += '<a href="#" onclick="otworzMarker('+i+'); return false;">'+markery[i].txt2+'</a><br />';
			}
			document.getElementById('boxMapNavi').innerHTML=html;
}
		

//	 GMarker.prototype.usun = function()
function prototypeUsun()	{

				var tab = [];
				for(var i=0; i<markery.length; i++)
				{
					if(markery[i]!=this)
						tab.push(markery[i]);
				}
				markery=tab;
				mapa.removeOverlay(this);
				odswiezPasekBoczny();
}


// najblizsze biura i agencji w danej lokalizacji
function ladujNajblizszych(lat,lng) {

	GDownloadUrl('/mapa,'+lat+','+lng+'', function(dane,kodOdpowiedzi)	{
			if(kodOdpowiedzi==200)
					{
						// parser xml
						var xml = GXml.parse(dane);
						var markery = xml.documentElement.getElementsByTagName('marker');
						for(var i=0; i<markery.length; i++)
						{
							var lat = parseFloat(markery[i].getAttribute("lat"));
							var lon = parseFloat(markery[i].getAttribute("lon"));
							var ikona_url = markery[i].getAttribute("ikona");
							var nazwa = markery[i].getAttribute("nazwa");
							var miasto = markery[i].getAttribute("miasto");
							var ulica = markery[i].getAttribute("ulica");
							var kontakt = markery[i].getAttribute("kontakt");
							var marker = dodajMarker(lat,lon,ikona_url,nazwa,miasto,ulica,kontakt);

						}
					//	alert('Wczytano '+markery.length+' markerów z pliku dane1.xml');
					//prototypeUsun();
					document.getElementById('agentLoading').style.display = "none";
					}
					else
					{
						alert('Nie mogłem otworzyć pliku');
					}
			});
}









function dodajMarker(lat,lng,ikona_url,nazwa,miasto,ulica,kontakt)
		{
			//prototypeUsun();
	
			var ikona = new GIcon();
			ikona.image = ikona_url;
			ikona.iconSize = new GSize(33, 35);
			ikona.iconAnchor = new GPoint(15, 12);
			ikona.shadow = "";
			ikona.infoWindowAnchor = new GPoint(15,12);
			
			var marker	=	new GMarker(new GLatLng(lat,lng),{title: nazwa, icon: ikona});
			marker.txt	=	'<div class="dymek"><h4>'+nazwa+'</h4><p>'+ulica+', '+miasto+'<br />'+kontakt+'</p></div>';
			//marker.txt2	=	'<strong>'+nazwa+'</strong>';
			mapa.addOverlay(marker);
			GEvent.addListener(marker,"click",function()
			{
				marker.openInfoWindowHtml(marker.txt);
			});
				
			mapa.addOverlay(marker);
			markery.push(marker);
			//	odswiezPasekBoczny();
			//	return marker;
		}



// mapa
function mapaStart() {
	if(GBrowserIsCompatible())  
			{
				var lat 		= geoip_latitude();
				var lng 		= geoip_longitude();
				var latx 		= 52;
				var lngx 		= 21;
				
				mapa = new GMap2(document.getElementById('boxBigMap'),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});				
				mapa.setCenter(new GLatLng(lat, lng), 12);
								
				// sterownaie mapa
				var typyMapy = mapa.getMapTypes();    
				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 GLargeMapControl());
				mapa.addControl(new GScaleControl());		
				mapa.setUIToDefault();
				// nowy obiekt do geokodowania
			 	geo = new GClientGeocoder();
	
				// współrzędne po przesunięciu
				var marker = new GMarker(mapa.getCenter(),{draggable: true});
				mapa.addOverlay(marker);

				// najblizsze biura i agencji w danej lokalizacji
				ladujNajblizszych(lat,lng);

			}
		}	
	
	
// wyszukiwarka
function skoczDoAdresu(adres)  { 

	if(!geo) return;  
     geo.getLatLng(adres,function(punkt)  
      {  
          if (!punkt)  
          {  
             alert(adres + " nie został znaleziony!");  
          }  
          else  
          {  
			mapa.panTo(punkt);
			mapa.zoomIn(punkt);

			mapa.setCenter(punkt,11);
						
			mapa.clearOverlays();  
			var ikona = new GIcon(G_DEFAULT_ICON);
			var marker = new GMarker(punkt,{draggable: true,icon: ikona, title: adres});  
			mapa.addOverlay(marker);  	
			
			var dispunkt = document.getElementById('dispunkt');
			dispunkt.value = punkt;
			
			var czytajpunkt = document.getElementById('dispunkt').value;
			var punkty = czytajpunkt.replace('(', '').replace(')','').replace(' ','');		
			 


			GDownloadUrl('/mapa,'+punkty+'', function(dane,kodOdpowiedzi)
				{
					if(kodOdpowiedzi==200)
					{
						// parser xml
						var xml = GXml.parse(dane);
						var markery = xml.documentElement.getElementsByTagName('marker');
						for(var i=0; i<markery.length; i++)
						{
							var lat = parseFloat(markery[i].getAttribute("lat"));
							var lon = parseFloat(markery[i].getAttribute("lon"));
							var ikona_url = markery[i].getAttribute("ikona");
							var nazwa = markery[i].getAttribute("nazwa");
							var miasto = markery[i].getAttribute("miasto");
							var ulica = markery[i].getAttribute("ulica");
							var kontakt = markery[i].getAttribute("kontakt");
							var marker = dodajMarker(lat,lon,ikona_url,nazwa,miasto,ulica,kontakt);

						}
						//marker.usun();
					//	odswiezPasekBoczny();
					//	prototypeUsun();
					//	alert('Wczytano '+markery.length+' markerów z pliku dane1.xml');

					} else {
						alert('Nie mogłem otworzyć pliku');
					}
				});
			 	 
		  }  
      });  
	//document.getElementById("boxBigMap").innerHTML = '';
}  



// wyszukiwarka po IP
function znajdzMnie() {
			var lat 		= geoip_latitude();
			var lng 		= geoip_longitude();
			var kraj		= geoip_country_name();
			var miejscowosc	= geoip_city();
			mapa.openInfoWindow(new GLatLng(lat,lng),miejscowosc);
			mapa.setCenter(new GLatLng(lat,lng),11);
			var marker = new GMarker(mapa.getCenter(),{draggable: true});
			mapa.clearOverlays();
			mapa.addOverlay(marker); 
			
			// najblizsze biura i agencji w danej lokalizacji
			ladujNajblizszych(lat,lng);
		
}



function pokazNaMapie(szer,dl,zoom,info,typico) {
	
	switch (typico) {
		case('ot'):
			var ico = '<img src="/images/logoOT1.jpg" alt="OT" align="left" /> ';
		break;
		case('diament'):
			var ico = '<img src="/images/ico/diamentowy.jpg" alt="AGN Di" align="left" /> ';
		break;
		case('zloto'):
			var ico = '<img src="/images/ico/zloty.jpg" alt="AGN Zl" align="left" /> ';
		break;
		case('srebro'):
			var ico = '<img src="/images/ico/srebrny.jpg" alt="AGN Sr" align="left" /> ';
		break;
		default:
			var ico = '<img src="/images/ico/ico_agent.jpg" alt="AGN" align="left" /> ';
		break;
	}

	
			var lat 		= szer;
			var lng 		= dl;
			var zoom		= zoom;
			//var info1 		= ico+ ' ' +info;
			var nazwa 		= info;
			var ikona_url 	= ico;
			var miasto		= "";
			var ulica 		= "";
			mapa.openInfoWindow(new GLatLng(lat,lng),info);
			mapa.setCenter(new GLatLng(lat,lng),zoom);
			var marker = new GMarker(mapa.getCenter(),{draggable: true});
			mapa.clearOverlays();
			mapa.addOverlay(marker);
			marker.txt	=	'<div class="dymek">'+ikona_url+' '+nazwa+'</div>';
			marker.openInfoWindowHtml(marker.txt);

}

