// some standard stuff, yo

// THIS SHOULD BE THE ONLY FUNCTION IN THIS FILE
function includeFile(file) {
	// yay! should all be done before page load...
	// this is an ajax app so we don't mind delaying initial page load a little...
	var scrpts = document.getElementsByTagName('script');
	for(var i=0;i<scrpts.length;i++) {
		if(scrpts[i].getAttribute('src') == file) return true;
	}
	var ns = document.createElement('script');
	ns.setAttribute('type','text/javascript');
	ns.setAttribute('src',file);
	if(arguments[1]) {
		ns.onload = arguments[1];
	}
	document.getElementsByTagName('head')[0].appendChild(ns);
}




// for dropping in overlays that consist of HTML
function htmlOverlay(titlesr,texter) {
  var cont = document.createElement('div');
  cont.innerHTML = texter;
  createOverlay(titlesr, cont);
}

// for dropping in overlays
function createOverlay(titlesr,texter) {
	closeOverlay();
	var screen = document.createElement('div');
	screen.className = 'screen';
	screen.id = 'overlayScreen';
	screen.style.zIndex = '800';
	document.body.appendChild(screen);

	var overlay = document.createElement('div');
	overlay.className = 'overlay';
	overlay.id = 'overlayMain';
	overlay.style.zIndex = '900';
	document.body.appendChild(overlay);

	var contenter = document.createElement('div');
	contenter.id = 'overlayContentMain';
	contenter.className = 'overlayContent';
	overlay.appendChild(contenter);

	var titler = document.createElement('div');
	titler.id = 'hdrtitle';
	titler.style.position='relative';
	
	var closebox = document.createElement('div');
	closebox.className = 'closeBox';
	//closebox.style.float = 'right';
	var closeboxlink = document.createElement('a');
	closeboxlink.href = 'javascript:void(0);';
	closeboxlink.onclick = closeOverlay;
	closeboxlink.appendChild(document.createTextNode('Close Window'));
	var closeboxbox = document.createElement('span');
	closeboxbox.className = 'box';
	var closeboxboxlink = document.createElement('a');
	closeboxboxlink.href = 'javascript:void(0);';
	closeboxboxlink.onclick = closeOverlay;
	closeboxboxlink.appendChild(document.createTextNode('X'));
	closeboxbox.appendChild(closeboxboxlink);
	closebox.appendChild(closeboxlink);
	closebox.appendChild(closeboxbox);
	
	subtitler = document.createElement('span');
	subtitler.className = 'interiors';
	subtitler.appendChild(document.createTextNode(titlesr));
	titler.appendChild(subtitler);
	contenter.appendChild(titler);
	titler.appendChild(closebox);	
	//titler.onclick = closeOverlay;

	var parag = document.createElement('div');
	parag.id = 'actualoverlaytext';
	if(typeof texter == 'string') {
		parag.appendChild(document.createTextNode(texter));
	} else if(texter.nodeType && texter.nodeType == 1) {
		//alert(texter.innerHTML);
		parag.appendChild(texter);
	} else {
		// darn IE won't innerHTML complex HTML in a <p>
		// so we create an EXTRA div to store it in
		var slipin = document.createElement('div');
		slipin.style.display='block';
		slipin.style.styleFloat='none';
		slipin.innerHTML = texter.data;
		parag.appendChild(slipin);
	}

	contenter.appendChild(parag);

	var sels = document.getElementsByTagName('select');
	for(var i=0;i<sels.length;i++) {
		sels[i].style.display = 'none';
	}
	var selslocal = document.getElementById('overlayMain').getElementsByTagName('select');
	for(var i=0;i<selslocal.length;i++) {
		//alert('should be showing a select -- '+selslocal[i].id+' / '+selslocal[i].getAttribute('name'));
		selslocal[i].style.display = 'inline';
	}
	var swf = document.getElementById('csSWF');
	if(swf) swf.style.visibility = 'hidden';
	
	//document.body.style.overflow='auto';

	positionOverlay();
	window.oldonscroll = window.onscroll;
	window.oldonresize = window.onresize;
	window.onscroll = positionOverlay;
	window.onresize = positionOverlay;
}
function positionOverlay() {
	var screen = document.getElementById('overlayScreen');
	var overlay = document.getElementById('overlayMain');
	var overlaycont = document.getElementById('overlayContentMain');
	//overlay.innerHTML += '<b>RUNNING CODE!!!</b><br/>';
	if(typeof window.pageYOffset == 'number') {
		screen.style.top = window.pageYOffset+'px';
		screen.style.left = window.pageXOffset+'px';
		overlay.style.top = window.pageYOffset+'px';
		overlay.style.left = window.pageXOffset+'px';
	} else if(typeof document.documentElement.scrollTop == 'number' && document.documentElement.clientWidth > 0) {
		screen.style.top = document.documentElement.scrollTop+'px';
		screen.style.left = document.documentElement.scrollLeft+'px';
		overlay.style.top = document.documentElement.scrollTop+'px';
		overlay.style.left = document.documentElement.scrollLeft+'px';
	} else {
		screen.style.top = document.body.scrollTop+'px';
		screen.style.left = document.body.scrollLeft+'px';
		overlay.style.top = document.body.scrollTop+'px';
		overlay.style.left = document.body.scrollLeft+'px';
	}
	if(typeof window.innerWidth == 'number') {
		screen.style.width = window.innerWidth+'px';
		screen.style.height = window.innerHeight+'px';
		overlay.style.width = window.innerWidth+'px';
		overlay.style.height = window.innerHeight+'px';
		overlaycont.style.maxHeight = (window.innerHeight-200)+'px';
	//	overlaycont.style.height = (window.innerHeight-250)+'px';
	} else if(typeof document.documentElement.clientWidth == 'number' && document.documentElement.clientWidth > 0) {
		screen.style.width = document.documentElement.clientWidth+'px';
		screen.style.height = document.documentElement.clientHeight+'px';
		overlay.style.width = document.documentElement.clientWidth+'px';
		overlay.style.height = document.documentElement.clientHeight+'px';
		overlaycont.style.maxHeight = (document.documentElement.clientHeight-200)+'px';
	//	overlaycont.style.height = (document.documentElement.clientHeight-250)+'px';
	} else {
		screen.style.width = document.body.clientWidth+'px';
		screen.style.height = document.body.clientHeight+'px';
		overlay.style.width = document.body.clientWidth+'px';
		overlay.style.height = document.body.clientHeight+'px';
		overlaycont.style.maxHeight = (document.body.clientHeight-200)+'px';
	//	overlaycont.style.height = (document.body.clientHeight-250)+'px';
	}
	return false;
}
function closeOverlay() {
	if(document.getElementById('overlayScreen')) {
		document.body.removeChild(document.getElementById('overlayScreen'));
		document.body.removeChild(document.getElementById('overlayMain'));
		var sels = document.getElementsByTagName('select');
		for(var i=0;i<sels.length;i++) {
			sels[i].style.display = 'inline';
		}
		var swf = document.getElementById('csSWF');
		if(swf) swf.style.visibility = 'visible';
		window.onscroll = window.oldonscroll;
		window.onresize = window.oldonresize;
	}
	return false;
}


// javascript to display images

function showtip(current,e,tip) {
	if (document.layers) { // Netscape 4.0+
		theString="<DIV CLASS='ttip' align=center>"+tip+"</DIV>"
		document.tooltip.document.write(theString)
		document.tooltip.document.close()
		document.tooltip.left=e.pageX+20;
		document.tooltip.top=e.pageY-60;
		document.tooltip.visibility="show"
		//document.tooltip.style.display="block"
	} else {
		if(document.getElementById) { // Netscape 6.0+ and Internet Explorer 4.0+
			elm=document.getElementById("tooltip")
			elml=current
			elm.innerHTML=tip
			elm.style.height=elml.style.height
			if(document.all) {
				if(document.documentElement) {
					elm.style.top=(event.clientY+document.documentElement.scrollTop-60)+'px';
					elm.style.left=(event.clientX+document.documentElement.scrollLeft+20)+'px';
				} else {
					elm.style.top=(event.clientY+document.body.scrollTop-60)+'px';
					elm.style.left=(event.clientX+document.body.scrollLeft+20)+'px';
				}
				//alert('ie method sez: Y:'+elm.style.top+' / X:'+elm.style.left+' !');
			} else {
				elm.style.top=(e.pageY-60)+'px';
				elm.style.left=(e.pageX+20)+'px';
				//alert('ff method sez: X:'+e.pageX+' / Y:'+e.pageY+' !');
			}
			elm.style.visibility = "visible"
			//elm.style.display="block"
		}
	}
}
function hidetip(){
	if (document.layers) { // Netscape 4.0+
		document.tooltip.visibility="hidden"
		//document.tooltip.style.display="none"
	} else {
		if(document.getElementById || document.all) { // Netscape 6.0+ and Internet Explorer 4.0+
			elm=document.getElementById("tooltip")
			elm.style.visibility="hidden"
			//elm.style.display="none"
		}
	} 
}

showtip2 = showtip;


function showLowPriceInfo() {
	var info = '<h1>How it works</h1><p>We will match the price of any competitor!</p>' +
	'<ul>' +
	'<li><b>STEP 1:</b> Register for the course.  If you are not already registered, <a href="/register.html">click here</a> to register</li>' +
	'<li><b>STEP 2:</b> Let us know where you found a lower price.  Please note the website and page where the price was found and then <a href="/help/contact.html">contact us</a> to let us know.</li>' +
	'<li><b>STEP 3:</b> After we have confirmed the competitor\'s price (including any hidden fees), we will change your course price to match it!</li>' +
	'</ul>'+
	'<p>All requests and price adjustments must be made prior to course payment and will require verification by our staff</p>';
	createOverlay('Low Price Guarantee',makeEle('div',{html:info}));
	return false;
}



// google analytics functions; work as standalone so should not affect non-tracked sites:
function getMainDomain(linkurl) {
	linkurl = linkurl.replace(/https?:\/\//,'');
	linkurl = linkurl.replace(/\/.*$/,'');
	linkurl = linkurl.replace(/^[^\.]+(\.[^\.]+\.[^\.]{2,3})$/,"$1");
	if(linkurl.substr(0,1) != '.') linkurl = '.'+linkurl;
	return linkurl;
}

function setExternalLinks() {
	var olnks = document.getElementsByTagName('a');
	var switchDomains = false;
	for(var i=0;i<olnks.length;i++) {
		if(olnks[i].href.match(/^https/) && getMainDomain(location.href) != getMainDomain(olnks[i].href) && !olnks[i].href.match(/liveperson/)) {
			switchDomains = true;
			if(typeof(olnks[i].onclick) == 'function') {
				olnks[i].oldclick = olnks[i].onclick;
				olnks[i].onclick = function(e) {
					this.oldclick(e);
					pageTracker._link(this.href);
				}
			} else {
				olnks[i].onclick = function() {
					pageTracker._link(this.href);
				}
			}
		}
	}
	if(switchDomains) {
		pageTracker._setDomainName("none");
		pageTracker._setAllowLinker(true);
	} else {
		pageTracker._setDomainName(getMainDomain(location.href));
	}
}





// usage:
//  onMouseover="showtip(this,event,'<IMG SRC="$imgSrc$">');" onMouseout="hidetip();"

// insert this div in page body (not inside another element):
// <div id="tooltip" style="position:absolute; top:100px; left:200px; visibility:hidden;border:1px solid black;font-size:12px;font-weight:bold;font-family:arial,helvetica;color:#000000;layer-background-color:#CCCCCC;background-color:#CCCCCC;padding:1px;z-index: 100" align=center>



