function openwindow (Adresse) { Fenster1 = window.open(Adresse, '', "width=500,height=500,left=100,top=100,scrollbars=yes,resizable=yes"); Fenster1.focus(); } var msgObj = {}; msgObj.tooltipHandleWms = ''; msgObj.tooltipLayerVisible = ''; msgObj.tooltipLayerQuerylayer = ''; msgObj.tooltipLayerContextMenu = ''; msgObj.tooltipWmsContextMenu = ''; msgObj.tooltipRemoveWms = ''; msgObj.tooltipMoveSelectionUp = ''; msgObj.tooltipMoveSelectionDown = ''; msgObj.tooltipMetadata = ''; function localizeTree () { var treefolderTitleArray = []; var map = Mapbender.modules[mod_treeGDE_map]; if (map === null) { return; } for(var i = 0; i < map.wms.length; i++) { var currentWms = map.wms[i]; treefolderTitleArray.push({ title : currentWms.objLayer.length > 0 ? currentWms.objLayer[0].gui_layer_title : currentWms.wms_title, layer : [] }); for (var j = 0; j < currentWms.objLayer.length; j++) { var currentLayer = currentWms.objLayer[j]; treefolderTitleArray[treefolderTitleArray.length-1].layer.push({ title : currentLayer.gui_layer_title }); } } var req = new Mapbender.Ajax.Request({ url: "../php/mod_treefolder2_l10n.php", method: "translateServiceData", parameters: { data: treefolderTitleArray }, callback: function (obj, success, message) { var translatedTitleArray = obj; for (var i = 0; i < translatedTitleArray.length; i++) { var currentWms = map.wms[i]; currentWms.wms_currentTitle = translatedTitleArray[i].title; for(var j = 0; j < currentWms.objLayer.length; j++) { var currentLayer = currentWms.objLayer[j]; if (translatedTitleArray[i].layer.length > j) { currentLayer.layer_currentTitle = translatedTitleArray[i].layer[j].title; } } } reloadTree(); } }); req.send(); } eventInit.register(function () { localizeTree(); }); eventLocalize.register(function () { localizeTree(); }); var jst_container = "document.getElementById('treeContainer')"; var jst_image_folder = imagedir; var jst_display_root = false; var defaultTarget = 'examplemain'; var lock=false; var lock_update=false; var lock_check=false; var selectedMap=-1; var selectedWMS=-1; var selectedLayer=-1; var initialized=false; var errors = 0; var state=Array(); var treeState = ""; get("mb_user_gui")); $t = array("s"); $res = db_prep_query($sql, $v, $t); //init tree converting arrays $nr = array(); //array for nested sets numbers $str = array(); //array for js array elements $categories = array(); //array for wms folders $path = array(); //stack for actual path elements $rights = array(); //stack for rights of open elements //build javascript data array for jsTree while($row = db_fetch_array($res)){ //push javascript array elements to a single array with lefts and rights $left = "['folder_".$row['id']."', ['".$row['my_layer_title']."', 'javascript:_foo()'],["; $right = "]],"; array_push($nr, $row['lft']); array_push($str, $left); array_push($nr, $row['rgt']); array_push($str, $right); //finish all nodes that have no further childs while(count($rights) > 0 && $rights[count($rights)-1]<$row['lft']){ array_pop($rights); array_pop($path); } //set path for each wms that is referenced in this folder array_push($rights, $row['rgt']); array_push($path, "folder_".$row['id']); if($row['wms_id']!=""){ foreach(explode(",",$row['wms_id']) as $wms){ array_push($categories, "'wms_".$wms."':\"root_id|".implode("|", $path)."\""); } } } //if we have a configured structure output it if(count($str)>0){ //order js array elements array_multisort($nr, $str); //output javascript vars $arrNodesStr = "[['root_id', ['Layer','javascript:_foo()'],[".implode("",$str)."]]];"; $arrNodesStr = str_replace(array("[]", ",]"),array("","]"),$arrNodesStr); echo "var arrNodesStr = \"".$arrNodesStr."\";\n"; echo "var categories = {".implode(",", $categories)."};\n"; } else{ //if there is no structure take default ?> var arrNodesStr = "[['root_id', ['Layer','javascript:_foo()']]];"; var categories = {}; var arrNodes = eval(arrNodesStr); function _foo(){selectedMap=-1;selectedWMS=-1;selectedLayer=-1} // some defaults if (typeof(reverse) === 'undefined')reverse = 'false'; if (typeof(switchwms) === 'undefined')switchwms = 'true'; if (typeof(ficheckbox) === 'undefined')ficheckbox = 'false'; if (typeof(metadatalink) === 'undefined')metadatalink = 'false'; if (typeof(wmsbuttons) === 'undefined')wmsbuttons = 'false'; if (typeof(showstatus) === 'undefined')showstatus = 'false'; if (typeof(alerterror) === 'undefined')alerterror = 'false'; if (typeof(openfolder) === 'undefined')openfolder = 'false'; if (typeof(handlesublayer) === 'undefined')handlesublayer = 'false'; if (typeof(enlargetreewidth) === 'undefined') enlargetreewidth = 'false'; if (typeof(menu) === 'undefined')menu = ''; if (typeof(redirectToMetadataUrl) !== 'undefined' && redirectToMetadataUrl == "false") { redirectToMetadataUrl = false; } else { redirectToMetadataUrl = true; } var defaultMetadataUrl = '../php/mod_showMetadata.php?resource=layer&layout=tabs&'; if (redirectToMetadataUrl) { defaultMetadataUrl += 'redirectToMetadataUrl=1'; } else { defaultMetadataUrl += 'redirectToMetadataUrl=0'; } //menu elements var menu_move_up = ['menu_move_up', [' ','javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];move_up(ids[0],ids[1],ids[2]);',,'move_up.png']]; var menu_move_down = ['menu_move_down', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];move_down(ids[0],ids[1],ids[2]);',,'move_down.png']]; var menu_delete = ['menu_delete', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];remove_wms(ids[0],ids[1],ids[2]);',,'delete_wms.png']]; var menu_opacity_up = ['menu_opacity_up', [' ','javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];opacity_up(ids[0],ids[1],ids[2]);',,'move_up.png']]; var menu_opacity_down = ['menu_opacity_down', [' ','javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];opacity_down(ids[0],ids[1],ids[2]);',,'move_down.png']]; var menu_metalink = ['menu_metalink', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];openwindow(defaultMetadataUrl + "&id="+parent.mb_mapObj[ids[0]].wms[ids[1]].objLayer[ids[2]].layer_uid);',,'info.png']]; var menu_zoom = ['menu_zoom', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];zoomToLayer(ids[0],ids[1],ids[2]);',,'zoom.png']]; var menu_hide = ['menu_hide', [' ', 'javascript:hideMenu()',,'hide.png']]; var menu_style = ['menu_style', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];openStyleDialog(ids[0],ids[1],ids[2])',,'palette.png']]; var menu_legend = ['menu_legend', [' ', 'javascript:var sd = "{@strData}";var ids=eval(sd.substr(0, sd.length-6))[1][7];openLegendHtml(ids[0],ids[1],ids[2])',,'legend_tree.png']]; //var menu_wms_switch = ['menu_zoom', [' ', 'javascript:var sd = "{@strData}";eval(eval(sd.substr(0, sd.length-6))[1][1]);openwindow(defaultMetadataUrl + "&id="+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_uid);',,'info.png']]; //var menu_layer_switch = ['menu_zoom', ['Zjjj ', 'javascript:var sd = "{@strData}";eval(eval(sd.substr(0, sd.length-6))[1][1]);openwindow(defaultMetadataUrl + "&id="+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_uid);',,'info.png']]; //var menu_info_switch = ['menu_zoom', ['Zmn ', 'javascript:var sd = "{@strData}";eval(eval(sd.substr(0, sd.length-6))[1][1]);openwindow(defaultMetadataUrl + "&id="+parent.mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_uid);',,'info.png']]; //parent.eventMapRequestFailed.register(function(t){imgerror(t)}); eventAfterLoadWMS.register(reloadTree); Mapbender.events.init.register(function () { $("#" + mod_treeGDE_map).mapbender().events.afterMoveWms.register(reloadTree); }); eventInit.register(loadTree); if(showstatus=='true'||alerterror=='true'){ eventAfterMapRequest.register(init_mapcheck); init_mapcheck(); } eventAfterMapRequest.register(updateScale); eventAfterMapRequest.register(updateCheckState); /* if (enlargetreewidth) { eventAfterInit.register(function(){ var initialWidth = parseInt($('#treeGDE').css("width")); $('#treeGDE').bind("mouseenter", function(){ $(this).css({ 'width': initialWidth + enlargetreewidth, 'zIndex': '300' }); $(this).mousewheel(); }); $('#treeGDE').bind("mouseleave", function(){ $(this).css({ 'width': initialWidth, 'zIndex': '3' }); }); }); } */ if(wmsbuttons != "true") jst_highlight = false; function select(i,ii,iii){ //ignore if selected if(selectedMap==i && selectedWMS==ii && selectedLayer==iii)return; if(selectedMap==-1 && selectedWMS==-1 && selectedLayer==-1){ selectedMap=i; selectedWMS=ii; selectedLayer=iii; return; } //scalehints var scale = parseInt(mb_getScale(mod_treeGDE_map)); if(scale < parseInt(mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_minscale) && parseInt(mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_minscale) != 0){ if(selectedLayer==0) setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999'); else setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+ mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999'); } else if(scale > parseInt( mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_maxscale) && parseInt( mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].gui_layer_maxscale) != 0){ if(selectedLayer==0) setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id, '#999999'); else setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+ mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, '#999999'); } else{ if(selectedLayer==0) setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id, ''); else setNodeColor(arrNodes[0][0]+"|wms_"+ mb_mapObj[selectedMap].wms[selectedWMS].wms_id+"|"+ mb_mapObj[selectedMap].wms[selectedWMS].objLayer[selectedLayer].layer_id, ''); } selectedMap=i; selectedWMS=ii; selectedLayer=iii; } function updateScale(){ if(!initialized)return; myMapObj = getMapObjByName(mod_treeGDE_map); if(myMapObj){ var scale = parseInt( myMapObj.getScale()); for(var ii=0; ii< myMapObj.wms.length; ii++){ for(var iii=1; iii< myMapObj.wms[ii].objLayer.length; iii++){ if(scale < parseInt( myMapObj.wms[ii].objLayer[iii].gui_layer_minscale) && parseInt( myMapObj.wms[ii].objLayer[iii].gui_layer_minscale) != 0){ if(iii==0) setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id, '#999999'); else setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id+"|"+ myMapObj.wms[ii].objLayer[iii].layer_id, '#999999'); } else if(scale > parseInt( myMapObj.wms[ii].objLayer[iii].gui_layer_maxscale) && parseInt( myMapObj.wms[ii].objLayer[iii].gui_layer_maxscale) != 0){ if(iii==0) setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id, '#999999'); else setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id+"|"+ myMapObj.wms[ii].objLayer[iii].layer_id, '#999999'); } else{ if(iii==0) setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id, ''); else setNodeColor(arrNodes[0][0]+"|wms_"+ myMapObj.wms[ii].wms_id+"|"+ myMapObj.wms[ii].objLayer[iii].layer_id, ''); } } } } } function updateCheckState(){ if(!initialized||lock_check)return; lock_check=true; var map = getMapObjByName(mod_treeGDE_map); for(var i=0; i< mb_mapObj.length; i++){ var scale = parseInt( map.getScale()); if( mb_mapObj[i].elementName == mod_treeGDE_map){ for(var ii=0; ii< mb_mapObj[i].wms.length; ii++){ for(var iii=1; iii< mb_mapObj[i].wms[ii].objLayer.length; iii++){ if(! mb_mapObj[i].wms[ii].objLayer[iii].has_childs){ path = arrNodes[0][0]+"|wms_"+ mb_mapObj[i].wms[ii].wms_id+"|"+ mb_mapObj[i].wms[ii].objLayer[iii].layer_id; checkNode(path, 0, mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_visible==='1'||mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_visible===1, false); if(ficheckbox == 'true') checkNode(path, 1, mb_mapObj[i].wms[ii].objLayer[iii].gui_layer_querylayer=='1', false); } } } } } lock_check=false; } function operaLoad(){ initArray(); renderTree(); setTimeout('initWmsCheckboxen();updateScale();',100); } function loadTree(){ if(wmsbuttons=='true'){ var div = document.createElement("div"); div.innerHTML = ''; document.getElementById("treeGDE").appendChild(div); } var div = document.createElement("div"); div.id = "treeContainer" document.getElementById("treeGDE").appendChild(div); if(window.opera){ setTimeout('operaLoad()',200); return; } initArray(); renderTree(); initWmsCheckboxen(); updateScale(); } function reloadTree(){ if(!initialized) return; selectedMap=-1; selectedWMS=-1; selectedLayer=-1; initialized=false; arrNodes = eval(arrNodesStr) initArray(); if(showstatus=='true'||alerterror=='true') init_mapcheck(); renderTree(); if(window.opera) setTimeout('initWmsCheckboxen();updateScale();',100); else{ initWmsCheckboxen(); updateScale(); } } function imgerror(t){ var map= getMapObjIndexByName(mod_treeGDE_map); var wms=Number(t.id.substr(4)); t.onerror=null; t.onabort=null; if(state[wms]!=-1 && alerterror=='true'){ state[wms]=-1; if(confirm(' ' + mb_mapObj[map].wms[wms].objLayer[0].layer_currentTitle + '\n')) { window.open(t.src,""); } } state[wms]=-1; errors++; if(showstatus=='true') setNodeImage(arrNodes[0][0]+"|wms_"+ mb_mapObj[map].wms[wms].wms_id, "error_folder.png"); } function checkComplete(wms, map, img, first){ var ind= getMapObjIndexByName(mod_treeGDE_map); if (mb_mapObj[ind].wms[wms].mapURL == false || !mb_mapObj[ind].getDomElement().ownerDocument.getElementById(map) || mb_mapObj[ind].getDomElement().ownerDocument.getElementById(map).complete) { if(state[wms]!=-1){ for(var i=1;i< mb_mapObj[ind].wms[wms].objLayer.length;i++){ if(mb_mapObj[ind].wms[wms].objLayer[i].gui_layer_visible===1||mb_mapObj[ind].wms[wms].objLayer[i].gui_layer_visible==="1"){ state[wms]=1; if(showstatus=='true') setNodeImage(img); break; } } } } else{ if(first){ state[wms]=0; // frames[mod_treeGDE_map].document.getElementById(map).onerror=imgerror; // frames[mod_treeGDE_map].document.getElementById(map).onabort=imgerror; if(showstatus=='true') setNodeImage(img, "loading_folder.gif"); } if(state[wms]!=-1) setTimeout('checkComplete('+wms+', "'+map+'", "'+img+'");',100); } } // mb_registerWmsLoadErrorFunctions("window.frames['treeGDE'].imgerror();"); function init_mapcheck(){ if(!initialized)return; errors = 0; var ind = getMapObjIndexByName(mod_treeGDE_map); if(! mb_mapObj[ind]||!initialized){ setTimeout("init_mapcheck();",100); return; } for(var wms=0;wms< mb_mapObj[ind].wms.length;wms++){ var wmsimgid=mod_treeGDE_map+"_map_"+wms; if( mb_mapObj[ind].getDomElement().ownerDocument.getElementById(wmsimgid)){ checkComplete(wms, wmsimgid, arrNodes[0][0]+'|wms_'+ mb_mapObj[ind].wms[wms].wms_id, true); } } } function local_handleSelectedLayer(mapObj,wms_id,layername,type,status){ if(lock_update||lock_check)return; var ind = getMapObjIndexByName(mapObj); for(var i=0; i< mb_mapObj[ind].wms.length; i++){ if( mb_mapObj[ind].wms[i].wms_id == wms_id){ mb_mapObj[ind].wms[i].handleLayer(layername, type, status); break; } } } function zoomToLayer(j,k,l){ if(!j&&!k&&!l){ j=selectedMap; k=selectedWMS; l=selectedLayer; } var my= mb_mapObj[j].wms[k].objLayer[l].layer_epsg; for (var i=0; i < my.length;i++) { if(my[i]["epsg"]== mb_mapObj[j].epsg){ mb_calculateExtent(mod_treeGDE_map,my[i]["minx"],my[i]["miny"],my[i]["maxx"],my[i]["maxy"]); var arrayExt = mb_mapObj[j].extent.toString().split(","); mb_repaint(mod_treeGDE_map,arrayExt[0],arrayExt[1],arrayExt[2],arrayExt[3]); break; } } } function openLegendHtml(j,k,l){ if(!j && !k&& !l){ j=selectedMap; k=selectedWMS; l=selectedLayer; } var my= mb_mapObj[j].wms[k].objLayer[l]; var legendWindow = window.open("../metadata/"+my.layer_name+".html", '', "width=800,height=800,left=100,top=100,scrollbars=yes,resizable=no"); legendWindow.focus(); } function openStyleDialog(j,k,l){ if(!j && !k&& !l){ j=selectedMap; k=selectedWMS; l=selectedLayer; } var my= mb_mapObj[j].wms[k].objLayer[l]; var dialogHtml = ""; if(my.layer_style.length > 1) { $("