/**
 * Worldmap
 *
 * @author Daniel Finck
 */

$(document).ready(function() {

	//var googleKmlPath = 'worldmap_location.kml';
	var itemLang = '1';
	var snipLock = '1';
	var sTempXmlUrl = "worldmap.xml"
	
	//REMOVE THIS WHEN GOING LIVE!!
	sTempXmlUrl += "?nocache="+(new Date()).valueOf();
	
	
	var flashvars = {
	  xmlpath: sTempXmlUrl,
	  filename: "worldmap_v44.swf"
	};
	var params = {
	  wmode: "transparent",
	  menu: "false",
	  scale: "noscale",
	  salign: "tl"
	};
	var attributes = {};
	
	jQuery("#visualflashmap").append("<div id='worldmap'></div>");
	jQuery("#worldmap").append(jQuery("#visualflashmap").children(":not(#worldmap)"));
	swfobject.embedSWF("worldmap_loader.swf", "worldmap", "619", "250", "8.0.0","expressInstall.swf", flashvars, params, attributes);
	
	$(".flashJump").each(function() { 
		$(this).click ( function () {
		
			var sDestId = $(this).attr("destid");
			makeCall(sDestId);
			return false;
		});
    });
	
	$("quickaccess").show();
});
			
//Fuellt fehlende Nullen im key auf
function addZeroToKey(key,places){
	var dif = places - key.length;
	var tempKey = '';

	if(dif > 0){
		for (var index = 0; index < dif; index++) {
			tempKey += '0';
		}
		if(places == 15){
			key = key+tempKey;
		}
		else{
			key = tempKey+key;
		}
	}
	return key;
}

//Convertiert eine uebergebene Location ID 5 stellig
function convertValueToFlashId(location){
	location = addZeroToKey(location,5);
	return location;
}

//Convertiert ein vom flash kommenden Wert so das er wieder mit dem im Drop Down stehenden
//Werten uebereinstimmt. Ueber das Flag wird gesteuert wie der Key zerlegt werden muss.
//Ist es ein 15 stelliger Key von str2 (country ID) so sind die ersten 5 Stellen nur wichtig der Rest kann
//vernachlaessigt werden.
//Ist es ein 15 stelliger Key von str3 (municipality ID) so sind die ersten 5 Stellen zu vernachl&#228;ssigen. Die
//naechsten 5 Stellen Region ID und die letzten 5 Stellen Municipality ID
function convertFlashIdToValue(location,flag){

	var countryId = 0;
	var municiId = 0;
	var regionId = 0;
	var mixId = 0;//besteht region ID und municipality ID
	var i = 0;

	switch(flag) {
		case 'country':
			countryId = location.substring(0,5);
			i = countryId.search(/[1-9]/);
			countryId = countryId.substring(i);
			return (countryId);
		break;

		case 'munici':
			 mixId = location.substring(5);
			 regionId = mixId.substring(0,5);
			 municiId = mixId.substring(5);

			 i = regionId.search(/[1-9]/);
			 regionId = regionId.substring(i);

			 i = municiId.search(/[1-9]/);
			 municiId = municiId.substring(i);

			 return(regionId + '_' + municiId);
		break;

		default:
		break;
	}
	return location;
}

//Die Funktion wird vom Flash aufgerufen wenn es fertig geladen ist.
function setFinishFlagWorldMapFlash(){
	finishWorldMap = 1;
}


//Die Funktion prueft ob die Variable finishWorldMap = 1 ist. Die Varibale finishWorldMap gibt an ob
//das Flash schon geladen wurde. Solange die Variable finishWorldMap nicht gleich 1 ist wird kein
//weiterer Code ausgef&#252;hrt. Wird die Funktion mehr als 15 ausgerufen wird eine Fehlermeldung
//ausgegeben.

var maxSleepLoadFlashCalls = 15;
function show_specialregion(location, dummy, sniploc){
	if(sniploc == 'false_onload'){
		setFinishFlagWorldMapFlash();
		dummyShow_specialregion(location, sniploc);
	}
	else{

		if(maxSleepLoadFlashCalls != 0){
			if(finishWorldMap == 1){
				maxSleepLoadFlashCalls = 15;
				dummyShow_specialregion(location, sniploc);
				//fillhiddeninput();
			}
			else{
				maxSleepLoadFlashCalls--;
				window.setTimeout('show_specialregion("'+ location +'", null, "'+ sniploc +'")', 1000);
			}
		}
		else{
			alert('Couldn\'t load world map flash!');
		}
	}
}


var finishWorldMap = 0;//Varibale wird vom Flash mit hilfe der Funktion setFinishFlagWorldMapFlash() auf 1 gesetzt und zeigt somit an, dass das Flash fertig geladen ist.
var googleMapsFlag = 0;//nicht wichtig nur f&#252;r GoogleMaps

//Zentrale stelle wo ueber ein swwitch entschieden wird was als naechstes ausgefuehrt werden soll.
function dummyShow_specialregion(location, sniploc) {
	var arrCouRegMun = '';
	var tempLocation = '';

	switch (sniploc+ '_' + googleMapsFlag){

		case '1_0':
			var sFullLoc = addZeroToKey(convertValueToFlashId(location),15);
			makeCall(sFullLoc);
		break;

		default:
		break;
	}
}


function thisMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}


//Uebergabe einer 15 stelligen Id damit das Flash die richtige Position aufruft
function makeCall(str) {
	try {
		var checkMovie = thisMovie("worldmap");
		if (typeof checkMovie == 'function' || typeof checkMovie == 'object') throw checkMovie;
		else throw false;
	}
	catch (e) {
		var movie = e;
	}
	if(movie){
		thisMovie("worldmap").asFunc(str);
	}
}

//Die ID die in str2 und str3 uebergeben wird ist wie folgt aufgebaut:
//Sie besteht immer aus 15 Zeichen die ersten 5 Zeichen Laender ID
//die naechsten 10 Zeichen spalten sich einmal in 5 Stellen Region ID und in 5 Stellen Stadt ID auf.
//Zusammen ergibt sich ein Eindeutiger Key.
//str1 = int 				Kontinent ID
//str2 = int 				Laender ID
//str3 = int oder false 	Stadt ID kann auch ein false Wert uebergeben wenn Stadt nicht im XML vorhanden
//str4 = float				geo X fuer googleMaps
//str5 = float				geo Y fuer googleMaps
//str6 = String				Laendername
//str7 = pageID
function jsFunc(str1, str2, str3, str4, str5, str6, str7) {
	if (str7) {
		document.location.href = "roche_worldwide-details.htm?id="+str7;
	}
}
