function ShowInfoBlock(e) {
	el = this.up("li");
	var oldEl = $(pageConfig.activeTab);
	if(el.id !== oldEl.id) {
	oldEl.removeClassName(oldEl.id); oldEl.addClassName("tabWithout"); $(oldEl.id.substring(3, oldEl.id.length)).hide();
	el.addClassName(el.id); el.removeClassName("tabWithout"); $(el.id.substring(3, el.id.length)).show();
	pageConfig.activeTab = el.id;
	e.stop();
	}
}
			
function initTabLinks(aLinks) { for(var i = 0; i < aLinks.length; i++) { Event.observe(aLinks[i], "click", ShowInfoBlock); } }
function initTabs(aTabs) { var cElId; for(var i = 0; i < aTabs.length; i++) { if (aTabs[i].id != ("tab" + pageConfig.standardContent)) { cElId = aTabs[i].id.substring(3, aTabs[i].id.length); if ($(cElId)) { $(cElId).hide(); } } } }

var QLIKCARD = {
	hfId : 'frQlikHiddenContent'
	, init : function() {
		var lnks = $$("a.fnBC").each(function(el, i) {
			Event.observe(el, 'click', function(e) {  
				e.stop();
				var elType = this.getAttribute("type");
				if (elType === 'print') { return QLIKCARD.print(); }
				else { return QLIKCARD.ex(elType.substring(2, elType.length).toLowerCase()); }
			}); 
		});
	}
	, print : function() {
		QLIKMSG.Wait(pageConfig.dlgWaitMsg);
		QLIKCARD.showInHiddenFrame('/info/' + pageConfig.fn + '/?print-' + pageConfig.lang.toLowerCase(), function() { 
			QLIKMSG.hide();
			var w = ($(QLIKCARD.hfId).contentWindow || window.frames[QLIKCARD.hfId]);
			w.focus(); w.print();
		});
		return false;
	}
	, ex : function(type) {
		QLIKMSG.Wait(pageConfig.dlgWaitMsg, 3000);
		switch (type) {
			case 'pdf' : document.location.href = 'http://images.qlikworld.com/qlik/business-card/makepdf.asp?c=' + pageConfig.country + '&l=' + pageConfig.lang.toLowerCase() + '&fn=' + pageConfig.fn; break;
			case 'vcf' : document.location.href = '/info/' + pageConfig.fn + '/card.vcf'; break;
		}
		return false;
	}
	, showInHiddenFrame : function(url, fnLoad) {
		QLIKCARD.prepareHiddenFrame();
		var oHf = $(QLIKCARD.hfId);
		Event.stopObserving(oHf, 'load');
		Event.stopObserving(oHf, 'unload');
		if (fnLoad) { Event.observe(oHf, 'load', fnLoad); Event.observe(oHf, 'unload', function() { }); }
		oHf.src = url;
	}
	, prepareHiddenFrame : function () {
		if (!$(QLIKCARD.hfId)) {
			var oBody = $$("body")[0];
			oBody.insert('<iframe id="' + QLIKCARD.hfId + '" src="about:blank" style="width:1px;height:1px;"></iframe>');
		}
	}
};

var QLIKMAP = {
	oSnippetTemp : null
	, oMap : null, oCMarker : null, oInfoWindow : null, markerInfoType : ''
	, zoomLevel : 14, elMap : 'MapZone'
	, isInitialized : false
	, init : function() {
		if (google && google.maps) {
			var mapOptions = {
				zoom: QLIKMAP.zoomLevel
				, mapTypeId: google.maps.MapTypeId.ROADMAP
				, zoomControl: true
				, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL }
			}
			QLIKMAP.oMap = new google.maps.Map($(QLIKMAP.elMap), mapOptions);
			var mc = pageConfig.mapConfig;
			if (mc && mc.defaultFeature && mc.defaultFeature !== '' && mc[mc.defaultFeature] === true) { QLIKMAP.markerInfoType = mc.defaultFeature; }
			QLIKMAP.showCompanyMarker();
			if (pageConfig.isAdult == 0) { QLIKMAP.showAd(); }
		}
		$$("body")[0].insert('<div id="elQLIKMAPSnippet_Temp" style="display:none;">&nbsp;</div>');
		QLIKMAP.oSnippetTemp = $("elQLIKMAPSnippet_Temp");
		isInitialized = true;
	}
	, getMarkerInfoHtml : function(parameters) {
		parameters = parameters || {};
		var url = "/include/snippets/qlikmap-" + QLIKMAP.markerInfoType + '_dev.asp?t=' + (new Date()).getTime();
		new Ajax.Request(url, { method: (parameters.method || 'get'), onSuccess : QLIKMAP.onMarkerInfoHtmlComplete, internalParameters : parameters, onError : function() { alert('Error'); } });
	}
	, onMarkerInfoHtmlComplete : function(r) {
		var sContent = r.responseText;
		sContent.evalScripts();
		QLIKMAP.oSnippetTemp.update(sContent);
		if (initQLIKMAPSnippet) { initQLIKMAPSnippet({ map: QLIKMAP.oMap, marker : QLIKMAP.oCMarker, infoWindow : QLIKMAP.oInfoWindow }); }
	}
	, showMarkerinfoWindow : function() {
		try { disposeQLIKMAPSnippet(); } catch (e) {}
		if (QLIKMAP.markerInfoType !== '') {
			if (QLIKMAP.oInfoWindow) { QLIKMAP.oInfoWindow.close(); QLIKMAP.oInfoWindow = null; }
			QLIKMAP.oInfoWindow = new google.maps.InfoWindow({position : QLIKMAP.oCMarker.getPosition(), content : '<div style="text-align:center"><img src="/images/wait.gif" alt="" /></div>'});
			QLIKMAP.oInfoWindow.open(QLIKMAP.oMap);
			QLIKMAP.getMarkerInfoHtml();
		}
	}
	, showCompanyMarker : function() {
		if ($(QLIKMAP.elRouteDetails)) { $(QLIKMAP.elRouteDetails).hide(); }
		QLIKMAP.clearOverlays();
		if (!QLIKMAP.oCMarker) { 
			QLIKMAP.oCMarker = new google.maps.Marker({position : new google.maps.LatLng(pageConfig.lat, pageConfig.long)});
			google.maps.event.addListener(QLIKMAP.oCMarker, 'click', QLIKMAP.showMarkerinfoWindow);
			QLIKMAP.oCMarker.setMap(QLIKMAP.oMap);
			QLIKMAP.oMap.setCenter(QLIKMAP.oCMarker.getPosition());
			QLIKMAP.oMap.setZoom(QLIKMAP.zoomLevel);
			if (QLIKMAP.markerInfoType !== '') { google.maps.event.trigger(QLIKMAP.oCMarker, 'click'); }
		}
	}
	, showAd : function() {
		var adUnitDiv = document.createElement('div');
		var adUnitOptions = {
			format: google.maps.adsense.AdFormat.VERTICAL_BANNER 
			, position: google.maps.ControlPosition.LEFT
			, map: QLIKMAP.oMap
			, visible: true
			, publisherId: 'pub-4003496079805724'   
			, channel : '9000196480'
		};
		var adUnit = new google.maps.adsense.AdUnit(adUnitDiv, adUnitOptions); 
	}
	, clearOverlays : function() {
		if (QLIKMAP.oCMarker) { QLIKMAP.oCMarker.setMap(null); QLIKMAP.oCMarker = null; }
		if (QLIKMAP.oInfoWindow) { QLIKMAP.oInfoWindow.close(); QLIKMAP.oInfoWindow = null; }
	}
};

Event.onDOMReady(function() {
	if (pageConfig) {
		if (qwpvwbc) { qwpvwbc(pageConfig.country,pageConfig.ii,'0','0','0','0'); }
		initTabLinks($$("#BusinessCardTabs_Line1 a.inPageClick"));
		initTabLinks($$("#BusinessCardTabs_Line2 a.inPageClick"));
		initTabs($$("#BusinessCardTabs_Line1 > li"));
		initTabs($$("#BusinessCardTabs_Line2 > li"));
		QLIKCARD.init();
		// Google-Maps integration if needed
		if ($("MapZone")) { QLIKMAP.init(); }
	}
});
