var hiding = false;
var timer;
var resetting = false;
var resetter;

function show(id) {
	if (hiding) {
		hiding = false;
		clearTimeout(timer);		
	}	
	if (vissible != id) {		
		hide();		
		vissible = id;	
	}
	
	if (document.getElementById(id).style.display != "inline") {
		document.getElementById(id).style.marginLeft = "0px";		
		document.getElementById(id).style.display = "inline";	
		//document.getElementById("test").innerHTML = document.body.scrollLeft;
		document.getElementById(id).style.marginLeft = (document.getElementById(id).offsetWidth + 20 + document.getElementById(id).offsetLeft <= getWindowSize()[0] + getScrollXY()[0]) ? "0px" : -(document.getElementById(id).offsetWidth + 20 + document.getElementById(id).offsetLeft - (getWindowSize()[0] + getScrollXY()[0])) + "px";
	}
}

function hide() {	
	if (vissible != -1) {	
		hiding = false;	
		clearTimeout(timer);
		document.getElementById(vissible).style.display='none';
		vissible = -1;
	}	
}
function hidetimeout() {
	if (vissible != -1 /*&& vissible != init*/) {
		hiding = true;
		timer = setTimeout("hide();", 1000);
	}	
}

function resettimeout() {
	/*if (vissible != init) {
		resetting = true;
		resetter = setTimeout("show(init);", 2000);
	}	*/
}

function stopresetting() {
	/*if (resetting) {
		clearTimeout(resetter);
		resetting = false;
	}*/
}

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 ];
}

function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
}