/*
 * @author	W-Mark Kubacki; kubacki@hurrikane.de
 */

var Portal = {
	companies: {},

	getContentForCategory: function(category_id) {
		if(category_id == Portal.currentCategory)
			return;
		Portal.currentCategory = category_id;
		function myCallback(json) {
			if(json['category'] == Portal.currentCategory) {
				$('content').innerHTML = json['head']+json['content'];
				if(json['update_companies']) {
					Portal.companies = {};
					for(var i = 0; json['companies'][i]; i++) {
						company = json['companies'][i];
						Portal.companies[company.id] = company;
					}
				} else {
					Portal.renderMap(json['companies']);
				}
			}
		}
		getJSON('/ggwn/category/'+category_id, {}, myCallback);
	},

	renderMap: function(arr_companies) {
		if(GBrowserIsCompatible()) {
			container = document.getElementById("largemap");
			var map = new GMap2(container);
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			map.addControl(new GOverviewMapControl());
			map.enableContinuousZoom();
			map.enableScrollWheelZoom();
			map.setCenter(new GLatLng(50.875, 10.249), 5, G_NORMAL_MAP);
			for(var i = 0; arr_companies[i]['name']; i++) {
				var pt = new GLatLng(arr_companies[i]['latitude'], arr_companies[i]['longitude']);
				var ov = new GMarker(pt);
				ov.txt = "<b>"+arr_companies[i]['name']+"</b><br />"+arr_companies[i]['city'];
				GEvent.addListener(ov, "click", function() {
					this.openInfoWindowHtml(this.txt);
				});
				map.addOverlay(ov);
			}
		}
	},

	showInSeparateMap: function(company_id) {
		if(company_id in Portal.companies) {
			myLightWindow.activateWindow({
				href: Portal.companies[company_id]['map_goto'],
				title: Portal.companies[company_id]['name'],
				type: 'external',
				hideGalleryTab: true,
				showGalleryCount: false,
				height: 390,
				width: 500
			});
		}
	},

	openInWindow: function(company_id) {
		if(company_id in Portal.companies) {
			myLightWindow.activateWindow({
				href: Portal.companies[company_id]['goto'],
				title: Portal.companies[company_id]['name'],
				type: 'external',
				hideGalleryTab: true,
				showGalleryCount: false
			});
		}
	}
}

Portal.currentCategory = 0;
Event.observe(window, 'resize', function() {
	myLightWindow.initialize();
});