function colorize_h1() {
  var m = document.getElementById("menu1");
  var a = m.getElementsByTagName("A");
  for (var i=0; i < a.length; i++) {
    if (hasclass(a[i], "selected")) {
      var colors = a[i].className.match(/green|pink|orange|purple/);
      if (colors && colors.length > 0)
        var color = colors[0];
      if (a[i].firstChild && a[i].firstChild.data == "Home")
        color = "pink";
        
      if (color) {
        colorize_h1_a(color);
      }
    }
  }
  var m  = document.getElementById("menu2");
  var a  = m.getElementsByTagName("A");
  for (var i=0; i < a.length; i++) {
    if (hasclass(a[i], "selected")) {
      var color = a[i].className.match(/green|pink|orange|purple/)[0];
      colorize_h1_a(color + " right");
      return;
    }
  }

  var m  = document.getElementById("menu3");
  var a  = m.getElementsByTagName("A");
  for (var i=0; i < a.length; i++) {
    if (hasclass(a[i], "selected")) {
      var color = a[i].className.match(/green|pink|orange|purple/)[0];
      colorize_h1_a(color + " right");
    }
  }
}

function colorize_h1_a(color) {
  var page = document.getElementById('page');
  var h1 = page.getElementsByTagName("H1");
  var a  = page.getElementsByTagName("A");
  h1[0].className = color;
  for (var i=0; i<a.length; i++) {
    a[i].className = color;
  }
  var table = page.getElementsByTagName("TABLE");
  for (var i=0; i<table.length; i++) 
    addclass(table[i], color);
}

function colorize(id, tag, extranet) {
  var o = document.getElementById(id);
  var nr_colors = arguments.length - 3;
  if (o) {
    var j = 0;
    var c = o.getElementsByTagName(tag);
    for (var i=0; i < c.length; i++) {
      if (parentLI(c[i]) == null) {
        if (c[i].parentNode.tagName == "LI" && id != 'page') {
          addclass(c[i], arguments[j % nr_colors + 3]);
          addclass(c[i].parentNode, arguments[j % nr_colors + 3]);
//        } else if (id == 'page') {
        } else if(c[i].parentNode.className != "language") {
          addclass(c[i], arguments[j % nr_colors + 3]);
        }
        j++;
      }
    }
    if (extranet) {
      addclass(o, "extranet");
    }
  }
}

function parentLI(e) {
  var li = 0;
  while(e.parentNode) {
    if (e.parentNode.tagName == "LI")
      li++;
    if (li >= 2)
      return li;
    e = e.parentNode;
  }
  return null;
}

function colorize_words(word) {
  var ps = document.getElementsByTagName('P');
  for (var i=0; i < ps.length; i++) {
    for (var j=0; j < ps[i].childNodes.length; j++) {
      var t1 = ps[i].childNodes[j];
      if (t1.nodeType == 3) { // textnode?
        var p = t1.data.indexOf(word);
        if (p >= 0) {
          var t2 = t1.splitText(p);
          for (var k=0; k < word.length; k++) {
            var t3 = t2.splitText(1);
            var span = document.createElement("SPAN");
            span.className = arguments[k+1];
            span.appendChild(document.createTextNode(t2.data));
            t1.parentNode.replaceChild(span, t2);
            t2 = t3;
          }
        }
      }
    }
  }
}

function replace_edu() {
  var ps = document.getElementsByTagName('P');
  replace_edus(document.getElementsByTagName('P'));
  replace_edus(document.getElementsByTagName('TD'));
  replace_edus(document.getElementsByTagName('H2'));
  replace_edus(document.getElementsByTagName('H1'));
  replace_edus(document.getElementsByTagName('A'));
  replace_edus(document.getElementsByTagName('LI'));
}

function replace_edus(n) {
  for (var i=0; i < n.length; i++) {
    for (var j=0; j < n[i].childNodes.length; j++) {
      var t1 = n[i].childNodes[j];
      if (t1.nodeType == 3) { // textnode?
        var p = t1.data.indexOf('EDU');
        if (p >= 0) {
          var t2 = t1.splitText(p);
          t2.data = t2.data.substr(3);
          var span = document.createElement("SPAN");
          span.appendChild(document.createTextNode("EDU"));
          span.className = 'edu';
          t2.parentNode.insertBefore(span, t2);
        }
      }
    }
  }
}

function init_zoekterm(label_id, term_id) {
  var label = document.getElementById(label_id);
  var field = document.getElementById(term_id);
  
  label.style.display = "block";
  
  if (field.value !== '') {
    hideLabel(label, true);
  }

  // Set handlers to show and hide labels.
  field.onfocus = function () {
    hideLabel(label, true);
  };
  field.onblur = function () {
    if (this.value === '') {
      hideLabel(label, false);
    }
  };
  label.onclick = function() {
    hideLabel(label, true);
    field.focus();
  }
}

function init_zoekbutton() {
  var b = document.getElementById('searchbutton');
  b.onmouseover = function () {
    this.style.backgroundPosition = "bottom";
  };
  b.onmouseout = function() {
    this.style.backgroundPosition = "top";
  }
}

function hideLabel(label, hide) {
  label.style.textIndent = (hide) ? '-2000px' : '0px';
}

function init_calendar() {
  var page = document.getElementById('page');
  var div = page.getElementsByTagName('DIV');
  var cal = null;
  for (var i=0; i<div.length; i++) {
    if (div[i].className == 'calendar') {
      cal = div[i];
    }
  }
  if (cal) {
    var h2 = cal.getElementsByTagName('H2');
    for (var i=0; i<h2.length; i++) {
      var result = h2[i].firstChild.data.match(/january|february|march|april|may|june|july|august|september|october|november|december/i);
      h2[i].className = result[0].toLowerCase();
    }
  }
}


function initradios() {
  var v = document.getElementById('langctl');
  if (v) {
    var a = v.getElementsByTagName('a');
    for (var i=0; i<a.length; i++) {
      a[i].onclick = radio_click;
    }
  }
}

function init_listitems(id) {
  var o = document.getElementById(id);
  var li = o.getElementsByTagName('LI');
  for (var i=0; i<li.length; i++) {
    var span = document.createElement('DIV');
    span.className = "listitem";
    while (li[i].firstChild) {
      span.appendChild(li[i].removeChild(li[i].firstChild));
    }
    li[i].appendChild(span);
  }    
}

function init() {
  initmenu('menu1');
  initmenu('menu2');
  initmenu('menu3');

  init_zoekterm('zoeklabel1', 'zoekterm1');
  init_zoekterm('zoeklabel2', 'zoekterm2');
  init_zoekbutton();
  init_listitems('page');
  
  var extranet = (getcookie("lgbt_login") != "");
  
  colorize("menu1", "A", extranet, "green", "pink", "orange", "purple");
  colorize("menu2", "A", extranet, "orange", "purple", "green", "pink");
  colorize("menu3", "A", extranet, "orange", "purple", "green", "pink");
  
  colorize_h1();
  
  colorize("page", "H2", extranet, "green", "pink", "orange", "purple");
  colorize("page", "H3", extranet, "green", "pink", "orange", "purple");
  colorize("page", "LI", extranet, "green", "pink", "orange", "purple");
  colorize("page", "STRONG", extranet, "purple", "green", "pink", "orange", "purple");
  
  colorize_words("LGBT", "green", "pink", "orange", "purple");  
  colorize_words("GALE", "green", "pink", "orange", "purple");
  replace_edu();
  
  init_calendar();
  
  initradios();
  
  initpopups();
  
  if (document.getElementById('worldmap')) {
    loadMaps();
  }
}

onload = init;

function radio_click(e) { 
  if (!e) var e = window.event;
  var a = getTarget(e);
  if (a) {
    for (var i = 0; i < a.parentNode.childNodes.length; i++) {
      delclass(a.parentNode.childNodes[i], 'selected');
    }
  }
  flipclass(a, 'selected');
}

function delete_foto(field) {
  if (confirm('deleting foto ok?')) {
    document.forms[0][field].value = "";
    var img = document.getElementById("img_"+field);
    if (img) img.style.display = "none";
  }
}

/*******************************************************
* General HTMLElement methods
*******************************************************/
function getTarget(e) {
  if (!e) var e = window.event;
	var targ;
	if (e.currentTarget) targ = e.currentTarget;
	else if (e.srcElement) targ = e.srcElement;
  return targ;
}

function addclass(e, c) {
  if (e.className.indexOf(c) == -1) {
    if (e.className.length > 0)
      e.className += " " + c;
    else
      e.className = c;
  }
}

function delclass(e, c) {
  var p = e.className.indexOf(c);
  if (p >= 0)
    e.className = e.className.substr(0, p) + e.className.substr(p + c.length);
}


function flipclass(e, c) {
  if (e.className.indexOf(c) == -1)
    addclass(e, c);
  else
    delclass(e, c);
}


function hasclass(e, c) {
  var p = e.className.indexOf(c);
  return (p >= 0)
}

function getcookie(name) {
  var p1 = document.cookie.indexOf(name+"=");
  if (p1 == -1) return "";
  p1 = name.length + 1;
  var p2 = document.cookie.indexOf(";", p1);
  if (p2 == -1) p2 = document.cookie.length;
  return document.cookie.substring(p1, p2);
}

