var sitePath = urlPath + "assets/templates/uabden/";

/* queryBox User Effects */
var queryBox = {
	boxFocus : function(a) {
		if (this.bBox[a]) {
			this.bBox[a].className = this.bBoxClassFocus[a];
			if (this.bBox[a].value == this.bBoxDefault[a]) this.bBox[a].value = "";
		}
	},
	boxBlur : function(a) {
		if (this.bBox[a] && (this.bBox[a].value == "" || this.bBox[a].value == this.bBoxDefault[a])) {
			this.bBox[a].className = this.bBoxClassBlur[a];
			this.bBox[a].value = this.bBoxDefault[a];
		}
	},
	boxSet : function(a, b, c, d) {
		this.bBox[a] = getElement(a);
		if (this.bBox[a]) {
			this.bBox[a].n = a;
			this.bBoxDefault[a] = ((b != "") ? b : "");	
			this.bBoxClassFocus[a] = ((c && c != "") ? c : "txtFocus");	
			this.bBoxClassBlur[a] = ((d && d != "") ? d : "txtBlur");
			this.bBox[a].onfocus = function() {queryBox.boxFocus(this.n);};
			this.bBox[a].onblur = function() {queryBox.boxBlur(this.n);};
			this.bBox[a].className = this.bBoxClassBlur[a];
			this.bBox[a].value = this.bBoxDefault[a];
		}
	},

	bBox : new Array(), 
	bBoxDefault : new Array(), 
	bBoxClassFocus : new Array(), 
	bBoxClassBlur : new Array()
};



// Attribute Selector Effects
// ------------------------------------------------------------------
// Developed by Greg Leuch, Virticle Corp (2007 January 02)
// (C) 2007 Virticle Corp <www.virticle.com> -- All Rights Reserved.
// DO NOT USE WITHOUT PERMISSION - FAILURE TO USE WIHTOUT PERMISSION
// WILL RESULT IN LEGAL AND CIVIL ACTIONS.
// ------------------------------------------------------------------
// Works in Gecko 1+ (Firefox/Mozilla/NS7+), Opera 7+, and IE7+.
// CSS use by using "class" attribute is tricky in earlier browsers.
//
// Searches through attribute values under specified element
// to find rollover instances.
//
// Use: <tag attr="-effect- src:-imgsrc-">
// Recommended: Use "class" attribute for XHTML Compliance and CSS
// styling options.
//
// Can be used with multiple attribute values.
// Ex. class="classname -effect-- src:-imgsrc-"
// (To ensure compatibility with all browsers supporting JavaScript,
// place required classname first, then rollover "classes")
//
// Can also be located for styling via CSS2 selectors
// Use: <style>*[attr~="-effect-"] {-code-}</style>
// ------------------------------------------------------------------
// Updated: 2007-05-21
//  - return only objects to defined function in locate()
//

var attributeEffects = {
	start : function () {
		// Use: this.set(-attr-, -effect-, -func-, [-opt-...]);
		this.locate('class', 'rollover', 'imgover', 'this');
		this.locate('class', 'hoverover', 'imgover', 'parent');
		this.locate('class', 'ql', 'ql');
		if (browser.browser == 'Explorer' && browser.version < 7) {
			// Generate hovers for elements not understood by IE6 with a hover attribute
			this.locate('class', 'mainmenunav', 'menuhovers', 'this');
			this.locate('class', 'pagemenunav', 'menuhovers', 'this');
		}
	},

	menuhovers : function (a, b, c, d, e) {
		var f = a.getElementsByTagName('li');
		if (f) {
			for (var i=0; i<f.length; i++) {
				if (f[i] == null) continue;
				f[i].onmouseover = function() {this.className = 'mhover';};
				f[i].onmouseout = function() {this.className = '';};
			}
		}
	},

	// Image Rollover Effects
	ql : function (a, b, c, d, e) {
		if (a && e && e != null) {
			var g = new RegExp('([\\S\\s]*)('+ b +' s:)([\\S]*)([\\S\\s]*)');
			var h = e.replace(g, '$3');
			if (e != h && h != '') {
				var j = h.split(':');
				var k = $(j[0]);
				var l = $(j[1]);

				if (j[3] == 'p') k = k.parentNode;
				if (k && l) {
					if (j[4] != '') k.innerHTML += ' <img src="'+ sitePath+'images/'+ j[4] +'" border="0" alt="" title="" />';

					k.r = l;
					k.c = ((j[2] != '') ? j[2] : false);

					var m = new RegExp("ql_show");
					if (!m.test(l.className)) l.className += ' ql_hide';

					if (j[5] > 0) {
						j[6] = ((j[6]) ? Math.floor(j[6]) : 0);
						j[7] = ((j[7]) ? Math.floor(j[7]) : 0);
						var n = this.getOffset(k, true, true);
						l.style.left = (n[0]+j[6])+'px';
						l.style.top = (n[1]+j[7])+'px';
					}
					
					l.r = k;

					k.onmouseover = function() {if (this.c) this.className += ((this.className != '') ? ' ' : '') + this.c; this.r.className = this.r.className.replace(/ql_hide/, 'ql_show');};
					l.onmouseover = function() {if (this.r.c) this.r.className += ((this.r.className != '') ? ' ' : '') + this.r.c; this.className = this.className.replace(/ql_hide/, 'ql_show');};
					k.onmouseout = function(e) {if (m_event(e, this.c)) {if (this.c) this.className.replace(this.c, ''); this.r.className = this.r.className.replace('ql_show', 'ql_hide');}};
					l.onmouseout = function(e) {if (m_event(e, this)) {if (this.r.c) this.r.className.replace('/'+this.r.c+'/', ''); this.className = this.className.replace('ql_show', 'ql_hide');}};
				}
			}
		}
	},
/*
	// Image Rollover Effects
	imgover : function (a, b, c, d, e) {
		if (a && e && e != null) {
			var g = new RegExp("([\\S\\s]*)("+ b +" src:)([\\S]*)([\\S\\s]*)");
			var h = e.replace(g, "$3");
			if (e != h && h != "") {
				a.h = ((d == "parent") ? a.childNodes[0].src : a.src);
				a.j = h;
				a.k = new Image();
				a.k.l = a;
				a.k.onload = ((d == "parent") ? function() {this.l.childNodes[0].src = this.src; return false;} : function() {this.l.src = this.src; return false;});
				a.onmouseover = function() {this.k.src = sitePath+"images/" + this.j;};
				a.onmouseout = function() {this.k.src = this.h;};
			}
		}
	},
*/

	// Image Rollover Effects
	imgover : function (a, b, c, d, e) {
		if (a && e && e != null) {
			var g = new RegExp('([\\S\\s]*)('+ b +' s:)([\\S]*)([\\S\\s]*)');
			var h = e.replace(g, '$3');
			if (e != h && h != '') {
				var f = h.split(':');
				var i = new RegExp('((\.png)$)$');
				var j = ((browser) ? (i.test(f[0]) && (browser.browser == 'Explorer' && browser.version < 7)) : false);
				if (j) 	var k = new RegExp('(^|[\\S\\s]*)(src=\')([\\S]*)(\')([\\S\\s]*|$)');
				a = ((f[1] == 'p') ? a.parentNode : a);
				a.h = ((j) ? ((f[1] == 'c') ? a.childNodes[0].style.filter.replace(k, '$3') : a.style.filter.replace(k, '$3')) : ((f[1] == 'c') ? a.childNodes[0].src : a.src));
				if (!a.h || a.h == '') return;
				a.j = sitePath +'images/' + f[0];
				a.k = new Image();
				a.k.l = ((f[1] == 'c') ? eval(a.childNodes[0]) : eval(a));
				a.k.n = j;
				a.k.onload = function() {((this.m) ? ((this.n) ? (this.l.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=\'crop\', src=\''+ this.src +'\'') : (this.l.src = this.src)) : ''); this.m = false; return true;};
				a.onmouseover = function() {this.k.m = true; this.k.src = this.j;};
				a.onmouseout = function() {this.k.m = true; this.k.src = this.h;};
				a.k.m = false;
				a.k.src = a.j;
			}
		}
	},

	replacePNG: function(a, b, c, d, e) {
		a.style.width = a.offsetWidth +'"px';
		a.style.height = a.offsetHeight +'px';
		a.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src=\''+ a.src +'\')';
		a.src = imagesUrl +'spacer.gif';
	},


	// Additional required functions
	doFind : function (a, b, c, d) {if (!a || a == '') return false; var e = (a.all) ? a.all : a.getElementsByTagName('*'); var f = []; var g = ((typeof c != 'undefined') ? new RegExp(((d) ? c : '(^|\\s)'+ c +'(\\s|$)')) : null); for (var i=0; i<e.length; i++) {if (e[i] == null) continue; var h = this.objGetAttr(e[i], b); if (h && h != '' && ((!c || c == '') || (g && g.test(h)))) f.push(e[i]);} return f;},

	objGetAttr : function(a, b) {if (typeof a != 'object') return false; return (b == 'class') ? a.className : (b == 'href') ? a.href : (b == 'src') ? a.src : (b == 'value') ? a.value : a.getAttribute(b);},

	locate : function (a, b, c, d, e, f) {	var z = this.doFind($((f && f != '') ? f : 'main'), a, b, e); if (z.length > 0) for (var i in z) if (typeof z[i] == 'object') eval('this.'+c+'(z[i], b, a, d, this.objGetAttr(z[i], a));');},

	getOffset : function(e, x, y) {
		//var offsetX = ((e.childNodes[0]) ? e.childNodes[0].offsetLeft+((x) ? e.childNodes[0].offsetWidth : 0) : e.offsetLeft-((x) ? e.offsetWidth : 0));
		//var offsetY = ((e.childNodes[0]) ? e.childNodes[0].offsetTop+((y) ? e.childNodes[0].offsetHeight : 0) : e.offsetTop-((y) ? e.offsetHeight : 0));
		var offsetX = e.offsetLeft-((x !== true) ? e.offsetWidth : 0);
		var offsetY = e.offsetTop-((y !== true) ? e.offsetTop : 0);
		var p = e.offsetParent;
		var r=0; 
		while (p) {
			r++;
			offsetX += p.offsetLeft;
			offsetY += p.offsetTop;
			p = p.offsetParent;
		}
		return Array(offsetX, offsetY);
	}
};

function $() {var a = new Array(); for (var i = 0; i < arguments.length; i++) {var b = arguments[i]; if (typeof b == 'string') b = document.getElementById(b); if (arguments.length == 1) return b; a.push(b);} return a;}



// Form check functions
var vcf = {
	e: function(a, b) {
		var c = (a) ? a.value : false;
		var d = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		if (!a || c == "" || !c.match(d)) return this.m(a, b);
		return true;
	},
	s: function(a, b) {
		var c = (a) ? a.options[a.selectedIndex].value : false;
		if (!a || c == "" || c == -1 || c == "na") return this.m(a, b);
		return true;
	},
	v: function(a, b) {
		if (!a || a.value == "" || a.value == -1 || a.value == "na") return this.m(a, b);
		return true;
	},
	m: function (a, b) {
		alert (b);
		if (a) a.focus();
		return false;
	}
};


function closeWarning() {
	var a = getElement("site_status_container");
	if (a) {
		a.style.display = "none";
		a.style.visibility = "hidden";
	}	
}

function createTools(a) {
	var b = getElement(a);
	if (b) {
		var c = false; //(window.external) ? (window.sidebar) ? false : true : false;
		b.innerHTML = ((c) ? '<a href="javascript: void(0);" onclick="javascript: bookmarkPage();" class="hoverover s:icon_bookmark_over.gif:c"><img src="'+ sitePath +'images/icon_bookmark.gif" width="10" height="13" border="0" title="Bookmark this Page" alt="" /></a>' : '')
			+'<a href="javascript: void(0);" onclick="javascript: emailPage.launch(this);" class="hoverover s:icon_email_over.gif:c"><img src="'+ sitePath +'images/icon_email.gif" width="13" height="11" border="0" title="Email this Page" alt="" /></a>'
			+'<a href="javascript: void(0);" onclick="javascript: window.print();" class="hoverover s:icon_print_over.gif:c""><img src="'+ sitePath +'images/icon_print.gif" width="14" height="11" border="0" title="Print this Page" alt="" /></a>';
	}
}

function bookmarkPage() {
	if (!window.external) return;
	t = document.getElementsByTagName("title");
	window.external.AddFavorite(location.href, t[0].innerHTML);
}

var emailPage = {
	launch : function(a) {
		if (this.isOpen) return this.land();
		this.isOpen = true;
		this.sendingTo = ((this.getCookieValue("ccst") != "") ? this.getCookieValue("ccst") : "recip");
		this.offset(a)


		this.pageTitle = document.getElementsByTagName("title");
		this.pageTitle = this.pageTitle[0].innerHTML;

		this.ebody = document.getElementsByTagName("body").item(0);
		this.ebox = document.createElement("div");
		this.ebox.setAttribute("id", "emailer");
		this.ebox.style.width = "320px";
		this.ebox.style.top = this.offsetY+"px";
		this.ebox.style.left = (this.offsetX-(320+20+2))+"px"; // To offset right, add width plus l & r padding plus l & r border 
		this.ebody.insertBefore(this.ebox, this.ebody.firstChild);
		this.start();
		return true;
	},
	offset : function(e) {
		this.offsetX = e.childNodes[0].offsetLeft+e.childNodes[0].offsetWidth;
		this.offsetY = e.childNodes[0].offsetTop+e.childNodes[0].offsetHeight;
		var p = e.offsetParent;
		r=0;
		while (p) {
			r++;
			this.offsetX += p.offsetLeft;
			this.offsetY += p.offsetTop;
			p = p.offsetParent;
		}
		//alert("r"+r);
	},
	start : function() {
		var r = ((this.sendingTo == "recip"));

		this.ebox.innerHTML = '<div id="em_close"><a href="javascript: void(0);" onclick="javascript: emailPage.land();">x</a></div>'
			+'<div id="em_content">'
			+' <h3>E-mail this Page</h3>'
			//+' <h4>'+ this.pageTitle[0].innerHTML +'</h4>'
			+' <div id="em_error"></div>'
			+' <div id="em_status"></div>'
			+' <div id="em_form">'
			+'  <p id="em_select"><input type="radio" name="sendas" id="sendasrecip" value="recip" class="sm" onclick="javascript: emailPage.sendTo(\'recip\');"'+ ((r) ? ' checked' : '') +' /> <label for="sendasrecip" onclick="javascript: emailPage.sendTo(\'recip\');">Send to Recipient</label>&nbsp;&nbsp;&nbsp;<input type="radio" name="sendas" id="sendasself" value="self" class="sm" onclick="javascript: emailPage.sendTo(\'self\');"'+ ((!r) ? ' checked' : '') +' /> <label for="sendasself" onclick="javascript: emailPage.sendTo(\'self\');">Send to Myself</label></p> '
			+'  <div id="em_formelements">'
			+'   <p class="em_recip"'+ ((!r) ? ' style="display: none;"' : '') +'>Recipient\'s Name<br /><input type="text" class="txtbox" name="em_name" id="em_recp_name" value="" /></p>'
			+'   <p class="em_recip"'+ ((!r) ? ' style="display: none;"' : '') +'>Recipient\'s E-mail Address<br /><input type="text" class="txtbox" name="em_recp_em" id="em_recp_em" value="" /></p>'
			+'   <p>Your Name<br /><input type="text" class="txtbox" name="em_send_name" id="em_send_name" value="'+ this.getCookieValue("ccsn") +'" /></p>'
			+'   <p>Your E-mail Address<br /><input type="text" class="txtbox" name="em_send_em" id="em_send_em" value="'+ this.getCookieValue("ccse") +'" /></p> '
			+'   <p>Add a Message <span class="optional">(Optional)</span><br /><textarea name="em_msg" id="em_msg" rows="4"></textarea></p> '
			+'   <p class="em_recip"'+ ((!r) ? ' style="display: none;"' : '') +'><input type="checkbox" value="bcc" id="em_bbc" name="em_bbc" class="sm" /> Send me a copy (BCC)</p> '
			+'  </div>'
			+' </div>'
			+' <div id="em_buttons"><a id="em_btn_send" href="javascript: void(0);" onclick="emailPage.send();" class="hoverover src:btn_smsend_over.gif"><img src="'+sitePath+'images/btn_smsend.gif" border="0" width="" height="18" title="Send" alt="Send" /></a>&nbsp;&nbsp;&nbsp;<a href="javascript: void();" onclick="emailPage.land();" class="hoverover src:btn_smcancel_over.gif"><img src="'+sitePath+'images/btn_smcancel.gif" border="0" width="" height="18" title="Cancel" alt="Cancel" /></a></div>'
			+'</div>';
		attributeEffects.set("class", "hoverover", attributeEffects.imgover, "parent", "emailer");
		getElement(((r) ? "em_recp_name" : "em_send_name")).focus();
		//this.sendTo(this.sendingTo);
	},
	send : function() {
		if (this.check()) {
			this.statusBox = this.changeElement("em_status", "block", "Sending...");
			this.formBox = this.changeElement("em_form", "none");
			this.sendBox = getElement("em_btn_send");
			this.sendBox.removeAttribute("onclick");
			//this.sendBox.childNodes[0].oldsrc = this.sendBox.childNodes[0].src;
			//this.sendbox.childNodes[0].src = this.sendbox.childNodes[0].over;
			this.setCookieValue("ccsn", this.ob_form[2][1].value);
			this.setCookieValue("ccse", this.ob_form[3][1].value);
			this.setCookieValue("ccst", this.sendingTo);

			r = ((this.sendingTo == "recip"));
			ajax_init("em_sendto", this.sendingTo, "em_recp_name", ((r) ? this.ob_form[0][1].value : ""), "em_recp_em", ((r) ? this.ob_form[1][1].value : ""), "em_send_name", this.ob_form[2][1].value, "em_send_em", this.ob_form[3][1].value, "em_msg", this.ob_form[4][1].value, "em_bcc", ((r) ? ((this.ob_form[5][1].checked) ? this.ob_form[5][1].value : "") : ""), "page_title", this.pageTitle, "page_url", location.href, emailPageReceive);
		}
	},
	receive : function(a) {
		if (!this.ebox) return;
		//var str = ""; for(i in a) str += a[i]+"\n"; alert(str);
		if (a[0] == "pass") {
			this.statusBox = this.changeElement("em_status", "block", a[1]);
			window.setTimeout("emailPageClose()", 2000);
		} else {
			this.statusBox = this.changeElement("em_status", "none", "");
			this.formBox = this.changeElement("em_form", "block");
			this.errorBox = this.changeElement("em_error", "block", "");
	
			this.sendBox.onclick = function() {emailPage.send(); return false;};
			//this.sendbox.childNodes[0].src = this.sendbox.childNodes[0].oldsrc;
			this.errorFocus = false;
			
			for (var i=1; i<a.length; i++) {
				var inf = a[i].split("|||");
				var r = getElement(inf[0])
				if (r) {
					this.errorBox.innerHTML += ((this.errorBox.innerHTML != "") ? "<br />" : "") + inf[1];
					r.parentNode.className = "emerror";
					if (!this.errorFocus) {r.focus(); this.errorFocus = true;}
				}
			}
		}
	},
	check : function() {
		this.clearMessages();

		this.ob_form = new Array();
		if (this.sendingTo == "recip") this.ob_form[0] = new Array(true, getElement("em_recp_name"), "You must enter a recipient's name");
		if (this.sendingTo == "recip") this.ob_form[1] = new Array(true, getElement("em_recp_em"), "You must enter a recipient's email address");
		this.ob_form[2] = new Array(true, getElement("em_send_name"), "You must enter your name.");
		this.ob_form[3] = new Array(true, getElement("em_send_em"), "You must enter your email address.");
		this.ob_form[4] = new Array(false, getElement("em_msg"));
		if (this.sendingTo == "recip") this.ob_form[5] = new Array(false, getElement("em_bbc"));

		for (i in this.ob_form) {
			if (this.ob_form[i][0]) {
				if (this.ob_form[i][1].value == "") {
					this.ob_form[i][1].parentNode.className = "emerror";
					this.errorBox.style.display = "block";
					if (!this.errorFocus) {this.ob_form[i][1].focus(); this.errorFocus = true;}
					this.errorBox.innerHTML += ((this.errorBox.innerHTML != "") ? "<br />" : "") + this.ob_form[i][2];
				} else {
					this.ob_form[i][1].parentNode.className = "";
				}
			}
		}

		return ((this.errorFocus) ? false : true);
	},
	land : function() {
		this.isOpen = false;
		this.ebody.removeChild(getElement("emailer"));
		delete this.ebox;
		return false;
	},
	changeElement : function(a, b, c, d) {
		var e = getElement(a)
		if (e) {
			if (b != "" && b !== false) e.style.display = b;
			if (c == "") e.innerHTML = "";
			else if (c && c !== false) e.innerHTML = c;
			e.disabled = ((d) ? true : false);
			return e;
		}

		return false;
	},
	setCookieValue : function (a, b) {
		var d = new Date();
		d.setTime(d.getTime()+(365*24*60*60*1000));
		var e = "; expires="+d.toGMTString();
		document.cookie = a+"="+b+e+"; path=/";
	},
	getCookieValue : function (a) {
		var ab = a + "=";
		var c = document.cookie.split(';');
		for(var i=0;i < c.length;i++) {
			var d = c[i];
			while (d.charAt(0)==' ') d = d.substring(1,d.length);
			if (d.indexOf(ab) == 0) {
				return d.substring(ab.length,d.length);
			}
		}
		return "";
	},
	clearMessages : function () {
		this.errorBox = this.changeElement("em_error", "none", "");
		this.errorFocus = false;
		this.statusBox = this.changeElement("em_status", "none", "");

		for (i in this.ob_form) if (this.ob_form[i][0]) this.ob_form[i][1].parentNode.className = "";
	},
	sendTo : function (a) {
		this.sendingTo = a;
		b = ((a == "recip") ? "block" : "none");

		this.clearMessages();

		var l =  getFind(getElement("emailer"), "*", "class", "em_recip");
		for (var i in l) {
			if (typeof l[i] != "object") continue;
			l[i].style.display = b;
		}
	}
};
// For functions/instances that don't understand class functions (settimeout, func)
function emailPageReceive(x) {emailPage.receive(x);}
function emailPageClose(x) {emailPage.land();}


/* Ajax Functions */
var ajax_request_type = "POST";

function ajax_init_object() {
	var A;
	try {
		A=new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			A=new ActiveXObject("Microsoft.XMLHTTP");
		} catch (oc) {
			A=null;
		}
	}

	if (!A && typeof XMLHttpRequest != "undefined") A = new XMLHttpRequest();
	return A;
}

function ajax_do_call(func_name, args) {
	var i, x, n;
	var uri;
	var post_data;

	uri = sitePath + "scripts/emailer.php";
	if (ajax_request_type == "GET") {
		if (uri.indexOf("?") == -1) {
			uri = uri + "?rs=" + escape(func_name);
		} else {
			uri = uri + "&rs=" + escape(func_name);
		}

		for (i = 0; i < args.length-1; i++) uri = uri + "&rsargs[]=" + escape(args[i]);

		uri = uri + "&rsrnd=" + new Date().getTime();
		post_data = null;
	} else {
		post_data = "rs=" + escape(func_name);
		for (i = 0; i < args.length-1; i++) post_data = post_data + "&rsargs[]=" + escape(args[i]);
	}

	x = ajax_init_object();
	x.open(ajax_request_type, uri, true);
	if (ajax_request_type == "POST") {
		x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
		x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		x.setRequestHeader("Content-length",post_data.length); 
		x.setRequestHeader("Connection","close");
	}
	x.onreadystatechange = function() {
		if (x.readyState != 4) return;

		var status;
		var data;
		status = x.responseText.charAt(0);
		data = x.responseText.substring(2);
		
		if (status == "+") {
			args[args.length-1](data);
		} else if (status == "=") {
			groups = data.split(":<<:");
			dataArray = new Array;
			for (v=0; v<groups.length; v++) {
				n_array = groups[v].split(":>>:");
				n_key = n_array[0];
				dataArray[n_key] = n_array[1];
			}
			args[args.length-1](dataArray);
		} else {
			alert("Error: " + status+" == "+data);
		}
	}
	x.send(post_data);
	delete x;
}
function ajax_init() {
	ajax_do_call("emailer", ajax_init.arguments);
}



/* DOM Functions */

function getElement(a) {	return ((document.getElementById) ? document.getElementById(a) : eval("document.all."+a));}

function getFind(a, b, c, d, e){
	if (!e || e == "") e = false;
    var f = ((b == "*" && a.all) ? a.all : a.getElementsByTagName(b));
    var r = new Array();
    var q = ((typeof d != "undefined") ? new RegExp("(^|\\s)" + d + ((e) ? ".*" : "") + "(\\s|$)") : null);
    for (var i=0; i<f.length; i++){
        var p = objGetAttr(f[i], c);
        if (p && p != "" && ((!d || d == "") || (q && q.test(p)))) r.push(f[i]);
    }
    return r;
}

function removeElement(e) {((em = getElement(e)) ? em.parentNode.removeChild(em) : e.parentNode.removeChild(e));}

function addEvent(elm, evType, fn, useCapture) {
	if (evType == "DOM") {
		return new domFunction(fn, useCapture);
	} else 	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		return elm.attachEvent("on"+evType, fn)
	}
	return false;
} 

function m_event(e, f) {
	if (!e) var e = window.event;
	if (e.type != 'mouseout' && e.type != 'mouseover') return false;
	var c = ((e.relatedTarget) ? e.relatedTarget : ((e.type == 'mouseout') ? e.toElement : e.fromElement));
	while (c && c != f) c = c.parentNode;
	return (c != f);
}

function domFunction(f, a) {
	var n = 0;
	var t = setInterval(function() {
		var c = true;
		n++;
		if (typeof document.getElementsByTagName != 'undefined' && (document.getElementsByTagName('body')[0] != null || document.body != null)) {
			c = false;
			if (typeof a == 'object') {
				for (var i in a) {
					if ((a[i] == 'id' && document.getElementById(i) == null) || (a[i] == 'tag' && document.getElementsByTagName(i).length < 1)) {c = true; break;}
				}
			}
			if(!c) { f(); clearInterval(t); }
		}
		if(n >= 60) clearInterval(t);
	}, 250);
}



/* Replacement Functions */
String.prototype.remove = function (a) {
	var b = this.indexOf(a);
	if (b == -1) return this;
	return this.substring(0,b) + this.substring(b + a.length).remove(a);
}

Object.prototype.getAttr = function(a) {return objGetAttr(this, a);}
function objGetAttr(a, b) {
	if (typeof a != "object") return false;
	return (b == "class") ? a.className : (b == "href") ? a.href : (b == "src") ? a.src : (b == "value") ? a.value : a.getAttribute(b);
}




/* Browser Detection */
var browser = {
	events: function() {
		// if old browser, redirect to upgrade page
		if (pageId != 17 && ((browser.browser == "Netscape" && (browser.version < 7 || browser.version == "an unknown version")) || (browser.browser == "Explorer" && (browser.version < 6 || browser.version == "an unknown version")))) location.href = urlPath+"index.php?id=17";
	},
	compliance : function() {
		// Style Compliance Overrides
		if (browser.browser == "Explorer") {
			document.write('<link rel="stylesheet" href="'+sitePath+'css/ie'+ ((browser.version < 7) ? '6' : '') +'.css" media="all">\n');
			if (browser.version < 7) {
				try {
					document.execCommand("BackgroundImageCache", false, true);
				} catch(err) {}
			}
		}
		if (browser.browser == "Netscape" || browser.browser == "Mozilla") document.write('<link rel="stylesheet" href="'+sitePath+'css/ns.css" media="all">\n');
	},
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString && dataString.indexOf(data[i].subString) != -1) {
				return data[i].identity;
			} else if (dataProp) {
				return data[i].identity;
			}
		}
		return false;
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb"},
		{string: navigator.vendor, subString: "Apple", identity: "Safari"},
		{prop: window.opera, identity: "Opera"},
		{string: navigator.vendor, subString: "iCab", identity: "iCab"},
		{string: navigator.vendor, subString: "KDE", identity: "Konqueror"},
		{string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
		{string: navigator.vendor, subString: "Camino", identity: "Camino"},
		// for newer Netscapes (6+)
		{string: navigator.userAgent, subString: "Netscape", identity: "Netscape"},
		{string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE"},
		{string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv"},
		// for older Netscapes (4-)
		{string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla"}
	],
	dataOS : [
		{string: navigator.platform, subString: "Win", identity: "Windows"},
		{string: navigator.platform, subString: "Mac", identity: "Mac"},
		{string: navigator.platform, subString: "Linux",identity: "Linux"}
	]

};

/* Run object checks */
browser.init();
browser.events();



/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){if(!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;},getSWFHTML:function(){var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){
this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";
}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;
},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}
return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(){
var _23=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}
catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}
return _23;};
deconcept.PlayerVersion=function(_27){
this.major=_27[0]!=null?parseInt(_27[0]):0;
this.minor=_27[1]!=null?parseInt(_27[1]):0;
this.rev=_27[2]!=null?parseInt(_27[2]):0;
};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){
return false;
}return true;};
deconcept.util={getRequestParameter:function(_29){
var q=document.location.search||document.location.hash;
if(q){var _2b=q.substring(1).split("&");
for(var i=0;i<_2b.length;i++){
if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){if(window.opera||!document.all){return;}
var _2d=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2d.length;i++){_2d[i].style.display="none";for(var x in _2d[i]){
if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}}}};
deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};
__flash_savedUnloadHandler=function(){};
if(typeof window.onunload=="function"){
var _30=window.onunload;
window.onunload=function(){
deconcept.SWFObjectUtil.cleanupSWFs();_30();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}};
if(typeof window.onbeforeunload=="function"){
var oldBeforeUnload=window.onbeforeunload;
window.onbeforeunload=function(){
deconcept.SWFObjectUtil.prepUnload();
oldBeforeUnload();};
}else{window.onbeforeunload=deconcept.SWFObjectUtil.prepUnload;}
if(Array.prototype.push==null){
Array.prototype.push=function(_31){
this[this.length]=_31;
return this.length;};}
var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;





/* ----------------------------------------------------------- */

function loadPageEffects() {
	queryBox.boxSet("searchbox", "Search this site", "sboxFocus", "sboxBlur");
	createTools("page_tools");
	attributeEffects.start();	
}