function newMarker(markerLocation, markerId ,markerName, address, zipcodecity, phoneno, sellingtypes, type, uri, headerIcons, icon5, investbank,event) {
	var marker;
	
	var icon0=new GIcon()
	icon0.image=icon5;
	icon0.iconSize=new GSize(15, 14)
	icon0.iconAnchor=new GPoint(7, 7)
	icon0.infoWindowAnchor=new GPoint(7, 7)	
	
 	marker=new GMarker(markerLocation, {title:markerName, icon:icon0});
	GEvent.addListener(marker, 'click', function() {
	 	var s = '<span>';
	 	for(i=0;i < headerIcons.length; i++) {
	 		s = s+ '<img src="'+headerIcons[i].icon+'"></img>';
	 	}
	 	s = s+ '</span><br/>';
	 	s = s + '<div class="apsName">' + markerName + '</div>';
	 	s = '<span>' + s + address + '<br />'
	 	+ zipcodecity + '<br />'
	 	+ 'Tel. '+phoneno + '<br /></span><div class=\"selLab'
	 	if(investbank != 'true'){
	 		s = s + 'No'
	 	}
	 	s = s + '\">'
	 	s = s + '<span style="float:left;">Salon sprzedaje:</span>'
	 	if(investbank == 'true'){
	 		s += '<span style="float:right;color:#025EC3;">Pytaj także o produkty</span>'
	 	}
	 	s += '<br/>'	 	
	 	s += sellingtypes
	 	if ( uri != 'null' ) 
	 		s = s + '<br /><br /><a href="' + uri + '">Przejdź na stronę Autoryzowanego Punktu Sprzedaży</a><br />'
	 	s += '</div>';
	 	s = '<div style="text-align:left;">' + s + '</div>'
	 	marker.openInfoWindowHtml(s);	 	
	});
	return marker;
}

function showInfoOnClick(args) {
	cluster.defaultClickAction=function(){
		map.setCenter(args.clusterMarker.getLatLng(), map.getBoundsZoomLevel(args.clusterMarker.clusterGroupBounds))
		delete cluster.defaultClickAction;
	}
	var html='<div style="text-align:left;"><h4>Lokalizacje('+args.clusteredMarkers.length+'):</h4>';
	for (i=0; i<args.clusteredMarkers.length; i++) {
		html+='<a href="javascript:cluster.triggerClick('+args.clusteredMarkers[i].index+')">'+args.clusteredMarkers[i].getTitle()+'</a><br />';
	}
	html+='<br /><a href="javascript:void(0)" onclick="cluster.defaultClickAction()">Przybliż</a> aby zobaczyć wszystkie punkty APS w tej okolicy.</div>';
	args.clusterMarker.openInfoWindowHtml(html);
}

function ic(){
	var iconOptions = {};
	iconOptions.width = 32;
	iconOptions.height = 28;
	iconOptions.primaryColor = "#00FF00";
	iconOptions.label = $count.toString();
	iconOptions.labelSize = 16;
	iconOptions.labelColor = "#000000";
	iconOptions.shape = "roundrect";
	return MapIconMaker.createFlatIcon(iconOptions);
}

function initialize(f) {
	map = new GMap2(document.getElementById("f0:map_canvas"))
	map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 28)));        
	map.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 7)));
	cluster=new ClusterMarker(map, {clusterMarkerTitle:'Znaleziono Autoryzowanych Punktów Sprzedaży: %count.' , clusterMarkerClick:showInfoOnClick });
	
	if ( f == 1 ){
		getMarkers(0);
	}else if ( f == 2 ){
		getMarkers(1);
	}else if ( f == 3 ){
		getMarkers(2);
	}else if ( f == 4 ){
		getMarkers(3);
	}
}

function clear(){
	cluster.removeMarkers()
	markersArray.length = 0
}

function getMarkers(type1, event){
    if (GBrowserIsCompatible()) {
		var xmlHttp = createXMLHttp();
		s = url;
		s = s.replace( ':t1', type1);		
		xmlHttp.open("get", s, false);
		xmlHttp.send(null);
		
		document.getElementById('f0:apsType').value=type1;
		A4J.AJAX.Submit('_viewRoot','f0',event,{'parameters':{'f0:clear':'f0:clear'},'actionUrl':+window.location.pathname});					
			
		if (xmlHttp.readyState == 4) {
			var response = eval( "(" + xmlHttp.responseText + ")" )
			clear();			
			for(i=0;i < response.apss.aps.length; i++) {
				var aps =  response.apss.aps[i]
				tab = aps.coords.split(',');
				var marker = newMarker(new GLatLng( tab[0], tab[1] ), aps.id, aps.name, aps.address, aps.zipcodecity, aps.phoneno, aps.sellingtypes, aps.mobile, aps.uri, aps.headerIcons, aps.icon, aps.investbank);
				markersArray.push( marker );
			}
			cluster.addMarkers( markersArray );
			cluster.fitMapToMarkers();
			map.savePosition();
		}
     }
}

function pause(numberMillis){
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true){
		now = new Date();
		if (now.getTime() > exitTime)
		return;
	}
} 

function hideAjaxLoader(){
	document.getElementById('ajaxloader').style.visibility='hidden';
	document.getElementById('f0:map_canvas').style.visibility='visible';
}

function showAjaxLoader(){
	document.getElementById('ajaxloader').style.visibility='visible';
	document.getElementById('f0:map_canvas').style.visibility='hidden';
}
