var SLIDETIMER = 3;

var SLIDESPEED = 3;

var SCROLLTIMER = 3;

var SCROLLSPEED = 3;

var STARTINGOPACITY = 40;



// handles section to section scrolling of the content //

function slideContent(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 = STARTINGOPACITY * .01;

  slider.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';

  slider.timer = setInterval( function() { slideAnimate(slider,prefix,timer) }, SLIDETIMER);

}



function slideAnimate(slider,prefix,timer) {

  var curr = Math.abs(slider.current);

  var tar = Math.abs(slider.target);

  var dir = slider.direction;

  if((tar - curr <= SLIDESPEED && dir == -1) || (curr - tar <= SLIDESPEED && 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() { autoScroll(slider.id,prefix,timer) }, timer * 1000);

	}

  } else {

	var pos = (dir == 1) ? parseInt(slider.current) + SLIDESPEED : slider.current - SLIDESPEED;

    slider.current = pos;

    slider.style.top = pos + 'px';

  }

}



// handles manual scrolling of the content //

function scrollContent(id,dir) {

  var div = document.getElementById(id);

  clearInterval(div.timer);

  var sections = div.getElementsByTagName('div');

  var length = sections.length;

  var limit;

  if(dir == -1) {

    limit = 0;

  } else {

    if(length > 1) {

      limit = sections[length-1].offsetTop;

    } else {

      limit = sections[length-1].offsetHeight - div.parentNode.offsetHeight + 20;

    }

  }

  div.style.opacity = STARTINGOPACITY * .01;

  div.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';

  div.timer = setInterval( function() { scrollAnimate(div,dir,limit) }, SCROLLTIMER);

}



function scrollAnimate(div,dir,limit) {

  div.style.top = div.style.top || '0px';

  var top = div.style.top.replace('px','');

  if(dir == 1) {

	if(limit - Math.abs(top) <= SCROLLSPEED) {

	  cancelScroll(div.id);

	  div.style.top = '-' + limit + 'px';

	} else {

	  div.style.top = top - SCROLLSPEED + 'px';

	}

  } else {

	if(Math.abs(top) - limit <= SCROLLSPEED) {

	  cancelScroll(div.id);

	  div.style.top = limit + 'px';

	} else {

	  div.style.top = parseInt(top) + SCROLLSPEED + 'px';

	}

  }

}



// cancel the scrolling on mouseout //

function cancelScroll(id) {

  var div = document.getElementById(id);

  div.style.opacity = 1;

  div.style.filter = 'alpha(opacity=100)';

  clearTimeout(div.timer);

}



// initiate auto scrolling //

function autoScroll(id,prefix,timer,restart) {

  var div = document.getElementById(id);

  div.autoscroll = (!div.autoscroll && !restart) ? false : true;

  if(div.autoscroll) {

    var sections = div.getElementsByTagName('div');

    var length = sections.length;

    div.section = (div.section && div.section < length) ? div.section + 1 : 1;

    slideContent(prefix + '-' + div.section,prefix,timer);

  }

}



// cancel automatic scrolling //

function cancelAutoScroll(id) {

  var div = document.getElementById(id);

  div.autoscroll = false;

}