

AddEvent(window, "load", Initialize);
AddEvent(window, "resize", ResetAllMenu);


// ### Initializer #################################################################

var divPage;
var htmlPath, languangePath;


function Initialize()
{
  htmlPath = "/NoordwijkTemplate/";
  languangePath = TrimText(document.getElementById("divCurrentLanguage").innerHTML);

  divPage = document.getElementById("divPage");

  divContentMenuImage = document.getElementById("divContentMenu").getElementsByTagName("img");
  divSubContentMenu = document.getElementById("divSubContentMenu");

  var nDiv = divSubContentMenu.getElementsByTagName("div");
  for (var i = 0; i < nDiv.length; i++)
  {
    if (nDiv[i].className == "subcontentmenu")
    {
      divSubContentMenuChild[divSubContentMenuChild.length] = nDiv[i];
    }
  }

  divFooter = document.getElementById("divFooter");

  imgFooterMenu = document.getElementById("divFooterMenu").getElementsByTagName("img");
  subFooterMenu = document.getElementById("divSubFooterMenu").getElementsByTagName("div");

  divSubFooterMenuChild = document.getElementById("divSubFooterMenuChild");
  subFooterMenuChild = divSubFooterMenuChild.getElementsByTagName("div");

  if (document.images)
  {
    PreloadTopMenu();
    PreloadLanguage();
    PreloadContentMenu();
    PreloadFooterMenu();
  }

  AddInlineEvent();
  ReadSelectedMenu();

  SetHomeContentMenuInlineEvent();

  SetTopMenuInlineEvent();
  SetLanguageMenuInlineEvent();
  SetFooterMenuInlineEvent();

  SetBackgroundImage();
}


// ### Method ######################################################################

function AddEvent(pObject, pEventType, pFunction)
{
  if (pObject.addEventListener)
  {
    pObject.addEventListener(pEventType, pFunction, false);
  }
  else
  {
    if (pObject.attachEvent)
    {
      pObject.attachEvent("on" + pEventType, pFunction);
    }
  }
}

function GetPosition(pObject)
{
  var nPosX = pObject.offsetLeft;
  var nPosY = pObject.offsetTop;

  while(pObject.offsetParent)
  {
    nPosX += pObject.offsetParent.offsetLeft;
    nPosY += pObject.offsetParent.offsetTop;

    if (pObject == document.getElementsByTagName("body")[0])
    {
      break;
    }
    else
    {
      pObject = pObject.offsetParent;
    }
  }

  return ([nPosX, nPosY]);
}

function GetCursorLocation(evt)
{
  var nLocX = 0;
  var nLocY = 0;

  if (evt.pageX)
  {
    nLocX = evt.pageX;
  }
  else
  {
    if (evt.clientX)
    {
      nLocX = evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft :document.body.scrollLeft);
    }
  }

  if (evt.pageY)
  {
    nLocY = evt.pageY;
  }
  else
  {
    if (evt.clientY)
    {
      nLocY = evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    }
  }

  return ([nLocX, nLocY]);
}

function TrimText(text)
{
  return (text.replace(/^\s+|\s+$/g, ""));
}

function ResetAllMenu()
{
  ResetSubContentMenu();
  ResetFooterMenu();
  ResetSubFooterMenu();
  ResetSubFooterMenuChild();
}

function AddInlineEvent()
{
  for (var i = 0; i < imgFooterMenu.length; i++)
  {
    AddEvent(imgFooterMenu[i], "mouseout", TimerResetFooterMenu);
  }

  for (var i = 0; i < subFooterMenu.length; i++)
  {
    AddEvent(subFooterMenu[i], "mouseover", CancelResetFooterMenu);
    AddEvent(subFooterMenu[i], "mouseout", TimerResetFooterMenu);
  }

  for (var i = 0; i < subFooterMenuChild.length; i++)
  {
    AddEvent(subFooterMenuChild[i], "mouseover", CancelResetFooterMenu);
    AddEvent(subFooterMenuChild[i], "mouseout", TimerResetFooterMenu);
  }
}


// ### Background Image Randomizer #################################################

function SetBackgroundImage()
{
  if (document.getElementById("divContent"))
  {
    var nDate = new Date();
    var nHour = nDate.getHours();

    document.getElementById("divContent").style.backgroundImage = "url(" + htmlPath + "image/background/pimage" + GetImageHourType(nHour) + ".jpg)";
    document.getElementById("divContent").style.backgroundRepeat = "no-repeat";
  }
}

function GetImageHourType(pHour)
{
  var ihType = "0000";

  if ((pHour > 2) && (pHour < 12))
  {
    ihType = "000" + Math.floor(Math.random() * 4).toString();
  }
  else
  {
    if ((pHour > 11) && (pHour < 18))
    {
      ihType = "010" + Math.floor(Math.random() * 3).toString();
    }
    else
    {
      if ((pHour > 17) || (pHour < 3))
      {
        ihType = "020" + Math.floor(Math.random() * 3).toString();
      }
    }
  }

  return (ihType);
}


// ### Home Content ################################################################

var divContentMenuImage;


function HomeContentMenuOver(pIndex)
{
  ContentMenuOver(divContentMenuImage[pIndex], pIndex);
}

function SetHomeContentMenuInlineEvent()
{
  if (document.getElementById("divHomeContentMenu"))
  {
    AddEvent(document.getElementById("divHomeSubContentMenu00"), "mouseover", function HomeContentMenuInlineEvent(){ HomeContentMenuOver(0); });
    AddEvent(document.getElementById("divHomeSubContentMenu01"), "mouseover", function HomeContentMenuInlineEvent(){ HomeContentMenuOver(1); });
    AddEvent(document.getElementById("divHomeSubContentMenu02"), "mouseover", function HomeContentMenuInlineEvent(){ HomeContentMenuOver(2); });
  }
}


// ### Footer Menu Index ###########################################################

function ReadSelectedMenu()
{
  if (document.getElementById("divSelectedId"))
  {
    var nId = document.getElementById("divSelectedId").getElementsByTagName("div");

    if (nId[0].innerHTML != "0")
    {
      if (document.getElementById("img_" + TrimText(nId[0].innerHTML)))
      {
        var nImg = document.getElementById("img_" + TrimText(nId[0].innerHTML));
        nImg.src = nImg.src.replace("00.gif", "02.gif");

        document.getElementById("divSubFooterMenu").style.borderBottomColor = "#ffffff";

        if (document.getElementById("div_" + TrimText(nId[0].innerHTML)))
        {
          document.getElementById("div_" + TrimText(nId[0].innerHTML)).style.display = "block";
        }

        if (nId[1].innerHTML != "0")
        {
          if (document.getElementById("a_" + TrimText(nId[1].innerHTML)))
          {
            document.getElementById("a_" + TrimText(nId[1].innerHTML)).style.color = "#636365";
          }

          if (nId[2].innerHTML != "0")
          {
            if (document.getElementById("div_" + TrimText(nId[1].innerHTML)))
            {
              ShowSubFooterMenuChild("div_" + TrimText(nId[1].innerHTML));
            }

            if (document.getElementById("a_" + TrimText(nId[2].innerHTML)))
            {
              document.getElementById("a_" + TrimText(nId[2].innerHTML)).style.fontWeight = "bold";
            }
          }
        }
      }
    }
  }
}


// ### Top Menu ####################################################################

var imgImageTopMenu = [];
var aImageTopMenu = [];


function PreloadTopMenu()
{
  aImageTopMenu[0] = htmlPath + "image/topmenu/tmhome00.gif";
  aImageTopMenu[1] = htmlPath + "image/topmenu/tmhome01.gif";
  aImageTopMenu[2] = htmlPath + "image/topmenu/tmcontact00.gif";
  aImageTopMenu[3] = htmlPath + "image/topmenu/tmcontact01.gif";
  aImageTopMenu[4] = htmlPath + "image/topmenu/tmsearch00.gif";
  aImageTopMenu[5] = htmlPath + "image/topmenu/tmsearch01.gif";
  aImageTopMenu[6] = htmlPath + "image/topmenu/tmsitemap00.gif";
  aImageTopMenu[7] = htmlPath + "image/topmenu/tmsitemap01.gif";
  aImageTopMenu[8] = htmlPath + "image/topmenu/tmnews00.gif";
  aImageTopMenu[9] = htmlPath + "image/topmenu/tmnews01.gif";
  aImageTopMenu[10] = htmlPath + "image/topmenu/tmdisclaimer00.gif";
  aImageTopMenu[11] = htmlPath + "image/topmenu/tmdisclaimer01.gif";

  for (var i = 0; i < aImageTopMenu.length; i++)
  {
    imgImageTopMenu[i] = new Image();
    imgImageTopMenu[i].src = aImageTopMenu[i];
  }
}

function TopMenuOver(pThis, pIndex)
{
  pThis.src = aImageTopMenu[pIndex];
}

function TopMenuOut(pThis, pIndex)
{
  pThis.src = aImageTopMenu[pIndex - 1];
}

function SetTopMenuInlineEvent()
{
  if (document.getElementById("divSubTopMenu"))
  {
    var nImage = document.getElementById("divSubTopMenu").getElementsByTagName("img")

    AddEvent(nImage[0], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[0], 1); });
    AddEvent(nImage[1], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[1], 3); });
    AddEvent(nImage[2], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[2], 5); });
    AddEvent(nImage[3], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[3], 7); });
    AddEvent(nImage[4], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[4], 9); });
    AddEvent(nImage[5], "mouseover", function TopMenuInlineEvent(){ TopMenuOver(nImage[5], 11); });

    AddEvent(nImage[0], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[0], 1); });
    AddEvent(nImage[1], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[1], 3); });
    AddEvent(nImage[2], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[2], 5); });
    AddEvent(nImage[3], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[3], 7); });
    AddEvent(nImage[4], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[4], 9); });
    AddEvent(nImage[5], "mouseout", function TopMenuInlineEvent(){ TopMenuOut(nImage[5], 11); });
  }
}


// ### Language Menu ###############################################################

var imgImageLanguage = [];
var aImageLanguage = [];


function PreloadLanguage()
{
  aImageLanguage[0] = htmlPath + "image/language/lnl00.gif";
  aImageLanguage[1] = htmlPath + "image/language/lnl01.gif";
  aImageLanguage[2] = htmlPath + "image/language/lde00.gif";
  aImageLanguage[3] = htmlPath + "image/language/lde01.gif";
  aImageLanguage[4] = htmlPath + "image/language/len00.gif";
  aImageLanguage[5] = htmlPath + "image/language/len01.gif";

  for (var i = 0; i < aImageLanguage.length; i++)
  {
    imgImageLanguage[i] = new Image();
    imgImageLanguage[i].src = aImageLanguage[i];
  }
}

function LanguageOver(pThis, pIndex)
{
  pThis.src = aImageLanguage[pIndex];
}

function LanguageOut(pThis, pIndex)
{
  pThis.src = aImageLanguage[pIndex - 1];
}

function SetLanguageMenuInlineEvent()
{
  if (document.getElementById("divSubLanguage"))
  {
    var nImage = document.getElementById("divSubLanguage").getElementsByTagName("img");

    AddEvent(nImage[0], "mouseover", function LanguageMenuInlineEvent(){ LanguageOver(nImage[0], 1); })
    AddEvent(nImage[1], "mouseover", function LanguageMenuInlineEvent(){ LanguageOver(nImage[1], 3); })
    AddEvent(nImage[2], "mouseover", function LanguageMenuInlineEvent(){ LanguageOver(nImage[2], 5); })

    AddEvent(nImage[0], "mouseout", function LanguageMenuInlineEvent(){ LanguageOut(nImage[0], 1); })
    AddEvent(nImage[1], "mouseout", function LanguageMenuInlineEvent(){ LanguageOut(nImage[1], 3); })
    AddEvent(nImage[2], "mouseout", function LanguageMenuInlineEvent(){ LanguageOut(nImage[2], 5); })
  }
}


// ### Content Menu ################################################################

var imgImageContentMenu = [];
var aImageContentMenu = [];
var divSubContentMenu;
var divSubContentMenuChild = [];
var tSubContentMenu;
var nSubContentMenuIndex;


function PreloadContentMenu()
{
  aImageContentMenu[0] = htmlPath + "image/contentmenu/" + languangePath + "/cmactief00.png";
  aImageContentMenu[1] = htmlPath + "image/contentmenu/" + languangePath + "/cmactief01.png";
  aImageContentMenu[2] = htmlPath + "image/contentmenu/" + languangePath + "/cmontspanning00.png";
  aImageContentMenu[3] = htmlPath + "image/contentmenu/" + languangePath + "/cmontspanning01.png";
  aImageContentMenu[4] = htmlPath + "image/contentmenu/" + languangePath + "/cmcultuur00.png";
  aImageContentMenu[5] = htmlPath + "image/contentmenu/" + languangePath + "/cmcultuur01.png";

  for (var i = 0; i < aImageContentMenu.length; i++)
  {
    imgImageContentMenu[i] = new Image();
    imgImageContentMenu[i].src = aImageContentMenu[i];
  }
}

function ContentMenuOver(pThis, pIndex)
{
  if (divSubContentMenuChild[pIndex])
  {
    ResetSubContentMenu();
    CancelResetSubContentMenu();

    divSubContentMenu.style.left = GetPosition(pThis)[0].toString() + "px";
    divSubContentMenu.style.top = ((GetPosition(pThis)[1]) + pThis.offsetHeight).toString() + "px";
    divSubContentMenu.style.display = "block";

    divSubContentMenuChild[pIndex].style.display = "block";

    pThis.src = imgImageContentMenu[(pIndex * 2) + 1].src;
  }
}

function ContentMenuOut(pThis, pIndex)
{
  tSubContentMenu = setTimeout("ResetSubContentMenu()", 500);
}

function ResetSubContentMenu()
{
  for (var i = 0; i < divSubContentMenuChild.length; i++)
  {
    divSubContentMenuChild[i].style.display = "none";
  }

  for (var i = 0; i < divContentMenuImage.length; i++)
  {
    divContentMenuImage[i].src = imgImageContentMenu[(i * 2)].src;
  }

  divSubContentMenu.style.display = "none";
}

function CancelResetSubContentMenu()
{
  if (tSubContentMenu)
  {
    window.clearTimeout(tSubContentMenu);
  }
}


// ### Sub Content Menu ############################################################

function SubContentMenuItemOver(pThis, pImageSrc)
{
  CancelResetSubContentMenu();

  pThis.getElementsByTagName("span")[0].style.color = "#ff7c00";
  pThis.getElementsByTagName("img")[0].src = pImageSrc;
}

function SubContentMenuItemOut(pThis, pImageSrc)
{
  tSubContentMenu = setTimeout("ResetSubContentMenu()", 500);

  pThis.getElementsByTagName("span")[0].style.color = "#58585a";
  pThis.getElementsByTagName("img")[0].src = pImageSrc;
}

function ContentMenuRedirect(pNewTarget)
{
  window.location.href = pNewTarget;
}


// ### Footer Menu #################################################################

var imgFooterMenu;
var imgImageFooterMenu = [];
var aImageFooterMenu = [];
var tFooterMenu;


function PreloadFooterMenu()
{
  aImageFooterMenu[0] = htmlPath + "image/footermenu/" + languangePath + "/fminfo00.gif";
  aImageFooterMenu[1] = htmlPath + "image/footermenu/" + languangePath + "/fminfo01.gif";
  aImageFooterMenu[2] = htmlPath + "image/footermenu/" + languangePath + "/fminfo02.gif";
  aImageFooterMenu[3] = htmlPath + "image/footermenu/" + languangePath + "/fmweer00.gif";
  aImageFooterMenu[4] = htmlPath + "image/footermenu/" + languangePath + "/fmweer01.gif";
  aImageFooterMenu[5] = htmlPath + "image/footermenu/" + languangePath + "/fmweer02.gif";
  aImageFooterMenu[6] = htmlPath + "image/footermenu/" + languangePath + "/fmstrand00.gif";
  aImageFooterMenu[7] = htmlPath + "image/footermenu/" + languangePath + "/fmstrand01.gif";
  aImageFooterMenu[8] = htmlPath + "image/footermenu/" + languangePath + "/fmstrand02.gif";
  aImageFooterMenu[9] = htmlPath + "image/footermenu/" + languangePath + "/fmziendoen00.gif";
  aImageFooterMenu[10] = htmlPath + "image/footermenu/" + languangePath + "/fmziendoen01.gif";
  aImageFooterMenu[11] = htmlPath + "image/footermenu/" + languangePath + "/fmziendoen02.gif";
  aImageFooterMenu[12] = htmlPath + "image/footermenu/" + languangePath + "/fmevenementen00.gif";
  aImageFooterMenu[13] = htmlPath + "image/footermenu/" + languangePath + "/fmevenementen01.gif";
  aImageFooterMenu[14] = htmlPath + "image/footermenu/" + languangePath + "/fmevenementen02.gif";
  aImageFooterMenu[15] = htmlPath + "image/footermenu/" + languangePath + "/fmetendrinken00.gif";
  aImageFooterMenu[16] = htmlPath + "image/footermenu/" + languangePath + "/fmetendrinken01.gif";
  aImageFooterMenu[17] = htmlPath + "image/footermenu/" + languangePath + "/fmetendrinken02.gif";
  aImageFooterMenu[18] = htmlPath + "image/footermenu/" + languangePath + "/fmovernachten00.gif";
  aImageFooterMenu[19] = htmlPath + "image/footermenu/" + languangePath + "/fmovernachten01.gif";
  aImageFooterMenu[20] = htmlPath + "image/footermenu/" + languangePath + "/fmovernachten02.gif";
  aImageFooterMenu[21] = htmlPath + "image/footermenu/" + languangePath + "/fmmeeting00.gif";
  aImageFooterMenu[22] = htmlPath + "image/footermenu/" + languangePath + "/fmmeeting01.gif";
  aImageFooterMenu[23] = htmlPath + "image/footermenu/" + languangePath + "/fmmeeting02.gif";
  aImageFooterMenu[24] = htmlPath + "image/footermenu/" + languangePath + "/fmgemeente00.gif";
  aImageFooterMenu[25] = htmlPath + "image/footermenu/" + languangePath + "/fmgemeente01.gif";
  aImageFooterMenu[26] = htmlPath + "image/footermenu/" + languangePath + "/fmgemeente02.gif";

  for (var i = 0; i < aImageFooterMenu.length; i++)
  {
    imgImageFooterMenu[i] = new Image();
    imgImageFooterMenu[i].src = aImageFooterMenu[i];
  }
}

function FooterMenuOver(pThis, pIndex, pSubMenuIndex)
{
  CancelResetFooterMenu();

  ResetFooterMenu();
  ResetSubFooterMenuChild();

  if (pThis.src.indexOf("02.gif") < 0)
  {
    pThis.src = aImageFooterMenu[pIndex];
  }
}

function ResetFooterMenu()
{
  if (imgFooterMenu)
  {
    var isSelectedFooter = false;

    for (var i = 0; i < imgFooterMenu.length; i++)
    {
      if (imgFooterMenu[i].src.indexOf("02.gif") > 0)
      {
        isSelectedFooter = true;
      }

      imgFooterMenu[i].src = imgFooterMenu[i].src.replace("01.gif", "00.gif");
    }

    if (!(isSelectedFooter))
    {
      document.getElementById("divSubFooterMenu").style.borderBottomColor = "#ff7c00";
    }
  }
}

function TimerResetFooterMenu()
{
  tFooterMenu = setTimeout("GlobalTimerResetFooter()", 500);
}

function GlobalTimerResetFooter()
 {
  ResetFooterMenu();
  ResetSubFooterMenu();
  ResetSubFooterMenuChild();

  ReadSelectedMenu();
}

function CancelResetFooterMenu()
{
  if (tFooterMenu)
  {
    window.clearTimeout(tFooterMenu);
  }
}

function SetFooterMenuInlineEvent()
{
  if (document.getElementById("divFooterMenu"))
  {
    var nImage = document.getElementById("divFooterMenu").getElementsByTagName("img");

    AddEvent(nImage[0], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[0], 1, nImage[0].id.substring(nImage[0].id.length - 32)); });
    AddEvent(nImage[1], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[1], 4, nImage[1].id.substring(nImage[1].id.length - 32)); });
    AddEvent(nImage[2], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[2], 7, nImage[2].id.substring(nImage[2].id.length - 32)); });
    AddEvent(nImage[3], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[3], 10, nImage[3].id.substring(nImage[3].id.length - 32)); });
    AddEvent(nImage[4], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[4], 13, nImage[4].id.substring(nImage[4].id.length - 32)); });
    AddEvent(nImage[5], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[5], 16, nImage[5].id.substring(nImage[5].id.length - 32)); });
    AddEvent(nImage[6], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[6], 19, nImage[6].id.substring(nImage[6].id.length - 32)); });
    AddEvent(nImage[7], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[7], 22, nImage[7].id.substring(nImage[7].id.length - 32)); });
    AddEvent(nImage[8], "mouseover", function FooterMenuInlineEvent(){ FooterMenuOver(nImage[8], 25, nImage[8].id.substring(nImage[8].id.length - 32)); });
  }
}


// ### Sub Footer Menu #############################################################

var subFooterMenu;


function ShowSubFooterMenu(pIndex)
{
  ResetSubFooterMenu();

  if (document.getElementById(pIndex))
  {
    document.getElementById(pIndex).style.display = "block";
  }
}

function ResetSubFooterMenu()
{
  if (subFooterMenu)
  {
    for (var i = 0; i < subFooterMenu.length; i++)
    {
      subFooterMenu[i].style.display = "none";
    }
  }
}


// ### Sub Footer Menu Child #######################################################

var divFooter;
var divSubFooterMenuChild;
var subFooterMenuChild;


function ShowSubFooterMenuChild(pIndex)
{
  ResetSubFooterMenuChild();

  if (document.getElementById(pIndex))
  {
    divSubFooterMenuChild.style.left = GetPosition(divFooter)[0].toString() + "px";
    divSubFooterMenuChild.style.top = (GetPosition(divFooter)[1] - 23).toString() + "px";

    divSubFooterMenuChild.style.display = "block";
    document.getElementById(pIndex).style.display = "block";
  }
}

function ResetSubFooterMenuChild()
{
  if (divSubFooterMenuChild)
  {
    divSubFooterMenuChild.style.display = "none";

    for (var i = 0; i < subFooterMenuChild.length; i++)
    {
      subFooterMenuChild[i].style.display = "none";
    }
  }
}


