// JavaScript Document


scrollSpeed = 20;
var scontent;
var slastid;
var slOn;
var slOff;
var sL;
var shoutProgress=0;

function init() 
	{
		scontent = document.getElementById('shoutbox_itemholder');

//		var m = Array (document.getElementById('categories_container1'),document.getElementById('categories_container2'),document.getElementById('categories_container3'));
		var m = Array (document.getElementById('categories_container1'),document.getElementById('categories_container3'));
		var parentdiv = null;

		for (k=0;k<m.length;k++) 
			{
				parentdiv = null;
				parentdiv = m[k];
				imgup = getRefFromParent(getRefFromParent(parentdiv,'div',2),'img',1);
				imgdown = getRefFromParent(getRefFromParent(parentdiv,'div',2),'img',2);
				imgup.style.cursor = 'pointer';	
				
				imgup.onmousedown= function() 
					{
						scrollUp(this);
						this.src='images/leftmenu_up_over.gif'; 
					}
				
				imgup.onmouseup= function() 
					{
						scrollStop();
						this.src='images/leftmenu_up.gif';
					}

				imgup.onmouseout= function() 
					{
						scrollStop();
						this.src='images/leftmenu_up.gif';
					}

				imgup.ondblclick= function() 
					{
						getRefFromMember(this.parentNode,'div',1).scrollTop=0;
						getRefFromParent(getRefFromParent(this.parentNode,'div',1),'div',1).style.top= 0 + 'px';
					}

				imgdown.ondblclick= function() 
					{
						var contentdiv = getRefFromMember(this.parentNode,'div',1);
						var contentinfo = getRefFromParent(contentdiv,'div',1);
						contentdiv.scrollTop=contentinfo.offsetHeight - contentdiv.offsetHeight;
	
						var scrollareadiv = getRefFromMember(this,'div',1);
						var scrollareadrag = getRefFromParent(scrollareadiv,'div',1);
						scrollareadrag.style.top =scrollareadiv.offsetHeight - scrollareadrag.offsetHeight + 'px';
					}

				imgdown.style.cursor = 'pointer';	
				imgdown.onmousedown= function() 
					{
						scrollDown(this);
						this.src='images/leftmenu_down_over.gif';
						this.style.cursor = 'pointer';	
					}
				imgdown.onmouseup= function() 
					{
						 scrollStop();
						this.src='images/leftmenu_down.gif';
					}
				imgdown.onmouseout= function() 
					{
						scrollStop();
						this.src='images/leftmenu_down.gif';
					}

				scrollareadiv = getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1);
				scrollareadrag =  getRefFromParent(scrollareadiv,'div',1);
				contentdiv = getRefFromParent(parentdiv,'div',1);
				scrollareadrag.onmouseover = function(){
				this.style.cursor='n-resize';
			}

		contentdiv.scrollTop=0;
		contentinfo = getRefFromParent(contentdiv,'div',1);
		var docH = contentinfo.offsetHeight;
		var contH = contentdiv.offsetHeight;
		var scrollAreaH = scrollareadiv.offsetHeight;

		var scrollH = (contH * scrollAreaH) /docH;
		if(scrollH < 15) scrollH = 15;
		if (scrollH > scrollAreaH) scrollH = 0;
		scrollareadrag.style.height = Math.round(scrollH) + "px";

		scrollDist = Math.round(scrollAreaH - Math.round(scrollH));
		Drag.init(scrollareadrag,null,0,0,0,scrollDist);
		scrollareadrag.onDrag = function (x,y) 
			{
				var scrollY = parseInt(this.style.top);
				var contentdiv = getRefFromMember(this.parentNode.parentNode,'div','1');
				var contH = contentdiv.offsetHeight;
				var contentinfo = getRefFromParent(contentdiv,'div',1);
				var docH = contentinfo.offsetHeight;
				scrollDist = Math.round(this.parentNode.offsetHeight - this.offsetHeight);
				var docY = (scrollY * (docH - contH) / scrollDist);
				contentdiv.scrollTop = docY;
			}
			}
	}
//initmenus();
//initshout();
		var currentscroller;
function scrollUp(invoker) {
currentscroller = getRefFromMember(invoker.parentNode,'div',1);

startScrollUp();
}

function scrollDown(invoker) {
currentscroller = getRefFromMember(invoker.parentNode,'div',1);

startScrollDown();
}

function scrollStop() {
if (window.timer) clearTimeout(timer);
currentscroller = null;
}

function getRefFromMember(invoker,nodeName,offset) {
j=0;	
for (i=0; i<invoker.parentNode.childNodes.length;i++) 
	if (invoker.parentNode.childNodes[i].nodeName.toLowerCase() == nodeName ) {
	j++;
	if (j == offset) return invoker.parentNode.childNodes[i];
	}
}

function getRefFromParent(invoker,nodeName,offset) {
j=0;	
for (i=0; i<invoker.childNodes.length;i++) 
	if (invoker.childNodes[i].nodeName.toLowerCase() == nodeName ) {
	j++;
	if (j == offset) return invoker.childNodes[i];
	}
}

function startScrollUp() {

currentscroller.scrollTop -= 1;
timer = setTimeout("startScrollUp();",scrollSpeed);
  var contentdiv = currentscroller
  var contH = contentdiv.offsetHeight;
  var contentinfo = getRefFromParent(contentdiv,'div',1);
  var docH = contentinfo.offsetHeight;
  var scrollareadiv = getRefFromParent(getRefFromMember(contentdiv,'div',2),'div',1);
  var scrollareadrag =  getRefFromParent(scrollareadiv,'div',1);
  var scrollDist = 	Math.round(scrollareadiv.offsetHeight - scrollareadrag.offsetHeight);
  scrollY = Math.round(currentscroller.scrollTop) / ((docH - contH) / scrollDist)
    scrollareadrag.style.top= scrollY + 'px';
}
function startScrollDown() {
currentscroller.scrollTop += 1;
timer = setTimeout("startScrollDown();",scrollSpeed);
  var contentdiv = currentscroller
  var contH = contentdiv.offsetHeight;
  var contentinfo = getRefFromParent(contentdiv,'div',1);
  var docH = contentinfo.offsetHeight;
  var scrollareadiv = getRefFromParent(getRefFromMember(contentdiv,'div',2),'div',1);
  var scrollareadrag =  getRefFromParent(scrollareadiv,'div',1);
  var scrollDist = 	Math.round(scrollareadiv.offsetHeight - scrollareadrag.offsetHeight);
  scrollY = Math.round(currentscroller.scrollTop) / ((docH - contH) / scrollDist)
    scrollareadrag.style.top= scrollY + 'px';
}

function scrollLockInit() {
	slOn = 'images/shout_scrolllock.jpg';
	slOff = 'images/shout_scrollunlock.jpg';
	sL = document.getElementById('scrolllock');
	
	sL.onMouseOver = sL.style.cursor='pointer';

	sL.onclick = function() { if (this.src.indexOf(slOn) > 0 ) {this.src=slOff;} else this.src=slOn; }
	
	setInterval(shoutboxGet,20000);
	
}

function shoutboxGet() {
		   var http_request = GetHttpObject();
		  if (shoutProgress == 1) return false;
	      shoutProgress=1;
	//ajax make ajax request
        http_request.onreadystatechange = function() { shoutboxGetResponse(http_request); };
        http_request.open('POST', "ajax/ajaxshoutGet.php", true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send("lastid="+slastid);
	
	
}

function shoutboxGetResponse(http_request) {
	shoutProgress = 0;
	if (http_request.readyState == 4) {
	 	if (http_request.status == 200) {
			var resp = http_request.responseText;
			//document.getElementById('center').innerHTML=resp;
		if (resp.indexOf('row') < 1) {return false;}

		var objDom = new XMLDoc(resp);

		var domTree = objDom.docNode;
		var referenceNode = domTree.getElements("row")[0].getElements("id")[0];
		
		slastid = referenceNode.getText();
	    scontent.innerHTML += '<div class="shoutitem"><div class="image"><img src="emoticon/angry.gif" /></div><div class="name">'+domTree.getElements("row")[0].getElements("user")[0].getText()+':</div>'+domTree.getElements("row")[0].getElements("msg")[0].getText()+'<div class="spacer"></div></div>';
shoutboxUpdate();

		}    
	}
}

function shoutboxUpdate() {



parentdiv=scontent.parentNode.parentNode;
var docH = getRefFromParent(getRefFromParent(parentdiv,'div',1),'div',1).offsetHeight;
var contH = getRefFromParent(parentdiv,'div',1).offsetHeight;
var scrollAreaH = getRefFromParent(parentdiv,'div',2).offsetHeight;

var scrollH = (contH * scrollAreaH) /docH;
if(scrollH < 15) scrollH = 15;
getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).style.height = Math.round(scrollH) + "px";
 scrollY = getRefFromParent(parentdiv,'div',1).scrollTop / ((docH - contH) / scrollDist)
//getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).style.top= scrollY + 'px';

scrollDist = Math.round(scrollAreaH - scrollH-8);
getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).maxY = 	scrollDist;
if (sL.src.indexOf(slOn) > 0 ) {
	
getRefFromParent(parentdiv,'div',1).scrollTop=getRefFromParent(getRefFromParent(parentdiv,'div',1),'div',1).offsetHeight - getRefFromParent(parentdiv,'div',1).offsetHeight;
getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).style.top= getRefFromParent(parentdiv,'div',2).offsetHeight-8-getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).offsetHeight + 'px';	
	
	
} else {getRefFromParent(getRefFromParent(parentdiv,'div',2),'div',1).style.top= scrollY + 'px';}
}



