var currentSection = "frame1-pane"; // The default loaded section on the page
var tabTag = "-tab";
var paneTag = "-pane";


function AutoScroll() {
 toolbarElem = document.getElementById('toolbar');
 toolbarNames = new Array();
 // Find all the <span> elements in the toolbar, and extract their id's into an array.
 if (toolbarElem.hasChildNodes()) {
  var children = toolbarElem.getElementsByTagName("TD");
  for (var i = 0; i < children.length; i++) {
   if (children[i].tagName == "TD") {toolbarNames.push(children[i].id.split("-")[0]);}
  }
 }
 // Now iterate through our array of tab names, find matches, and determine where to go.
 for (var i = 0; i < toolbarNames.length; i++) {
  if (toolbarNames[i] == currentSection.split("-")[0]) {
   if ((i + 1) > (toolbarNames.length - 1)) {gotoTab = toolbarNames[0];} else {gotoTab = toolbarNames[i + 1];}
  }
 }
 // Go to the section name!
 if(document.getElementById(gotoTab+paneTag)) {var click_here=document.getElementById(gotoTab+paneTag+'-link').value; ScrollSection(gotoTab+paneTag, 'scroller','frame1-pane', click_here);}
 else {var click_here=document.getElementById('frame1-pane-link').value; ScrollSection("frame1-pane", 'scroller','frame1-pane', click_here);}
 window.setTimeout("AutoScroll()", 15000);
}


// Scroll the page manually to the position of element "link", passed to us.

function ScrollSection(link_, scrollArea, offset, click_here) {
document.getElementById('click_here').href=click_here;

if(!document.getElementById(link_)){
 	return;
}
 // Store the last section, and update the current section
 if (currentSection == link_) {
 	return;
 }
 lastSection = currentSection;
 currentSection = link_;
 // Change the section highlight.
 // Extract the root section name, and use that to change the background image to 'top', revealing the alt. state
 sectionTab = currentSection.split("-")[0] + tabTag;
 if(document.getElementById(sectionTab)) document.getElementById(sectionTab).className = "active";

 if (lastSection) {
  lastTab = lastSection.split("-")[0] + tabTag;
  if(document.getElementById(lastTab)) document.getElementById(lastTab).className = "inactive";
 }
 // Get the element we want to scroll, get the position of the element to scroll to
 theScroll = document.getElementById(scrollArea);
 position = findElementPos(document.getElementById(link_));
 // Get the position of the offset div -- the div at the far left.
 // This is the amount we compensate for when scrolling
 if (offset != "") {
  offsetPos = findElementPos(document.getElementById(offset));
  position[0] = position[0] - offsetPos[0];
 }
 scrollStart(theScroll, theScroll.scrollLeft, position[0], "horiz");
 // return false;
}


// Scroll the page using the arrows

function ScrollArrow(direction, toolbar, scrollArea, offset) {
 toolbarElem = document.getElementById(toolbar);
 toolbarNames = new Array();
 // Find all the <span> elements in the toolbar, and extract their id's into an array.
 if (toolbarElem.hasChildNodes()) {
  var children = toolbarElem.getElementsByTagName("TD");
  for (var i = 0; i < children.length; i++) {
   if (children[i].tagName == "TD") {toolbarNames.push(children[i].id.split("-")[0]);}
  }
 }
 // Now iterate through our array of tab names, find matches, and determine where to go.
 for (var i = 0; i < toolbarNames.length; i++) {
  if (toolbarNames[i] == currentSection.split("-")[0]) {
   if (direction == "left") {
    if (i - 1 < 0) {gotoTab = toolbarNames[toolbarNames.length - 1];} else {gotoTab = toolbarNames[i - 1];}
   }
   else {
    if ((i + 1) > (toolbarNames.length - 1)) {gotoTab = toolbarNames[0];} else {gotoTab = toolbarNames[i + 1];}
   }
  }
 }
 var str = gotoTab+paneTag;
 if(!document.getElementById(gotoTab+paneTag)){
	if(direction == "left") str = 'frame5-pane';
	else str = 'frame1-pane';
} 
 // Go to the section name!
 var click_here=document.getElementById(str +'-link').value;
 //var click_here=document.getElementById('frame1_link').value;
 ScrollSection(str, scrollArea, offset, click_here);
}


// Animated Scroll Functions
// Scrolls are synchronous -- only one at a time.

var scrollanim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null};
function scrollStart(elem, start, end, direction) {
 if (scrollanim.timer != null) {
  clearInterval(scrollanim.timer);
  scrollanim.timer = null;
 }
 scrollanim.time = 0;
 scrollanim.begin = start;
 scrollanim.change = end - start;
 scrollanim.duration = 25;
 scrollanim.element = elem;
 if (direction == "horiz") {scrollanim.timer = setInterval("scrollHorizAnim();", 15);} else {scrollanim.timer = setInterval("scrollVertAnim();", 15);}
}
function scrollHorizAnim() {
 if (scrollanim.time > scrollanim.duration) {
  clearInterval(scrollanim.timer);
  scrollanim.timer = null;
 }
 else {
  if (scrollanim.begin>3000) {
   move = sineInOut2(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration);
  } else {
   move = sineInOut(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration);
  }
  scrollanim.element.scrollLeft = move;
  scrollanim.time++;
 }
}


// t = time, b = begin, c = change, d = duration
// time = current frame, begin is fixed, change is basically finish - begin, duration is fixed (frames),

function sineInOut(t, b, c, d) {return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;}
function sineInOut2(t, b, c, d) {return -c/2 * (Math.cos(Math.PI*t/d) - 1) - 440;}

function findElementPos(elemFind) {
 var elemX = 0;
 var elemY = 0;
 do {
  elemX += elemFind.offsetLeft;
  elemY += elemFind.offsetTop;
 }
 while ( elemFind = elemFind.offsetParent )
 return Array(elemX, elemY);
}
