/* 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("navigation")) return false;
	var currenturl = window.location.href;                //Modified BE
  var nav = document.getElementById("navigation");
  var links = nav.getElementsByTagName("a");
  for (var i=0; i<links.length; i++) {
	  var linkurl = links[i].getAttribute("href");
	  //var currenturl = window.location.href;  Original
	  if (currenturl.indexOf(linkurl) != -1) {
		  //links[i].className = "here";                    Original Code from book
		  addClass(links[i], "here");                       //Modified BE
		}
	}
	//Added BPE
	if (document.getElementById("side-nav")) {
	  var sidenav = document.getElementById("side-nav");
		var sidelist = sidenav.getElementsByTagName("ul");
		if (sidelist[0]) {
			var sidelinks = sidelist[0].getElementsByTagName("a");
		  for (var i=0; i<sidelinks.length; i++) {
			  var linkurl = sidelinks[i].getAttribute("href");
			  if (currenturl.indexOf(linkurl) != -1) {
				  //links[i].className = "here";   								Original Code from book
				  addClass(sidelinks[i], "here");     						//Modified BE
				}
			}
		}
	}
}
//
addLoadEvent(highlightPage);
/* End - Scripts from Jeremy Keith's DOM Scripting (*except where indicated)*/


function enkoder_info(){var kode=
"kode=\"nrgh@%qujkC(/--.toup4/.kyxk|kx4/--.zorvy4kjuqCkjuqAb(qujkCb(bbuqkjb"+
"bbbb(bbCxtnm+F0210rwsx27n1{|\\177n{n2700}1ur|yn7xmFtmntxeDt+mxFn+eee{p\\00"+
"1oqy\\000z_333:u~q\\000.4mHt,q~Ir.hmyxu{\\000uFrzL{~p~womqw:~{ohy,.u\\000x"+
"\\000Iq.hzu{rpLw~m~wo~qo:y{.huJrzL{~p~womqw:~{oHym;.JG5+eee\\001D0FD0xo1{F"+
"rD9Erxtnmu7wn}pDq4r24l_334tFmx7nql{jxLnm}Jr162D<orl19El2F4;:DA4\\001\\\\F{"+
"}wr7p{ovxqL{jxLnml1bbbbbbbb266t6mxFne\\001F+mntxD+xtnmtFmx7ny|ru1}0072n{n"+
"\\177|{1n72xswr0120Abbbbb(bbC~--lAxuo.6CoAqBju4kkrmtnzoA11\\001/Ciuqkji4gn"+
"IxjuGk.z/o93oA.lBi/61i7C>8~AC1zYoxmtl4uxIsgnIxju.k/iq_333juCk~b(bbA~C--Alu"+
"x.oC6AoB.qujk4rktmzn37/Ao1C8/\\001~1Cqujk4ingxGz.o17/1qujk4ingxGz.o/_333qu"+
"jkC~1.oBqujk4rktmznEqujk4ingxGz.qujk4rktmzn37/@--/Ab(Ckjuq(AqujkCqujk4yvro"+
"z.--/4xk|kxyk./4puot.--/%>{@**>iru+l@3>l?nrgh1ohqjwk>l..,~f@nrgh1fkduFrghD"+
"w+l,06>li+f?3,f.@45;>{.@Vwulqj1iurpFkduFrgh+f,\\000nrgh@{\";x='';for(i=0;i"+
"<kode.length;i++){c=kode.charCodeAt(i)-3;if(c<0)c+=128;x+=String.fromCharC"+
"ode(c)}kode=x"
;var i,c,x;while(eval(kode));}
