var local_info_widget;
var bShowWidgets = true;
var bShowInfoBox = true;

// zeigt die Karte für den entsprechenden Store an
function showMap()
{
	var pos;	
	var storetype = parseInt(oActiveStoreObject['feature6']);
	
	if ($('searchmapmain')) {
		$('searchmapmain').innerHTML = '';
		
		if (!isValidGeoQuality()) {
			var wrap = new Element('div', {id:'nomap'});
			var label = new Element('div').update(messages['noMapAvailable']);
			wrap.appendChild(label);
			$('searchmapmain').appendChild(wrap); 
		}
		else {
			mapviewer = new MultimapViewer($('searchmapmain'));
			mapviewer.removeAllOverlays();
			mapviewer.addEventHandler('changeZoom', checkAerialCoverage);
			
			// die Karten-Typen für das Widget setzen
			if (isHybridMapForCountry()) {
				var mapTypes = new Array();
					mapTypes.push(MM_WORLD_MAP);
					mapTypes.push(MM_WORLD_AERIAL);
				mapviewer.addWidget(new MMMapTypeWidget(mapTypes));
				//mapviewer.addWidget(new MMMapTypeWidget());
			}
			if (countryCode == "cn") {
				/*
				if (store_locator_language == "cn") {
					MMDataResolver.setDataPreferences(MM_WORLD_MAP, new Array(914, 913));
				} else {
					MMDataResolver.setDataPreferences(MM_WORLD_MAP, new Array(913, 914));	
				}
				*/
				
				var my_dp = (store_locator_language == "cn") ? [ 914, 913 ] : [ 913, 914 ]; 
				var dp = MMDataResolver.getDefaultDataPreferences(MM_WORLD_MAP); 
				
				for (var i = 0; i < dp.length; i++) { 
					for (var j = 0; j < my_dp.length; j++) { 
						if (my_dp[j] == dp[i]) continue; 
					} 
					my_dp.push(dp[i]); 
				}
				MMDataResolver.setDataPreferences(MM_WORLD_MAP, my_dp);
			}
			
			if (oActiveStoreObject && oActiveStoreObject.point) {
				// Create an MMLatLon Instance
				pos = new MMLatLon(oActiveStoreObject.point.lat, oActiveStoreObject.point.lon);			
				mapviewer.goToPosition(new MMLocation(pos, 15));
			} else {
				mapviewer.goToPosition(new MMLocation(new MMLatLon( 42.3508, -71.0717 ), 5));
			}
			mapviewer.redrawMap();
			mapviewer.setOptions({units: distance_unit});
		
			var icon = new MMIcon('images/red-circle.png');
				icon.iconSize = new MMDimensions( 37, 37 );
				icon.iconAnchor = new MMPoint( 18, 18 );
				icon.infoBoxAnchor= new MMPoint(4, 10);	
			var marker = mapviewer.createMarker(pos, {'label': 'Map centre', 'icon': icon});
		
			if (bShowInfoBox) {
				var html  = "<h1>" + getLangLayer(oActiveStoreObject, 'bizname') + "</h1>";
					html += "<p>" + getAddress(oActiveStoreObject) + "</p>";
					
				var infoBoxClass = "";
				switch (parseInt(oActiveStoreObject['feature6'])) {
					case 1:
						infoBoxClass = "performance-infobox";
					break
					case 2:
						infoBoxClass = "originals-infobox"
					break;
					default:
						infoBoxClass = "retail-infobox";
					break;
				}
				
				marker.setInfoBoxContent(html, {className: infoBoxClass});
				marker.openInfoBox();
			}
		
			if (bShowWidgets==true) {
				var widget = new MMPanZoomWidget(new MMBox(10, 10, undefined, undefined),'NewPanZoomWidget',true);
				mapviewer.addWidget(widget);
				if (countryCode.toLowerCase() != "cn") {
					mapviewer.addWidget(getLocalInfoWidget());
				}
				mapviewer.setAllowedZoomFactors(3, 18);
			}
			
			var zoomFactor = 15;
			if (opener && opener.mapviewer) {
				zoomFactor = opener.mapviewer.getZoomFactor();
			}
			mapviewer.setZoomFactor(zoomFactor);			
		}
	}
	showOverlay(-1);	
}


function getLocalInfoWidget()
{
	header = "useful local points";
	datasources = 'mm.poi.global.general.parking,mm.poi.global.general.metrostation,mm.poi.global.general.railwaystation,mm.poi.global.general.atm,mm.poi.global.premium.wifi,mm.poi.global.general.cinema,mm.poi.global.general.sportscenter';
	position = undefined;
	local_info_widget = new MMLocalInfoWidget(datasources, header, position);
	local_info_widget.toggleMinimized(true);
	return local_info_widget;
}


// oeffnet den map2mobilelayer
function showMap2Mobile(sTarget)
{
	if (sTarget.length > 0) {
		closeMap2Mobile();
		var overlay = new Element('div', {id:'searchmapmain-overlay'});
			var wrap = new Element('div', {id:'searchmapmain-overlay-contentwrap'});
				wrap.appendChild(new Element('div', {id:'searchmapmain-overlay-close'}).update('<a href="javascript:closeMap2Mobile();" class="btn"><span><span>'+labels["close"]+'</span></span></a>'));
				var iFrame;
				if (sTarget == 'de') {
					iFrame  = "<iframe allowTransparency='true' src='http://www.multimap.com/clients/content.cgi?client=adidas_mob_ de&lang=de&page=mm2m_submit2&url=http%3A//clients.multimap.com/clients/browse.cgi%3Fclient=adidas_mob_de%26f_id%3D" + oActiveStoreObject['id'] + "' name='mapToMobileIFrameContainer' width='380' marginwidth='0' height='200' marginheight='0' scrolling='no' frameborder='0'></iframe>";
				} else {
					iFrame  = "<iframe allowTransparency='true' src='http://clients.multimap.com/clients/content.cgi?client=adidas_12_mob_us&lang=us&page=mm2m_submit2&url=http%3A//clients.multimap.com/clients/browse.cgi%3Fclient=adidas_12_mob_us%26f_id%3D" + oActiveStoreObject['id'] + "' name='mapToMobileIFrameContainer' width='380' marginwidth='0' height='200' marginheight='0' scrolling='no' frameborder='0'></iframe>";
				}
				wrap.appendChild(new Element('div', {id:'searchmapmain-overlay-content'}).update(iFrame));
			overlay.appendChild(wrap);
		$('searchmapmain').appendChild(overlay);
	}
}


function closeMap2Mobile()
{
	if ($('searchmapmain-overlay') && $('searchmapmain')) {
		$('searchmapmain').removeChild($('searchmapmain-overlay'));	
	}
}

function sendToFriend()
{
	closeMap2Mobile();
}
