
  
  /* context editor */
  function mbOnload() {
        config.objects.mainMap.addListener("loadModel",initWorkspace,null);
        window.onresize = initWorkspace;
      }
      
      function initWorkspace() {
        var pageBody = document.getElementsByTagName("body")[0];
        var workDiv = document.getElementById("workspace");
        var footerDiv = document.getElementById("mbFooter");
        if (_SARISSA_IS_IE) {
          workDiv.style.height = pageBody.offsetHeight - workDiv.offsetTop - footerDiv.offsetHeight - 30;  //20 is a fudge factor
        } else {
          workDiv.style.height = window.innerHeight - workDiv.offsetTop - footerDiv.offsetHeight - 20;  //20 is a fudge factor
        }
      }
   
      var update="null";



////////////////////////////////////affiche le wms toogle
function beforeUpWms(id){
     turnOffListener();
     turnOffClickEvent(id);
     if($('sortableLayerList'))
       $('sortableLayerList').parentNode.style.overflow="";
 }
 function afterUpWms(id){
     turnOnClickEvent(id);
     turnOnListener();
 }
function afterDownWms(id){
     turnOnClickEvent(id);
     turnOnListener();
 }
function beforeDownWms(id){
    if($('sortableLayerList'))
       $('sortableLayerList').parentNode.style.overflow="scroll";
     turnOffClickEvent(id);
     turnOffListener();
 }

 function turnOffClickEvent(id)
 {
   $(id).onclick="";
 }
 
 function turnOnClickEvent(id)
 {
   if (id=='arrowLegende')$(id).onclick=setVisibleLayerControl;
   if (id=='arrowOutils')$(id).onclick=setVisibleOutils;
   if (id=='arrowWms')$(id).onclick=setVisibleWms;
 }
 function beforeSlideUpLayerControl(){
     turnOffListener();
   
 }
 function afterSlideUpLayerControl(){
     turnOnListener();
 }
function afterSlideDownLayerControl(){
     turnOnListener();
 }
function beforeSlideDownLayerControl(){
      turnOffListener();
 }

//affiche le layer control ou le cache
var list=4;

 function setVisibleLayerControl()
 {	
  divParent="layerControl";
    if(document.getElementById("arrowDownButtonLegende").src.indexOf("down")!=-1)
   {	
    new Effect.SlideDown(divParent,{duration:0.5,beforeStart:beforeSlideDownLayerControl,afterFinish:afterSlideDownLayerControl}); 
       swapImage("arrowDownButtonLegende","images/arrow_up.png");
   }
   else
   {	
     
     new Effect.SlideUp(divParent,{duration:0.5,beforeStart:beforeSlideUpLayerControl,afterFinish:afterSlideUpLayerControl}); 
     
    swapImage("arrowDownButtonLegende","images/arrow_down.png");
      document.getElementById("dragLegende").style.height=document.getElementById("legende").offsetHeight+4;
    
   }	
     return false;
 }
 function setVisibleLegendLayerControl(id)
 {	   li2=id+"li2";
    lbutton="lButton"+id;
    
    if(document.getElementById(li2).style.display=="none")
    {
      document.getElementById(li2).style.display="block";/////////pas definir le height du li
      swapImage(lbutton,"images/LegendEnable.png");  
    }
    else
    {
      document.getElementById(li2).style.display="none";
      swapImage(lbutton,"images/LegendDisable.png");
    
    }
    resizeLayerControl();
   
 }
 
 
 function beforeEffectToogle(id){
     turnOffListener();
     turnOffClickEvent(id);
 
     
 }
 function afterEffectToogle(id){
     turnOnClickEvent(id);
     turnOnListener();
 }

function setVisibleOutils()
 {	 
  if(navigator.userAgent.toLowerCase().indexOf('gecko')!=-1)
  {
   if(document.getElementById("arrowDownButtonOutils").src.indexOf("down")!=-1)
   {
     swapImage("arrowDownButtonOutils","images/arrow_up.png");
     Effect.toggle('effectToogleOutils','blind',{duration:0.5,beforeStart:beforeEffectToogle('arrowOutils'),afterFinish:afterEffectToogle('arrowOutils')});
   }
   else
   {	
    swapImage("arrowDownButtonOutils","images/arrow_down.png");
    Effect.toggle('effectToogleOutils','blind',{duration:0.5,beforeStart:beforeEffectToogle('arrowOutils'),afterFinish:afterEffectToogle('arrowOutils')}); 
   }	
  }
   else
   {if(document.getElementById("arrowDownButtonOutils").src.indexOf("down")!=-1)
   {
     swapImage("arrowDownButtonOutils","images/arrow_up.png");
     Effect.toggle('effectToogleOutils','slide',{duration:0.5,beforeStart:beforeEffectToogle('arrowOutils'),afterFinish:afterEffectToogle('arrowOutils')});
   }
   else
   {	
    swapImage("arrowDownButtonOutils","images/arrow_down.png");
    Effect.toggle('effectToogleOutils','slide',{duration:0.5,beforeStart:beforeEffectToogle('arrowOutils'),afterFinish:afterEffectToogle('arrowOutils')}); 
   }	
   }
   return false;
 }

/////////////////////////////////////////////////pour le menu outils

var enPlus=5;
 function setVisibleDiv(idToogle)
 {	 //document.getElementById(idToogle).style.display="block";
   if(document.getElementById(idToogle).style.display=="none")
    {
      document.getElementById(idToogle).style.display="block";/////////pas definir le height du li
       
       if (idToogle=="locationsSelect")
        {
          enPlus+=12;
          var srs=config.objects.mainMap.getSRS();
          //alert(srs);
          var file='Global'+srs.substring(srs.indexOf(':')+1,srs.length)+'.xml';
          config.loadModel('locations',file);
          config.objects.locations.refresh(config.objects.locations);
        }
      if (idToogle=="mapScaleText")enPlus+=10;
      if (idToogle=="collectionList")enPlus+=5;
  
    }
    else
    {
      document.getElementById(idToogle).style.display="none";
      if (idToogle=="locationsSelect")enPlus-=12;
      if (idToogle=="mapScaleText")enPlus-=10;
      if (idToogle=="collectionList")enPlus-=5;
    }
  document.getElementById("collectionList").style.height=document.getElementById("collectionList").getElementsByTagName("ul")[0].offsetHeight;
document.getElementById("effectToogleOutils").style.height=document.getElementById("locatorMap").offsetHeight+document.getElementById("local").offsetHeight+document.getElementById("locationsSelect").offsetHeight+document.getElementById("zoom").offsetHeight+document.getElementById("mapScaleText").offsetHeight+document.getElementById("listfeature").offsetHeight+document.getElementById("collectionList").offsetHeight+enPlus;
return false;
    
 }
 function addHeight(id,idAdd)
 {
     alert(document.getElementById(id).offsetHeight+" "+document.getElementById(idAdd).offsetHeight+"px");
     if(document.getElementById(idAdd).style.display)
       document.getElementById(id).style.height=(document.getElementById(id).offsetHeight+document.getElementById(idAdd).offsetHeight)+"px";
     else
       document.getElementById(id).style.height=(document.getElementById(id).offsetHeight-document.getElementById(idAdd).offsetHeight)+"px";
 }
 
 function setVisiblez(id)
 {  li2=id+"li2";
    if(document.getElementById(li2).style.visibility=="hidden")
    {document.getElementById(li2).style.visibility="visible";
    document.getElementById(id).style.height=document.getElementById(id).offsetHeight+28+"px";
    }
    else
    {document.getElementById(li2).style.visibility="hidden"
      document.getElementById(id).style.height=document.getElementById(id).offsetHeight-28+"px";
    }
  
 }
 
 function createDroppable(element){
          Droppables.add
          (
            element.id,
            {	
              onDrop: function(element)
              {	
                 config.objects.editContext.addNodeToModel(element.id);
              }
            }
          );
}
 //detache les listener du mapcontainerBase et du cursorTrack pour scriptaculous ne ralentisse pas

 function turnOnListener(){
    var containerNode=document.getElementById("mainMapContainer");
   objRef=config.objects.cursorTrack;
    if(containerNode && objRef)
    {	
      containerNode.onmousemove = config.objects.mainMapWidget.eventHandler;;
      containerNode.onmouseout =config.objects.mainMapWidget.eventHandler;
      containerNode.onmouseover = config.objects.mainMapWidget.eventHandler;
      containerNode.onmousedown = config.objects.mainMapWidget.eventHandler;
      objRef.mouseHandler.addListener('mouseover', objRef.mouseOverHandler, objRef);
      objRef.mouseHandler.addListener('mouseout', objRef.mouseOutHandler, objRef);
    }
 }
 
function turnOffListener(){
   var containerNode=document.getElementById("mainMapContainer");
   objRef=config.objects.cursorTrack;
   if(containerNode && objRef && containerNode.onmousemove != "")
   {	
      containerNode.onmousemove = "";
        containerNode.onmouseout = "";
      containerNode.onmouseover = "";
      containerNode.onmousedown = "";
      objRef.mouseHandler.removeListener('mouseover', objRef.mouseOverHandler, objRef);
        objRef.mouseHandler.removeListener('mouseout', objRef.mouseOutHandler, objRef);
     }
 }
 ////////////////////////si on veut la taille dynamic alors on reinitialise <dynamicSize> et les valeurs width et height du context 
 function initDynamicProperties(){
 
   if(config.objects.mainMap.dynamicSize && config.objects.mainMap.dynamicSize=="true")
   {
     config.objects.mainMap.setDynamicSize("true");
     config.objects.mainMap.width=0;
     config.objects.mainMap.height=0;
   }
 }
 ////////////////////////////////for close menu with cross
 function closeAction(id)
 {
     var drag="drag"+id;
     var button="menuDisplay"+id;
     document.getElementById("drag"+id).style.display="none";
     if (id=="Legende")
     config.objects.menuDisplayLegende.image.src=config.objects.menuDisplayLegende.disabledImage.src;
     else if (id=="Outils")
     config.objects.menuDisplayOutils.image.src=config.objects.menuDisplayOutils.disabledImage.src;
     else if (id=="Wms")
     config.objects.menuDisplayWms.image.src=config.objects.menuDisplayWms.disabledImage.src;
 }
 
 function layerUp(id){
     var objRef=config.objects.mainMapWidget;
      var id="locator_mainMapWidget_"+id;
      document.getElementById( config.objects.mainMapWidget.outputNodeId ).insertBefore(document.getElementById(id).nextSibling,document.getElementById(id));
 }
 
 function layerDown(id){ 
    var id="locator_mainMapWidget_"+id
     document.getElementById( config.objects.mainMapWidget.outputNodeId ).insertBefore(document.getElementById(id),document.getElementById(id).previousSibling);
 }
  
  ///////////////efface le node de la liste qd une couche a ete dropper
  

  ///////////////////fonction appelée qd une couche a ete droppé 
function onDropWmsLayer(targetModel,elementId)
   {

    config.objects.editContext.addNodeToModel(elementId);
   cleanup;
     initScriptDragNDrop('workspaceCanvas');
     
     deleteSortableList('layerControl','mainMap');
     initSortableList('layerControl','mainMap');
  
   }
   
   function replaceAllAccent(string)
   {			
           var temp=string;
           //result.replaceAll("(-|'|,|§|(|))", " ")
          temp = temp.replace(/à/g, "a");
          temp = temp.replace(/é/g, "e");
          temp = temp.replace(/è/g, "e");
          temp = temp.replace(/>[a-z]'[a-z]</g, " ");
          return temp;
   }
   
Position.includeScrollOffsets = true;
var listId;
Draggables.clear = function (event) 
{
  while (Draggables.drags.length) 
  {
    var d = Draggables.drags.pop();
    var e = d.element;
    d.stopScrolling();
    d.destroy();
    d.element = null;
    if (e.parentNode) {e.parentNode.removeChild(e)};
  }
}

function cleanup() 
{
   //try to remove circular references
  lis = document.getElementsByTagName("li");
  for (i = 0; i < lis.length; i++) 
  {
    if (lis[i].longListItem) {lis[i].longListItem.destroy();}
    else if (lis[i].container) {lis[i].container.destroy();}
  }
  Draggables.clear();
}

function initScriptDragNDrop(id) 
{
  var li = document.getElementById(id).getElementsByTagName('li');
  if (!_SARISSA_IS_IE){
    for (var i = 0; i < li.length; i++) 
    {
      var d = new Draggable
      (
        li[i],
        {
        ghosting: true,
        floating:true,
        revert: false,
        onStart:turnOffListener,
        onEnd:turnOnListener
        }
      );
    }
    Droppables.add
          (
            "layerControl",
            {	
              onDrop: function(element)
              {	
                if(element.parentNode.id && element.parentNode.id=="sortableLayerList")
                     onDropWmsLayer(config.objects.layerControl,element.id);
              }
            }
          );
  }
  else
  {
    for (var i = 0; i < li.length; i++) 
    {
      var d = new Draggable
      (
        li[i],
        {
        ghosting: true,
        floating:false,
        revert: false,
        onStart:turnOffListener,
        onEnd:turnOnListener
        }
      );
    }
    Droppables.add
          (
            "layerControl",
            {	
              containment:$("sortableLayerList"),
              onDrop: function(element)
              {	
                 onDropWmsLayer(config.objects.layerControl,element.id);
              }
            }
          );
  }
  Event.observe(window, 'unload', cleanup, false);
}

/*alle losse functies uit de html*/
/*-----------------------------------------------------------
    Toggles element's display value
    Input: any number of element id's
    Output: none 
    ---------------------------------------------------------*/
function toggleDisp() {
    for (var i=0;i<arguments.length;i++){
        var d = $(arguments[i]);
        
        if (d.style.display == 'none')
            d.style.display = 'block';
        else
            d.style.display = 'none';
            }
    
}
function toggleNav() {
        var nav = document.getElementById('leftnav');
        var kaart = document.getElementById('mainMapPane');
        var switcher = document.getElementById('navSwitcher');
        var out = document.getElementById('out');
        var inklap = document.getElementById('inklap');
        var theRules = new Array();
        if (document.styleSheets[0].cssRules) {
          theRules = document.styleSheets[0].cssRules;
        } else if (document.styleSheets[0].rules) {
          theRules = document.styleSheets[0].rules;
        }
        

        if (nav.style.display == 'none') {
          //       Effect.toggle(nav,'appear',{duration:0.5, queue:{scope:'menus', limit: 3}});
            switcher.style.display = 'block';        
            nav.style.display = 'block';
            out.style.display = 'none';
             inklap.style.display = 'block';

            theRules[1].style.left = '270px';

            }
        else {
            switcher.style.display = 'none';
          nav.style.display = 'none';
            theRules[1].style.left = '10px';
            out.style.display = 'block';
            inklap.style.display = 'none';
//                     Effect.toggle(nav,'appear',{duration:0.5, queue:{scope:'menus', limit: 3}});
            }
    
}
/*-----------------------------------------------------------
    Toggles tabs - Closes any open tabs, and then opens current tab
    Input:     1.The number of the current tab
                    2.The number of tabs
                    3.(optional)The number of the tab to leave open
                    4.(optional)Pass in true or false whether or not to animate the open/close of the tabs
    Output: none 
    ---------------------------------------------------------*/
function toggleTab(num,numelems,opennum,animate) {
    if ($('tabContent'+num).style.display == 'none'){
        for (var i=1;i<=numelems;i++){
            if ((opennum == null) || (opennum != i)){
                var temph = 'tabHeader'+i;
                var h = $(temph);
                if (!h){
                    var h = $('tabHeaderActive');
                    h.id = temph;
                }
                var tempc = 'tabContent'+i;
                var c = $(tempc);
                if(c.style.display != 'none'){
                
                        toggleDisp(tempc);
                }
            }
        }
        var h = $('tabHeader'+num);
        if (h)
            h.id = 'tabHeaderActive';
        h.blur();
        
    
            toggleDisp('tabContent'+num);
        
    }
}

function isEnter(e,value){
var code;
  if (!e) var e = window.event;
  if (e.keyCode) code = e.keyCode;
  else if (e.which) code = e.which;

  if (code==13){

   showAddress(value);

  
  }
}

 var geocoder = null;
    function initialize() {
      if (GBrowserIsCompatible()) {
       
        geocoder = new GClientGeocoder();
      }
      }
 function showAddress(address) {
      if (geocoder) {
      var map = config.objects.mainMap.map;
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
                  var found = config.objects.mainMap.map.getLayersByClass("OpenLayers.Layer.Markers");
                  var markers;
                  if (found[0]) {
                    markers = found[0];
                  }
                  else {
                   var newNode = (new DOMParser).parseFromString(Sarissa.unescape('&lt;wmc:Layer xmlns:wmc="http://www.opengis.net/context" queryable="0" hidden="0"&gt;&lt;wmc:Server service="Marker" version="1.1.0" title="Marker"&gt;&lt;/wmc:Server&gt;&lt;wmc:Name&gt;Marker&lt;/wmc:Name&gt;&lt;wmc:Title&gt;Marker&lt;/wmc:Title&gt;&lt;/wmc:Layer&gt;'),'text/xml');
                   Sarissa.setXpathNamespaces(newNode, config.objects.mainMap.namespace);
                   config.objects.mainMap.setParam('addLayer',newNode.firstChild);
                   markers = config.objects.mainMap.map.getLayersByClass("OpenLayers.Layer.Markers")[0];
                
                  }  
                  markers.addMarker(new OpenLayers.Marker(config.objects.mainMap.map.baseLayer.forwardMercator(point.x,point.y)));
                  config.objects.mainMap.map.setCenter(config.objects.mainMap.map.baseLayer.forwardMercator(point.x,point.y),15)
          
            
              

            }
          }
        );
      }
    }
/*Deze functie zorgt dat de lagen verschuiven als ze worden versleept*/
function go()
{
window.location=document.getElementById("menu").value
}

    function setBase(baselayer)

    {
   
   
    config.objects.mainMap.map.setBaseLayer(config.objects.mainMap.map.getLayersByName(baselayer)[0]);
    

  
  
    }
    
         function addLiLayer(url, id) {
          var liItem = document.getElementById("item"+id);
          var workspace = document.getElementById("workspace");
          
          if (_SARISSA_IS_IE){
          if(liItem.getAttribute('active')!=null){
            liItem.removeAttribute('active');
            workspace.style.display = 'none';
          }
          else {
            liItem.appendChild(workspace);
            liItem.setAttribute('active',true);
            workspace.style.display = 'inline';
            if(url)	config.loadModel('wmsCapTemplate',url);
            }

          }
          else{
          if(liItem.hasAttribute('active')){
            liItem.removeAttribute('active');
            workspace.style.display = 'none';
          }
          else {
            liItem.appendChild(workspace);
            liItem.setAttribute('active',true);
            workspace.style.display = 'inline';
            if(url)	config.loadModel('wmsCapTemplate',url);
            }
            }
        }
        
        