// JavaScript Document

//register functions and commands, executed onLoad
function interfaceInit(){
	initPoi();
	initRoute();
	initMeasure();
	writeLangFlag();
}

var language;

var ActMapLayer = 1;
var params = new Array();

//register keywords, coded in the URL
var ParamVorgabe = new Array ;
ParamVorgabe[0] = new Array();
ParamVorgabe[0]["start"] = "sbccs"; //started by click coordinate start
ParamVorgabe[0]["ende"] = "sbcce"; //started by click coordinate end
ParamVorgabe[0]["seperator"] = new Array(",");
ParamVorgabe[0]["function"]="initStartMap";

function initStartMap(){ //alert('initStartMap');
	if(params[0]!= '' && params[1]!='')
		wmcMapFrame.createbbox2(params[0],params[1],25);
}

ParamVorgabe[1] = new Array();
ParamVorgabe[1]["start"] = "hpoics"; //highlight point of interest start
ParamVorgabe[1]["ende"] = "hpoice";  //highlight point of interest end
ParamVorgabe[1]["seperator"] = new Array(",");
ParamVorgabe[1]["function"]="highlightPOI";

function highlightPOI(){
	if(arguments.length > 0){
		wmcMapFrame.createbbox2(arguments[0],arguments[1],15);
		poiForHigh[0] = arguments[0];
		poiForHigh[1] = arguments[1];
		wmcMapFrame.showRetrieveMap();
		wmcMapFrame.getMap();
	}
	else{
		if(params[0]!= '' && params[1]!=''){
			wmcMapFrame.createbbox2(params[0],params[1],15);
			poiForHigh[0] = params[0];
			poiForHigh[1] = params[1];
		}
	}
}

ParamVorgabe[2] = new Array();
ParamVorgabe[2]["start"] = "roupois"; //route points start
ParamVorgabe[2]["ende"] = "roupoie";  //route points end
ParamVorgabe[2]["seperator"] = new Array(",");
ParamVorgabe[2]["function"]="setRoute";

function setRoute(){
	if(params.length > 3){
		wmcMapFrame.createbbox2(params[0],params[1],31);
		top.route.setzeStart(params[2],params[0],params[1]);
		top.route.setzeZiel(params[(params.length-1)]);
		if(params.length > 4){
			for(var i=3; i < params.length-1; i++)
			top.route.setzeZwischen(params[i]);
		}
		changeCheck(1); //verallgemeinern
		//navileiste("down","tB3bt","tB3bt5");
	}
}

ParamVorgabe[3] = new Array();
ParamVorgabe[3]["start"] = "uscoms"; //user comments start
ParamVorgabe[3]["ende"] = "uscome"; //user comments end
ParamVorgabe[3]["seperator"] = new Array("&","|");
ParamVorgabe[3]["function"]="setAnno";

function setAnno(){
	var annoBbox = new Array();

	if(params[0].length > 2){
		annoBbox[0] = params[0][0];
		annoBbox[1] = params[0][1];
		annoBbox[2] = params[0][0];
		annoBbox[3] = params[0][1];
		wmcMapFrame.annoArray = new Array();
		//while(i<params[0].length-2){
		for(var i=0; i<params.length; i++){
			wmcMapFrame.annoArray[i] = new Array();
			wmcMapFrame.annoArray[i][0] = params[i][0];
			wmcMapFrame.annoArray[i][1] = params[i][1];
			wmcMapFrame.annoArray[i][2] = params[i][2];
			wmcMapFrame.annoArray[i][3] = params[i][3];
			if(i > 0){
				annoBbox[0] = Math.min(annoBbox[0],params[i][0]);
				annoBbox[1] = Math.min(annoBbox[1],params[i][1]);
				annoBbox[2] = Math.max(annoBbox[2],params[i][0]);
				annoBbox[3] = Math.max(annoBbox[3],params[i][1]);
			}
		} 
		if(annoBbox[0] != annoBbox[2]){
			annoBbox[0] -= 500;
			annoBbox[1] -= 500;
			annoBbox[2] += 500;
			annoBbox[3] += 500;
			scaleTmp = (annoBbox[2] - annoBbox[0]) / wmcMapFrame.MapWidth;
			wmcMapFrame.createbbox2((annoBbox[2] + annoBbox[0])/2,(annoBbox[1] + annoBbox[3])/2,scaleTmp);
		}
		else
			wmcMapFrame.createbbox2(annoBbox[0],annoBbox[1],31);
		wmcMapFrame.writeAnno();
		changeCheck(2);
	}
}


function URIParam() {
	var Bereich = '';
  Param=self.location.search;
  Param=unescape(Param);

	for (var i=0; i<ParamVorgabe.length; i++){
		if(Param.indexOf(ParamVorgabe[i]["start"]) > -1 && Param.indexOf(ParamVorgabe[i]["ende"],Param.indexOf(ParamVorgabe[i]["start"])) > -1){ 
	  	Bereich = Param.substring((Param.indexOf(ParamVorgabe[i]["start"])+ParamVorgabe[i]["start"].length),Param.indexOf(ParamVorgabe[i]["ende"]));
	  	params = new Array();
	  	params = getParamsRec(Bereich,ParamVorgabe[i]["seperator"]);
	  	//eval(ParamVorgabe[i]["function"]+'('+params+')');
	  	//alert('laenge'+params.length);
	  	// var Funktion=eval(ParamVorgabe[i]["function"]);
			//for (var j=0; j<Parameter[i].length; j++){
			//	eval(Funktion(params));
			eval(ParamVorgabe[i]["function"]+'()');
	  }
	}
}

function getParamsRec(paramString,separators){ 
	var paramArray = new Array();
	var separator = separators[0];
//	alert(paramString.lastIndexOf(separator));
//	alert(paramString.length);
	if(paramString.indexOf(separator) == 0)
		paramString = paramString.substring(1,paramString.length);
	if(paramString.lastIndexOf(separator) == paramString.length-1)
		paramString = paramString.substring(0,(paramString.length-1));
	var params = paramString.split(separator);
//alert(paramString);
	if(separators.length > 1){
		var sepTmp = separators.shift();
		for(var i = 0; i < params.length;i++){
			paramArray[i] = getParamsRec(params[i],separators);
		}
		return paramArray;
	}
	else return params;	
}

function openMapFromMMP(){ //alert('testtest');
	//alert(arguments.length);
	wmcMapFrame.createbbox2(arguments[0],arguments[1],10);
	changeCheck(0);
}

//aendert den zustand einer checkbox in der layerliste
function changeCheck(layerId){
	top.document.form1.elements[layerId].click();
}

function showLayerContent(layerId, proceed){
	wmcMapFrame.getClickLayer1(wmcAliasToLayer[layerId],proceed);
}

//loading a tourip

function loadTourtip(pointIds,bbox){
	wmcMapFrame.showRetrieveMap();
	top.fireClearRoute();
	if(wmcMapFrame.document.getElementById(wmcMapFrame.ePointLayer).style.visibility == 'visible')
		changeCheck(1);
	top.route.setzeStart(pointIds[0],bbox[0],bbox[1]);
	for(var i=1; i<pointIds.length-1; i++){
		top.route.setzeZwischen(pointIds[i]);
	}
	top.route.setzeZiel(pointIds[pointIds.length-1]);
	//alert(top.route.startPunkt);
	wmcMapFrame.createbbox2(bbox[0],bbox[1],31);
	changeCheck(1);
	wmcMapFrame.getMap();
	//wmcMapFrame.getMap();
}

