/**
* @desc funkcja laduje mape z zoom oraz wspolrzednymi zaleznymi od parametrow
* @param integer kont id kontynentu zostanie zaladowana mapa z panstwami z danego kontynentu
* @param country 
* @param bool last_params (true, false) okresla czy zaladowac mape z ostatnimi ustawieniami
* @param city 
* @return none
* @modify Dariusz Pidzik <dariusz.pidzik@polconstruct.com>
* @author Piotr Olczak <piotr.olczak@polconstruct.com>
*/

var showMap2;
var showMabTab;
var checkHelpStatus = 'false';
var globalZoom;
var globalZoomArchive;
var globalLongitude;
var globalLatitude;
var globalLatitudeArchive;
var globalLongitudeArchive;
var globalOneLongitude;
var globalOneLatitude;
var globalZoomType = 'country';
var globalButton;
var globalTemplate;
var loadPosition;
var panstwoSet = 68;
var panstwoSetNum;
var miastoSet;
var regionSet;
var kontSet = 2;
var map;
var map2;
var label;
var language;
var lsc;
var objectImg;
var rodzaj = 'country';
var limit = 500;
var categoryAdvert = new Array();

var panel_typeAdv;
var	panel_area;
var	panel_areamin;
var	panel_areamax;
var	panel_price;
var	panel_pricemin;
var	panel_pricemax;
var panel_transaction;
var panel_bedroom;
var panel_bathroom;
var panel_nrRef;

//Czy pokazac listing
var setSelect;
var nameSelect;
var listing;
var optionsLeftBox;
var localSearch;
var pages = 0;
var noSelect;
var reloadPages;
var showListingForAdWord;
var MAP_ACTIONS_IN_PROGRESS = 'true';

//Tablice do mapy
var tabArrayGlobal = new Array();

//Zmienne do ustawienia kordynat regionow
var latMin;
var latMax;
var longMin;
var longMax;

var latLngArchive = new Array();
var copylatLngArchive = new Array();
var buttonBack;

var diffrentLng;
var diffrentLat;
var positionSector;
var sectorFlag = 'false';
var countSector;
var navigatorId = 'false';

// Progress Bar
var progressBar;
var markersArray = [];
var maxNum = 0;
var num = 0;
var jPoz = 0;
var jPoz2 = 0;

// Formularz
var orginalPrice;
var whatShow = '';

/**
* Funkcja przeladowuje mape dla pojedynczych obiektow
* Ustawia mape
**/

function loadOneOffer(divMap,objectOffer){
	
	if (GBrowserIsCompatible()) {
		
		if(divMap == 'map'){	
			
			if(miastoSet){
			
				map = new GMap2(document.getElementById(divMap));
				
				localSearch = new google.maps.LocalSearch();
				map.clearOverlays();
				map.addMapType(G_PHYSICAL_MAP);
				map.setMapType(G_PHYSICAL_MAP);
				map.addControl(new GMapTypeControl());
				map.addControl(new TextualZoomControl());
				map.addControl(new TextualZoomObject());
				map.enableScrollWheelZoom();
				
				globalZoomType = 'city';
				map.enableDragging();
				map.addControl(new GSmallZoomControl());
				latlngCity(miastoSet);
			}else{
				map = new GMap2(document.getElementById(divMap));

				map.clearOverlays();
				map.addMapType(G_PHYSICAL_MAP);
				map.setMapType(G_PHYSICAL_MAP);
				map.addControl(new GMapTypeControl());
				map.addControl(new TextualZoomObject());
				map.enableScrollWheelZoom();
				
				globalZoomType = 'country';
				map.enableDragging();
				map.addControl(new GSmallZoomControl());
				latlngCountry(panstwoSet);
			}
			
		}else{
			
			map2 = new GMap2(document.getElementById(divMap), {draggableCursor:"auto", draggingCursor:"move"});
			localSearch = new google.maps.LocalSearch();
			globalButton = false;
	
			map2.clearOverlays();					
			map2.addMapType(G_PHYSICAL_MAP);
			map2.setMapType(G_SATELLITE_MAP);
			map2.enableScrollWheelZoom();
			//map2.addControl(new GSmallZoomControl());
			//map2.addControl(new GMapTypeControl());
			map2.addControl(new GLargeMapControl()); // Zoom control
			map2.addControl(localSearch);
			map2.addControl(new TextualZoomObjectShow());
			
			 // Add a div element for toolips
			 tooltip = document.createElement("div");
			 tooltip.className="tooltip";
			 map2.getPane(G_MAP_MARKER_PANE).appendChild(tooltip);

			 // Create a hierarchical map type control
			 var hierarchy = new GHierarchicalMapTypeControl();
			 // make Hybrid the Satellite default
			 hierarchy.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", true);
			 // add the control to the map
			 map2.addControl(hierarchy);

			 map2.addControl(new GScaleControl()); // Scale bar
			 map2.disableDoubleClickZoom();
			
			/**
		 	* Obsluga dzialania kursora bezposrednio na mapie
		 	**/
			
			GEvent.addListener(map2, "click", leftClick);
			GEvent.addListener(map2, "mouseover", showControls);
			GEvent.addListener(map2, "mouseout", hideControls);
						
			map2.enableDragging();			
			latlngObject(objectOffer);
		}
	}
}


function loadWithListing(){

	if (GBrowserIsCompatible()) {
	
		map = new GMap2(document.getElementById("map"));
		localSearch = new google.maps.LocalSearch();
		globalButton = false;

		map.clearOverlays();
		map.addMapType(G_PHYSICAL_MAP);
		map.setMapType(G_PHYSICAL_MAP);
		map.addControl(new GMapTypeControl());
		map.addControl(new TextualZoomControl());
		map.addControl(new TextualZoomObject());
		map.enableScrollWheelZoom();
		progressBar = new ProgressbarControl(map, {width:150});
		//map.addControl(new TextualZoomObjectShow());		
		
		/**
		 * Obsluga dzialania kursora bezposrednio na mapie
		 **/

		GEvent.addListener(map, "mouseover", showControls);
		GEvent.addListener(map, "mouseout", hideControls);

		if (globalZoomType=='continent') {
			
			globalZoomType = 'country';
			
			if (kontSet == 1) {
				map.setCenter(new GLatLng(46.04870994288686, 15.94140625), 4);
			}
			else 
				if (kontSet == 2) {
					map.setCenter(new GLatLng(25.17887331434696, -90.87890625), 3);
				}
				else 
					if (kontSet == 3) {
						map.setCenter(new GLatLng(-23.725011735951796, -68.73046875), 3);
					}
					else 
						if (kontSet == 4) {
							map.setCenter(new GLatLng(12.1624555302378474, 17.2265625), 3);
						}
						else 
							if (kontSet == 5) {
								map.setCenter(new GLatLng(20.85750715625203, 85.4296875), 3);
							}
							else 
								if (kontSet == 6) {
									map.setCenter(new GLatLng(-22.431340156360594, 124.23046875), 3);
								}
			map.addControl(new GSmallZoomControl());					
			setCountryMap();
		}else if(globalZoomType=='country'){
			globalZoomType = 'city';
			map.enableDragging();
			getLatLon(1);
			map.addControl(new GSmallZoomControl());
			setBounds();
			//map.setCenter(new GLatLng(globalLatitude, globalLongitude), parseInt(globalZoom));			
			//setCityMap();
			loadMarkers();				
		}else if(globalZoomType=='city'){
			globalZoomType = 'object';
			map.enableDragging();
			//map.addControl(localSearch);
			//map.addControl(new TextualZoomObjectShow());
			getLatLon(2);
			map.addControl(new GSmallZoomControl());
			setBounds();										
			setObjectMap();
		}else if(globalZoomType=='reloadMaps'){
			globalZoomType = 'object';
			map.enableDragging();
			map.addControl(localSearch);
			map.addControl(new TextualZoomObjectShow());
			map.addControl(new GSmallZoomControl());
			map.setCenter(new GLatLng(globalLatitude, globalLongitude), 15);			
			setObjectMap2();
		}else if(globalZoomType=='object'){
			map.enableDragging();
			map.addControl(localSearch);
			map.addControl(new TextualZoomObjectShow());
			map.addControl(new GSmallZoomControl());
			map.setCenter(new GLatLng(globalOneLatitude, globalOneLongitude), 15);
			//setObjectOnlyOn();
			setObjectMap();				
		}else if(globalZoomType=='construct'){
			globalZoomType = 'object';
			map.disableDragging();
	
			//var bounds = new GLatLngBounds;
			//bounds.extend(new GLatLng(copylatLngArchive[0],copylatLngArchive[1]));
			//bounds.extend(new GLatLng(copylatLngArchive[2],copylatLngArchive[3]));	
			//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
							
			if(sectorFlag == 'false'){
				map.addControl(new TextualZoomRegions());
			}
			
			if(sectorFlag == 'false'){
				setBounds3();
				setRegionsMap();
			}else{
				map.addControl(new GSmallZoomControl());
				map.enableDragging();
				setBounds2();
				setObjectMap();
				listing=1;
				navigatorId='true';
			}
			
		}else {
			globalZoomType = 'continent';
			map.setCenter(new GLatLng(25.304, 11.25));
			map.disableDragging();
			map.setZoom(1);
			map.clearOverlays();
			setKontMap();
		}
	}		
	
}

function loadGetPosition(){

	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var southWest_lat = southWest.lat(); 
	var southWest_lng = southWest.lng();
	var northEast_lat = northEast.lat();
	var northEast_lng = northEast.lng();
	
	var arrayPosition = new Array();
	arrayPosition[0] = southWest_lat;
	arrayPosition[1] = southWest_lng;
	arrayPosition[2] = northEast_lat;
	arrayPosition[3] = northEast_lng;
	
	return arrayPosition;

}

function createMarker(point, number, rodzaj, title,lat,lon,z,id_template) {
          
          var baseIcon = new GIcon();
          var baseIcon2 = new GIcon();
          baseIcon2.iconSize=new GSize(13,13);
          baseIcon2.shadowSize=new GSize(0,0);
          baseIcon2.iconAnchor=new GPoint(8,12);
          baseIcon2.infoWindowAnchor=new GPoint(16,24);

          if(rodzaj=='city') {
                var blueIcon = new GIcon();
                blueIcon.iconSize=new GSize(16,16);
	           	blueIcon.infoWindowAnchor = new GPoint(16,16);  
	            blueIcon.iconAnchor = new GPoint(16,16);  
	           	blueIcon.shadowSize = new GSize(19, 19);
				blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Universal.png";
          } else if (rodzaj=='country') {
                var blueIcon = new GIcon();
                blueIcon.iconSize=new GSize(21,21);  
           		blueIcon.infoWindowAnchor = new GPoint(16,16);  
            	blueIcon.iconAnchor = new GPoint(19,19);  
				blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Universal.png";
          } else if (rodzaj=='object') {
        		  switch (parseInt(globalTemplate)) {
					case 2:						
						var blueIcon = new GIcon();
		                blueIcon.iconSize = new GSize(24, 24);  
		           		blueIcon.infoWindowAnchor = new GPoint(24,24);  
		            	blueIcon.iconAnchor = new GPoint(24,24);  
						blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Developments.png";
						break;
					case 19:						
						var blueIcon = new GIcon();
		                blueIcon.iconSize = new GSize(24, 24);  
		           		blueIcon.infoWindowAnchor = new GPoint(24,24);  
		            	blueIcon.iconAnchor = new GPoint(24,24); 
						blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Re_Developments.png";
						break;
					case 36:						
						var blueIcon = new GIcon();
		                blueIcon.iconSize = new GSize(24, 24);  
		           		blueIcon.infoWindowAnchor = new GPoint(24,24);  
		            	blueIcon.iconAnchor = new GPoint(24,24); 
						blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Commercial.png";
						break;
					case 56:						
						var blueIcon = new GIcon();
		                blueIcon.iconSize = new GSize(24, 24);  
		           		blueIcon.infoWindowAnchor = new GPoint(24,24);  
		            	blueIcon.iconAnchor = new GPoint(24,24); 
						blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Residential.png";
						break;
					}	
		  } else {
		  		var blueIcon = new GIcon();
                blueIcon.iconSize=new GSize(19,19);
	           	blueIcon.infoWindowAnchor = new GPoint(16,16);  
	            blueIcon.iconAnchor = new GPoint(16,16);  
	           	blueIcon.shadowSize = new GSize(19, 19);
				blueIcon.image = "/images/"+strPathToImagesForPageLookTemplate+"/maps/Icon_Universal.png";
          }

		  var marker = new GMarker(point,{icon: blueIcon});
		
          if(rodzaj=='city') {

              GEvent.addListener(marker, "click", function() {
                    // bUserIsLoggedOnPage - zmienna globalne, mówi czy użytkownik jest 
                    // zalogowany. Jej deklaracja znajduje sie w pliku layout.php
                    if(/*browser.isIE && */!bUserIsLoggedOnPage) {
                        searchingTryWhenNotLogged();
                        return false;
                    }    
                    
                    miastoSet = number;
                    globalLongitude = lon;
					globalLatitude = lat;
					
					var sel = document.getElementById('idCity');
					var maxlength = sel.options.length;
					
					for(i=0;i<maxlength;i++){
						if(sel.options[i].value==number){
							sel.selectedIndex=i;
							break;
						}
					}
					document.getElementById('searchForm').submit();
								
              });
              GEvent.addListener(marker, "mouseover", function() {
                    label = new GEtyk(point, "<div style='background-color:#000000;color:#FFFFFF'>"+ title +"</div>", "mapLabel", new GSize(0,-10), 80, null, null,'nameCity'); 
					map.addOverlay(label);				
              });
              
              GEvent.addListener(marker, "mouseout", function() {
					map.removeOverlay(label);
              });
              
              }else if(rodzaj=='country'){

              GEvent.addListener(marker, "click", function() {					
					globalLongitude = lon;
					globalLatitude = lat;
					globalLongitudeArchive = lon;
					globalLatitudeArchive = lat;
					globalZoomArchive = z;
					globalZoom = z;
					panstwoSet = number;
					showListingAjax(0);
              });
               
              GEvent.addListener(marker, "mouseover", function() {
					label = new GEtyk(point, "<div style='background-color:#000000;color:#FFFFFF'>"+ title +"</div>", "mapLabel", new GSize(0,-10), 80, null, null,'nameCity'); 
					map.addOverlay(label);										
              });
              
              GEvent.addListener(marker, "mouseout", function() {
					map.removeOverlay(label);
              });
              
              }else if(rodzaj=='object'){
  				
  			  GEvent.addListener(marker, "click", function() {
  			  		objectSet = number;
  			  		globalOneLongitude = lon;
					globalOneLatitude = lat;
					globalZoom = z;
					document.getElementById('latLngArchive').value = latLngArchive[latLngArchive.length-1];
  			  		showOfferts(number);					
              });
               				
              } else {
              GEvent.addListener(marker, "click", function() {
			    globalLongitude = lon;
				globalLatitude = lat;
				globalZoom = z;
				kontSet=number;
				showListingAjax(0);				 
              });
     }
return marker;
}

function createEt(point, html, number, rodzaj) {
            if(rodzaj=='city') {
			    if(specialListOfId!='') add = '&specialId='+specialListOfId;
				else add = '';
			    if(actionCity==''){
                  var action = "miastoSet='"+number+"'; location='./index.php?module=trips&panstwo="+panstwoSet+"&miasto="+number+"&sortBy=v_cena ASC"+add+"'";//load(null,null,null,"+number+")";
				} else{
				  var action = "miastoSet='"+number+"'; "+actionCity;
				}
				var label = new GEtyk(point, html, "style_et_city", new GSize(0,0), 80, null, action, number);
				
            } else if(rodzaj=='country') {
                var action = "load('',"+number+")"; 
				var label = new GEtyk(point, html, "style_et_city", new GSize(0,-10), 80, null, action);
            } else if(rodzaj=='kont') {
			
                var action = "load("+number+",true); return false;";
				
				if(globalMapType == 1 || globalMapType == 2) color = ' color:white; ';
				else color = '';

				if(number==1){
				
				  if(globalMapType == 1 || globalMapType == 3){ 
				    margin = '50px';
					leftMarg = -45;
				  }
				  else {
				    margin = '25px';
					leftMarg = -40;
				 }  
				  
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_europa", new GSize(leftMarg,25), 80, null, action,number);
				  
				} else if(number==2){
				
				  if(globalMapType == 1 || globalMapType == 3){
				    margin = '78px';
					leftMarg = -45;
				  }	
				  else{
				    margin = '45px';
					leftMarg = -40;
				  }
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_ameryka_polnocna", new GSize(leftMarg,65), 80, null, action,number);
				  
				} else if(number==3){
				
				  if(globalMapType == 1 || globalMapType == 3){
				    margin = '35px';
					leftMarg = -35;
				  }
				  else{
				    margin = '25px';
					leftMarg = -40;
				  }
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_ameryka_poludniowa", new GSize(leftMarg,95), 80, null, action,number);
				  
				} else if(number==4){
				
				  if(globalMapType == 1 || globalMapType == 3){
				    margin = '20px';
					leftMarg = -60;
				  }
				  else{
				    margin = '25px';
					leftMarg = -60;
				  }
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_afryka", new GSize(leftMarg,20), 80, null, action,number);
				  
				} else if(number==5){
				
				  if(globalMapType == 1 || globalMapType == 3){
				    margin = '30px';
					leftMarg = -70;
				  }
				  else{
				    margin = '25px';
					leftMarg = -45;
				  }
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_azja", new GSize(leftMarg,95), 80, null, action,number);
				  
				} else if(number==6){
				
				  if(globalMapType == 1 || globalMapType == 3){
				    margin = '18px';
					leftMarg = -55;
				  }
				  else{
				    margin = '15px';
					leftMarg = -40;
				  }
				  html = '<div style="margin:'+margin+' 0 0 0;'+color+'">'+html+'</div>';
				  var label = new GEtyk(point, html, "style_et_australia", new GSize(leftMarg,40), 80, null, action,number);
				  
				} else
				var label = new GEtyk(point, html, "style_et_city", new GSize(0,-10), 80, null, action,number);
            } else {
                var action = null;
            }
            return label;
}              

function showControls(){

	if(globalButton == true){			
	  try{
	    document.getElementById('text_zoom').style.visibility = 'visible';
	  } catch(err){}
	}else{
	  try{
	    document.getElementById('text_zoom').style.visibility = 'visible';
	  } catch(err){}
	    
	  try{
	    document.getElementById('text_object').style.visibility = 'visible';
	  } catch(err){}
	  
	  try{
	    document.getElementById('text_objectShow').style.visibility = 'visible';
	  } catch(err){}
	  
	}  
}
function hideControls(){
	 
	  try{
	    document.getElementById('text_zoom').style.visibility = 'hidden';
	  } catch(err){}
	  try{
	   document.getElementById('text_object').style.visibility = 'hidden';
	  } catch(err){}
	  try{
	   document.getElementById('text_objectShow').style.visibility = 'hidden';
	  } catch(err){}

}

function getWeatherMarkers(data) {
  var batch = [];
  
  l = data.length;
  for (i=0;i<l;i++) {
   
 	var wIcon = new GIcon();
    wIcon.infoWindowAnchor = new GPoint(0,0);  
    wIcon.iconAnchor = new GPoint(40,40);  
    wIcon.shadowSize = new GSize(0, 0);
 	wIcon.image = data[i][2];                
    batch.push(new GMarker(new GLatLng(data[i][0],data[i][1]), { icon: wIcon }));
  }
  return batch;
}

function setupWeatherMarkers(data) {

  mgr = new MarkerManager(map);
  mgr.addMarkers(getWeatherMarkers(data), 3);
  mgr.refresh();
}