// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.

// --------- nastaveni

    var offsetY = -8; // posunuti lighter (simulace padding-bottom); zaporne posouva nahoru, kladne dolu

    var fixedLR = true; // true = lighter se nazasouva za levy / pravy okraj

// -----------------------------

    var lighterWidth;
    var lighterHeight;
    var menuContainerWidth;
    var menuContainerWidthHalf;
    var menuPos;
    var lighterWidthHalf;
    var IE = document.all?true:false

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)

/*
window.onload = function(){

    var menu = document.getElementById('menu');

    addEvent(menu,'mousemove',getMouseXY);

    addEvent(menu,'mouseout',hide);
    addEvent(menu,'mouseover',show);

    markActive();

}
*/

function hide(event){

  e = event.toElement || event.relatedTarget;
  if (e.parentNode == this || e == this) { return; }
  //document.getElementById('lighter').style.display='none';
  if (activeMenuItem == false ){ if (!IE) $("#lighter").fadeOut("fast",markActive);
                                 else document.getElementById('lighter').style.display='none'; // (IE ma problem s polopruhlednym png)
  } else                       { moveToActiveElement(); }

}

function show(event){
  //e = event.toElement || event.relatedTarget; alert(e);
  //if (e.parentNode == this || e == this) { return; }
  // document.getElementById('lighter').style.display='';
  document.getElementById('lighter').style.top = menuPos[1] + (offsetY)+'px';
  if (!IE) $("#lighter").fadeIn("medium");
  else document.getElementById('lighter').style.display='';
}

function moveToActiveElement(){

   // pozice aktivniho prvku na ktery se bude presouvat -
   widthCenter  = parseInt(activeMenuItem.offsetWidth) / 2;
   coords       = findPos(activeMenuItem);
   left         = coords[0];

   var moveBy = actX - ( left + widthCenter );

   $("#lighter").animate({"left": "-="+moveBy+"px"}, "fast");

}

var activeMenuItem = false;

function markActive(){
    var hrefs = document.getElementById('menu').getElementsByTagName("a");
    var menuTop = menuPos[1];
    for(i=0;i<hrefs.length;i++){
        if (hrefs[i].className=='active'){
            // get center of selected element
            coords = findPos(hrefs[i]);
            // vyska
            widthCenter  = parseInt(hrefs[i].offsetWidth) / 2;
            // sirka
            heightCenter = parseInt(hrefs[i].offsetHeight) / 2;

            placeX = coords[0] + widthCenter - ( lighterWidth / 2 );
            //placeY = coords[1] + heightCenter - ( lighterHeight / 2 );
            placeY = menuTop;

            document.getElementById('lighter').style.left    = placeX+'px';
            document.getElementById('lighter').style.top     = placeY+(offsetY)+'px';
            $("#lighter").fadeIn("medium"); //document.getElementById('lighter').style.display = '';
            activeMenuItem = hrefs[i];
        }
    }
}

// Temporary variables to hold mouse x-y pos.s
var tempX = 0;
var tempY = 0;
var PtempX = -1;
var PtempY = -1;
var actX = 0;
var actY = 0;
// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  // document.Show.MouseX.value = tempX
  // document.Show.MouseY.value = tempY
  actX = tempX;
  actY = tempY;

  maxLeft = menuPos[0];                       if (fixedLR==true) maxLeft  += lighterWidthHalf;
  maxRight = menuPos[0] + menuContainerWidth; if (fixedLR==true) maxRight -= lighterWidthHalf;

  if (actX < maxLeft) actX = maxLeft;
  if (actX > maxRight) actX = maxRight;
  document.getElementById('lighter').style.left = (actX - lighterWidthHalf)+ 'px';

  return true;
}

function Viewport(toReturn){
var windowX = (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth;
var windowY = (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;
var scrollX = (document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft;
var scrollY = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop;
var pageX = (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth;
var pageY = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;

return eval(toReturn);
}

function findPos(obj) {
	var curleft = curtop = 0;
      if (obj.offsetParent) {
      do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
         } while (obj = obj.offsetParent);
      return [curleft,curtop];
      }
}
