var autoScrollerStatus = 'stopped';
var scrollOffsetY =0;
var documentHeight = 0;
var scrollDelay = 1000;
var scrollSpeed = 1;

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 handleEnter(e)
{
	var key=e.keyCode || e.which;
	if (key ==13)
	{
		invoke_search();
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function updateToolboxToScrollHeight()
{
	var scrollOffset = getScrollXY();
	scrollOffsetY = scrollOffset[1];
	if (autoScrollerStatus == 'stopped')
	{
		document.getElementById('autoscroller').style.top = scrollOffsetY + 255 + 'px';
	}
}

function startup_marker(objId)
{	
	currentLabelSelection = objId;
	window.onscroll = updateToolboxToScrollHeight;
	for(i=1;i<=4;i++)
	{
		if(objId == i)
		{
			document.getElementById("label"+i).style.backgroundImage="url('pub/images/tab_labelmark_bg.gif')";
			document.getElementById("label"+i).style.color = "#FFF";
		}
		else
		{
			document.getElementById("label"+i).style.backgroundImage="url('pub/images/tab_label_bg.gif')";
			document.getElementById("label"+i).style.color = "#000";
		}
	}
}


function getDocumentHeight()
{
	var browserName=navigator.appName;
	if (browserName=="Netscape")
	{
		if (document.documentElement.offsetHeight > document.documentElement.scrollHeight)
	 		return  document.documentElement.offsetHeight;
 		else
 			return document.documentElement.scrollHeight;
	}
	else
	{
 		if (browserName=="Microsoft Internet Explorer")
 		{
 			if (document.documentElement.clientHeight > document.body.clientHeight )
 				return document.documentElement.clientHeight
 			else;
  				return document.body.clientHeight;
 		}
 		else
  		{
    		if (document.documentElement.offsetHeight > document.documentElement.scrollHeight)
	 			return  document.documentElement.offsetHeight;
 			else
 				return document.documentElement.scrollHeight;
   		}
	}
}

function trim(x) {
	return x.replace(/\s+$|^\s+/g,'');
}


function show_scroll_hint(hint,obj)
{
	var browser=navigator.appName;
	if (browser == 'Microsoft Internet Explorer') return;
	var pos = findPos(obj);
	document.getElementById('scroller_hint').style.left = pos[0]+60+'px';
	document.getElementById('scroller_hint').style.top = pos[1]+10+'px';
	document.getElementById("hint_text").innerHTML = hint;
	document.getElementById('scroller_hint').style.display = 'block';
	
	
}

function hide_scroll_hint()
{
	var browser=navigator.appName;
	if (browser == 'Microsoft Internet Explorer') return;
	document.getElementById('scroller_hint').style.display = 'none';
}

function startAutoscrolling()
{
	var scrollOffset = getScrollXY();
	scrollOffsetY = scrollOffset[1];
	documentHeight = getDocumentHeight();
	if (autoScrollerStatus == 'stopped')
	{
		autoScrollerStatus = 'started';
		setTimeout('makeScrollDown()',scrollDelay);
	}
}

function makeScrollDown()
{
	var scrollOffset = getScrollXY();
	if (scrollOffset[1]+50 < scrollOffsetY ) autoScrollerStatus == 'stopped';
	
	if (scrollOffsetY < (documentHeight/2) && autoScrollerStatus == 'started')
	{
		document.getElementById('autoscroller').style.top = parseInt(document.getElementById('autoscroller').style.top) + 4 + 'px';
		scrollOffsetY+=4;
		scrollTo(0,scrollOffsetY);
		setTimeout('makeScrollDown()',scrollDelay);
	}
	else
	{
		autoScrollerStatus = 'stopped';
	}
}

function stopAutoscrolling()
{
	autoScrollerStatus = 'stopped';
}


function decreaseScrollSpeed()
{
	if (scrollSpeed > 1 ) 
	{
		scrollSpeed--;
		scrollDelay = 1000 - ( (scrollSpeed - 1) * 100);
		document.getElementById('speed_indicator').innerHTML = scrollSpeed;
	}
}

function increaseScrollSpeed()
{
	if (scrollSpeed < 9 ) 
	{
		scrollSpeed++;
		scrollDelay = 1000 - ( (scrollSpeed - 1) * 100);
		document.getElementById('speed_indicator').innerHTML = scrollSpeed;
	}
}
