f7_v4          = (parseInt(navigator.appVersion)>=4 && parseInt(navigator.appVersion)<=5)?1:0;
f7_ie          = (document.all && f7_v4)?1:0;
f7_ns          = (document.layers && f7_v4)?1:0;
f7_ns6         = (document.getElementById && !document.all)?1:0;
lastScrollY    = 0;
origNavPos     = 0;
origMapPos     = 0;
origSideBarPos = 0;
oNav           = null;
oMap           = null;
oSideBar       = null;

//-------------------------------------------------------------------
// getObject()
//-------------------------------------------------------------------
function getObject(obj)
  { 
  return (document.getElementById) ? document.getElementById(obj) : document.all[obj];
  } 

//-------------------------------------------------------------------
// setStyle()
//-------------------------------------------------------------------
function setStyle(obj, name, value)
  {
  if (f7_ie)  { obj.style[name] = value; }
  if (f7_ns)  { obj[name] = vvalue; }
  if (f7_ns6) { obj.style[name] = value; }
  }

//-------------------------------------------------------------------
// showObject()
//-------------------------------------------------------------------
function showObject(obj, visible)
  {
  var visibility = (visible) ? ["visible","show","block"] : ["hidden","hide","none"];

  if (f7_ie)  { obj.style.visibility = visibility[0]; obj.style.display = visibility[2]; } //eval(thelayer+'.style.visibility="'+visibility[0]+'"'); }
  if (f7_ns)  { obj.visibility = visibility[1];       obj.display       = visibility[2]; } //eval('document.'+thelayer+'.visibility="'+visibility[1]+'"');}
  if (f7_ns6) { obj.style.visibility = visibility[0]; obj.style.display = visibility[2]; } //document.getElementById(thelayer).style.visibility=visibility[0]; }
  }

//-------------------------------------------------------------------
// getCookie()
//-------------------------------------------------------------------
function getCookie(c_name)
  {
  if (document.cookie.length > 0)
    {
    c_start = document.cookie.indexOf(c_name + "=");

    if (c_start != -1)
      {
      c_start = c_start + c_name.length + 1;
      c_end   = document.cookie.indexOf(";", c_start);

      if (c_end==-1)
        c_end = document.cookie.length;

      return unescape(document.cookie.substring(c_start, c_end));
      }
    }
  return "";
  }

//-------------------------------------------------------------------
// deleteCookie()
//-------------------------------------------------------------------
function deleteCookie(name, path, domain)
  {
  if (getCookie(name))
    document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
  }

//-------------------------------------------------------------------
// getScrollXY()
//-------------------------------------------------------------------
function getScrollXY()
  {
  var scrOfX = 0, scrOfY = 0;
  
  if( typeof( window.pageYOffset ) == 'number' )
    {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
    }
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
    {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
    }
  else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
    {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
    }

  return [ scrOfX, scrOfY ];
  }

//-------------------------------------------------------------------
// getBoundingBox()
//-------------------------------------------------------------------
function getBoundingBox(elm)
  {
  var rd = { l:0, t:0, b:0, r:0, w:0, h:0 };
  var height = elm.offsetHeight;
  var width  = elm.offsetWidth;

  do
    {
    rd.l += parseInt(elm.offsetLeft);
    rd.t += parseInt(elm.offsetTop);
    elm = elm.offsetParent;
    } while (elm);

  rd.b = rd.t + height;
  rd.r = rd.l + width;
  rd.w = width;
  rd.h = height;
  return rd;
  }

//-------------------------------------------------------------------
// setPos()
//-------------------------------------------------------------------
function setPos(y, elm)
  {
  if (y < 0)
    y = 0;

  if (f7_ns)
    {
    elm.top=y;
    }
  else if (f7_ie)
    {
    elm.style.top=eval('"'+(y)+'px"');
    }
  else if (f7_ns6)
    {
    elm.style.top = eval('"'+(y)+'px"');
    }
  }

//-------------------------------------------------------------------
// checkMousePos()
//-------------------------------------------------------------------
function checkMousePos(mousex, mousey, thelayer, theopener)
  {
  var hideit=0;

  layerbounds  = getBoundingBox(thelayer);
  openerbounds = theopener ? getBoundingBox(theopener) : null;
  if (mousex >= layerbounds.l && mousex <= layerbounds.r && mousey >= layerbounds.t && mousey <= layerbounds.b)
    hideit = 0;
  else if (theopener && (mousex >= openerbounds.l && mousex <= openerbounds.r && mousey >= openerbounds.t && mousey <= openerbounds.b))
    hideit = 0;
  else
    hideit = 1;

  return hideit
  }

//-------------------------------------------------------------------
// getWindowSize()
//-------------------------------------------------------------------
function getWindowSize()
  {
  var viewportwidth;
  var viewportheight;

  // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
  if (typeof window.innerWidth != 'undefined')
    {
    viewportwidth  = window.innerWidth;
    viewportheight = window.innerHeight;
    }

  // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
  else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined')
    {
    viewportwidth  = document.documentElement.clientWidth;
    viewportheight = document.documentElement.clientHeight;
    }

  else if (typeof document.body.offsetWidth != 'undefined')
    {
    viewportwidth  = document.body.offsetWidth;
    viewportheight = document.body.offsetHeight;
    }

  // older versions of IE
  else if (typeof document.body.clientWidth != 'undefined')
    {
    viewportwidth  = document.body.clientWidth;
    viewportheight = document.body.clientHeight;
    }
    
 return { w:viewportwidth, h:viewportheight };
 }
 
//-------------------------------------------------------------------
// scrollingDetector()
//-------------------------------------------------------------------
function scrollingDetector()
  {
  if (!oNav)
    {
    oNav = getObject("navigation");
    if (!oNav)
      return;

    origNavPos = getBoundingBox(oNav);
    origNavPos = origNavPos.t;

    if (oMap = getObject("map"))
      {
      origMapPos = getBoundingBox(oMap);
      origMapPos = origMapPos.t;
      }

    if (oSideBar = getObject("sidebar"))
      {
      origSideBarPos = getBoundingBox(oSideBar);
      origSideBarPos = origSideBarPos.t;
      }
    }

  scrollY = getScrollXY();
  scrollY = scrollY[1];
  
  if (scrollY != lastScrollY)
    {
    // Move the navigation box
    lastScrollY = scrollY;

    setPos(scrollY - origNavPos, oNav);

    if (oMap)
      setPos(scrollY - origMapPos, oMap);

    if (oSideBar)
      setPos(scrollY - origSideBarPos, oSideBar);
    }
  }

setInterval("scrollingDetector()", 250);
