/* Script by: www.jtricks.com      * Version: 20071127      * Latest version:      * www.jtricks.com/javascript/navigation/fixed_menu.html      */      fixedMenuId = 'fixeddiv';            var fixedMenu =       {          hasInner: typeof(window.innerWidth) == 'number',          hasElement: document.documentElement != null             && document.documentElement.clientWidth,                menu: document.getElementById              ? document.getElementById(fixedMenuId)              : document.all                ? document.all[fixedMenuId]                : document.layers[fixedMenuId]      };            fixedMenu.computeShifts = function()      {          fixedMenu.shiftX = fixedMenu.hasInner              ? pageXOffset              : fixedMenu.hasElement                ? document.documentElement.scrollLeft                : document.body.scrollLeft;          if (fixedMenu.targetLeft > 0)              fixedMenu.shiftX += fixedMenu.targetLeft;          else          {              fixedMenu.shiftX +=                   (fixedMenu.hasElement                    ? document.documentElement.clientWidth                    : fixedMenu.hasInner                      ? window.innerWidth - 20                      : document.body.clientWidth)                  - fixedMenu.targetRight                  - fixedMenu.menu.offsetWidth;          }                fixedMenu.shiftY = fixedMenu.hasInner              ? pageYOffset              : fixedMenu.hasElement                ? document.documentElement.scrollTop                : document.body.scrollTop;          if (fixedMenu.targetTop > 0)              fixedMenu.shiftY += fixedMenu.targetTop;          else          {              fixedMenu.shiftY +=                   (fixedMenu.hasElement                  ? document.documentElement.clientHeight                  : fixedMenu.hasInner                    ? window.innerHeight - 20                    : document.body.clientHeight)                  - fixedMenu.targetBottom                  - fixedMenu.menu.offsetHeight;          }      };            fixedMenu.moveMenu = function()      {          fixedMenu.computeShifts();                if (fixedMenu.currentX != fixedMenu.shiftX              || fixedMenu.currentY != fixedMenu.shiftY)          {              fixedMenu.currentX = fixedMenu.shiftX;              fixedMenu.currentY = fixedMenu.shiftY;                    if (document.layers)              {                  fixedMenu.menu.left = fixedMenu.currentX;                  fixedMenu.menu.top = fixedMenu.currentY;              }              else              {                  fixedMenu.menu.style.left = fixedMenu.currentX + 'px';                  fixedMenu.menu.style.top = fixedMenu.currentY + 'px';              }          }                fixedMenu.menu.style.right = '';          fixedMenu.menu.style.bottom = '';      };            fixedMenu.floatMenu = function()      {          fixedMenu.moveMenu();          setTimeout('fixedMenu.floatMenu()', 20);      };            // addEvent designed by Aaron Moore      fixedMenu.addEvent = function(element, listener, handler)      {          if(typeof element[listener] != 'function' ||              typeof element[listener + '_num'] == 'undefined')          {              element[listener + '_num'] = 0;              if (typeof element[listener] == 'function')              {                  element[listener + 0] = element[listener];                  element[listener + '_num']++;              }              element[listener] = function(e)              {                  var r = true;                  e = (e) ? e : window.event;                  for(var i = 0; i < element[listener + '_num']; i++)                      if(element[listener + i](e) === false)                          r = false;                  return r;              }          }                //if handler is not already stored, assign it          for(var i = 0; i < element[listener + '_num']; i++)              if(element[listener + i] == handler)                  return;          element[listener + element[listener + '_num']] = handler;          element[listener + '_num']++;      };            fixedMenu.supportsFixed = function()      {          var testDiv = document.createElement("div");          testDiv.id = "testingPositionFixed";          testDiv.style.position = "fixed";          testDiv.style.top = "0px";          testDiv.style.right = "0px";          document.body.appendChild(testDiv);          var offset = 1;          if (typeof testDiv.offsetTop == "number"              && testDiv.offsetTop != null               && testDiv.offsetTop != "undefined")          {              offset = parseInt(testDiv.offsetTop);          }          if (offset == 0)          {              return true;          }                return false;      };            fixedMenu.init = function()      {          if (fixedMenu.supportsFixed())              fixedMenu.menu.style.position = "fixed";          else          {              var ob =                   document.layers                   ? fixedMenu.menu                   : fixedMenu.menu.style;                    fixedMenu.targetLeft = parseInt(ob.left);              fixedMenu.targetTop = parseInt(ob.top);              fixedMenu.targetRight = parseInt(ob.right);              fixedMenu.targetBottom = parseInt(ob.bottom);                    if (document.layers)              {                  menu.left = 0;                  menu.top = 0;              }              fixedMenu.addEvent(window, 'onscroll', fixedMenu.moveMenu);              fixedMenu.floatMenu();          }      };            fixedMenu.addEvent(window, 'onload', fixedMenu.init); 
