function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

// Utility helper functions

function addClass(elem,value) {
  if (!elem.className) {
    elem.className = value;
  } else {
    newClassName = elem.className;
    newClassName+= " ";
    newClassName+= value;
    elem.className = newClassName;
  }
}

function removeClass(elem, value) {
	elem.className = elem.className.replace(value,"").replace(/^\s+|\s+$/,"");
}

document.getElementsByClassName = function(name) {
  var results = new Array();
  var elems = document.getElementsByTagName("*");
  for (var i=0; i<elems.length; i++) {
    if (elems[i].className.indexOf(name) != -1) {
      results[results.length] = elems[i];
    }
  }
  return results;
};

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}


// Navigation show-hide nested lists on rollover

function resetNavigation() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].className="";
	}
}
function clearNavigation() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].className="sfhide";
	}
}
function prepareNavigation() {
	if (!document.getElementById) return false;
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById("nav")) return false;
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			clearNavigation();
			this.className="sfhover";
		}
		sfEls[i].onmouseout=function() {
			resetNavigation();
			this.className="";
		}
	}
}

// Clear default search box text when clicked in
function initSearchBox() {
	if (!document.getElementById("search")) return false;
	var theField = document.getElementById("search");
	var defText = theField.value;
	theField.onfocus = function() { if(theField.value==defText) theField.value=""; }
	theField.onblur = function() { if(theField.value=="") theField.value=defText; }
}

// Popup window for video player
function popPlayer(url) {
	window.open(url, '_blank', 'width=560,height=550,location=no,menubar=no,resizable=yes,scrollbars=yes'); 
	return false;
}

// Re-usable popup windows
function newWindow(url,w,h) {
	var winl = (screen.width-w)/2;
	var wint = (screen.height-h)/2;
	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;
	var settings = 'height=' + h + ',';
	settings += 'width=' + w + ',';
	settings += 'top=' + wint + ',';
	settings += 'left=' + winl + ',';
	settings += 'status=no,location=no,menubar=no,resizable=yes,scrollbars=yes';
	var win = window.open(url,'_blank',settings);
	win.window.focus();
	return false;
}


addLoadEvent(prepareNavigation);
addLoadEvent(initSearchBox);
//addLoadEvent(setupZoom);

