function Menu(id) 
{
  if (!document.getElementById || !document.getElementsByTagName) { return false; }
  this.menu = document.getElementById(id);
  this.init();
}

Menu.prototype.init = function() 
{
  var linkArray = this.menu.getElementsByTagName('a');
  for (var i = 0; i < linkArray.length; i++) {
    var img = linkArray[i].getElementsByTagName('img')[0];
    if (img) {

      img.onmouseover = function() {
        var pos1 = this.src.indexOf('_over');
        if (pos1 < 0) {
          var pos2 = this.src.lastIndexOf('/');
          var pos3 = this.src.indexOf('.', pos2);
          this.src = this.src.substring(0, pos3) + '_over' + this.src.substring(pos3);
        }
      };

      img.onmouseout = function() {
        var pos1 = this.src.indexOf('_over');
        if (pos1 > 0) {
          var pos2 = this.src.lastIndexOf('/');
          var pos3 = this.src.indexOf('.', pos2);
          this.src = this.src.substring(0, pos1) + this.src.substring(pos3);
        }
      };
      
      linkArray[i].onclick = function() {
        var href   = this.getAttribute('href');
        var target = this.getAttribute('target');
        if (href && target) {
          if (href.indexOf('repertoire') >= 0) {
            Menu.load(target, href, Menu.loadRepertoire);
          } else if (href.indexOf('fotos') >= 0) {
            Menu.load(target, href, Menu.loadFotos);
          } else {
            Menu.load(target, href);
          }
        }
        return false;
      };

    }
  }
}

Menu.enabled = 'true';

Menu.enable = function() 
{
  Menu.enabled = 'true';
}

Menu.disable = function() 
{
  Menu.enabled = null;
}

Menu.load = function(id, url, postLoadAction) 
{
  if (!Menu.enabled) { return; }
  
  logPageview(url);
  setSiteOpacity(100);  
  doXmlHttpRequest(url, Menu.loadHandler, id, postLoadAction);
}

Menu.loadHandler = function(data, id, postLoadAction)
{
  var elem = document.getElementById(id);
  if (elem) {
    var bodyData = data.split('<body>');
    var bodyHtml = bodyData[1].split('</body>')[0];
    elem.innerHTML = bodyHtml;
    if (postLoadAction) { postLoadAction(); }
  }
}

Menu.loadFotos = function() 
{
  doXmlHttpRequest('fotos/sfeer.html', Menu.loadGalleryHandler, 'subcontent', null);
}

Menu.loadGallery = function(id, url) 
{
  logPageview(url);
  doXmlHttpRequest(url, Menu.loadGalleryHandler, id, null);
}

Menu.loadGalleryHandler = function(data, id)
{
  var elem = document.getElementById(id);
  if (elem) {
    var bodyData = data.split('<body>');
    var bodyHtml = bodyData[1].split('</body>')[0];
    elem.innerHTML = bodyHtml;
    var gallery = new ImageGallery('gallery');
  }
}

Menu.loadNewsFlash = function() 
{
  doXmlHttpRequest('nieuwsflits.html', Menu.loadNewsFlashHandler, 'subpage', null);
}

Menu.loadNewsFlashHandler = function(data, id)
{
  var elem = document.getElementById(id);
  if (elem) {
    var bodyData = data.split('<body>');
    var bodyHtml = bodyData[1].split('</body>')[0];
    var newsFlash = new NewsFlash(id, bodyHtml);
  }
}

Menu.loadRepertoire = function() 
{
  doXmlHttpRequest('repertoire/nederlandstalig.html', Menu.loadRepertoireHandler, 'subcontent', null);
}

Menu.loadRepertoireHandler = function(data, id)
{
  var elem = document.getElementById(id);
  if (elem) {
    var bodyData = data.split('<body>');
    var bodyHtml = bodyData[1].split('</body>')[0];
    elem.innerHTML = bodyHtml;
  }
}

Menu.submitContactForm = function(id, url) 
{
  doXmlHttpRequest(url, Menu.submitContactFormHandler, id, null);
}

Menu.submitContactFormHandler = function(data, id)
{
  var elem = document.getElementById(id);
  if (elem) {
    elem.innerHTML = '<b>Bedankt voor uw reactie, wij nemen z.s.m. contact met u op.</b>';
  }
}

function doXmlHttpRequest(url, callback, id, postLoadAction) 
{
  var xmlHttpRequest;
  if(window.ActiveXObject) {
    try { 
      xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
    } catch(e) {
      try { 
        xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
      } catch(e) { 
        return false;
      }
    }
  } else if(window.XMLHttpRequest) {
    try { 
      xmlHttpRequest = new XMLHttpRequest();
    } catch(e) { 
      return false;
    }
  }

  if (!xmlHttpRequest) { return false; }

  xmlHttpRequest.onreadystatechange = function()
  {
    if (xmlHttpRequest.readyState == 4) {
      if (xmlHttpRequest.status == 200 || xmlHttpRequest.status == 0) {
        callback(xmlHttpRequest.responseText, id, postLoadAction);
      }
    }
  }

  try {
    xmlHttpRequest.open('GET', url, true);
    xmlHttpRequest.send(null);
  } catch(e) { 
    return false;
  }

  return false;
}

function startSession() 
{
  if (document.images) {
    img = new Image();
    img.src = 'http://www.brixxband.nl/php/start.php?wdt=' + screen.width + '&hgt=' + screen.height;
  } 
}

function logPageview(url) 
{
  if (document.images) {
    img = new Image();
    img.src = 'http://www.brixxband.nl/php/log.php?' + url;
  } 
}

