var timer;
function scroll(id, dir) {
	clearTimeout(timer);
	if(dir == 'stop') {
		return;
	}

	var content = document.getElementById(id);
	if (dir == "down") {
		content.scrollTop += 1;
	}
	if (dir == "downFast") {
		content.scrollTop += 5;
	}
	if (dir == "up") {
		content.scrollTop += -1;
	}
	if (dir == "upFast") {
		content.scrollTop += -5;
	}
	//content.scrollTop += (dir == "down") ? 1 : -1;
	timer = window.setTimeout("scroll('"+id+"', '"+dir+"')", 1000/75);
}
function scrollInit(id) {
	var bt = document.getElementById(id+"Buttons");
	var content = document.getElementById(id);
	bt.style.display = (content.scrollHeight - content.clientHeight > 0) ? 'block' : 'none';
}

var Menu = null;
var MenuTimer = null;

function ClearMenuTimeout() {
  if(MenuTimer) clearTimeout(MenuTimer);
  MenuTimer = null;
}

function StartMenuTimeout() {
  if(MenuTimer) clearTimeout(MenuTimer);
  MenuTimer = setTimeout("HideMenu()", 500);
}

function ShowPopup(menu_name, mode) {
  ClearMenuTimeout();
  if(Menu) {
    HideMenu();
  }
   if(Menu = document.getElementById('popup'+menu_name)) {
    if(mode == 'top') {
      holder = document.getElementById('topPopupHolder'+menu_name)
      Menu.style.left = moveXbySlicePos(0, holder);
      Menu.style.top  = moveYbySlicePos(21, holder) + 5;
    }
    else if(mode == 'left') {
      holder = document.getElementById('leftPopupHolder'+menu_name)
      Menu.style.left = moveXbySlicePos(0, holder);
      Menu.style.top  = moveYbySlicePos(-4, holder) - 5;
    }
    else if(mode == 'right') {
      holder = document.getElementById('rightPopupHolder'+menu_name)
      Menu.style.left = moveXbySlicePos(0, holder);
      Menu.style.top  = moveYbySlicePos(-4, holder);
    }

    Menu.style.visibility = 'visible';
  }
}

function HideMenu() {
  ClearMenuTimeout();
  if (Menu) {
    Menu.style.visibility = 'hidden';
    MenuTimer = null;
  }
}

function getExplorerVersion() {
  var ieVers = parseFloat(navigator.appVersion);
  if( navigator.appName != 'Microsoft Internet Explorer' ) return ieVers;
  var tempVers = navigator.appVersion;
  var i = tempVers.indexOf( 'MSIE ' );
  if( i >= 0 ) {
    tempVers = tempVers.substring( i+5 );
    ieVers = parseFloat( tempVers );
  }
  return ieVers;
}

function moveXbySlicePos (x, images) {
  if (!document.layers) {
    var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
    var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
    var par = images;
    var lastOffset = 0;
    while(par){
      if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
      if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
      if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
      par = macIE45 ? par.parentElement : par.offsetParent;
    }
  } else if (images.x) x += images.x;
  return x;
}

function moveYbySlicePos (y, images) {
  if(!document.layers) {
    var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
    var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
    var par = images;
    var lastOffset = 0;
    while(par){
      if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
      if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
      if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
      par = macIE45 ? par.parentElement : par.offsetParent;
    }
  } else if (images.y >= 0) y += images.y;
  return y;
}