

var klsSLIDETIMER = 50;
var klsSLIDESPEED = 6;
var klsSCROLLTIMER = 20;
var klsSCROLLSPEED = 6;
var klsSTARTINGOPACITY = 40;

// handles section to section scrolling of the content //
function klsSlideContentUp(id,prefix,timer) {
  var div = document.getElementById(id);
  var slider = div.parentNode;
  clearInterval(slider.timer);
  slider.section = parseInt(id.replace(/\D/g,''));
  slider.target = div.offsetTop;
  slider.style.top = slider.style.top || '0px';
  slider.current = slider.style.top.replace('px','');
  slider.direction = (Math.abs(slider.current) > slider.target) ? 1 : -1;
  slider.style.opacity = klsSTARTINGOPACITY * .01;
  slider.style.filter = 'alpha(opacity=' + klsSTARTINGOPACITY + ')';
  slider.timer = setInterval( function() { klsSlideAnimate(slider,prefix,timer) }, klsSLIDETIMER);
}


function klsSlideContentLeft(id,prefix,timer) {
  var div = document.getElementById(id);
  var slider = div.parentNode;
  clearInterval(slider.timer);
  slider.section = parseInt(id.replace(/\D/g,''));
  slider.target = div.offsetLeft;
  slider.style.left = slider.style.left || '0px';
  slider.current = slider.style.left.replace('px','');
  slider.direction = (Math.abs(slider.current) > slider.target) ? -1 : 1;
  slider.style.opacity = klsSTARTINGOPACITY * .01;
  slider.style.filter = 'alpha(opacity=' + klsSTARTINGOPACITY + ')';
  slider.timer = setInterval( function() { klsSlideAnimateLeft(slider,prefix,timer) }, klsSLIDETIMER);
}

function klsSlideAnimate(slider,prefix,timer) {
  var curr = Math.abs(slider.current);
  var tar = Math.abs(slider.target);
  var dir = slider.direction;
  if((tar - curr <= klsSLIDESPEED && dir == -1) || (curr - tar <= klsSLIDESPEED && dir == 1)) {
    slider.style.top = (slider.target * -1) + 'px';
	slider.style.opacity = 1;
	slider.style.filter = 'alpha(opacity=100)';
    clearInterval(slider.timer);
	if(slider.autoscroll) {
	  setTimeout( function() { klsAutoScroll(slider.id,prefix,timer) }, timer * 1000);
	}
  } else {
	var pos = (dir == 1) ? parseInt(slider.current) + klsSLIDESPEED : slider.current - klsSLIDESPEED;
    slider.current = pos;
    slider.style.top = pos + 'px';
  }
}

function klsSlideAnimateLeft(slider,prefix,timer) {
  var curr = Math.abs(slider.current);
  var tar = Math.abs(slider.target);
  var dir = slider.direction;
  if((tar - curr <= klsSLIDESPEED && dir == -1) || (curr - tar <= klsSLIDESPEED && dir == 1)) {
    slider.style.left = (slider.target * -1) + 'px';
	slider.style.opacity = 1;
	slider.style.filter = 'alpha(opacity=100)';
    clearInterval(slider.timer);
	if(slider.autoscroll) {
	  setTimeout( function() { klsAutoScroll(slider.id,prefix,timer) }, timer * 1000);
	}
  } else {
	var pos = (dir == 1) ? parseInt(slider.current) + klsSLIDESPEED : slider.current - klsSLIDESPEED;
    slider.current = pos;
    slider.style.left = pos + 'px';
  }
}

// initiate auto scrolling //
function klsAutoScroll(id,prefix,restart) {

  var timer = document.getElementsByName("klsScrollSpeed")[0].value;
  var direction = document.getElementsByName("klsScrollDirection")[0].value;

  var div = document.getElementById(id);
  div.autoscroll = (!div.autoscroll && !restart) ? false : true;
  if(div.autoscroll) {
    var sections = document.getElementsByName('klatestsectionscroll');
    var length = sections.length;
    div.section = (div.section && div.section < length) ? div.section + 1 : 1;
    
    switch (direction)
    {
		case 'left':
			klsSlideContentLeft(prefix + '-' + div.section,prefix,timer);
			break;
				
		case 'up':
			klsSlideContentUp(prefix + '-' + div.section,prefix,timer);
			break;
		
		default:
			klsSlideContentUp(prefix + '-' + div.section,prefix,timer);
			break;
    
    }
    
  }
}

klsAddDOMLoadEvent = (function(){
    // create event function stack
    var load_events = [],
        load_timer,
        script,
        done,
        exec,
        old_onload,
        init = function () {
            done = true;

            // kill the timer
            clearInterval(load_timer);

            // execute each function in the stack in the order they were added
            while (exec = load_events.shift())
                exec();

            if (script) script.onreadystatechange = '';
        };

    return function (func) {
        // if the init function was already ran, just run this function now and stop
        if (done) return func();

        if (!load_events[0]) {
            // for Mozilla/Opera9
            if (document.addEventListener)
                document.addEventListener("DOMContentLoaded", init, false);

            // for Internet Explorer
            /*@cc_on @*/
            /*@if (@_win32)
                document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
                script = document.getElementById("__ie_onload");
                script.onreadystatechange = function() {
                    if (this.readyState == "complete")
                        init(); // call the onload handler
                };
            /*@end @*/

            // for Safari
            if (/WebKit/i.test(navigator.userAgent)) { // sniff
                load_timer = setInterval(function() {
                    if (/loaded|complete/.test(document.readyState))
                        init(); // call the onload handler
                }, 10);
            }

            // for other browsers set the window.onload, but also execute the old window.onload
            old_onload = window.onload;
            window.onload = function() {
                init();
                if (old_onload) old_onload();
            };
        }

        load_events.push(func);
    }
})();



function klsInit()
{

  var useScroll = document.getElementsByName("klsUseScroll")[0].value;  
  if (useScroll == 1) {
     klsAutoScroll('klatestcontentscroll','klatestsectionscroll',true);
  }
}

klsAddDOMLoadEvent(klsInit);


