	/* INITIALIZE GOOGLE MAP, SET CENTER, ZOOM, CONTROLS */
	cTest = function(){
		this.zoom1 = 1;
		this.zoom2 = 1;
		this.changeZoom = 9;
		this.toZoom = 11;
		this.maxZoom = 4;
		this.id = 0;
		this.defaultCenter = new GLatLng(49.817492, 15.472962);
		this.defaultZoom = 6;
	};
	var test = new cTest();
	
	var customIcons = [];

	var tIcon = new GIcon();
	tIcon.image = '/images/google_pointer.png';
	tIcon.size = new GSize(20,28);
	tIcon.iconAnchor = new GPoint(10, 28);
	tIcon.infoWindowAnchor = new GPoint(10, 10);
	customIcons["tIcon"] = tIcon;
	var initialize = function() {
			setTimeout('initialize2()',100);
	};
    var initialize2 = function() {
    	if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map_canvas"));
			// set center
			map.setCenter(test.defaultCenter, test.defaultZoom);
			// set controls
			map.addControl(new GLargeMapControl());
			map.enableContinuousZoom();
			map.enableGoogleBar();
			/*map.addControl(new GMapTypeControl());*/	
			locationShow();
			GEvent.addListener(map, 'zoomend',
				function() {
					zoom = map.getZoom();					
					if ( zoom >= test.changeZoom){
						if (test.zoom1 == 0) {
							test.zoom1 = 1;
							test.zoom2 = 0;
							map.clearOverlays();
							locationShow(1);
						};
						
					}
					else {
						if (test.zoom2 == 0) {
							test.zoom2 = 1;
							map.clearOverlays();
							locationShow();
						};
						test.zoom1 = 0;
					};
				}
			);
		};
    };
	/* READ AND PARSE XML FILE WITH LOCATIONS */
	var locationShow = function(id) {
		if (!id) id=0;
		GDownloadUrl("/maps.xml?id="+id, 
			function(data) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				for (var i = 0; i < markers.length; i++) {
					var type = markers[i].getAttribute("type");
					var address = markers[i].getAttribute("address");
					var id = markers[i].getAttribute("id");
					var desc = markers[i].getAttribute("desc");
					//var icon = markers[i].getAttribute("type");
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
											parseFloat(markers[i].getAttribute("lng")));
					var marker = createMarker(point, type, address, id, desc);
					map.addOverlay(marker);
				};
			}
		);
	};
	var showMarkers = function(point, id, lat, lng) {
	 	if (!point) {
			point = new GLatLng(lat,lng);
		};
		if ( map.getZoom() <= test.changeZoom ) {
			map.setCenter(point, test.toZoom);
		}
		else {
			map.panTo(point);
		};
		if ( id == 0) {
			test.zoom2 = 1;
			test.zoom1 = 0;
			map.setZoom(test.defaultZoom);
		};
		map.clearOverlays();
		locationShow(id);
	 };
	/* CREATE MARKER WITH SET OF INSTANCE */
    var createMarker = function(point, type, address, id, desc) {
		var marker = new GMarker(point, customIcons["tIcon"]);
		if (!desc) desc = "";
		var html = "<div class='infobox'><h3>" + address + "</h3> " + desc + "</div>";
		//var html = desc;
		/* MARKER CLICK LISTENER*/
		if ( type == 1) {
			GEvent.addListener(marker, 'click',
				function() {
					showMarkers(point, id);		
				}
			);
		}
		else {
			GEvent.addListener(marker, 'click',
				function() {
					marker.openInfoWindow(html);
				}
			);		
		};
		return marker;
    }
		
	/* FUNCTION WILL FIND LAT,LNG FROM ADDRESS */
	var locationFinder = function() {
		var address;
		var geocoder = new GClientGeocoder();
		address = document.getElementById('address').value;
		geocoder.getLatLng(
			address, 				
			function(point) {
				if (!point) { alert(address + " not found");}
				else {
					map.setCenter(point);
					var marker = createMarker(point,address,point,"",true);
					map.addOverlay(marker);
				}
			}
		  );
	};
	var checkform = function(form) {
		if (form.address.value == "") {
			alert( "Please enter values" );
			return false;
		}
		else {
			if ((form.lat.value == "") || (form.lng.value == "")) {
					locationFinder();
					document.getElementById("alertbox").innerHTML = "Je tato adresa spravna, posunte ikonu ak nie je na spravne miesto"
					return false;					
			}
			return true;
		}
	};
		
