function showAddresses(){for(i=0;i<addresses.length;i++){showAddress(addresses[i][0],addresses[i][1],addresses[i][2],addresses[i][3],addresses[i][4],addresses[i][5],addresses[i][6],addresses[i][7]);}}
function showAddress(address,name,htmlInfo,url,moveToPoint,iconName,draggable,callback){if(geocoder){geocoder.geocode({"address":address},function(result,status){if(status==google.maps.GeocoderStatus.OK){if(moveToPoint){map.setCenter(result[0].geometry.location);}
var options=new Array();options.position=result[0].geometry.location;options.title=name;options.map=map;if(draggable){options.draggable=draggable;}
if(callback!=''&&callback!=undefined){marker=createStandardMarker(options,htmlInfo,url,iconName);}else{var marker=createStandardMarker(-1,options,htmlInfo,url,iconName);}
if(draggable){google.maps.event.addListener(marker,"dragend",function(){var latLngPosition=marker.getPosition();if(callback!=''&&callback!=undefined){var loc=latLngPosition.lat().toString().substr(0,9)+','+latLngPosition.lng().toString().substr(0,9);callback.call(this,loc);}
document.getElementById(updateX).value=latLngPosition.lat();document.getElementById(updateY).value=latLngPosition.lng();});}}else{alert("Adres nie zostaĹ� znaleziony z powodu: "+status);}});}}
function showFewPolygons(){for(a=0;a<polyPoints.length;a++){showPolygon(a,polyPoints[a]);}}
function showPolygon(index,onePolyPoint){var points=Array();var areaSettings;var i=0;for(var v in onePolyPoint.points){points[i++]=new google.maps.LatLng(onePolyPoint.points[v][0],onePolyPoint.points[v][1]);}
if(onePolyPoint["areaSettings"]){polygon=new google.maps.Polygon({paths:points,strokeColor:onePolyPoint.areaSettings[0],strokeOpacity:onePolyPoint.areaSettings[2],strokeWeight:onePolyPoint.areaSettings[1],fillColor:onePolyPoint.areaSettings[3],fillOpacity:onePolyPoint.areaSettings[4]});}else{polygon=new google.maps.Polygon({paths:points});}
polygon.setMap(map);if(index>-1)
polygonsArray[index]=polygon;google.maps.event.addListener(polygon,"click",function(event)
{if((onePolyPoint["areaSettings"][6]!=null)&&(onePolyPoint["areaSettings"][6]!='')){location.href=onePolyPoint["areaSettings"][6];}else{activeInfo.setContent(onePolyPoint["areaSettings"][5]);activeInfo.setPosition(event.latLng);activeInfo.open(map);}});}
function showGeopoints(callback){var iconName='';for(i=0;i<geopoints.length;i++){if(zoomFactorMarkerChange>lastZoom)
iconName=geopoints[i][6];else
iconName=geopoints[i][7];showGeopoint(i,iconName,callback);}}
function showGeopoint(index,iconName,callback){var latitude=geopoints[index][0];var longitude=geopoints[index][1];var name=geopoints[index][2];var windowInfo=geopoints[index][3];var url=geopoints[index][4];var moveToPoint=geopoints[index][5];var draggable=geopoints[index][8];var options=new Array();options.position=new google.maps.LatLng(latitude,longitude);options.title=name;options.map=map;if(draggable){options.draggable=draggable;}
if(moveToPoint){map.setCenter(new google.maps.LatLng(latitude,longitude));}
marker=createStandardMarker(index,options,windowInfo,url,iconName);if(draggable){google.maps.event.addListener(marker,"dragend",function(){var latLngPosition=marker.getPosition();if(callback!=''&&callback!=undefined){var loc=latLngPosition.lat().toString().substr(0,9)+','+latLngPosition.lng().toString().substr(0,9);callback.call(this,loc);}
document.getElementById(updateX).value=latLngPosition.lat();document.getElementById(updateY).value=latLngPosition.lng();});}}
function createStandardMarker(index,options,windowInfo,url,iconName){if(iconName){var iconOptions=icons[iconName];var iSize=new google.maps.Size(iconOptions[1],iconOptions[2]);var iStartPoint=new google.maps.Point(iconOptions[3],iconOptions[4]);var iMiddlePoint=new google.maps.Point(iconOptions[5],iconOptions[6]);var specialIcon=new google.maps.MarkerImage(iconOptions[0],iSize,iStartPoint,iMiddlePoint);options.icon=specialIcon;if(iconOptions.length>7){iSize=new google.maps.Size(iconOptions[8],iconOptions[9]);iStartPoint=new google.maps.Point(iconOptions[10],iconOptions[11]);iMiddlePoint=new google.maps.Point(iconOptions[12],iconOptions[13]);var specialShadow=new google.maps.MarkerImage(iconOptions[7],iSize,iStartPoint,iMiddlePoint);options.shadow=specialShadow;}else if(icons['commonShadow'].length>0){var iconOptions=icons['commonShadow'];iSize=new google.maps.Size(iconOptions[1],iconOptions[2]);iStartPoint=new google.maps.Point(iconOptions[3],iconOptions[4]);iMiddlePoint=new google.maps.Point(iconOptions[5],iconOptions[6]);var specialShadow=new google.maps.MarkerImage(iconOptions[0],iSize,iStartPoint,iMiddlePoint);options.shadow=specialShadow;}}
var tempTitle=options.title;options.title="";var marker=new google.maps.Marker(options);marker.tooltip=tempTitle;if(index>-1)
markersArray[index]=marker;google.maps.event.addListener(marker,"mouseover",function(){showTooltip(marker);});google.maps.event.addListener(marker,"mouseout",function(){myCustomTooltip.hide();});if((windowInfo!=null)&&(windowInfo!='')){marker.txt=createInfoWindowDiv(windowInfo);}
if((url!=null)&&(url!='')){google.maps.event.addListener(marker,"click",function()
{location.href=url;});}else{if((windowInfo!=null)&&(windowInfo!='')){google.maps.event.addListener(marker,"click",function()
{activeInfo.setContent(marker.txt);activeInfo.open(map,marker);});}}
return marker;}
function createInfoWindowDiv(text){var resultInDiv=document.createElement('DIV');resultInDiv.className='infoWindowInDiv';resultInDiv.innerHTML=text;var resultDiv=document.createElement('DIV');resultDiv.className='specialInfoWindow';resultDiv.appendChild(resultInDiv);return resultDiv;}
function moveToGeopoint(index){var thisMarker=markersArray[index];var mlatlng=thisMarker.getPosition();map.panTo(mlatlng);if((listWidth>0)&&(thisMarker.txt!=null)&&(thisMarker.txt!='')){activeInfo.setContent(thisMarker.txt);activeInfo.open(map,thisMarker);}else{activeInfo.close();}}
function moveMapToGeopointByLL(lat,lang){map.panTo(new google.maps.LatLng(lat,lang));}
function moveToPolygon(index){var thisPolygon=polygonsArray[index];var pointsMVC=thisPolygon.getPath();var secondIndex=Math.floor(pointsMVC.getLength()/2);var latOffset=(pointsMVC.getAt(0).lat()-pointsMVC.getAt(secondIndex).lat())/2;var lngOffset=(pointsMVC.getAt(0).lng()-pointsMVC.getAt(secondIndex).lng())/2;var newLat=pointsMVC.getAt(0).lat()-latOffset;var newLng=pointsMVC.getAt(0).lng()-lngOffset;var position=new google.maps.LatLng(newLat,newLng);map.panTo(position);if(listWidth>0){activeInfo.setContent(polyPoints[index]["areaSettings"][5]);activeInfo.setPosition(position);activeInfo.open(map);}
if(listWidth>0){activeInfo.setContent(thisMarker.txt);activeInfo.open(map,thisMarker);}}
function moveToAddress(index){moveToAddressEx(addresses[index][0]);}
function moveToAddressEx(addressString,callback){if(geocoder){geocoder.geocode({"address":addressString},function(result,status){if(status==google.maps.GeocoderStatus.OK){map.setCenter(result[0].geometry.location);if(callback!=''&&callback!=undefined){var latLngPosition=map.getCenter();var loc=latLngPosition.lat().toString().substr(0,9)+','+latLngPosition.lng().toString().substr(0,9);callback.call(this,loc);}}else{alert("Adres nie zostaĹ� znaleziony z powodu: "+status);}});}}
function moveToAddressDMarker(addressString,callback){if(geocoder){geocoder.geocode({"address":addressString},function(result,status){if(status==google.maps.GeocoderStatus.OK){center=result[0].geometry.location;map.setCenter(result[0].geometry.location);var latLngPosition=map.getCenter();if(callback!=''&&callback!=undefined){var loc=latLngPosition.lat().toString().substr(0,9)+','+latLngPosition.lng().toString().substr(0,9);callback.call(this,loc);}
addOneDragableMarker(latLngPosition,callback);}else{alert("Adres nie zostaĹ� znaleziony z powodu: "+status);}});}}
function setZoomFactor(factor){map.setZoom(factor);}
function addOneDragableMarker(center,callback){if(!marker){var options=new Array();options.position=center;options.title="ustaw pozycjÄ�";options.map=map;options.draggable=true;marker=createStandardMarker(-1,options,"","","");google.maps.event.addListener(marker,"dragend",function(){var latLngPosition=marker.getPosition();if(callback!=''&&callback!=undefined){var loc=latLngPosition.lat().toString().substr(0,9)+','+latLngPosition.lng().toString().substr(0,9);callback.call(this,loc);}});}else{marker.setPosition(center);if(callback!=''&&callback!=undefined){var loc=center.lat().toString().substr(0,9)+','+center.lng().toString().substr(0,9);callback.call(this,loc);}}
var latLngPosition=marker.getPosition();}
function runListeners(callback){google.maps.event.addListener(map,"click",function(event){center=event.latLng;addOneDragableMarker(center,callback);});google.maps.event.addListener(map,"dblclick",function(event){center=event.latLng;addOneDragableMarker(center,callback);});map.disableDoubleClickZoom=true;}
function addDragableMarker(event){if(!poly){var polyOptions={path:new google.maps.MVCArray(),strokeColor:"#000000",strokeOpacity:1.0,strokeWeight:3}
poly=new google.maps.Polyline(polyOptions);poly.setMap(map);}
var path=poly.getPath();path.insertAt(path.length,event.latLng);var markerLoc=new google.maps.Marker({position:event.latLng,map:map});markerLoc.setTitle("#"+path.length);markersArray.push(markerLoc);document.getElementById(polygonCoordinates).value=document.getElementById(polygonCoordinates).value+event.latLng.lat()+","+event.latLng.lng()+"\n";}
function clearOverlays(){if(markersArray){for(i in markersArray){markersArray[i].setMap(null);}
markersArray=[];}}
function runPolygonListeners(callback){google.maps.event.addListener(map,"click",function(event){center=event.latLng;addDragableMarker(event,callback);});}
function resetPolygon(){clearOverlays();poly.setMap(null);poly.setPath(new google.maps.MVCArray());document.getElementById(polygonCoordinates).value="";polygon.setMap(null);}
function createPolygon(){if(poly){var path=poly.getPath();var polyArray=new Array();for(x=0;x<path.getLength();x++){polyArray[x]=new Array(""+path.getAt(x).lat(),""+path.getAt(x).lng());}
polyArray[path.getLength()]=new Array("#ff0000","3","0.6","#0000ff","0.3","Nowy obszra.");if(polygon){polygon.setMap(null);showPolygon(polyArray);}else
showPolygon(polyArray);poly.setMap(null);clearOverlays();}else{alert("Brak danych do stworzenia obszaru.");}}
function createSpecialIcon(iconName){var specialIcon=null;if(iconName){var iconOptions=icons[iconName];var iSize=new google.maps.Size(iconOptions[1],iconOptions[2]);var iStartPoint=new google.maps.Point(iconOptions[3],iconOptions[4]);var iMiddlePoint=new google.maps.Point(iconOptions[5],iconOptions[6]);specialIcon=new google.maps.MarkerImage(iconOptions[0],iSize,iStartPoint,iMiddlePoint);}
return specialIcon;}
function createShadowIcon(iconName){var specialShadow=null;if(iconName){var iconOptions=icons[iconName];if(iconOptions.length>7){if((iconOptions[7]!=null)&&(iconOptions[7]!='')){iSize=new google.maps.Size(iconOptions[8],iconOptions[9]);iStartPoint=new google.maps.Point(iconOptions[10],iconOptions[11]);iMiddlePoint=new google.maps.Point(iconOptions[12],iconOptions[13]);var specialShadow=new google.maps.MarkerImage(iconOptions[7],iSize,iStartPoint,iMiddlePoint);}}else if(icons['commonShadow'].length>0){var iconOptions=icons['commonShadow'];iSize=new google.maps.Size(iconOptions[1],iconOptions[2]);iStartPoint=new google.maps.Point(iconOptions[3],iconOptions[4]);iMiddlePoint=new google.maps.Point(iconOptions[5],iconOptions[6]);var specialShadow=new google.maps.MarkerImage(iconOptions[0],iSize,iStartPoint,iMiddlePoint);}}
return specialShadow;}
function runZoomListeners(){google.maps.event.addListener(map,'zoom_changed',function(){zoomLevel=map.getZoom();if((zoomLevel>=zoomFactorMarkerChange)&&(lastZoom<=zoomFactorMarkerChange)){for(i in markersArray){var iName=geopoints[i][7];var sIcon=createSpecialIcon(iName);var sShadow=createShadowIcon(iName);markersArray[i].setIcon(sIcon);markersArray[i].setShadow(sShadow);}}else if((zoomLevel<=(zoomFactorMarkerChange-1))&&(lastZoom>=(zoomFactorMarkerChange-1))){for(i in markersArray){var iName=geopoints[i][6];var sIcon=createSpecialIcon(iName);var sShadow=createShadowIcon(iName);markersArray[i].setIcon(sIcon);markersArray[i].setShadow(sShadow);}}
lastZoom=zoomLevel;});}
function afterResizeMapDiv(){google.maps.event.trigger(map,'resize');}
function CustomToolTip(map){this.setMap(map);this.map_=map
this.latLngPoint_=null;this.div_=null;}
CustomToolTip.prototype=new google.maps.OverlayView();CustomToolTip.prototype.onAdd=function(){var div=document.createElement('DIV');div.className='specialTooltip';div.style.position="absolute";div.style.visibility="hidden";this.div_=div;var panes=this.getPanes();panes.floatPane.appendChild(div);};CustomToolTip.prototype.draw=function(){var overlayProjection=this.getProjection();if(this.latLngPoint_!=null){var cttPositionPx=overlayProjection.fromLatLngToDivPixel(this.latLngPoint_);this.div_.style.left=cttPositionPx.x+'px';this.div_.style.top=cttPositionPx.y+'px';}}
CustomToolTip.prototype.onRemove=function(){this.div_.parentNode.removeChild(this.div_);this.div_=null;}
CustomToolTip.prototype.hide=function(){if(this.div_){this.div_.style.visibility="hidden";}}
CustomToolTip.prototype.show=function(){if(this.div_){this.div_.style.visibility="visible";}}
CustomToolTip.prototype.setPointPosition=function(latLngPoint){if((this.div_==null)||(this.div_=="")){return false;}else{this.latLngPoint_=latLngPoint;this.draw();return true}}
CustomToolTip.prototype.setHtmlContent=function(html){if((this.div_==null)||(this.div_=="")){return false;}else{this.div_.innerHTML=html;return true;}}
function showTooltip(marker){var wynik=myCustomTooltip.setPointPosition(marker.getPosition());myCustomTooltip.setHtmlContent(marker.tooltip);myCustomTooltip.show();}
