


var site_root = 'http://crt.nihtraining.com/';


//	Browser detection
var w3c = (document.getElementById) ? true : false;
var ie = (document.all && w3c) ? true : false;
var ie7 = (document.all && document.getElementById && window.XMLHttpRequest) ? true : false;
var ie6 = (ie && !ie7) ? true : false;
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;


/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();



// Styles applied by JavaScript before the page loads
swfobject.createCSS('#content', 'visibility: hidden;');
// End styles applied by JavaScript before the page loads


// Flash content control.
var pages_with_flash = new Array();
pages_with_flash.push(new Array('intro/index.php?p=03','../flash/hrvssg.swf',48,370,'flashContent'));
pages_with_flash.push(new Array('intro/index.php?p=04','../flash/you.swf',100,500,'flashContent'));
pages_with_flash.push(new Array('intro/index.php?p=08','../flash/sevfive.swf',54,425,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=03','../flash/eight.swf',175,400,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=04','../flash/exploit.swf',75,445,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=06','../flash/crt_interact_1.swf',200,600,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=07','../flash/crt_interact_2.swf',250,620,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=09','../flash/big_flashing_8.swf',120,250,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=12','../flash/fantastic_7/social_value.swf',70,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=14','../flash/fantastic_7/scientific_validity.swf',70,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=16','../flash/fantastic_7/fair_selection.swf',35,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=18','../flash/fantastic_7/favorable_risk.swf',35,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=19','../flash/staircase02.swf',175,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=20','../flash/fantastic_7/independent_review.swf',43,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=22','../flash/fantastic_7/informed_consent.swf',56,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=25','../flash/fantastic_7/respect_for_humans.swf',55,625,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=27','../flash/big_flashing_8.swf',120,250,'flashContent'));
pages_with_flash.push(new Array('ethics/index.php?p=29','../flash/eight.swf',170,400,'flashContent'));
pages_with_flash.push(new Array('institution/index.php?p=06','../flash/failure.swf',75,535,'flashContent'));
pages_with_flash.push(new Array('institution/index.php?p=07','../flash/chart.swf',200,600,'flashContent'));
pages_with_flash.push(new Array('institution/index.php?p=08','../flash/books.swf',100,500,'flashContent'));
pages_with_flash.push(new Array('institution/index.php?p=09','../flash/book.swf',130,130,'flashContent'));
pages_with_flash.push(new Array('institution/index.php?p=11','../flash/irp.swf',65,400,'flashContent'));
pages_with_flash.push(new Array('regulatory/index.php?p=23','../flash/unexpected_a.swf',40,300,'flashContent'));
pages_with_flash.push(new Array('media/index.php?p=10','../flash/mic.swf',65,400,'flashContent'));
pages_with_flash.push(new Array('media/index.php?p=12','../flash/you.swf',90,500,'flashContent'));
pages_with_flash.push(new Array('media/index.php?p=19','../flash/interview.swf',200,600,'flashContent'));
pages_with_flash.push(new Array('media/index.php?p=20','../flash/onrecord.swf',175,600,'flashContent'));


// Page elements declared for global use
var body_tag;
var mother_div;
var banner_div;
var content_div;
var menu_div;
var footer_div;
var inner_content_div;
var url_str = location.href.toString();

function init() {
	body_tag = document.getElementsByTagName('BODY')[0];
	mother_div = document.getElementById('mother');
	banner_div = document.getElementById('banner');
	content_div = document.getElementById('content');
	inner_content_div = document.getElementById('innerContent');
	menu_div = document.getElementById('menu');
	footer_div = document.getElementById('footer');
	
	//var playerVersion = swfobject.getFlashPlayerVersion(); // returns a JavaScript object
	//var majorVersion = playerVersion.major; // access the major, minor and release version numbers via their respective properties
	
	if (url_str.indexOf('textOnly') == -1) {
		
		if (swfobject.hasFlashPlayerVersion("8")) {
			runFlash();
		}
		setLinks();
		//ethicsStudies();
		ethicsConclusion();
		adminMenus();
		registration();
		makeAccordions();
		validateQuiz();
		adminInit();
	} else {
		//disableImages();
		swfobject.createCSS('img', 'display: none;');
	}
	techSupport();

	
}

if (w3c) { 

	window.onload = function() { swfobject.createCSS('#content', 'visibility: visible;'); };
	swfobject.addDomLoadEvent(init);
}


function techSupport() {
	var tech_lnk = document.getElementById('techSuppLink');
	
	if (tech_lnk) {
		var str1 = 'htt';
		var str2 = 'p://esupport.nihtra';
		var str3 = 'ining.com/index.php?_m=tickets&_a';
		var str4 = '=submit&departmentid=6&step=1';
		
		tech_lnk.onclick = function() {
			location.href = str1+str2+str3+str4;
			return false;
		}
	}
}



function adminInit() {
	if (url_str.indexOf('admin') == -1) {
		return;
	}
	adminOrgFind();
	adminSendEmail();
	adminMedicalRecords();
}



function adminMedicalRecords() {
	var the_form = document.getElementById('medRecsUserForm');
	
	if (the_form) {
		// Set onclicks for the submit buttons
		var submit_butts = getElementsByAttribute(the_form, 'input', 'type', 'submit');
		for (var i=0; i<submit_butts.length; i++) {
			submit_butts[i].onclick = function() {
				submit_clicked = this.value;
			}
		}
		the_form.onsubmit = function () {
			// Set delete button confirm
			submit_clicked = submit_clicked.toLowerCase();
			if (submit_clicked.indexOf('delete') != -1) {
				if (confirm("Are you sure you want to delete this user (This cannot be undone)?")) {
					return true;
				} else {
					return false;
				}
				return;
			}
		}
	}
}

var send_link_parent;
function adminSendEmail() {
	var send_link = document.getElementById('sendConfEmail');
	
	if (send_link) {
		var preload_img_src = site_root+'admin/images/please_wait.gif';
		var preload_img = document.createElement('img');
		preload_img.src = preload_img_src;
		send_link.onclick = function() {
			// Call php file
			var student_id = this.title;
			sendRequest(site_root+'includes/send_conf_email.php', adminHandleSendEmail, 'student_id='+student_id+'&IS_AJAX=1');
			// Swap with spinning wheel
			send_link_parent = this.parentNode;
			send_link_parent.innerHTML = '<img src="'+preload_img_src+'" />';
			return false;
		}
	}
}
function adminHandleSendEmail(req) {
	//var returnXML = req.reponseXML;
	var returnText = req.responseText;
	
	if (returnText == 'true') {// If success, swap spinning wheel with 'email sent'
		send_link_parent.innerHTML = 'Confirmation email sent.';
		
	} else {// If success, swap spinning wheel with 'there was an error'
		send_link_parent.innerHTML = 'Sorry, there was an error and the email was not sent.';
		//send_link_parent.innerHTML = returnText;
		return;
	}
	
}



function adminOrgFind() {
	var all_labels = document.getElementsByTagName('label');
	var org_input = document.getElementById('byOrg');
	
	for (var i=0; i<all_labels.length; i++) {
		if (all_labels[i].htmlFor == 'byOrg' && org_input) {
			// Create reference to the parent list item
			var parent_li = all_labels[i].parentNode;
			// Add class name
			parent_li.className += ' orgSearchItem';
			
			// Create text and link, append to label tag
			var find_link = document.createElement('a');
			find_link.href = '#';
			var paren1 = document.createTextNode('(');
			var find_text = document.createTextNode('Find Organization');
			var paren2 = document.createTextNode(')');
			find_link.appendChild(find_text);
			all_labels[i].appendChild(paren1);
			all_labels[i].appendChild(find_link);
			all_labels[i].appendChild(paren2);
			
			// Create the orgFinder & inner div
			var org_finder_div = document.createElement('div');
			org_finder_div.id = 'orgFinder';
			var close_org_link = createCloseLink(org_finder_div);
			org_finder_div.appendChild(close_org_link);
			//var org_instrux_p = document.createElement('p');
			//org_instrux_p.id = 'orgInstrux';
			//org_finder_div.appendChild(org_instrux_p);
			var org_finder_inner_div = document.createElement('div');
			org_finder_inner_div.className = 'items';
			org_finder_inner_div.innerHTML = '<p class="loading">Use the menu below to filter organizations alphabetically.</p>';
			org_finder_div.appendChild(org_finder_inner_div);
			org_finder_div.style.visibility = 'hidden';
			parent_li.appendChild(org_finder_div);
			
			// Create alphabet links
			var the_alphabet = new Array('#','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
			var filter_list = document.createElement('ul');
			filter_list.id = 'orgFilter';
			filter_list.className = 'clearfix';
			for (var e=0; e<the_alphabet.length; e++) {
				var new_li = document.createElement('li');
				var new_a = document.createElement('a');
				new_a.href = '#';
				new_a.title = the_alphabet[e];
				var prev_selected = false;
				new_a.onclick = function () {
					//org_instrux_p.innerHTML = 'Click on an organization name to populate the search field.';
					org_finder_inner_div.innerHTML = '<p class="loading"><img src="/admin/images/indicator_lg.gif" /><br />Loading Organizations...</p>';
					if (prev_selected != false) {
						prev_selected.className = '';
					}
					this.className = 'selected';
					prev_selected = this;
					sendRequest('get_orgs.php', populateOrgs, 'letter='+this.title);
					return false;
				}
				var new_text = document.createTextNode(the_alphabet[e]);
				new_a.appendChild(new_text);
				new_li.appendChild(new_a);
				filter_list.appendChild(new_li);
			}
			org_finder_div.appendChild(filter_list);
			
			
			// Set onclick function
			var orgs_populated = false;
			find_link.onclick = function () {
				if (org_finder_div.style.visibility == 'hidden') {
					org_finder_div.style.visibility = 'visible';
					if (!orgs_populated) {
						//sendRequest('get_orgs.php', populateOrgs, 'ajax=true');
					}
				} else {
					org_finder_div.style.visibility = 'hidden';
				}
				return false;
			}
			function populateOrgs(req) {
				//var returnXML = req.reponseXML;
				var returnText = req.responseText;
				//alert(returnText);
				
				if (returnText != 'false') {
					org_finder_inner_div.innerHTML = returnText;
					orgs_populated = true;
					var all_org_links = org_finder_inner_div.getElementsByTagName('a');
					for (var j=0; j<all_org_links.length; j++) {
						all_org_links[j].onclick = function() {
							org_input.value = this.parentNode.title;
							org_finder_div.style.visibility = 'hidden';
							return false;
						}
					}
					
					
				} else {
					return;
				}
				
				
				
			}
			//alert('Is byOrg');
		}
	}
}





function validateQuiz() {
	var quiz_list = document.getElementById('testQuestions');
	var test_form = document.getElementById('testForm');
	
	if (quiz_list && test_form) {
		
		test_form.onsubmit = function() {
			var quiz_list_lis = quiz_list.getElementsByTagName('li');
			var is_complete = true;
			
			for (var i=0; i<quiz_list_lis.length; i++) {
				if (quiz_list_lis[i].parentNode == quiz_list) {
					var these_rbs = quiz_list_lis[i].getElementsByTagName('input');
					var is_answered = false;
					for (var j=0; j<these_rbs.length; j++) {
						if (these_rbs[j].type == 'radio' && these_rbs[j].checked == true) {
							is_answered = true;
							continue;
						}
					}
					if (is_answered == false) {
						is_complete = false;
						alert('Please answer all the questions!');
						return false;
					}
				}
			}
		}
	}
}




function disableImages() {
	var inner_content_div = getElementsByClassName('innerContent', null, document)[0];
	var content_imgs = inner_content_div.getElementsByTagName('img');
	var img_parent;
	
	while(content_imgs.length > 0) {
		var img_parent = content_imgs[0].parentNode;
		if (img_parent.className == 'picRight' || img_parent.className == 'picLeft') {
			img_parent.parentNode.removeChild(img_parent);
		} else {
			img_parent.removeChild(content_imgs[0]);
		}
		
	}
		
	/*for (var i=0; i<content_imgs.length; i++) {
		//content_imgs[i].style.display = 'none';
		inner_content_div.removeChild(content_imgs[i]);
	}*/
}





function makeAccordions() {
	var all_dls = document.getElementsByTagName('DL');
	
	for (var a=0; a<all_dls.length; a++) {
		if (all_dls[a].className.indexOf('accordion') != -1) {
				
			// get collection of dts and dds
			var all_dts = all_dls[a].getElementsByTagName('DT');
			var all_dds = all_dls[a].getElementsByTagName('DD');
			
			// Must be the same amount of dts and dds!!
			if (all_dts.length != all_dds.length) {
				alert('You must have matching pairs of <dt> and <dd> tags for an accordian list to function properly!');
				return;
			}
			
			// All is well, add ' isAccordion' to class attribute
			all_dls[a].className += ' isAccordion';
			all_dls[a].curr_open = 'none';
			all_dls[a].is_special = false;
			if (all_dls[a].className.indexOf('special') != -1) {
				all_dls[a].is_special = true;
			}
			// Associate dds to dts
			for (var i=0; i<all_dts.length; i++) {
				all_dts[i].assoc_dd = all_dds[i];
				all_dds[i].assoc_dt = all_dts[i];
				all_dts[i].onclick = function () {
					if (this.assoc_dd.style.display == '') {
						if (this.parentNode.curr_open != 'none' && this.parentNode.is_special) {
							this.parentNode.curr_open.assoc_dt.style.backgroundImage = 'url(../images/accordion_closed.gif)';
							this.parentNode.curr_open.style.display = '';
						}
						this.assoc_dd.style.display = 'block';
						this.style.backgroundImage = 'url(../images/accordion_open.gif)';
						this.parentNode.curr_open = this.assoc_dd;
					} else {
						this.assoc_dd.style.display = '';
						this.style.backgroundImage = 'url(../images/accordion_closed.gif)';
						this.parentNode.curr_open = 'none';
					}
				}
			}
		}
	}
}





var submit_clicked;
var form_errors;
function registration() {
	var reg_form = document.getElementById('regForm');
	if (reg_form) {
		// Set onclicks for the submit buttons
		var submit_butts = getElementsByAttribute(reg_form, 'input', 'type', 'submit');
		for (var i=0; i<submit_butts.length; i++) {
			submit_butts[i].onclick = function() {
				submit_clicked = this.value;
			}
		}
		
		// Hide the city, state, zip instructions on the reg form
		var csz_instrux = document.getElementById('cszInstrux');
		if (csz_instrux) {
			csz_instrux.style.display = 'none';
		}
		
		// Get reference to city, state, zip labels
		var all_labels = document.getElementsByTagName('label');
		var csz_labels = new Array();
		for (var i=0; i<all_labels.length; i++) {
			if (all_labels[i].htmlFor == 'city' || all_labels[i].htmlFor == 'state' || all_labels[i].htmlFor == 'zip') {
				var label_text = all_labels[i].innerHTML;
				var not_required_text = label_text.substr(1);
				csz_labels.push(new Array(all_labels[i], label_text, not_required_text));
			}
		}
		var their_country = document.getElementById('country');
		var require_csz;
		
		function csvEval() {
			//alert('change');
			require_csz = (their_country.value.indexOf('United States') != -1 || their_country.value == '' || their_country.value == 'Choose One') ? true : false;
			var csz_inner_index = (require_csz) ? 1 : 2;
			var csz_class_name = (require_csz) ? 'required' : '';
			for (var i=0; i<csz_labels.length; i++) {
				csz_labels[i][0].className = csz_class_name;
				csz_labels[i][0].innerHTML = csz_labels[i][csz_inner_index];
			}
		}
		csvEval();
		their_country.onchange = csvEval;
		
		
		
		var requirements = new Array();
		form_errors = false;
		
		requirements.push(new Array('first','Please enter your First Name.'));
		requirements.push(new Array('last','Please enter your Last Name.'));
		requirements.push(new Array('email','Please enter a valid Email Address.'));
		requirements.push(new Array('password','Please enter a password of at least 4 characters.'));
		requirements.push(new Array('degree','Please choose your Degree.'));
		requirements.push(new Array('degreeOther','You choose "Other" for your Degree. Please specify.'));
		//requirements.push(new Array('jobTitle','Please choose your Profession.')); //if jobTitle == Other than...
		//requirements.push(new Array('jobTitleOther','You choose "Other" for your Profession. Please specify.'));
		requirements.push(new Array('phone','Please enter your Telephone number.'));
		requirements.push(new Array('organization','Please choose an NIH Institute/Center (IC).'));
		requirements.push(new Array('organizationOther','You choose "Other" for your NIH Institute/Center (IC). Please specify.'));
		requirements.push(new Array('building','Please enter your NIH Building number.'));
		requirements.push(new Array('room','Please enter your NIH Room number.'));
		requirements.push(new Array('country','Please choose a Country.'));
		requirements.push(new Array('city','Please enter your City.'));
		requirements.push(new Array('state','Please enter your State.'));
		requirements.push(new Array('zip','Please enter your Zipcode.'));
		
		reg_form.onsubmit = function () {
			
			// Set delete button confirm
			submit_clicked = submit_clicked.toLowerCase();
			if (submit_clicked.indexOf('delete') != -1) {
				if (confirm("Are you sure you want to delete this user (This cannot be undone)?")) {
					return true;
				} else {
					return false;
				}
				return;
			}
			
			form_errors = false;
			for (var i=0; i<requirements.length; i++) {
				
				var this_input = document.getElementById(requirements[i][0]);
				if (requirements[i][0] == 'email') {
					if (this_input.value.length < 6 || this_input.value.indexOf('@') == -1 || this_input.value.indexOf('.') == -1) {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
					}
					
				} else if (requirements[i][0] == 'password') {
					if (this_input.value.length < 4) {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
					}
					
				} else if (requirements[i][0] == 'degreeOther') {
					if (document.getElementById(requirements[(i-1)][0]).value == 'Other' && this_input.value == '') {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
					}
					
				} /*else if (requirements[i][0] == 'jobTitleOther') {
					if (document.getElementById(requirements[(i-1)][0]).value == 'Other' && this_input.value == '') {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
					}
					
				}*/ else if (requirements[i][0] == 'organizationOther') {
					if (document.getElementById(requirements[(i-1)][0]).value == 'Other' && this_input.value == '') {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
					}
					
				} else if (this_input.value == '') {
					if (requirements[i][0] == 'city' || requirements[i][0] == 'state' || requirements[i][0] == 'zip') {
						//if (their_country.value == 'United States' || their_country.value == '' || their_country.value == 'Choose One') {
						if (require_csz) {
							form_errors = true;
							alert(requirements[i][1]);
							this_input.focus();
							return false;
						}
					} else {
						form_errors = true;
						alert(requirements[i][1]);
						this_input.focus();
						return false;
						
					}
				}
			}
			
			if (form_errors) {
				return false;
			} else {
				return true;
			}
		}
	}
}



function createCloseLink(assoc_elem) {
	var close_link = document.createElement('a');
	close_link.assoc_menu = assoc_elem;
	close_link.href = "#";
	close_link.className = 'closeMenu';
	
	
	function closeDiv(e) {
		var evt = e || window.event;
		var evtTarget = evt.target || evt.srcElement;
		while (evtTarget.nodeName != 'A') {
			evtTarget = evtTarget.parentNode;
		}
		var menu_nodes = evtTarget.assoc_menu.getElementsByTagName('div');
		for (var x=0; x<menu_nodes.length; x++) {
			if (menu_nodes[x].style.visibility == 'visible') {
				menu_nodes[x].style.visibility = 'hidden';
			}
			
		}
		evtTarget.assoc_menu.style.visibility = 'hidden';
		return false;
	}
	addEventSimple(close_link, 'click', closeDiv);
	
	var close_img = document.createElement('img');
	close_img.src = 'images/close_menu_button.gif';
	close_link.appendChild(close_img);
	
	return close_link;
	
}


function addEventSimple(obj, evt, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evt, fn, false);
		
	} else if (obj.attachEvent) {
		obj.attachEvent('on'+evt, fn);
	}
}

function removeEventSimple(obj, evt, fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evt, fn, false);
		
	} else if (obj.detachEvent) {
		obj.detachEvent('on'+evt, fn);
	}
}


function adminMenus() {
	var the_menu = document.getElementById('menu');
	var current_open = false;
	
	if (the_menu && url_str.indexOf('admin') != -1) {
		the_menu.className = 'dynamicMenu';
		var main_ul = the_menu.getElementsByTagName('UL')[0];
		var all_lis = the_menu.getElementsByTagName('LI');
		
		
		for (var i=0; i<all_lis.length; i++) {
			if (all_lis[i].parentNode == main_ul) {
				var this_link = all_lis[i].getElementsByTagName('A')[0];
				//alert(this_link.parentNode.nodeName);
				this_link.assoc_menu = getElementsByClassName('subMenu', 'div', this_link.parentNode)[0];
				if (this_link.assoc_menu) {
					this_link.onclick = function() {
						//alert(this_link.assoc_menu.innerHTML);
						if (current_open.assoc_menu && current_open.assoc_menu != this.assoc_menu) {
							current_open.assoc_menu.style.visibility = 'hidden';
							current_open.className = '';
						}
						if (this.assoc_menu.style.visibility == 'visible') {
							this.className = '';
							this.assoc_menu.style.visibility = 'hidden';
							this.parentNode.style.position = 'static';
							
						} else {
							this.className = 'selected';
							this.assoc_menu.style.visibility = 'visible';
							this.parentNode.style.position = 'relative';
							//this.parentNode.style.zIndex = '20';
							
						}
						current_open = this;
						return false;
					}
					
					function closeLinkExtras(e) {
						var evt = e || window.event;
						var evtTarget = evt.target || evt.srcElement;
						while (evtTarget.nodeName != 'A') {
							evtTarget = evtTarget.parentNode;
						}
						evtTarget.assoc_link.parentNode.style.position = 'static';
						//evtTarget.parentNode.style.zIndex = 'auto';
						evtTarget.assoc_link.className = '';
						
					}
					
					var close_link = createCloseLink(this_link.assoc_menu);
					close_link.assoc_link = this_link;
					addEventSimple(close_link, 'click', closeLinkExtras);
					
					// Get reference to .twoColumn
					var two_col = getElementsByClassName('twoColumn', 'div', this_link.assoc_menu)[0];
					var sub_inner = getElementsByClassName('subInner', 'div', this_link.assoc_menu)[0];
					
					
					if (two_col) {
						two_col.insertBefore(close_link, two_col.firstChild);
						
					} else  if (sub_inner) {
						sub_inner.insertBefore(close_link, sub_inner.firstChild);
						
					} else {
						this_link.assoc_menu.insertBefore(close_link, this_link.assoc_menu.firstChild);
					}
				}
			}
		}
	}
}




function ethicsConclusion() {
	if (document.getElementById('ethicsQuestion1')) {
		for (var i=1; i<=9; i++) {
			clickAssociate('ethicsQuestion'+i);
		}
	}
}






var currently_open = false;
function clickAssociate(class_id_pair) {
	var id_elem = document.getElementById(class_id_pair);
	var class_elem = getElementsByClassName(class_id_pair, null, document)[0];
	
	if (id_elem && class_elem) {
		class_elem.style.display = 'none';
		id_elem.assoc_elem = class_elem;
		id_elem.className = 'clickable';
		id_elem.onclick = function () {
			if (currently_open && currently_open != this.assoc_elem) {
				currently_open.assoc_elem.style.display = 'none';
				currently_open.className = 'clickable';
			}
			if (this.assoc_elem.style.display == 'none') {
				this.assoc_elem.style.display = 'block';
				this.className = 'clicked';
			} else {
				this.assoc_elem.style.display = 'none';
				this.className = 'clickable';
			}
			currently_open = this;
		}
	}
}

function ethicsStudies() {
	var e_div = document.getElementById('realLifeStudies');
	
	if (e_div) {
		
		var placebo_div = getElementsByClassName('placebo', 'div', body_tag)[0];
		var toomany_h4 = document.getElementById('tooManyDeaths');
		toomany_h4 = toomany_h4.parentNode.removeChild(toomany_h4);
		placebo_div.parentNode.insertBefore(toomany_h4, placebo_div);
		
		clickAssociate('placebo');
		clickAssociate('tooManyDeaths');
	}
}




function searchBox(the_input) {
	var search_box = document.getElementById(the_input);
	var search_msg;
	if (search_box) {
		search_msg = search_box.value;
		search_box.onfocus = function() {
			if (this.value == search_msg) {
				this.value = '';
			}
		}
		search_box.onblur = function() {
			if (this.value == '') {
				this.value = search_msg;
			}
		}
	}
}



// AJAX Functions
var XMLHttpFactories = [
	function() { return new XMLHttpRequest() },
	function() { return new ActiveXObject("Msxml2.XMLHTTP") },
	function() { return new ActiveXObject("Msxml3.XMLHTTP") },
	function() { return new ActiveXObject("Microsoft.XMLHTTP") }
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var aa=0; aa<XMLHttpFactories.length; aa++) {
		try {
			xmlhttp = XMLHttpFactories[aa]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

// POST: sendRequest(site_root+'actions/movie.complete.php', trackMovieHandler, search_str);
// GET:  sendRequest(site_root+'actions/movie.complete.php?'+search_str, trackMovieHandler);
function sendRequest(url, callback, postData) {
	
	var req = createXMLHTTPObject();
	if (!req) return;
	
	var method = (postData) ? 'POST' : 'GET';
	req.open(method, url, true);
	req.setRequestHeader('User-Agent','XMLHTTP');
	if (postData) {
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		req.setRequestHeader('Content-length', postData.length);
		req.setRequestHeader('Connection', "close");
	}
	req.onreadystatechange = function() {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
			alert('HTTP error ' + req.status);
			return;
		}
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

function handleRequest(req) {
	//var returnXML = req.reponseXML;
	var returnText = req.responseText;
	
	if (returnText != 'false') {
		top.location.href = returnText;
	} else {
		return;
	}
}









function setLinks() {
	//OpeningPDF
	var all_links = document.getElementsByTagName('A');
	
	for (var aa=0; aa<all_links.length; aa++) {
		if (all_links[aa].id.toLowerCase() == 'retakecourse') {
			all_links[aa].onclick = function () {
				if (confirm('Once you\'ve choosen to retake the course, you will not be able to access your certificate until you have passed the course again. Are you sure you want to retake the CRT course?')) {
					return true;
				} else {
					return false;
				}
				
				
			}
		}
		if (all_links[aa].target.toLowerCase() == 'quizreference') {
			all_links[aa].onclick = function () {
				popupWindow(this, this.target, 'menubar=yes,toolbar=yes,status=yes,scrollbars=yes,resizable=yes,width=920,height=600');
				return false;
				
			}
		}
	}
	
	
}


var pdf_loaded = false;
function loadPDF() {
	var pdf_page = document.getElementById('pdfPage');
	if (pdf_loaded == true) {
		location.href = location.search.substr(1);
	}
	if (pdf_page && pdf_loaded == false) {
		pdf_loaded = true;
		setTimeout('loadPDF()',1500);
	}
}

//	Popup window code
var page_position = (parseInt(navigator.appVersion) > 3) ? 'left=0,top=0,screenX=0,screenY=0,' : "";
var popup_features = 'menubar=yes,status=yes,toolbar=yes,scrollbars=yes,resizable=yes,width=785,height=480';

function popupWindow(url, target, features) {
	if (isUndefined(features)) {
		features = popup_features;
	}
	if (isUndefined(target)) {
		target = '_blank';
	}
	var the_window = window.open(url, target, page_position+features);
	the_window.focus();
	return the_window;
}

function linkPopup(src, features) {
	return popupWindow(src.getAttribute('href'),src.getAttribute('target') || '_blank',features);
}//	End Popup window code

//	Utility function [currently used in popupWindow()]
function isUndefined(v) { 
	//	Returns true if [v] is not defined, false otherwise
	//	IE 5.0 does not support the undefined keyword, so we cannot 
	//	do a direct comparison such as v===undefined.
	var undef;
	return v===undef;
}




function ieHoverHelper(parent_id, hover_element, class_name) {
	if (ie6) {
		var rollies = document.getElementById(parent_id).getElementsByTagName(hover_element);
		
		for (aa=0; aa<rollies.length; aa++) {

			rollies[aa].onmouseenter = function() {
				if (this.className == '') {
					this.className = class_name;
				} else {
					this.className = class_name +  ' ' + this.className;
				}
			}
			rollies[aa].onmouseleave = function() {
				if (this.className == class_name) {
					this.className = '';
				} else {
					str = class_name+' ';
					if (this.className.indexOf(str) != -1) {
						remove_class = this.className.split(str);
						this.className = remove_class[1];
					}
				}
			}
		}
	}
}



function runFlash() {

	var swf_url;
	var swf_name;
	var swf_height;
	var swf_width;
	var swf_element_id;
	var swf_element;
	
	for (var aa=0; aa<pages_with_flash.length; aa++) {
		
		swf_url = pages_with_flash[aa][0];
		swf_name = pages_with_flash[aa][1];
		swf_height = pages_with_flash[aa][2];
		swf_width = pages_with_flash[aa][3];
		swf_element_id = pages_with_flash[aa][4];
		swf_element = document.getElementById(swf_element_id);
		
		
		if ((url_str.indexOf(swf_url) != -1  || swf_url == 'sitewide') && swf_element) {
			
			swf_element.style.height = swf_height + 'px';
			swf_element.style.width = swf_width + 'px';
			insertFlash(swf_name,swf_height,swf_width,swf_element_id);
			
		}
	}
}



var the_ua = navigator.userAgent.toLowerCase();
var web_kit = /webkit/.test(the_ua) ? parseFloat(the_ua.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false;

//	This function returns the <object> and <embed> tags in variable [oeTags]
function insertFlash(the_swf,the_height,the_width,the_container) {
	var flashTag;
	var container_elem = document.getElementById(the_container);
	var flash_params = { 
		play:'true', 
		quality:'high', 
		scale:'scale', 
		menu:'false', 
		salign:'lt', 
		wmode:'transparent', 
		bgcolor:'#fff',
		type:'application/x-shockwave-flash'
		}
		
	
	if (isIE && isWin) {
		//+ 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
		flashTag = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+the_width+'" height="'+the_height+'">';
		flashTag += '<param name="movie" value="'+ the_swf +'" />';
		
		for (var i in flash_params) {
			if (i != 'type') {
				flashTag += '<param name="'+ i +'" value="'+ flash_params[i] +'" />';
			}
		}
		
		flashTag += '</object>';
		
		container_elem.innerHTML = flashTag;
		
	} else if (web_kit && web_kit < 312) {
		var flash_object = document.createElement('embed');
		flash_object.setAttribute('src', the_swf);
		flash_object.setAttribute('height', the_height);
		flash_object.setAttribute('width', the_width);
		
		for (var i in flash_params) {
			flash_object.setAttribute(i, flash_params[i]);
		}
		
		while(container_elem.hasChildNodes()) {
			container_elem.removeChild(container_elem.lastChild);
		}
		container_elem.appendChild(flash_object);
		
	} else {
		var flash_object = document.createElement('object');
		flash_object.setAttribute('data', the_swf);
		flash_object.setAttribute('height', the_height);
		flash_object.setAttribute('width', the_width);
		
		//flash_params.src = the_swf;
		
		for (var i in flash_params) {
			var flash_param = document.createElement('param');
			flash_param.setAttribute('name', i);	
			flash_param.setAttribute('value', flash_params[i]);
			flash_object.appendChild(flash_param);
		}
		
		while(container_elem.hasChildNodes()) {
			container_elem.removeChild(container_elem.lastChild);
		}
		container_elem.appendChild(flash_object);
	}
	container_elem.style.display = 'block';
}


/*
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue) {
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
