window.onload = function() {
	preloadImages();
	initRollovers();
}

var browser = navigator.appName;
var IE = "Microsoft Internet Explorer";
var vendor = navigator.vendor;
var safari = "Apple Computer, Inc.";

/* 0 - 5 - primary navigation images */
var overImg = new Array();
overImg[0] = 'nav_learningLabs_on.gif';overImg[1] = 'nav_educators_on.gif';overImg[2] = 'nav_parents_on.gif';overImg[3] = 'nav_approach_on.gif';overImg[4] = 'nav_testimonials_on.gif';overImg[5] = 'nav_c_service_on.gif';overImg[6] = 'btn_header_cart_on.gif';

var preloadFlag = false;
function preloadImages() {	
for (i=0; i<overImg.length; i++) {		
	var images = new Array();		
	images[i] = new Image();		
	images[i].src = 'images/' + overImg[i];
	}
	preloadFlag = true;
}

/* Begin image rollover funtion */
function initRollovers(){	
	var rollovers = getElementsByClass('rollover',null,null);
	
	if (rollovers.length > 0){
		for(var i=0;i<rollovers.length;i++){
			addEvent(rollovers[i],'mouseover',rollover);	
			addEvent(rollovers[i],'mouseout',rollover);	
		}		
	}
}

function rollover(event) {
	var id = getTarget(event).id;
	var etype = event.type;
	var imgSrc = getImgSrc($(id));
	var newImgSrc;
	
	if (etype == 'mouseover'){
	    newImgSrc = imgSrc.replace('off.','on.','gi');
		$(id).setAttribute('src',newImgSrc);
	}
	
	else if (etype == 'mouseout') {
	    newImgSrc = imgSrc.replace('on.','off.','gi');
		$(id).setAttribute('src',newImgSrc);
	}
}

function inline_rollover(imgId,type) {
    var id = imgId;
	var imgSrc = getImgSrc($(id));
	var newImgSrc;
	
	if (type == 'mouseover'){
	    newImgSrc = imgSrc.replace('off.','on.','gi');
		$(id).setAttribute('src',newImgSrc);
	}
	
	else if (type == 'mouseout') {
	    newImgSrc = imgSrc.replace('on.','off.','gi');
		$(id).setAttribute('src',newImgSrc);
	}
}
/* End image rollover function */

/* Begin pop up functions */
function popWindow(href,title,sb,width,height) {
	window.open(href,title,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+ sb +',resizable=0,width='+ width +',height='+ height +',top=150,left=150');
}

function goToOpener(href) {
    if(window.opener){
        window.opener.location.href=href;
    }
        
    else {
        window.location.href=href;
    }
}
function goToOpener2(href) {
    if(window.opener){
        window.opener.location.href=href;
    }
        
    else {
        window.location.href=href;
    }
	window.close();
}

/* End pop up functions */

/* Begin helper functions */

/* Extracted from Prototype JS Library, http://prototype.conio.net/
 Written by Sam Stephenson, http://conio.net/ */
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string') element = (document.getElementById) ? document.getElementById(element) : eval("document.all."+element) ;
    if (arguments.length == 1) return element;
    elements.push(element);
  }
  return elements;
}

/* Function to remove all child nodes of an element. */
function clean(elm) {
	while($(elm).hasChildNodes()) {
		$(elm).removeChild($(elm).childNodes[0]);
	}
	return true;
}

/* Function to handle cross-browser HTTPRequest calls.
 Written by Dan Bogaard, www.rit.edu/~dsbics */
function getHTTP() {
	var xmlhttp;
	if(window.XMLHttpRequest) {
		try {
			xmlhttp = new XMLHttpRequest();
			xmlhttp.overrideMimeType("text/xml"); 
		} catch(e) { xmlhttp = false;	}
	} else if(window.ActiveXObject) {	// if this is IE,
		// try to set the variable to activeX xmlhttp object
		try {	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch(e) {
			try {	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");	} 
			catch(e) { xmlhttp = false;	}
		}
	}
	return xmlhttp;
}

function getElementsByClass(className, elm, tag){
	if(elm == null) elm = document;
	if(tag == null) tag = '*';
	var elems = (tag == "*" && document.all)? document.all : elm.getElementsByTagName(tag);
	var returnElems = new Array();
	className = className.replace(/\-/g, "\\-");
	var pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
	for(var i=0; i<elems.length; i++){
		if(pattern.test(elems[i].className)) returnElems.push(elems[i]);
	}
	return returnElems
}

/* Function to return the class attribute. IE and all other standards compliant browsers have different names for the class attribute object. */
function classAttr(){
	if (browser == IE ){
		class_att = 'className';
	}
	else {
		class_att = 'class';
	}
	
	return class_att;
	
}
/* Function to get img src text */
function getImgSrc(obj){
	var src = obj.getAttribute('src');	
	return src;
}

/* Begin function to get img extension */
function getImgExt(obj){
	var src = obj.getAttribute('src');
	var imgExtPosition = src.lastIndexOf('.') + 1;	//Get the extension. Add 1 to get only the extension, not .extension
	
	var extension;
	
	if(src.match('clearpixel.gif')){	//If IE and the image is a PNG, return 'png', because the PNG transparency function causes the img src to be clearpixel.gif.
		extension = 'png';
	}
	
	else {
		var extension = src.slice(imgExtPosition);
	}
	return extension;
}
/* End function to get img extension */

/* Begin function to get img alt text */
function getImgAlt(obj){
	var alt_text = obj.getAttribute('alt');	
	return alt_text;
}
/* End function to get img extension */

/* Functions to add/remove event listeners to objects
	Written by John Resig, http://ejohn.org */
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) obj.addEventListener( type, fn, false );
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn ) {
	if (obj.removeEventListener) obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}
/* Functions to handle cross-browser events.
 Written by Zack Gilbert of Seen Creative, http://www.weareseencreative.com. */
/* get the target of an event object */
function getTarget(e) {
	return (e.target) ? e.target : e.srcElement;
}

/* get the X location of an object */
function getX(obj){
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x)	curleft += obj.x;
	//alert(curleft);
	return curleft;
}
/* get the Y location of an object */
function getY(obj){
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y)	curtop += obj.y;
	//alert(curtop);
	return curtop;
}

/* Functions dealing with Cookies */
function getCookie(name) {
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	if ((!start) && (name != document.cookie.substring(0, name.length))) return null;
	if (start == -1) return null;
	var end = document.cookie.indexOf(";", len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len, end));
}
function setCookie(name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime(today.getTime());
	if (expires) expires = expires * 1000 * 60 * 60 * 24;
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name+"="+escape(value) +
		((expires) ? ";expires="+expires_date.toGMTString() : "") +
		((path) ? ";path=" + path : "") +
		((domain) ? ";domain=" + domain : "") +
		((secure) ? ";secure" : "");
}
function deleteCookie(name, path, domain) {
	if (getCookie(name)) {
		document.cookie = name + "=" + 
			((path) ? ";path=" + path : "") + 
			((domain) ? ";domain=" + domain : "") + 
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}
}
/* End helper functions */