var SLIDETIMER = 3;
var SLIDESPEED = 3;
var SCROLLTIMER = 8;
var SCROLLSPEED = 20;
var STARTINGOPACITY = 40;
var scrolling = 1;
var deltaCounter = 1;
         var limitx
         var limitx2
         var div3x 
         var sectionsx 
         var lengthx 

// 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;
    }
  }
  var limit2 = 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, limit2) }, SCROLLTIMER);
  
}

function scrollAnimate(div,dir,limit,limit2) {

  div.style.top = div.style.top || '0px';
  var top = div.style.top.replace('px','');
  if(limit < 0) 
  {
  cancelScroll(div.id);
  scrollContentBarCancel(div.id);
  }
  else
  {
      if(dir == 1) {
	    if(limit - Math.abs(top) <= SCROLLSPEED) {
	      cancelScroll(div.id);
            scrollContentBarCancel(div.id);
	      div.style.top = '-' + limit + 'px';
	    } else {
	      div.style.top = top - SCROLLSPEED + 'px';
	    }
      } else {
	    if(Math.abs(top) - limit <= SCROLLSPEED) {
	      cancelScroll(div.id);
            scrollContentBarCancel(div.id);
	      div.style.top = limit + 'px';
	    } else {
	      div.style.top = parseInt(top) + SCROLLSPEED + 'px';
	    }
      }
  }
  var div2 = document.getElementById('scrollBarInner');
  var theHeight = document.getElementById('textsection-1').offsetHeight;
  var outBarHeight = document.getElementById('scrollBarOuter').offsetHeight;
  
  var barTop = div.style.top
  barTop = parseInt(barTop) * -1
  limit2 = (outBarHeight-20)/limit2;
  if (barTop < 0)
  {
  barTop = barTop * -1
  barTop = barTop * limit2
  barTop = barTop * -1
  div2.style.top = barTop + "px";
  }
  else
  {
  barTop = barTop * limit2
  div2.style.top = barTop + "px";
  }
  
}

// cancel the scrolling on mouseout //
function cancelScroll(id) {
 scrolling = 1;
  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;
}

//jquery catch scroll
   $(document).ready(function(){
           $("#container").mousewheel(function(event, delta) {
           var direction;
           if (delta > 0)
           {
                direction = -1;
           }
           else
           {
                direction = 1;
                delta = delta * -1;
           
           }     
                delta = deltaCounter * delta;
                delta = delta * 500
                
                if (scrolling == 1)
                {
						scrollContent('textslider',direction);
						//alert(delta)
						setTimeout(function() { cancelScroll('textslider')} , (delta ));
				        scrolling = 0;
				        deltaCounter = 1;
				}
				else
				    deltaCounter += 1;
				
						//alert(delta);
						event.stopPropagation();
						event.preventDefault();
					});

         });
         
         
    
var mouseX, mouseY;
function getMousePos(e)
{
    if (!e)
        var e = window.event||window.Event;

    if('undefined'!=typeof e.pageX)
    {
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
    else
    {
        mouseX = e.clientX + document.body.scrollLeft;
        mouseY = e.clientY + document.body.scrollTop;
    }

}
// You need to tell Mozilla to start listening:
if(window.Event && document.captureEvents)
    document.captureEvents(Event.MOUSEMOVE);

// Then assign the mouse handler
document.onmousemove = getMousePos;
// Then your mouseover function can just read mouseX and mouseY directly.
         
         
function scrollContentBar(id)
{
    
var dir = 1;
             
    var div3 = document.getElementById(id);
    
    
      clearInterval(div3.timer);
      
          
      div3.style.opacity = STARTINGOPACITY * .01;
      div3.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';
      var scrolltime = 1;
        //alert("here")
        
        
        
	div3x = document.getElementById('MyBody');
	sectionsx = div3x.getElementsByTagName('div');
	lengthx = sectionsx.length;
	//limitx = sectionsx[lengthx-1].offsetTop;
	limitx = getAbsoluteY2(div3x)
	divtextslider = document.getElementById('textslider');
	limitx2 = sectionsx[lengthx-1].offsetHeight - divtextslider.parentNode.offsetHeight + 20; 
	//limitx2 = textslider.offsetHeight;     
	//alert(limitx)
	
      var limit = limitx;
      var limit2 = limitx2//-300;
        div3.timer = setInterval( function() { scrollAnimate2(div3,dir,limit, limit2) }, scrolltime);

            

}

function scrollAnimate2(div3,dir,limit,limit2) 
{
  var outBarHeight = document.getElementById('scrollBarOuter').offsetHeight - 20;
    // just use a jquery to listen for the mouseup event and then call the scrollContentBarCancel*********** 
    //var div3 = document.getElementById(div);
    //document.getElementById('scrollBarOuter').offsetTop;//0//
    var BarTopLimit = limit + 71;//from loading script
    //alert(BarTopLimit);
    var BarBottomLimit = BarTopLimit + outBarHeight;
    var div2 = document.getElementById('scrollBarInner');
    
    if (mouseY < (BarTopLimit+10) )
    {
    div2.style.top = 0 + "px";
    }
    else if (mouseY > BarBottomLimit )
    {
    div2.style.top = outBarHeight + "px";
    }
    else
    {
    div2.style.top = mouseY  - (BarTopLimit+10)  + "px";
    }
    //alert(mouseY);
    //alert(BarTopLimit);
     var div2top = div2.style.top.replace('px','');
     
      limit2 = (limit2/outBarHeight) * div2top;
   limit2 = limit2 * -1;
      div3.style.top = (limit2 + 'px') || '0px';
      

}

function scrollContentBarCancel(id)
{

     scrolling = 1;
      var div3 = document.getElementById(id);
      div3.style.opacity = 1;
      div3.style.filter = 'alpha(opacity=100)';
      clearTimeout(div3.timer);

}
         
         
         
         

