function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preload() {
	MM_preloadImages('images/FontSize_Btn1b.gif','images/FontSize_Btn2b.gif','images/FontSize_Btn3b.gif');
}

//::attach onload event
if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", MM_preload, false );
else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", MM_preload );
}
else {
    if ( window.onload != null ) {
        var oldOnload = window.onload;
        window.onload = function ( e ) {
            oldOnload( e );
            MM_preload();
        };
    }
    else
        window.onload = MM_preload;
}


//::Confirm Delete
function del(url,msg){
	if (confirm(msg)) {
		document.location.href = url;
	}else{}
}


//::Read Cookie
function getCookie(name){
	var cname = name + "=";
	var dc = document.cookie;
	if (dc.length > 0) {
		begin = dc.indexOf(cname);
		if (begin != -1) {
			begin += cname.length;
			end = dc.indexOf(";", begin);
			if (end == -1) end = dc.length;
			return unescape(dc.substring(begin, end));
		}
	}
	return null;
}

//::Write Cookie
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
	((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
	((path == null) ? "" : "; path=" + path) +
	((domain == null) ? "" : "; domain=" + domain) +
	((secure == null) ? "" : "; secure");
}

//::Delete Cookie
function delCookie(name,path,domain) {
	if (getCookie(name)) {
		document.cookie = name + "=" +
		((path == null) ? "" : "; path=" + path) +
		((domain == null) ? "" : "; domain=" + domain) +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}


//::Sort Dropdown Options
//<body onLoad="ddLoad('dd',5);">
//<select id="dd1" onChange="ddSort(this);">
var ddPrefixID    = "";
var ddTotalValues = 0;
var ddListValues  = new Array();
function ddLoad(strPrefixID,intTotal) {
	for (i=0; i < intTotal; i++) {
		ddListValues[strPrefixID + (i+1)] = i;
	}
	ddPrefixID    = strPrefixID;
	ddTotalValues = intTotal;
}
function ddSort(ddOption) {
	var ddList = new Array();
	for (i=0; i < ddTotalValues; i++)
		ddList[i] = document.getElementById(ddPrefixID + (i+1));

	for (i=0; i < ddTotalValues; i++)
		if (ddOption.selectedIndex == ddListValues[ddPrefixID + (i+1)])
			ddList[i].selectedIndex = ddListValues[ddOption.id];

	for (i=0; i < ddTotalValues; i++)
		ddListValues[ddPrefixID + (i+1)] = ddList[i].selectedIndex;

	return false;
}


//::Load JS/CSS File
function loadJsCss(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		var fileref=document.createElement('script')
		fileref.setAttribute("type", "text/javascript")
		fileref.setAttribute("src", filename)
	}
	else if (filetype=="css"){ //if filename is an external CSS file
		var fileref=document.createElement("link")
		fileref.setAttribute("rel", "stylesheet")
		fileref.setAttribute("type", "text/css")
		fileref.setAttribute("href", filename)
	}
	if (typeof fileref!="undefined")
	document.getElementsByTagName("head")[0].appendChild(fileref)
}
//loadJsCss("myscript.js", "js")	//dynamically load and add this .js file
//loadJsCss("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
//loadJsCss("mystyle.css", "css")	//dynamically load and add this .css file


//::Remove JS/CSS File
function removeJsCss(filename, filetype){
	var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from
	var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
	var allsuspects=document.getElementsByTagName(targetelement)
	for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
		if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
		allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
	}
}
//removeJsCss("somescript.js", "js")	//remove all occurences of "somescript.js" on page
//removeJsCss("somestyle.css", "css")	//remove all occurences "somestyle.css" on page


//::Set Font Size
function setFontSize(strSize) {
	switch (strSize) {
		case "small":
			loadJsCss('style_small.css', 'css');
			break;

		case "large":
			loadJsCss('style_large.css', 'css');
			break;

		case "normal":
			removeJsCss('style_small.css', 'css');
			removeJsCss('style_large.css', 'css');
			loadJsCss('style.css', 'css');
			delCookie("FontSize");
			break;
	}
	setCookie("FontSize",strSize);
}


//::Load Font Size
function loadFontSize() {
	if (getCookie("FontSize")) {
		setFontSize(getCookie("FontSize"));
	}
}


//::Load Font Size on Page Load
if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", loadFontSize, false );
else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", loadFontSize );
}
else {
    if ( window.onload != null ) {
        var oldOnload = window.onload;
        window.onload = function ( e ) {
            oldOnload( e );
            loadFontSize();
        };
    }
    else
        window.onload = loadFontSize;
}


//::pop-up window (complete settings)
//ex -> onClick="CiPopWin('./pageurl.asp','WindowName','500','300','no','no','no','no','no','no');return false"
var win = null;
function CiPopWin(mypage,myname,w,h,scroll,resize,toolbar,loc,status,menubar){
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable='+resize+',toolbar='+toolbar+',location='+loc+',status='+status+',menubar='+menubar;
	win = window.open(mypage,myname,settings)
	if(win.window.focus){win.window.focus();}
}


//::E-Mail Page Window
function EmailPage(strPage) {
	CiPopWin('emailpage.asp?page=' + strPage,'EmailPage','500','400','yes','no','no','no','no','no');
}


//::Video Window
function VideoWin(filepath) {
	CiPopWin('videowindow.asp?path=' + filepath,'VideoWindow','316','305','no','no','no','no','no','no');
}


//::Disable Submit Button
//  onSubmit="DisableSubmit('frmName','btnName','Please Wait...');"
//  <input name="hidden" value="" type="hidden">
function DisableSubmit(frmName,btnName,btnValue) {
	objFrm = document.getElementsByName(frmName)[0];
	objBtn = document.getElementsByName(btnName)[0];

	objBtn.disabled = true;
	if (btnValue != "") {
		objBtn.value = btnValue;
	}
	objBtn.style.cursor = "wait";

	objFrm.hidden.value = objBtn.value;
	objFrm.hidden.name = btnName;
}


//::Date/Time Function
function DateTime(dt){
	var now		= new Date();
	var day		= now.getDay();
	var mo		= now.getMonth();
	var month	= mo+1;
	var date	= now.getDate();
	var year	= now.getYear();
	var dates	= month + "/" + date + "/" + year;
	var hours	= now.getHours();
	var minutes = now.getMinutes();
	var seconds = now.getSeconds();
	var time = "" + ((hours >12) ? hours -12 :hours)
	if (time == "0") time = 12;
	time += ((minutes < 10) ? ":0" : ":") + minutes
	time += ((seconds < 10) ? ":0" : ":") + seconds
	time += (hours >= 12) ? " PM" : " AM"
	var monthlong  = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
    var monthshort = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var daylong    = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    var dayshort   = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
	switch (dt) {
		case "Date":	// 1/1/2000
			return dates;
			break;
		case "Time":	// 12:00:00 AM
			return time;
			break;
		case "Now":		// 1/1/2000 12:00:00 AM
			return dates + " " + time;
			break;
		case "Year":	// 2000
			return year;
			break;
		case "Custom1":	// Mon, Jan 1
			return dayshort[day] + ", " + monthshort[mo] + " " + date;
			break;
		default:
			return now;
	}
}


//::Validate Search
function ValidateSearch() {
	var q = document.frmSearch.q.value;
	var t = document.frmSearch.t.value;

	if (q == "" && t == "") {
		alert('You must enter Keyword(s) or select a Topic to search.');
		return false;
	}
	else {
		return true;
	}
}


//::Validate Advanced Search
function ValidateAdvancedSearch() {
	var q = document.frm.q.value;
	var t = document.frm.t.value;
	var a = document.frm.a.value;

	if (q == "" && t == "" && a == "") {
		alert('You must enter Keyword(s) or select a Topic or Expert to search.');
		return false;
	}
	else {
		return true;
	}
}


//::Show/Hide Function
function ShowHide(id){
	if (document.getElementById(id).style.display == "none"){
		document.getElementById(id).style.display = "";
	}
	else{
		document.getElementById(id).style.display = "none";
	}
}


//::Switch Tabs
function SwitchTab(intTab) {
	switch (intTab) {
		case 1: default:
			document.getElementById("Tab1").className = "Tab Tab1";
			document.getElementById("Tab2").className = "Tab Tab2";
			document.getElementById("Tab3").className = "Tab Tab2";
			document.getElementById("Tab4").className = "Tab Tab2";
			document.getElementById("Tab5").className = "Tab Tab2";
			document.getElementById("DivTab1").style.display = "";
			document.getElementById("DivTab2").style.display = "none";
			document.getElementById("DivTab3").style.display = "none";
			document.getElementById("DivTab4").style.display = "none";
			document.getElementById("DivTab5").style.display = "none";
			break;
		case 2:
			document.getElementById("Tab1").className = "Tab Tab2";
			document.getElementById("Tab2").className = "Tab Tab1";
			document.getElementById("Tab3").className = "Tab Tab2";
			document.getElementById("Tab4").className = "Tab Tab2";
			document.getElementById("Tab5").className = "Tab Tab2";
			document.getElementById("DivTab1").style.display = "none";
			document.getElementById("DivTab2").style.display = "";
			document.getElementById("DivTab3").style.display = "none";
			document.getElementById("DivTab4").style.display = "none";
			document.getElementById("DivTab5").style.display = "none";
			break;
		case 3:
			document.getElementById("Tab1").className = "Tab Tab2";
			document.getElementById("Tab2").className = "Tab Tab2";
			document.getElementById("Tab3").className = "Tab Tab1";
			document.getElementById("Tab4").className = "Tab Tab2";
			document.getElementById("Tab5").className = "Tab Tab2";
			document.getElementById("DivTab1").style.display = "none";
			document.getElementById("DivTab2").style.display = "none";
			document.getElementById("DivTab3").style.display = "";
			document.getElementById("DivTab4").style.display = "none";
			document.getElementById("DivTab5").style.display = "none";
			break;
		case 4:
			document.getElementById("Tab1").className = "Tab Tab2";
			document.getElementById("Tab2").className = "Tab Tab2";
			document.getElementById("Tab3").className = "Tab Tab2";
			document.getElementById("Tab4").className = "Tab Tab1";
			document.getElementById("Tab5").className = "Tab Tab2";
			document.getElementById("DivTab1").style.display = "none";
			document.getElementById("DivTab2").style.display = "none";
			document.getElementById("DivTab3").style.display = "none";
			document.getElementById("DivTab4").style.display = "";
			document.getElementById("DivTab5").style.display = "none";
			break;
		case 5:
			document.getElementById("Tab1").className = "Tab Tab2";
			document.getElementById("Tab2").className = "Tab Tab2";
			document.getElementById("Tab3").className = "Tab Tab2";
			document.getElementById("Tab4").className = "Tab Tab2";
			document.getElementById("Tab5").className = "Tab Tab1";
			document.getElementById("DivTab1").style.display = "none";
			document.getElementById("DivTab2").style.display = "none";
			document.getElementById("DivTab3").style.display = "none";
			document.getElementById("DivTab4").style.display = "none";
			document.getElementById("DivTab5").style.display = "";
			break;
	}
}


//::Build E-Mail Link
//ex. document.write(BuildEmail('Click Here','email','isp.com','Subject',''))
function BuildEmail(lnkName,lnkEmail,lnkHost,lnkSubject,lnkStyle){
	if(lnkName == ""){
		lnkName = lnkEmail + "&#64;" + lnkHost;
	}
	if(lnkSubject != ""){
		lnkSubject = "?subject=" + lnkSubject;
	}
	return "<a href='" + "mail" + "to:" + lnkEmail + "@" + lnkHost + lnkSubject + "' " + lnkStyle + ">" + lnkName + "</a>";
}


//::Word/Character Count Function
//ex -> WordCharCount(this.form.FIELD,"word");
function WordCharCount(fld, counttype){
	var char_count = fld.value.length;
	var fullStr = fld.value + " ";
	var initial_whitespace_rExp = /[A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	if (fullStr.length < 2) {
		word_count = 0;
	}
	switch (counttype) {
		case "word":	//Word Count
			return word_count;
			break;
		case "char":	//Character Count
			return char_count;
			break;
	}
}


//::Limit TextArea Length
//ex.	 onKeyPress="LimitTextarea(this,500);"
function LimitTextarea(fld,lmt) {
	if (fld.value.length > lmt) {
		fld.value = fld.value.substring(0, lmt);
	}
}

//::Clear Links from Document Function
function ClearLinks(){
	var a = document.getElementsByTagName("A");
	var l = a.length;

	for (var i=0; i<l; i++) {
		n = a[i];
		if (n.hasChildNodes()) {
			for (var j=0; j<n.childNodes.length; j++) {
				n.parentNode.insertBefore(n.childNodes[j].cloneNode(true),n);
			}
		}
	}

	for (var k=0; k<l-1; k++) {
		for (var i=0; i<l; i++) {
			n = a[i];
			if (typeof n != "undefined") {
				n.parentNode.removeChild(n);
			}
		}
	}
}


//::check if radio or checkbox items are selected
function CheckSelected(arr){
	if(arr.length > 0){
		for(var index = 0; index < arr.length; index++){
			if(arr[index].checked){
				return true;
				break;
			}
		}
	}
	else{
		if(arr.checked){
			return true;
		}
		else{
			return false;
		}
	}
	return false;
}


//::Check if form element exists
function CheckExistingElement(elementName){
	for(var i=0; i<document.forms[0].elements.length; i++){
		if(document.forms[0].elements[i].name== elementName){
			return true;
		}
	}
}


//::FormatNumber Function
function FormatNumber(amt,dec){
	var val = parseFloat(amt);
	var zeros = "0.";
	if(isNaN(dec)){ dec = 0; }
	for(z=0;z<dec;z++){ zeros = zeros + "0"; }
	if(dec <= 0){ zeros = "0"; }
	if(isNaN(val)){ return zeros; }
	if(val <= 0){ return zeros; }
	val = (1 * parseFloat(val));
	rndcnt = (!dec ? 2 : dec);
	val = Math.round(val*Math.pow(10,rndcnt))/Math.pow(10,rndcnt);
	val = val + "";
	if(val.indexOf('.') == -1){
		newZeros = zeros.substring(1,zeros.length);
		return FormatComma(val) + newZeros;
	}
	else{
		declen = (val.length - (val.indexOf(".")+1));
		decdif = (dec - declen)
		for(d=0;d<decdif;d++){ val = val + "0"; }
	}
	return FormatComma(val) + val.substring(val.indexOf('.'),val.length);
	function FormatComma(val){
		cutval = Math.floor(val);
		var arr=new Array('0'), i=0;
		while(cutval>0){arr[i]=''+cutval%1000; cutval=Math.floor(cutval/1000); i++;}
		arr=arr.reverse();
		for(var i in arr) if (i>0)
		while(arr[i].length<3) arr[i]='0'+arr[i];
		return arr.join();
	}
}


//::Right Substring
function Right(str, n){
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
	}
}


//::Remove All Blank Spaces
function RemoveSpaces(sStr) {
	var s = "";
	for (var i = 0; i < sStr.length; i++) {
		if (sStr.charAt(i) != " ") s += sStr.charAt(i);
	}
	return s;
}


//::Trim String Function
function Trim(str){
	str = str.replace(/\s+/,'');
	str = str.replace(/\s+$/,'');
	return str;
}


//::IsNumeric Function
function IsNumeric(val){
	for (i=0; i<val.length; i++){
		if (isNaN(val.charAt(i))){
			return false;
		}
	}
	return true;
}


//::Valid Date Function
function ValidDate(dt) {
	var dt1 = /(\d+)\/(\d+)\/(\d+)$/;
	var dt2 = /(\d+)\-(\d+)\-(\d+)$/;
	var dt3 = /(\d+)\.(\d+)\.(\d+)$/;
	if (dt1.exec(dt) ||
		dt2.exec(dt) ||
		dt3.exec(dt)) {
		return true;
	}
	else{return false;}
}


//::Validate Time Function	(HH:MM:SS AM/PM)
function ValidTime(value) {
	var hasMeridian = false;
	var re = /\d{1,2}[:]\d{2}([:]\d{2})?( [aApP][mM]?)?$/;
	if (!re.test(value)) { return false; }
	if (value.toLowerCase().indexOf("p") != -1) { hasMeridian = true; }
	if (value.toLowerCase().indexOf("a") != -1) { hasMeridian = true; }
	var values = value.split(":");
	if ( (parseFloat(values[0]) < 0) || (parseFloat(values[0]) > 23) ) { return false; }
	if (hasMeridian) {
		if ( (parseFloat(values[0]) < 1) || (parseFloat(values[0]) > 12) ) { return false; }
	}
	if ( (parseFloat(values[1]) < 0) || (parseFloat(values[1]) > 59) ) { return false; }
	if (values.length > 2) {
		if ( (parseFloat(values[2]) < 0) || (parseFloat(values[2]) > 59) ) { return false; }
	}
	return true;
}


//::Valid E-Mail
function ValidEmail(str){
	SpcPos = str.indexOf(' ');
	AccPos = str.indexOf('@');
	AccStr = str.substr(0,AccPos);
	AccLen = AccStr.length;
	DomPos = str.lastIndexOf('.');
	DomStr = str.substr(AccPos+1,(DomPos-AccPos)-1);
	DomLen = DomStr.length;
	ExtPos = DomPos + 1;
	ExtLen = str.length - ExtPos;
	ExtStr = str.substr(ExtPos,ExtLen);
	if(	   (SpcPos == -1)
		&& (AccPos != -1)
		&& (DomPos != -1)
		&& (AccLen >= 2)
		&& (DomLen >= 2)
		&& (ExtLen >= 2)
		&& (ExtLen <= 4)){
		return true;
	}
	else{return false}
}


//::Valid E-Mail List
function ValidEmailList(str){
	var booStatus = true;
	if (str == "") {
		booStatus = false;
		strBadEmail = "[No E-Mails Found]";
	}
	else if (str != "") {
		var emailStr = "";
		for (var i = 0; i < str.length; i++) {
			if (str.charAt(i) != " ") emailStr += str.charAt(i);
		}
		if (emailStr.indexOf(",") > 0) {
			emailArr = emailStr.split(",");
			for (i=0; i<emailArr.length; i++) {
				if (!ValidEmail(emailArr[i])) {
					booStatus = false;
					strBadEmail = "[" + emailArr[i] + "]";
					break;
				}
			}
		}
		else if (emailStr.indexOf(";") > 0) {
			emailArr = emailStr.split(";");
			for (i=0; i<emailArr.length; i++) {
				if (!ValidEmail(emailArr[i])) {
					booStatus = false;
					strBadEmail = "[" + emailArr[i] + "]";
					break;
				}
			}
		}
		else {
			if (!ValidEmail(str)) {
				booStatus = false;
				strBadEmail = "[" + str + "]";
			}
		}
	}
	return booStatus;
}


//::Valid Phone
function ValidPhone(PhoneArea,PhonePre,PhoneSuf){
	if ((Trim(PhoneArea) == "") ||
		(Trim(PhonePre) == "") ||
		(Trim(PhoneSuf) == "") ||
		(PhoneArea.length != 3) ||
		(PhonePre.length != 3) ||
		(PhoneSuf.length != 4)){
		return false;
	}else{
		if (IsNumeric(PhoneArea) &&
			IsNumeric(PhonePre) &&
			IsNumeric(PhoneSuf) &&
			(PhoneArea.length == 3) &&
			(PhonePre.length == 3) &&
			(PhoneSuf.length == 4)){
			return true;
		}
	}
}


//::Valid Telephone
function ValidTelephone(str){
	str = Trim(str);
	str = str.replace("(","");
	str = str.replace(")","");
	str = str.replace(".","");
	str = str.replace(".","");
	str = str.replace("-","");
	str = str.replace("-","");
	str = str.replace(" ","");
	strLen = str.length;
	if((strLen == 10 || strLen == 7) && IsNumeric(str)){
		return true;
	}
	else{
		return false;
	}
}


//::Valid Password
function ValidPassword(p1,p2){
	if (p1 != "" && p2 != ""){
		if (p1 == p2) {
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}


//::Validate Poll Form
function ValidatePollForm() {
	missinginfo = "";
	var objForm = document.frmVote;

	if (!CheckSelected(objForm.answer)) {
	missinginfo += "\n       You must select an answer to vote...";
	}

	if (missinginfo != "") {
	missinginfo = "The following information was entered incorrectly:\n" +
	missinginfo + "\n\nPlease re-enter the information and try again...";
	alert(missinginfo);
	return false;
	}
	else return true;
}