// Import some other scripts
document.write('<script type="text/javascript" src="/js/prototype.js"></script>');
document.write('<script type="text/javascript" src="/js/scriptaculous.js?load=effects"></script>');
document.write('<script type="text/javascript" src="/js/sifr.js"></script>');

var KsMenu = {
  defaultmenu: null, // i
  current: null, // i
  submenu: {},  // i => element (ul)
  mainmenu: {}, // i => element (a)
  timeout: {}, // i => timer
  visible: {}, // i => true | false
  timeout_off: null // timer
  //timeout_on: null,
  //timeout_off: null
};

var MenuXML = '<navigation></navigation>';
function KsGetMenuXML () {
  return MenuXML;
}

function KsPageLoaded (arg) {
  Event.observe(document.onresize ? document : window, "resize", function() { KsPageResized(); });   
  Event.observe(window, "load", function() { KsPageResized(); });   
  KsPageResized();
  if (arg.load_flash && KsHasFlash()) { //  && false
    //Event.observe(window, "load", function() { KsLoadFlash(); });   
    KsLoadFlash();
    }
}
function KsBuildNavigation (arg) {
  if (arg.load_css && arg.load_css != 'print') document.write('<link rel="StyleSheet" type="text/css" href="/css/ks1_screen.css" media="screen"/>');

  if (arg.load_flash && KsHasFlash()) { //  && false
    if (1) {
    //document.write('<script type="text/javascript">KsLoadFlash();</scr' + 'ipt>');
    //KsLoadFlash();
    var d = new Date();
    
    // Build XML dynamicly from Menu HTML
    /*
      <item title="Menu tekst" url="/url/to/1" id="">
        <item title="Sub item 1" url="/url/to/2" id=""></item>
        <item title="Sub item 2" url="/url/to/3" id=""></item>
      </item>
      <item title="Main 2" url="/url/to/4" id=""></item>
    */
    MenuXML = '<navigation>';
    var main_items = $$('ul.main_navigation'); 
    main_items = main_items[0].childElements();
    for (var i = 0; i < main_items.length; i++) {
      var childs = main_items[i].childElements();
      // childs[0] is the <a href> childs[1] is <ul> (submenu)
      MenuXML += '<item title="' + (childs[0].innerText || childs[0].textContent).toUpperCase() + 
                 '" url="' + childs[0].href + 
                 '" id="' + main_items[i].readAttribute('name') + '">';
      if (childs.length > 1) { // Got submenu
        var sub_items = childs[1].childElements();
        for (var j = 0; j < sub_items.length; j++) {
          var childs = sub_items[j].childElements();
          MenuXML += '<item title="' + (childs[0].innerText || childs[0].textContent).toUpperCase() +
                     '" url="' + childs[0].href + 
                     '" id="' + sub_items[j].readAttribute('name') + '"/>';
          }
        }
      MenuXML += '</item>';
      }    
    MenuXML += '</navigation>';
    
    //alert(MenuXML);
    
    var urlvars = 
      "lang=" + arg.lang + "&amp;" +
      "version=" + 10 + "&amp;" + // d.getTime() + "&amp;" + // 
      "current_main=" + arg.current_main + "&amp;" +
      "current_sub=" + arg.current_sub + "&amp;" +
      "menuxml=" + "";
    $('navigation').update(
      '<div id="swf_navigation">' +
      '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ' +
      'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" ' +
      'width="920" height="162" id="KsSwfMenu" align="middle">' +
      '<param name="allowScriptAccess" value="always" />' +
      '<param name="allowFullScreen" value="false" />' +
      '<param name="movie" value="/swf/KsMenu_02.swf?' + urlvars + '" />' +
      '<param name="loop" value="false" />' +
      '<param name="menu" value="false" />' +
      '<param name="quality" value="high" />' +
      '<param name="scale" value="noscale" />' +
      '<param name="salign" value="lt" />' +
      '<param name="wmode" value="transparent" />' +
      //'<param name="bgcolor" value="#000000" />' +
      '<embed src="/swf/KsMenu_02.swf?' + urlvars + '" loop="false" menu="false" quality="high" scale="noscale" ' +
      'salign="lt" ' +
      'wmode="transparent" ' +
      //'bgcolor="#000000" ' +
      'width="920" height="162" name="KsSwfMenu" align="middle" ' +
      'allowScriptAccess="always" allowFullScreen="false" ' +
      'type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
      '</object></div>' +
      '');
    }
    // Must do this after render because we can;t get the right sizes of headers now already...
    //Event.observe(window, "load", function() { KsLoadFlash(); });   
    //KsLoadFlash();
    //self.setTimeout("KsLoadFlash();",20);   
    }
  else {
    // Non flash menu:
    
  // Build interactive menu
  var main_items = $$('ul.main_navigation'); 
  main_items = main_items[0].childElements();
  var debug = "";
  for (var i = 1; i <= main_items.length; i++) {
    var childs = main_items[i-1].childElements();
    KsMenu.mainmenu[i] = childs[0];
    var submenu = "";
    if (childs.length > 1) { // Got submenu
      var ul = childs[1];
      submenu = ul.innerHTML;
      //submenu = 'KsSubMenu' + i;
      }
    $('sub_navigation').insert(
      '<ul id="KsSubMenu' + i + '" style="display:none;" class="KsSubMenu" ' +
      'onmouseover="KsMenuOver(' + i + ')" onmouseout="">' + 
      submenu + '</ul>'
      );
    //KsMenu.submenu[i] = submenu;
    KsMenu.mainmenu[i].rel = i;
    KsMenu.mainmenu[i].observe('mouseover', function (event) { KsMenuOver(Event.element(event).rel); }); 
    //a.observe('mouseout', function (event) { KsMenuOut(Event.element(event).rel); }); 
    //a.observe('mouseover', function (event) { alert( Event.element(event).rel ); }); 
    if (KsMenu.mainmenu[i].className == "active") { // current active item
      //alert(a.innerText);
      KsMenu.defaultmenu = i;
      }
      
    debug += " " + KsMenu.mainmenu[i].innerText;
    
    }
  //alert(debug);
  //alert(KsMenu.defaultmenu);
  //$('main').observe('mouseover', function (event) { KsMenuOut(event); }); 
  //$('navigation').style.border = "1px solid red"; 
  //$('language').style.color = "#FFF";
    
    Event.observe(window, "load", function() { KsMenuOver(KsMenu.defaultmenu); });   
    $('navigation').observe('mouseout', function (event) { KsMenuOut(event); }); 
    }
  // Must also run after render:
}

function KsHeader2SWF (el,id,swf) {
  //var ch = el.childElements();
  /*
  if (ch.length > 0) {
    //alert("Take child[0] on " + swf + " (" + id + ")");
    el = ch[0];
    }*/
  //el.style.backgroundColor="black";
  var dm = $(el).getDimensions();
  var width = dm.width;
  if (width == 0) return;//width = 410; // Probably invisible now
  //el.title = swf + " (" + id + ") = " + width + " X " + dm.height;
  //return;
  var txt = (el.innerText || el.textContent);
  var d = new Date();
  txt = txt.replace(/<br\s?\/>/ig,"");
  var urlvars = 
    "version=" + d.getTime() + "&amp;" +
    "txt=" + escape(txt.replace(/’/g,"'")) + //"&amp;" + 
    //"version=4" + id + //"&amp;" + // + d.getTime() + "&amp;" +
    "";
  if (txt) {
    el.update(
    //el.replace(
      //'<div style="border-bottom:1px solid red;width:' + width + 'px;height:' + dm.height + 'px;"' +
      //' title="width:' + width + 'px;height:' + dm.height + 'px;"' +
      //'>' + 
      //txt + '</div>' + 
      
      
      '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ' +
      'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" ' +
      'width="' + width + '" height="' + dm.height + '" id="KsSWF' + id + '" align="middle">' +
      '<param name="allowScriptAccess" value="always" />' +
      '<param name="allowFullScreen" value="false" />' +
      '<param name="movie" value="/swf/' + swf + '.swf?' + urlvars + '" />' +
      '<param name="loop" value="false" />' +
      '<param name="menu" value="false" />' +
      '<param name="quality" value="high" />' +
      '<param name="scale" value="noscale" />' +
      '<param name="salign" value="lt" />' +
      '<param name="wmode" value="transparent" />' +
      //'<param name="bgcolor" value="#000000" />' +
      
      '<embed src="/swf/' + swf + '.swf?' + urlvars + '" loop="false" menu="false" quality="high" scale="noscale" ' +
      'salign="lt" ' +
      'wmode="transparent" ' +
      //'bgcolor="#000000" ' +
      'width="' + width + '" height="' + dm.height + '" name="KsSWF' + id + '" align="middle" ' +
      'allowScriptAccess="always" allowFullScreen="false" ' +
      'type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
      
      '</object>' +
      
      //'</div>' + 
      '');
    el.show();
    }
}

function KsLoadFlash () {
  // Replace H1 and H2
  var elms = $$("h1");
  for (var i = 0; i < elms.length; i++) {
    KsHeader2SWF(elms[i],"h1" + i,"h1");
    }
  elms = $$("h2");
  for (var i = 0; i < elms.length; i++) {
    KsHeader2SWF(elms[i],"h2" + i,"h2");
    }
  elms = $$("h3");
  for (var i = 0; i < elms.length; i++) {
    KsHeader2SWF(elms[i],"h3" + i,"h3");
    }
  // Replace <div class="functional_header">
  elms = $$(".functional_header");
  for (var i = 0; i < elms.length; i++) {
    KsHeader2SWF(elms[i],"fh" + i,"functional_header");
    }
  
  return; 
}

function KsMenuOver (i) {
 /* mouse-over main: 
    huidig sub verbergen,
    sub van main (indien) weergeven */
  //$('language').innerText += ", OVER: " + i + " (c=" + KsMenu.current + ")";
  if (!i) {
    return;
    }
  if (KsMenu.timeout_off) {
    //$('language').innerText += ", Cancel OFF now";
    self.clearTimeout(KsMenu.timeout_off);
    }
  if (KsMenu.current == i) { // already on
    //$('language').update("same thing");
    return;
    }
  else if (KsMenu.current) { 
    // Hide it directly
    if (KsMenu.timeout[KsMenu.current]) { // Not already shown or waiting to hide
      self.clearTimeout(KsMenu.timeout[KsMenu.current]); // cancel queued action
      }
    KsMenuHide(KsMenu.current); // hide now
    }
  KsMenu.current = i; // its on now
  
  KsMenu.timeout[i] = self.setTimeout("KsMenuShow(" + i + ")",150);
}

function KsMenuOut (event) {
 /* mouse-out: 
    huidig sub verbergen,
    default (indien) weergeven */
  //return;
  //$('language').innerText += ", OUT(1)";// + " " + Event.element(event).id;
  self.clearTimeout(KsMenu.timeout_off);
  KsMenu.timeout_off = self.setTimeout("KsMenuOut2()",250);
}
function KsMenuOut2 () {
  var i = KsMenu.current;
  if (i == KsMenu.defaultmenu) return; // Default may stay visible
  if (i) {
    //$('language').innerText += ", OUT(2): " + i;// + " " + Event.element(event).id;
    if (KsMenu.timeout[i]) { // Not already shown or waiting to hide
      self.clearTimeout(KsMenu.timeout[i]); // cancel queued action
      }
    KsMenu.timeout[i] = self.setTimeout("KsMenuHide(" + i + ")",50);
    }
  if (KsMenu.defaultmenu) {
    KsMenuOver(KsMenu.defaultmenu);
    }
}

function KsMenuShow (i) {
  if (!KsMenu.visible[i]) {
    KsMenu.mainmenu[i].className = "active";
    var ul = $('KsSubMenu' + i);
    var maxw = document.viewport.getWidth();
    var margin = ((maxw - 900) / 2);
    maxw = 900 + margin;
    //maxw = 900;
    var l = KsMenu.mainmenu[i].cumulativeOffset().left;
    var w = ul.getWidth();
    var from_right = false;
    if ((l + w) > maxw) {
      l -= w;
      l += KsMenu.mainmenu[i].getWidth();
      //from_right = true; // < Hiermee andersom (van rechts naar links) laten verschijnen
      }
    ul.setStyle({ left: l + "px" });
    // hide each child, then show one after another
    var childs = ul.childElements();
    for (var x = 0; x < childs.length; x++) {
      //childs[x].setStyle({visibility: 'hidden'});
      childs[x].hide();
      var time = (x * 50);
      if (from_right) {
        time = (childs.length - x) * 50;
        }
      self.setTimeout('$("KsSubMenu' + i + '").childElements()[' + x + '].appear({ duration: 0.15 });', time);
      }
    //ul.appear({ duration: 0.2 });
    ul.show();
    KsMenu.visible[i] = true;
    }
}

function KsMenuHide (i) {
  if (KsMenu.visible[i]) {
    KsMenu.mainmenu[i].className = "";
    var ul = $('KsSubMenu' + i);
    ul.fade({ duration: 0.4 });
    KsMenu.visible[i] = false;
    }
}

function KsPageResized () {
  if (!$('contentbar')) return;
  //$('main').setStyle({height: document.viewport.getHeight() + "px"});
  // Find the desired height:
  var main_h = document.viewport.getHeight() - $('navigation').getHeight();
  var ASh = 0;
  if ($('AsMainTaskbar')) ASh = $('AsMainTaskbar').getHeight();
  main_h -= ASh;
  if ($('images')) { main_h -= $('images').getHeight(); }
  var left_h  = $('content').getHeight() + $('footer').getHeight();
  var right_h = $('functional').getHeight() + $('related').getHeight() + 40;
  var h = (left_h > right_h ? left_h : right_h);
  h = (h > main_h ? h : main_h);
  // Set container objects height:
  if (h > left_h) $('contentbar').setStyle({height: h + "px"});
  //if (h > right_h) $('rightbar').setStyle({height: h + "px"});
  // Set objects height:
  var margin_l = h - $('footer').getHeight() - $('content').getHeight();
  //margin_l += 20;
  //$('language').update(main_h + " ? " + left_h + " ? " + right_h + " : " + h + "(" + margin_l)
  $('footer').setStyle({marginTop: margin_l + "px"});
  
  
  //var margin_r = h - $('functional').getHeight() - $('related').getHeight();
  //alert(margin_r);
  //$('functional').setStyle({marginBottom: margin_r + "px"});
  
  var t = ($('main').getHeight() - 20 - $('related').getHeight()) + ASh;
  $('related').setStyle({ top: t + "px"});
  //$('related').title = t;
  
}

var KsSettings = {
  //pics: 64,  // 64 pics
  interval: 3500, // milliseconds // Zolang blijft image staan na overgang
  duration: 1800, // milliseconds // Zolang duurt overgang
  //timeout: null,
  nextpic: 0,
  loader1: new Image(),
  loader2: new Image(),
  startfix: 0,
  random: true, // First pic is random, not fixed
  enabled: true // On / off
};

function KsPhotoSlider (photos) {
  if ($('images')) {
    /*
    var debug = "";
    for (var array in photos) { debug += (array + ",") }
    $('images').update("KsPhotoSlider here: " + photos);
    */
    
    $('images').insert(
      '<div id="KsPhotoSliderLarge">' +
        '<img id="KsPhotoSliderLarge1" class="" style="position:absolute;" alt="" />' +
        '<img id="KsPhotoSliderLarge2" class="" style="position:absolute;" alt="" />' +
      '</div>' +
      '<div class="KsPhotoSliderArrow"></div>' +
      '<div id="KsPhotoSliderSmall" onclick="KsPhotoSlide1()">' +
        '<img id="KsPhotoSliderSmall1" class="" style="position:absolute;" alt="" />' +
        '<img id="KsPhotoSliderSmall2" class="" style="position:absolute;" alt="" />' +
      '</div>' +
      '<div class="empty clear"></div>'
      );
    
    KsSettings.pics = photos.length;
    KsSettings.url = photos; // KsSettings.url[0][1]
    }
  //Event.observe(window, "load", function() { KsPhotoSlide1(); });   
  KsPhotoSlide1();
}

  // <div id="background" onselect="return false" onselectstart="return false" ondragstart="return false"><img id="background_img1" class="background" alt="" /><img id="background_img2" class="background" alt="" /></div>
  
function KsPhotoSlide1 () {
  //$('background').update('');
  if (KsSettings.nextpic == 0) {
    // Init
    $('KsPhotoSliderLarge1').hide();
    $('KsPhotoSliderSmall1').hide();
    if (KsSettings.random) {
      KsSettings.nextpic = Math.floor(Math.random() * KsSettings.pics);
      }
    else {
      // startpic op basis van clock. Dan gaat de slideshow verder bij 
      // hetzelfde image ook als je navigeert
      var oneruntime = (KsSettings.interval + KsSettings.duration);
      var showtime = (KsSettings.pics * oneruntime);
      var currentTime = new Date();
      var it = Math.floor(currentTime.getTime() / showtime); // aantal iteraties
      var x = (it * showtime);
      
      //KsSettings.nextpic = Math.ceil((currentTime - x) / (KsSettings.interval + KsSettings.duration));// (showtime * KsSettings.pics);
      var rest = currentTime - x;
      KsSettings.nextpic = Math.floor((rest / showtime) * KsSettings.pics);
      KsSettings.startfix = rest - (KsSettings.nextpic * oneruntime);
      //$('feedback1').update(currentTime.getTime() + " / " + showtime + " = " + it + ". (" + x + "," + rest + ", " + KsSettings.startfix + ")");
      }
    }
  if (KsSettings.nextpic == KsSettings.pics) { // last, restart first
    KsSettings.nextpic = 1;
    }
  else {
    KsSettings.nextpic++; // Next pic
    }
  
  if (KsSettings.phase == 1) {
    KsPhotoSlide2();
    $('KsPhotoSliderLarge2').hide();
    $('KsPhotoSliderSmall2').hide();
    }
  KsSettings.phase = 1;
  if (KsSettings.timeout1) self.clearTimeout(KsSettings.timeout1);
  if (KsSettings.timeout2) self.clearTimeout(KsSettings.timeout2);
  if (KsSettings.timeout3) self.clearTimeout(KsSettings.timeout3);
  
  //$('feedback2').update(KsSettings.nextpic);
  //$('id_of_element').fade({ duration: 3.0 });
  //$('id_of_element').appear({ duration: 3.0 });
  $('KsPhotoSliderLarge2').src = KsSettings.url[KsSettings.nextpic - 1][0];
  $('KsPhotoSliderLarge2').appear({ duration: (KsSettings.duration / 1000) });
  var small = KsSettings.nextpic;
  if (small >= KsSettings.pics) small = 0;
  $('KsPhotoSliderSmall2').src = KsSettings.url[small][1]; // Small is one ahead
  $('KsPhotoSliderSmall2').appear({ duration: (KsSettings.duration / 1000) });
  KsSettings.timeout1 = self.setTimeout("KsPhotoSlide2()", KsSettings.duration); // next run
  // preload next:
  if (KsSettings.nextpic < KsSettings.pics) {
    KsSettings.loader1.src = KsSettings.url[KsSettings.nextpic][0]; // "/backgrounds/pic (" + (KsSettings.nextpic + 1) + ").jpg";
    small++;
    if (small >= KsSettings.pics) small = 0;
    KsSettings.loader2.src = KsSettings.url[small][1]; // "/backgrounds/pic (" + (KsSettings.nextpic + 1) + ").jpg";
    }
}
  
function KsPhotoSlide2 () {
  KsSettings.phase = 2;
  if (KsSettings.timeout1) self.clearTimeout(KsSettings.timeout1);
  if (KsSettings.timeout2) self.clearTimeout(KsSettings.timeout2);
  if (KsSettings.timeout3) self.clearTimeout(KsSettings.timeout3);
  if (!KsSettings.enabled) return false;
  $('KsPhotoSliderLarge1').show();
  $('KsPhotoSliderLarge1').src = $('KsPhotoSliderLarge2').src;
  $('KsPhotoSliderSmall1').show();
  $('KsPhotoSliderSmall1').src = $('KsPhotoSliderSmall2').src;
  var time = KsSettings.interval;
  if (KsSettings.startfix > 0) {
    time -= KsSettings.startfix;
    if (time < 2) time = 2;
    KsSettings.startfix = 0;
    }
  KsSettings.timeout3 = self.setTimeout("$('KsPhotoSliderLarge2').hide();", Math.floor(time / 2)); 
  KsSettings.timeout2 = self.setTimeout("$('KsPhotoSliderSmall2').hide();", Math.floor(time / 2)); 
  KsSettings.timeout1 = self.setTimeout("KsPhotoSlide1()", time); // next run
}

function KsHasFlash () {
  var a = 6;
  if (navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.indexOf("Windows")>-1) {
    document.write('<script language="VBScript"\> \non error resume next \nhasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & '+a+'))) \n</script\> \n');
    if (window.hasFlash!=null) return window.hasFlash;
    }
  if (navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
    return true;
    //var b = (navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;
    //return parseInt(b.charAt(b.indexOf(".")-1))>=a;
    }
  return false;
}