Ext.ns('component');

component.calendar = new function() {
	this.next = function(month, year) {
		Ext.Ajax.request({
			url: 'ajax.php',
			success: component.calendar.showCalendar,
			params: {
				comp: 'com_calendar',
				action: 'getCalendar',
				month: month,
				year: year
			}
		});
	};
	
	this.back = function(month, year) {
		Ext.Ajax.request({
			url: 'ajax.php',
			success: component.calendar.showCalendar,
			params: {
				comp: 'com_calendar',
				action: 'getCalendar',
				month: month,
				year: year
			}
		});
	};
	
	this.showCalendar = function(response) {
		response = Ext.decode(response.responseText);
		
		if(response.content != null) {
			var calendar = Ext.get('component-calendar');
			calendar.update(response.content);
		}
	};
	
	this.loadMap = function(title, street, zip, city) {
		if(street != '' && zip != '') {
			if (GBrowserIsCompatible()) {
				var map_canvas = document.getElementById("event-map");
				var map = new GMap2(map_canvas);
				var geocoder = new GClientGeocoder();
				var marker = null;
				var city_x = "+"+city;
				var street_x = street.replace(/ /, "+");
				
				var route_link = "http://maps.google.de/maps?f=d&source=s_d&saddr=&daddr="+ street_x +",+"+ zip + city_x +"&hl=de&z=13";
				
				map.addControl(new GSmallMapControl());
				
				geocoder.getLatLng(street + " " + zip + " " +city,
					function(point) {
						if(point) {
							marker = new GMarker(point);
							map.setCenter(point, 13);
							map.addOverlay(marker);
							
							GEvent.addListener(marker, "click", function() {
			  					marker.openInfoWindowHtml("<p class='map-window-title'>"+ title +"</p><p class='map-window-adress'>"+ street +"<br/>"+ zip +" "+ city +"</p><p class='map-window-link'><a href='"+ route_link +"' target='_blank'>Route hierher</a></p>");
			  				});
						} else {
							map.setCenter(new GLatLng(49.892548, 8.943069), 13);
						}
					}
				);
				
				
			}
		}
	};
};
