/* Begin - Scripts from Jeremy Keith's DOM Scripting (*except where indicated)*/
//
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
	  window.onload = func;
	}
	else {
	  window.onload = function () {
		  oldonload();
		  func();
		}
	}
}

//
function insertAfter(newElement, targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
	  parent.appendChild(newElement);
	}
	else {
	  parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

//
function addClass(element, value) {
  if (!element.className) {
	  element.className = value;
	}
	else {
	  newClassName = element.className;
	  newClassName += " ";
	  newClassName += value;
	  element.className = newClassName;
	}
}

//
function moveElement(elementID, final_x, final_y, interval) {
  if (!document.getElementById) return false;
  if (!document.getElementById(elementID)) return false;
  var elem = document.getElementById(elementID);
  if (elem.movement) {
	  clearTimeout(elem.movement);
	}
	if (!elem.style.left) elem.style.left = "5px";                //Modified BE
	if (!elem.style.top) elem.style.top = "-400px";               //Modified BE
	var xpos = parseInt(elem.style.left);
	var ypos = parseInt(elem.style.top);
	
	if (xpos == final_x && ypos == final_y) return true;
	if (xpos < final_x) {
	  var dist = Math.ceil((final_x - xpos)/10);
	  xpos = xpos + dist;
	}
	if (xpos > final_x) {
	  var dist = Math.ceil((xpos - final_x)/10);
	  xpos = xpos - dist;
	}
	if (ypos < final_y) {
	  var dist = Math.ceil((final_y - ypos)/10);
	  ypos = ypos + dist;
	}
	if (ypos > final_y) {
	  var dist = Math.ceil((ypos - final_y)/10);
	  ypos = ypos - dist;
	}
	elem.style.left = xpos + "px";
	elem.style.top = ypos + "px";
	var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
	elem.movement = setTimeout(repeat,interval);
}

//
function highlightPage() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("headnav")) return false;
	var currenturl = window.location.href;                //Modified BE
  var headnav = document.getElementById("headnav");
  var headlinks = headnav.getElementsByTagName("a");
  for (var i=0; i<headlinks.length; i++) {
	  var linkurl = headlinks[i].getAttribute("href");
	  //var currenturl = window.location.href;  Original
	  if (currenturl.indexOf(linkurl) != -1) {
		  //links[i].className = "here";                    Original Code from book
		  addClass(headlinks[i], "here");                       //Modified BE
		}
	}
	//Added BPE
  if (!document.getElementById("footnav")) return false;
	var currenturl = window.location.href;                //Modified BE
  var footnav = document.getElementById("footnav");
  var footlinks = footnav.getElementsByTagName("a");
  for (var i=0; i<footlinks.length; i++) {
	  var linkurl = footlinks[i].getAttribute("href");
	  //var currenturl = window.location.href;  Original
	  if (currenturl.indexOf(linkurl) != -1) {
		  //links[i].className = "here";                    Original Code from book
		  addClass(footlinks[i], "here");                       //Modified BE
		}
	}
}
//
addLoadEvent(highlightPage);
/* End - Scripts from Jeremy Keith's DOM Scripting (*except where indicated)*/


/* End - Scripts from Johnathan Snook's snook.ca (http://www.snook.ca/archives/html_and_css/comments_behind/) *except where indicated */
window.onscroll = window_onscroll;

function window_onscroll(){
  var el = document.getElementById('extra1');
  if(typeof(document.media)=='string')
  {// only do this for ie
    var s;
    // scrolling offset calculation via www.quirksmode.org 
    if (self.pageYOffset){s = self.pageYOffset;}
    else if (document.documentElement && document.documentElement.scrollTop) { s = document.documentElement.scrollTop; }
    else if (document.body) {	s = document.body.scrollTop; }
    el.style.top = s + 20;
  }
}