//NBS###


  //  // Browser, OS and screen detection
  if (document.all) ie=true; else ie=false;
  if (document.layers) ns=true; else ns=false;
  if (navigator.userAgent.indexOf("Mac")>0) mac=true; else mac=false;
  if (screen.width>1000) wideScreen=true;
  else wideScreen=false;

  var initDone=false;	// True when page is initiated

  // Netscape resize-bug fix
  var resizeEventCount=0;
  var loadEventCount=0;
  var hist="";
  if (ns) {
    window.onResize = reloadPage; 
  }

  function reloadPage() {
    hist+="R";
    resizeEventCount++;
    if (loadEventCount>=1) {
      document.location.reload();
    }
  }

  // Initiate page, place logo
  function basicInit() {
    hist+="L";
    loadEventCount++;
    if (ie) document.all['logolayer'].style.visibility="visible";
    else document.layers['logolayer'].visibility="show";
    adjustLogo();
    adjustMenus();
    if (window.initMainmenu) initMainmenu();
    if (window.initContent) initContent();
    initDone=true;
  }

  function init() {
      basicInit();	
  }


  // Adjust the logo
  function adjustLogo() {
    if (ie) {
      if (screen.width<1000) document.all['logolayer'].style.left=maintab.offsetLeft+maintab.offsetWidth-168;
      else document.all['logolayer'].style.left=maintab.offsetLeft+maintab.offsetWidth-248;
      setTimeout("adjustLogo();", 500);
    }
    else {
      document.layers['logolayer'].moveTo(document.layers['poslayer'].pageX-88,
        document.layers['poslayer'].pageY+13);
      // setTimeout("adjustLogo();", 300);
    }
  }


  // ******************* DEBUG FUNCTIONS ***********************

  // Display object properties
  function dump(obj) {
    s="";
    for (var n in obj) s+=n+"="+obj[n]+", ";
    alert(s);
  }


  // ******************* HELPER FUNCTIONS **********************

  // Set the statusline
  function setStatus(text) {
    status=text;
    setTimeout("status='"+text+"';", 1);
    setTimeout("status='"+text+"';", 400);
  }

  // Clear the statusline
  function clearStatus() {
    setStatus("");
  }

  // Preload images
  function preloadImages(type, path, names, extension) {
    for (var n=0; n<names.length; n++) {
     type[names[n]] = new Image();
     type[names[n]].src = path + names[n] + extension;
    }
  }

  // Mouseover/out/down/up functions
  function mOver(what) {
    if (initDone) document.images[what].src = overImgs[what].src;
  }		
  function mOut(what) {
    if (initDone) document.images[what].src = baseImgs[what].src;
  }
  function mDown(what) {
    if (initDone) document.images[what].src = downImgs[what].src;
  }
  function mUp(what) {
    if (initDone) document.images[what].src = baseImgs[what].src;
  }		

  // Navigate from a selectbox
  function selectNav(what) {
    var navpos=what.options[what.selectedIndex].value;
    if (navpos!="") location.href=navpos;
    else what.selectedIndex=0;
  }

  //Display a pop-up window for Forum
  function popForumWin(theUrl) {
     var winhandle;
     winhandle = window.open(theUrl,'KWorldForum','toolbar=0,directories=0,status=0,menubar=0,location=0,scrollbars=1,resizable=0,width=640,height=550');
     winhandle.focus();
  }

  // Display a pop-up window
  function popWin(url, name, width, height, features) {
     if (features) features=","+features;
     else features="";
     var newWin=window.open(url, name, "width="+width+",height="+height+features);
  }

  // Insert a img-tag string
  function imgHTML(src, width, height, border) {
    return "<img src='"+src+"' width='"+width+"' height='"+height+"' border='"+border+"'>";
  }

  // Get an anchor's (link's) x-pos
  function getLinkX(link) {
    if (ie) {
      var x=0;
      var obj=document.all[link];
      if (!mac) while(obj.offsetParent) {	// Pos-bug in mac/ie: use offsetParent
        x+=obj.offsetLeft;
        obj=obj.offsetParent;
      }
      else while(obj.parentElement) {
        x+=obj.offsetLeft;
        obj=obj.parentElement;
      }
      return x;
    }
    else return (document.anchors[link].x);
  }

  // Get an anchor's (link's) y-pos
  function getLinkY(link) {
    if (ie) {
      var y=0;
      var obj=document.all[link];
      if (!mac) while(obj.offsetParent) {	// Pos-bug in mac/ie: use offsetParent
        y+=obj.offsetTop;
        obj=obj.offsetParent;
      }
      else while(obj.parentElement) {
        y+=obj.offsetTop;
        obj=obj.parentElement;
      }
      return y;
    }
    else return (document.anchors[link].y);
  }


  // ******************** KUNSKAPSKUBEN ************************

  var currentOverTopic=null;
  if ((mac) && (ie)) { kkdx=-89; kkdy=-87; }	// Pos-bug in mac/ie
  else { kkdx=0; kkdy=0; }

  function cubeOver(topic) {
    cubeOut(currentOverTopic);
    putLayer("over"+topic, getLinkX('kkubena')+kkdx, getLinkY('kkubena')+120+kkdy);
    currentOverTopic=topic;
  }

  function cubeOut() {
    if (currentOverTopic) hideLayer("over"+currentOverTopic);
    currentOverTopic=null;
  }


  // ********************* HJÄLP/KARTA *************************

  var currentOverTopic=null;
  if ((mac) && (ie)) {  kadx=-89; kady=-87; }	// Pos-bug in mac/ie
  else { kadx=0; kady=0; }

  function kartaOver(topic) {
    kartaOut();
    hideLayer("ikonkworld");
    putLayer("ikon"+topic, getLinkX('kartaposlink')+kadx+10, getLinkY('kartaposlink')-1+kady);
    currentOverTopic=topic;
  }

  function kartaOut() {
    if (currentOverTopic) hideLayer("ikon"+currentOverTopic);
    putLayer("ikonkworld", getLinkX('kartaposlink')+kadx+10, getLinkY('kartaposlink')-1+kady);
    currentOverTopic=null;
  }

  function kartaStart() {
    putLayer("ikonkworld", getLinkX('kartaposlink')+kadx+10, getLinkY('kartaposlink')-1+kady);
  }


  // ******************* LAYER FUNCTIONS ***********************

  // Set layerpos and make visible
  function putLayer(layname, x, y) {
    if (ie) {
      document.all[layname].style.visibility="visible";
      document.all[layname].style.left=x;
      document.all[layname].style.top=y;
    }
    else {
      document.layers[layname].visibility="show";
      document.layers[layname].left=x;
      document.layers[layname].top=y;
    }
  }

  // make visible
  function putLayer1(layname) {
    if (ie) 
      document.all[layname].style.visibility="visible";
    else document.layers[layname].visibility="show";
  }

  // Hide layer
  function hideLayer(layname) {
    if (ie) document.all[layname].style.visibility="hidden";
    else document.layers[layname].visibility="hide";
  }

  // Get layerwidth
  function getLayerWidth(layname) {
    if (ie) return document.all[layname].offsetWidth;
    else return document.layers[layname].document.width;
  }

  // Get layerheight 
  function getLayerHeight(layname) {
    if (ie) return document.all[layname].offsetHeight;
    else return document.layers[layname].document.height;
  }

  // Set layer-clipping
  function setLayerClipping(layname,t,r,b,l) {
    if (ie) document.all[layname].style.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)";
    else {
      var obj=document.layers[layname];
      obj.clip.top = t;
      obj.clip.right = r;
      obj.clip.bottom = b;
      obj.clip.left = l;
    }
  }

  // Write layercontent
  function writeLayerContent(layerName, content) {
    if (ie) {
      document.all[layerName].innerHTML=content;
    }
    else {
      document.layers[layerName].document.open();
      document.layers[layerName].document.write(content);
      document.layers[layerName].document.close();
    }
  }

  // Create a layer
  function createLayer(id, content, width, height, zIndex) {
    if (ie) {
      document.body.insertAdjacentHTML("beforeEnd",
       "<div id='"+id+"' style='position:absolute; left:0; top:0; visibility:hidden; "+
       "width:"+width+"px; height:"+height+"px; z-index:"+zIndex+";'>"+content+"</div>");
    }
    else {
      document.layers[id]=new Layer(width);
      document.layers[id].left=0;
      document.layers[id].top=0;
      document.layers[id].height=height;
      document.layers[id].visibility="hidden";
      document.layers[id].zIndex=zIndex;
      document.layers[id].document.open();
      document.layers[id].document.write(content);
      document.layers[id].document.close();
    }
  }


  // ******************** FORM FUNCTIONS ***********************

  // Navigation within a form
  // OnPressEnter -> Propagates to next textfield, or submit if all are filled in.
  function formNavigation(formObj) {
    var focusDone=false;
    for (n=0; n<formObj.length; n++) {
      var elem=formObj.elements[n];
      if ((elem.type=="text") || (elem.type=="password")) {
        elem.onkeydown=formKeyCheck;
        if (!focusDone) {
          elem.focus();
          focusDone=true;
        }
      }
    }
  }

  function formKeyCheck(e) {
    if (ns) {
      var key=e.which;
      var inputObj=e.target;
    }
    else {
      var key=event.keyCode;
      var inputObj=event.srcElement;
    }
    if (key==13) {       
      var match=false;
      var next=-1;
      var complete=true;
      for (n=0; n<inputObj.form.length; n++) {
        var elem=inputObj.form.elements[n];
        if ((elem.type=="text") || (elem.type=="password")) {
          if (next<0) next=n;
          if (match) {
            next=n;
            match=false;
          }
          if (elem.name==inputObj.name) match=true;
          if (elem.value=="") complete=false;
        }
      }
      if (complete) inputObj.form.submit();
      else inputObj.form.elements[next].focus();
      return false;
    }
  }

// Combo functions

  function adjustMenuGen(ie_x1, ie_x2, la, ns_posla, ns_x1, ns_y1){
    if (ie) {
      if (screen.width<1000) 
        document.all[la].style.left=maintab.offsetLeft+maintab.offsetWidth+ie_x1;
      else 
        document.all[la].style.left=maintab.offsetLeft+maintab.offsetWidth+ie_x2;
      setTimeout("adjustMenuGen("+ie_x1+","+ie_x2+",'"+la+"','"+ns_posla+"',"+ns_x1+","+ns_y1+");", 500);
    }
    else {
      document.layers[la].moveTo(document.layers[ns_posla].pageX+ns_x1, document.layers[ns_posla].pageY+ns_y1);
    }
  } 

  function putComboLayer(l){
    putLayer1(l);
  }

  function adjustMenus(){
    //alert("adjustMenus() default");
  }

