﻿var tck;
var scrollDiv;
var rightLimit = 0;
var clearDisabled = false;

function initSlider() {

    tck = document.getElementById ? document.getElementById("ticker") : document.all.ticker;         
    left = document.getElementById ? document.getElementById("leftbtn") : document.all.leftbtn;
    right = document.getElementById ? document.getElementById("rightbtn") : document.all.rightbtn;
    
	if (tck.getElementsByTagName("div").length > 0) {
		news = new Array();
		scrollDiv = tck.getElementsByTagName("div")[0];
		
		scrollDivWidth = parseInt(scrollDiv.offsetWidth);   
		tckWidth = parseInt(tck.offsetWidth);
		
		tckpos = findPosition(tck, "ticker");
		rightLimit = tckWidth - scrollDivWidth;
		     
		cells = scrollDiv.getElementsByTagName("td");
		offset = findPosition(cells[0], scrollDiv)[0];
		leftPos = 0;
		scrollDiv.style.left = leftPos + "px";
		
		if (tckWidth < scrollDivWidth) { 
		    for (i=0; i<cells.length; i++) {
		        if (cells[i].className == "selected") {
		            leftPos = -(findPosition(cells[i], scrollDiv)[0] - offset);
		            if (leftPos > rightLimit) {
		                scrollDiv.style.left = leftPos + "px";
		            } else {
		                scrollDiv.style.left = rightLimit + "px";
		                leftPos = rightLimit;                   
		                right.className = "disabled";
		            }
		            break;
		        }
		    }
		    if (leftPos >= 0) left.className = "disabled";
		    clearDisabled = true;
		    addEvent(left, "mouseover", leftMouseOver);
		    addEvent(left, "mouseout", stopScroll);
		    addEvent(right, "mouseover", rightMouseOver);
		    addEvent(right, "mouseout", stopScroll);
		} else {
		    left.className = "disabled";
		    right.className = "disabled";
		}
	}
}

function leftMouseOver() {
    tick = setInterval("scroll(" + sliderStep + ", 0, true)", sliderSpeed);
}

function rightMouseOver() {
    tick = setInterval("scroll(" + -sliderStep + ", " + rightLimit + ", false)", sliderSpeed);
}

function scroll(step, limit, isLeft) {
    newLeft = parseInt(scrollDiv.style.left) + step  
    if ((step < 0 && newLeft > limit) || (step > 0 && newLeft < limit)) {
	    scrollDiv.style.left = newLeft + "px";   
	    if (clearDisabled) {
	        left.className = "";  
            right.className = "";
            clearDisabled = false;
        }
	} else {
	    scrollDiv.style.left = limit + "px";
	    stopScroll();
	    if (isLeft) {   
	        left.className = "disabled";
	    } else {
            right.className = "disabled";
        }
        clearDisabled = true;
	}                         
}

function stopScroll() {
	clearInterval(tick);
}

function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}
      
function findPosition(obj, stopObjectId)
{
	var curleft = 0, curtop = 0;
	curleft = obj.offsetLeft
	curtop = obj.offsetTop

	if (obj.offsetParent)
	{
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		    if (obj.id == stopObjectId)
	            return [curleft, curtop];
		}
	}
	
	return [curleft, curtop];
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}