var addZemljevid=Class.create({
	initialize: function(){
		this.map=new NSZemljevid("addZemljevid");
		this.map.addPanZoomControl(NS_PANZOOM_TYPE2);
		this.map.addKeyboardNavigation();
		var url="/administracija/lokacije/";
		var mapAjax=new Ajax.Request(url,{onComplete: this.getLocations.bind(this)});
	},
	getLocations: function(request){
		var table=eval("("+request.responseText+")");
		var stevec=0;
		while (table[stevec]) {
			var position=new NSZemljevid.LonLat(table[stevec]["coord_x"],table[stevec]["coord_y"]);
			var marker=new NSZemljevid.Marker(position);
			marker.addEventListener("mouseover",this.mouseOver);
			marker.addEventListener("mouseout",this.mouseOut);
			marker.addEventListener("click",this.popUp,{data:table[stevec]});
			this.map.addMarker(marker);
			stevec++;
		}
	},
	mouseOver: function(event){
		var marker=event.object;
		marker.setSelected(true);
	},
	mouseOut: function(event){
		var marker=event.object;
		marker.setSelected(false);
	},
	popUp: function(event){
		var marker=event.object;
		var content="<br /><div><strong>"+this.data.name+"</strong></div><div>"+this.data.address+"</div><div>"+this.data.zip+" "+this.data.city+"</div>";
		marker.openPopup(content);
		if ($("zemljevid_add").className=="zemljevid_add") {
			$("zemljevid_location").value=this.data.name;
			$("zemljevid_id").value=this.data.id;
		}
	},
	addLocation: function(){
		$("zemljevid_location").value="";
		$("zemljevid_id").value="";
		$("zemljevid_add").className="zemljevid_add_hidden";
		$("zemljevid_form").className="zemljevid_form_visible";
		$("zemljevid_example").className="zemljevid_example_visible";
		$("zemljevid_back").className="zemljevid_back_visible";
		$("zemljevid_example").innerHTML="(Izberite točko na zemljevidu za vnos nove lokacije!)";
		this.map.closePopup();
		this.map.addEventListener("click",this.addPosition,{map:this.map,last_marker:null});
	},
	addPosition: function(event){
		var coord=event.object.getCoords(event.xy,NSZemljevid.LONLAT_COORD);
		$("zemljevid_coordx").value=coord.lon;
		$("zemljevid_coordy").value=coord.lat;
		var position=new NSZemljevid.LonLat(coord.lon,coord.lat);
		var marker=new NSZemljevid.Marker(position);
		this.map.addMarker(marker);
		if (this.last_marker!=null) {
			this.map.removeMarker(this.last_marker);
		}
		this.last_marker=marker;
	},
	back: function(){
		$("zemljevid_coordx").value="";
		$("zemljevid_coordy").value="";
		$("zemljevid_add").className="zemljevid_add";
		$("zemljevid_form").className="zemljevid_form";
		$("zemljevid_example").className="zemljevid_example";
		$("zemljevid_back").className="zemljevid_back";
		var marker=this.map.map.events.listeners.click[6].obj.last_marker;
		this.map.removeMarker(marker);
		this.map.map.events.listeners.click[6].obj=this.map;
		this.map.removeEventListener("click",this.addPosition);
	},
	search: function(){
		var searchText=$("zemljevid_naslov").value+" "+$("zemljevid_kraj").value;
		if (searchText.length>1) {
			var url="http://zemljevid.najdi.si/servlet/mapImage";
			var params={};
			params['id']="m3";
			params['zoom']=5;
			params['width']=200;
			params['height']=200;
			params['q']=searchText;
			params['resultType']="json";
			params['method']="addMap.showMarker";
			var searchAjax=url+"?"+Object.toQueryString(params);
			if (this.script!=null) {
				document.body.removeChild(this.script);
			}
			this.script=document.createElement('script');
			this.script.src=searchAjax;
			document.body.appendChild(this.script);
		}
	},
	showMarker: function(coord){
		var position=new NSZemljevid.GK(coord.x,coord.y);
		if (this.map.map.events.listeners.click[6].obj.last_marker!=null) {
			this.map.removeMarker(this.map.map.events.listeners.click[6].obj.last_marker);
		}
		this.map.map.events.listeners.click[6].obj.last_marker=new NSZemljevid.Marker(position);
		this.map.addMarker(this.map.map.events.listeners.click[6].obj.last_marker);
		this.map.setCenter(position,11);
		var coordinate=this.map.getCenter(NSZemljevid.LONLAT_COORD);
		$("zemljevid_coordx").value=coordinate.lon;
		$("zemljevid_coordy").value=coordinate.lat;
	},
	searchLocation: function(){
		if ($("zemljevid_location").value.length>0) {
			var markers=this.map.getMarkers();
			for (var counter=0;counter<markers.length;counter++) {
				if (markers[counter].events.listeners.click[0].obj.data.name.indexOf($("zemljevid_location").value)>=0) {
					this.map.closePopup();
					$("zemljevid_location").value=markers[counter].events.listeners.click[0].obj.data.name;
					$("zemljevid_id").value=markers[counter].events.listeners.click[0].obj.data.id;
					var position=new NSZemljevid.LonLat(markers[counter].ll.lon,markers[counter].ll.lat);
					this.map.setCenter(position,11);
					return;
				}
			}
		}
	}
});