/**
 * (c) InfoProjects bv. - www.infoprojects.nl
 *
 * $Revision: 1.11 $
 * $Date: 2007/11/16 06:47:49 $
 * $Author: ad $
 */

var menuTimer;
var navTimer;
var navOpen;

var movers = new Array();
var eltsMoving = false;

var headerHeight;
var margeHeight;
var margeFunHeight;
var footerHeight;
var contentsHeight;
var tabbarHeight;
var navHeight;
var sitepadHeight;
var visibleNavHeight;
var overMenu = "";

var orgColors = new Object();

function initPage(focusIt) {
  if (focusIt || (window.opener && window.opener != self)) {
    window.focus();
  }
  if (getElt("Margefuncties") && getElt("Margefuncties_fake")) {
    setEltPosition(getElt("Margefuncties"),"absolute");
    margeFunHeight   = getEltHeight(getElt("Margefuncties"));
    setEltHeight(getElt("Margefuncties_fake"),margeFunHeight);
    setEltPosition(getElt("Margefuncties_fake"),"static");
    setEltDisplay(getElt("Margefuncties_fake"),"inline");
  }
  headerHeight     = getEltHeight(getElt("Header"));
  contentsHeight   = getEltHeight(getElt("Contents"))==0?getWinHeight():getEltHeight(getElt("Contents"));
  footerHeight     = getEltHeight(getElt("Footer"));
  margeHeight      = getEltHeight(getElt("Margekolom"));
  navHeight        = getEltHeight(getElt("Mainmenu"));
  sitepadHeight    = getEltHeight(getElt("Sitepad"));
  tabbarHeight     = getEltHeight(getElt("Tabs"));
  iconbarHeight    = getEltHeight(getElt("Icons"));
  visibleNavHeight = navOpen?navHeight:sitepadHeight;

  if (fontSizeCookie && getCookie('fontSize')) {
    changeFontsize(getCookie('fontSize'),"");
  }

  onResize(resizePage);
  onScroll(scrollPage);
  if (!navOpen) {
    onMouseMove(updateNav);
  }

  moveMargeFuncties(true);
}

function resizePage() {
  moveMargeFuncties();
}

function scrollPage() {
  moveMargeFuncties();
}

function updateNav(e) {
  curMouseX = getMouseWinLeft(e);
  curMouseY = getMouseWinTop(e);
  if (navOpen && !eltsMoving && getMouseWinTop(e) > headerHeight+navHeight) {
    closeNav();
  }
}

function moveMargeFuncties(init) {
  if (!getElt("Margefuncties")) return;
  var minPos = headerHeight+tabbarHeight+iconbarHeight+margeHeight+visibleNavHeight;
  var maxPos = headerHeight+tabbarHeight+iconbarHeight+visibleNavHeight+contentsHeight-margeFunHeight;
  var endPos = getWinHeight()+getWinScrollTop()-margeFunHeight;
  var targetPos = (endPos>minPos)?((endPos<maxPos)?endPos:maxPos):minPos;
  setEltLeft(getElt("Margefuncties"),margeLeft);

  movers = new Array("Margefuncties",targetPos,(init?2:10));
  eltsMoving = true;
  navTimer = setTimeout("moveElts()",(init?10:240));
}

function initOpenNav() {
  /* gebruiker is op 'open menu' */
  if (navOpen) return false;
  else {
    if (navTimer) clearTimeout(navTimer);
    navTimer = setTimeout("openNav()",128);
  }
}

function cancelOpenNav() {
  /* gebruiker verlaat 'open menu' */
  if (navOpen) return false;
  else {
    if (navTimer) {
      clearTimeout(navTimer);
      navOpen = false;
    }
  }
}

function openNav() {
  if (navTimer) { clearTimeout(navTimer); }
  navOpen = true;
  movers = new Array("Sitepad",-1*(sitepadHeight+tabbarHeight+headerHeight),2,"Mainmenu",tabbarHeight+headerHeight,2);
  eltsMoving = true;
  navTimer = setTimeout("moveElts()",50);
}

function closeNav() {
  navOpen = false;
  movers = new Array("Mainmenu",-1*(navHeight+tabbarHeight+headerHeight),2,"Sitepad",tabbarHeight+headerHeight,2);
  eltsMoving = true;
  navTimer = setTimeout("moveElts()",50);
}

function initOpenMenu(id,mnu,ibc,hiDir) {
  /* in hoofdnavigatie; trigger uitklappen subnavigatie onder niveau-1 item */
  mnu = mnu?mnu:"mainmenu";
  if (id == openedMenus[mnu]) return false;
  else {
    var newSrc = (ibc?sharedFolder:viewFolder)+"images/nav/select_dot.gif"
    newSrc = (hiDir&&hiDir+""!="undefined")?hiDir+"select_dot.gif":newSrc;
    swapImage("nav_img_"+id,newSrc);
    overMenu = id;
    if (menuTimer) { clearTimeout(menuTimer); }
    menuTimer = window.setTimeout("openMenu('"+id+"','"+mnu+"',"+ibc+",'"+hiDir+"')",500);
    return true;
  }
}

function openMenu(id,mnu,ibc,hiDir,forced) {
  mnu = mnu?mnu:"mainmenu";
  if (menuTimer) { clearTimeout(menuTimer); }

  if (overMenu != id && !forced) return;

  if (openedMenus[mnu] && openedMenus[mnu] != "" && id != openedMenus[mnu] && getElt("nav_menu_"+openedMenus[mnu])) {
    setEltVisibility(getElt("nav_menu_"+openedMenus[mnu]),"hidden");
    setEltDisplay(getElt("nav_menu_"+openedMenus[mnu]),"none");
    swapImage("nav_img_"+openedMenus[mnu],viewFolder+"images/nav/select_transp.gif");
  }
  else if (openedMenus[mnu] && openedMenus[mnu] != "" && id != openedMenus[mnu]) {
    swapImage("nav_img_"+openedMenus[mnu],viewFolder+"images/nav/select_transp.gif");
  }

  if (id != openedMenus[mnu] && getElt("nav_menu_"+id)) {
    setEltVisibility(getElt("nav_menu_"+id),"visible");
    setEltDisplay(getElt("nav_menu_"+id),"block");
    var newSrc = (ibc?sharedFolder:viewFolder)+"images/nav/select_sel.gif"
    newSrc = hiDir?hiDir+"select_dot.gif":newSrc;
    swapImage("nav_img_"+id,newSrc);
    openedMenus[mnu] = id;
  }
  else if (id != openedMenus[mnu]) {
    var newSrc = (ibc?sharedFolder:viewFolder)+"images/nav/select_sel.gif"
    newSrc = hiDir?hiDir+"select_dot.gif":newSrc;
    swapImage("nav_img_"+id,newSrc);
    openedMenus[mnu] = id;
  }
}

function keepMenuOpen(id,mnu,ibc,hiDir) {
  mnu = mnu?mnu:"mainmenu";
  openMenu(id,mnu,ibc,hiDir,true);
}

function closeMenu(id,mnu) {
  mnu = mnu?mnu:"mainmenu";
  overMenu = "";
  if (id == openedMenus[mnu]) return false;
  else {
    swapImage("nav_img_"+id,viewFolder+"images/nav/select_transp.gif");
    return true;
  }
}

function moveElts(moverNum) {
  clearTimeout(navTimer);

  if (!moverNum) moverNum = 0;
  var curMoveElt = getElt(movers[moverNum]);
  var slideCurY = getEltTop(curMoveElt);
  var slideEndY = movers[moverNum+1];
  var accelFactor = movers[moverNum+2];
  var Yplus = 0;
  if (slideCurY < slideEndY) Yplus = (Math.ceil((slideEndY - slideCurY) / accelFactor)) + 1; // move down
  else if (slideCurY > slideEndY) Yplus = (Math.ceil((slideEndY - slideCurY) / accelFactor)) - 1; // move up

  setEltTop(curMoveElt,slideCurY+Yplus);

  if (slideCurY != slideEndY) {
    navTimer = setTimeout("moveElts("+moverNum+")",20);
  }
  else if (movers.length > moverNum + 3) {
    navTimer = setTimeout("moveElts("+(moverNum+3)+")",20);
  }
  else {
    movers = new Array();
    eltsMoving = false;
  }
}

function toggleSitemapList(id,imgId) {
  if (getElt(id)) {
    var currentOpen = (getEltClassName(getElt(id)).indexOf("open")!=-1);
    setEltClassName(getElt(id),currentOpen?"closed":"open");
    swapImage("img_"+id,imgId+"_"+(currentOpen?"0":"1")+".gif");
    return false;
  }
  else return true;
}

var curSpotOpen = "";

function toggleHotspot(id,show) {
  if (curSpotOpen != "" && curSpotOpen != id) {
   setEltDisplay(getElt(curSpotOpen),"none");
  }
  if (curSpotOpen != id) {
    var lX = (curMouseX+250<contentWidth)?curMouseX:contentWidth-250;
    setEltLeft(getElt(id),lX);
    setEltTop(getElt(id),curMouseY - visibleNavHeight - 50);
  }
  setEltDisplay(getElt(id),show?"block":"none");
  if (show) curSpotOpen = id;
  else curSpotOpen = "";
  return false;
}

function highlightEditable(obj,id,status) {
  var orgColor = obj.style.backgroundColor?obj.style.backgroundColor:"transparent";
  if (status) orgColors[id] = orgColor;
  orgColor = orgColors[id]?orgColors[id]:"transparent";
  obj.style.backgroundColor = status?"#eeeeee":orgColor;
}