var geocoder, map, infowindow, openedSubList, infowindows = [], markers = [], defaultMarkerZoom, currentGroup;var icons = {    'normal'   : 'drewpol_marker_normal.png',    'snormal'  : 'shadow-drewpol_marker_normal.png',    'partner'  : 'drewpol_marker_partner.png',    'spartner' : 'shadow-drewpol_marker_partner.png'};window.addEvent('domready', function(){	var iconPath = getPath() + 'static/img/';	if ( $('googleMap') === null )        return;    // default zoom in case of shops list type    if ( $('googleMap').get('rel') == 'distributor' ) {        var latLng      = new google.maps.LatLng(50, 14);        var defaultZoom = 4;    } else {        var latLng      = new google.maps.LatLng(52.025459, 19.204102);        var defaultZoom = 6;    }    if ( $('googleMap').get('rel') == 'studio' ) {        var options = {          zoom:           defaultZoom,          scrollwheel: false,           center:         latLng,          mapTypeId:      google.maps.MapTypeId.ROADMAP,          mapTypeControl: false,          scaleControl:   false,          draggable:      false,          navigationControl: true          //navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}      };    }    else {      var options = {          zoom:           defaultZoom,          scrollwheel: true,           center:         latLng,          mapTypeId:      google.maps.MapTypeId.ROADMAP,          mapTypeControl: false,          scaleControl:   false,          draggable:      true,          navigationControl: true          //navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}      };    }    map      = new google.maps.Map($('googleMap'), options);    geocoder = new google.maps.Geocoder();    // markers to info boxes binding    if ( pointsList && pointsList.length ) {        for ( var i = 0; i < pointsList.length; ++i ) {            var point  = pointsList[i];            var marker = new google.maps.Marker({                map:      map,                position: new google.maps.LatLng(point.lat, point.lng)            });                        if ( point.prt ) {            	marker.icon   = iconPath + icons.partner;            	marker.shadow = iconPath + icons.spartner;            } else {            	marker.icon   = iconPath + icons.normal;                marker.shadow = iconPath + icons.snormal;            }                        markers[point.id] = marker;            attachInfowindow(marker, point.id);        }    }        google.maps.event.addListener(map, 'click', function() {        if ( infowindow ) {            infowindow.close();            infowindow = null;        }    });            // voivodship / country bindings    if ( $('voivodshipList') ) {        var list    = $('voivodshipList').getElements('a');        var preLoc  = 'Polska, ';        var locZoom = 8;     } else if ( $('countryList') ) {        var list    = $('countryList').getElements('a');        var preLoc  = '';        var locZoom = 6;    }    if ( list ) {        list.addEvent('click', function(e){        	if (this.get('id') == 'group_17') {        		var locZoom = 3;        	} else {        		var locZoom = 6;        	}            var e = new Event(e);            e.preventDefault();            googleMapGeolocalize(preLoc + this.innerHTML, locZoom);            showSubList(this.get('id'));            $('cityText').setStyle('display', '');        });    }        // city bindings    if ( $('cityList') ) {        var cityList    = $('cityList').getElements('a');        var cityLocZoom = 11;                 cityList.addEvent('click', function(e){        	var relPoint;            var e = new Event(e);            e.preventDefault();            if ( this.get('rel') ) {            	var r = this.get('rel').split('|');            	if ( r.length > 1 ) {            		relPoint = new google.maps.LatLng(r[0], r[1]);            	}            }                        if ( relPoint ) {                map.setCenter(relPoint);                map.setZoom(cityLocZoom);            } else {            	googleMapGeolocalize(currentGroup + ", " + this.innerHTML, cityLocZoom);            }        });    }        if ( defaultMarkerZoom ) {        var id = defaultMarkerZoom.id;        zoomMarker(id, defaultMarkerZoom.zoom);        if ( defaultMarkerZoom.showWindow ) {        	infowindow = infowindows[id];            (function(){ infowindow.open(map, markers[id]); }).delay(1000);        }    }    }); var attachInfowindow = function(marker, id){    var content = $('shop_' + id) ? $('shop_' + id).innerHTML : '';    var currentInfowindow = new google.maps.InfoWindow({        content: content    });    infowindows[id] = currentInfowindow;    google.maps.event.addListener(marker, 'click', function() {        if ( currentInfowindow != infowindow ) {            if ( infowindow ) {                infowindow.close();            }            currentInfowindow.open(map, marker);            infowindow = currentInfowindow;        }    });}var zoomMarker = function(id, zoom){    map.setCenter(markers[id].getPosition());    if ( !zoom ) {        var zoom = 16;    }    map.setZoom(zoom);}var showSubList = function(id){    var currentSubList = id + '_content';    if ( openedSubList == currentSubList ) {        return;    }        if ( openedSubList ) {        $(openedSubList).setStyle('display', 'none');    }    if ( currentSubList ) {        $(currentSubList).setStyle('display', '');    }    currentGroup  = $(currentSubList).get('rel');    openedSubList = currentSubList;}var googleMapGeolocalize = function(address, zoom){    if ( address && geocoder) {        geocoder.geocode( {'address': address}, function(results, status) {            if (status == google.maps.GeocoderStatus.OK) {                var loc = results[0].geometry.location;                map.setCenter(loc);                map.setZoom(zoom);            } else {                alert("Geocode was not successful for the following reason: " + status);            }        });    }    }
