var buffObjScroll = new Array();

function doStartHScroll(id, scrollSpeed) {
    var pObj = xGetElementById(id);
    var childObj = pObj.firstChild;

    while(childObj) {
        if(childObj.nodeName == 'UL') {
            var ticker = {"pObj":pObj, "child":childObj, "scrollSpeed":scrollSpeed, "step":1, "mouseOver":false}
            buffObjScroll[id] = ticker;

            xAddEventListener(pObj, 'mouseover', function() { buffObjScroll[id].mouseOver = true; } );
            xAddEventListener(pObj, 'mouseout', function() { buffObjScroll[id].mouseOver = false; } );

            buffObjScroll[id].timeid = doHScroll(ticker);
            return;
        }
        childObj = childObj.nextSibling;
    }
}

function doHScroll(obj) {
	if(obj.mouseOver) {
		setTimeout( function() { doHScroll(obj); }, obj.scrollSpeed );
		return;
	}
    var st = obj.pObj.scrollLeft;
	var li_tag = obj.child.getElementsByTagName("LI");
	var li_width = xWidth(li_tag[0]);

    if(obj.step<0 && st==0) {
		st = xWidth(li_tag[li_tag.length-1]);
		obj.child.insertBefore(li_tag[li_tag.length-1], li_tag[0]);
	}else if(st > li_width) {
		obj.child.appendChild(li_tag[0]);
		st = 0;
	}else{
	    st += obj.step;
	}
    obj.pObj.scrollLeft = st;

    if(st == 0) obj.timeid = setTimeout( function() { doHScroll(obj); }, 3000 );
    else obj.timeid = setTimeout( function() { doHScroll(obj); }, obj.scrollSpeed );
}

function doHScrollMove(obj, move) {
    clearTimeout(obj.timeid);

    var st = obj.pObj.scrollLeft;
	var li_tag = obj.child.getElementsByTagName("LI");
	var li_width = xWidth(li_tag[0]);

	if(move=='left' && st==0) {
		obj.child.insertBefore(li_tag[li_tag.length-1], li_tag[0]);
        obj.step = 1;
	}else if(move=='right' && st==0) {
		obj.child.appendChild(li_tag[0]);
        obj.step = -1;
	}else{
	    st = 0;
	}
    obj.pObj.scrollLeft = st;
    obj.timeid = setTimeout( function() { doHScroll(obj); }, 3000 );
}
