//
//	COPYRIGHT NOTICE:
// 	Copyright 2002 - 2006 Barry Saxifrage. Stonebreaker Designs. All Rights Reserved.
//	By using this code you agree to indemnify Barry Saxifrage and Stonebreaker Designs 
//	from any liability that might arise from its use. Selling this code or distributing 
//	this code without prior written consent is expressly forbidden. Copyright notice  
//	must remain with this code. For more information: www.stonebreakerdesigns.com	
//

//================================
//
//	OPTIONS DB
//

	// GET RID OF THESE (DB)
	var gnModifiedDaysNew = 14;			
	
	// SECTIONS
	var gidSectionAds 		= 1;
	var gidSectionArticles 	= 2;
	var gidSectionBiz 		= 3;
	var gidSectionEvents 	= 4;
	var gidSectionMap 		= 5;
	var gidSectionGallery	= 6;
	var gidSectionLinks		= 7;
	var gidSectionPolls		= 8;
	// FRONTPAGE EXTRA SECTIONS 
	var gidFPSectionWeather = 100;
	var gidFPSectionEdNote  = 101;
	var gidFPSectionTopics  = 102;
	var gidFPSectionSearch  = 103;
	var gidFPSectionMarket  = 104;
	
	var gidCurTopic			= 0;
	var gstrCurTopic		= '';
	var aMemberLevels = new Array("Guest", "Staff", "Editor");
	var aMemberLevelsPl = new Array("Guests", "Staff", "Editors");
		
		
//================================
//
//	STANDARD GLOBALS
//

	var aMonthsShort = new Array("Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec");
	var aMonths      = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var aDays 		 = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
	var aDaysShort 	 = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
	var aTODNames 	 = new Array("after midnight","sunrise","morning","afternoon","sunset","before midnight");

	var msecOneDay = 86400000;
	var msecOneYear = 31536000000;
	
	
//================================
//
//	<HEAD> FUNCTIONS
//
	
	function setBaseHref() 		 { return; } 
	function setBaseHrefSecure() { return; } 
	function setSkin() {
		if (gSkin != 1) {
			document.writeln('<LINK REL="STYLESHEET" TYPE="text/css" HREF="'+gWWWPath+'/skins/1_'+gSkin+'/skin.css">');
		} 
	}
	
	
//================================
//
//	MASTHEAD
//
	
	function drawMasthead(aMasthead, fIsAdmin) {
	
		var aM = aMasthead[0].split("|");
		var iTimeOfDay			= aM[0];
		var strTimeOfDay		= aM[1];
		var strPix				= aM[2];
		var fShowSignInCommand	= aM[3];
		var strTitle			= aM[4];
		var nTitleFontSize		= aM[5];
		var strFontColor		= aM[6];
		var posTitle			= aM[7];
		var fShowTitle			= aM[8];
		var posDate				= aM[9];
		var fShowDate			= aM[10];
		var strTitleShort		= aM[11];
		var strMenuFP			= aM[12];
		var strMenuIP			= aM[13];
		var strMenuTp			= aM[14];
		var aMenuEdOpts			= aM[15].split('&&'); 
			var strMenuEd			= aMenuEdOpts[0];
			var nMenuEdFormat		= aMenuEdOpts[1];
		var strMenuHp			= aM[16];
		var fSubOn				= aM[17];
		var fSub1				= aM[18];
		var fSub2				= aM[19];
		var strMenuColor		= aM[20];
		var fHome				= aM[21];
		var strHome				= aM[22];
		var urlHome				= aM[23];
		var strSideMenuColor	= aM[24];
		var fSideMenu			= aM[25];
		var fRSS				= aM[26];
		var nRSSIcon			= aM[27];
		var nPending			= aM[28];
		var nMsgs				= aM[29];
		var idUser				= aM[30];
		var strUsername			= aM[31];
		var nLevel				= aM[32];
		var fEdMachine			= aM[33];
		var urlSignIn			= aM[34];
		var strEdStati			= aM[35];
		fEdMachine = (fEdMachine == 1);
		
		var fOwnEdMenu = false;
		if (nMenuEdFormat == 1) { fOwnEdMenu = true; }
		
		var nTopics = 0;
		
		var strEd ='';
		if (fIsAdmin) {
			var strEd = '';
			var fPBOpen0 = GetCookie('adminPB0');
			var fPBOpen1 = GetCookie('adminPB1');
			var fPBOpen2 = GetCookie('adminPB2');
			var fPBOpen3 = GetCookie('adminPB3');
			var fPBOpen4 = GetCookie('adminPB4');
			var fPBOpen5 = GetCookie('adminPB5');
			var fPBOpen6 = GetCookie('adminPB6');
			if (isEmpty(fPBOpen0)) { fPBOpen0=1; }
			if (isEmpty(fPBOpen1)) { fPBOpen1=0; }
			if (isEmpty(fPBOpen2)) { fPBOpen2=0; }
			if (isEmpty(fPBOpen3)) { fPBOpen3=0; }
			if (isEmpty(fPBOpen4)) { fPBOpen4=0; }
			if (isEmpty(fPBOpen5)) { fPBOpen5=0; }
			if (isEmpty(fPBOpen6)) { fPBOpen6=0; }
			var aEdSt = strEdStati.split(':');
			
			strEd += '<div id="admin_powerbar" class="adminbox">';
				strEd += '<div class="ed_pb_h">Editor Tools</div>';
					strEd += '<div class="ed_pb_p">';
					strEd += 'Tools to manage Tideline.';
					// <br>'+getEdHelp(true,"checklist")+' To <a href="javascript:adminHelp(\'checklist\')" class="ed_pb_p">get started, click here</a>.' ;
					strEd += '</div>';
				strEd += htmlEdPowerHeader('Daily Tools', 0, fPBOpen0, 'dailytasks');
					strEd += htmlEdPowerLink(201,'Editor Desk & Stats',1);
					strEd += htmlEdPowerLink(200,'REVIEW &middot; '+nPending,1);
					strEd += htmlEdPowerLink(202,'MESSAGES &middot; '+nMsgs,1);
					strEd += '</div>';
				strEd += htmlEdPowerHeader('Design & Layout', 1, fPBOpen1, 'design');
					strEd += htmlEdPowerLink(29,'Visual Designer',1);
					strEd += htmlEdPowerLink(9,'Masthead Image',1);
					strEd += htmlEdPowerLink(11,'Masthead Title & Date',1);
					strEd += htmlEdPowerLink(11,'Menubar',1);
					strEd += htmlEdPowerLink(26,'Skins: Fonts & Colors',1);
					strEd += '</div>';
				strEd += htmlEdPowerHeader('Frontpage', 2, fPBOpen2, 'frontpage');
					strEd += htmlEdPowerLink(27,'Editor\'s Note',aEdSt[0]);
					strEd += htmlEdPowerLink(20,'Weather',aEdSt[1]);
					strEd += htmlEdPowerLink(34,'Search box',aEdSt[2]);
					strEd += htmlEdPowerLink(19,'Tidepool Critters',aEdSt[3]);
					strEd += '</div>';
				strEd +=  htmlEdPowerHeader('Postings', 3, fPBOpen3, 'postings');
					strEd += htmlEdPowerLink(6,'Classified Ads',aEdSt[4]);
					strEd += htmlEdPowerLink(8,'Articles',aEdSt[5]);
					strEd += htmlEdPowerLink(7,'Biz & Groups',aEdSt[6]);
					strEd += htmlEdPowerLink(204,'Biz & Group Sponsors',aEdSt[6]);
					strEd += htmlEdPowerLink(5,'Events',aEdSt[7]);
					strEd += htmlEdPowerLink(12,'Galleries',aEdSt[9]);
					strEd += htmlEdPowerLink(10,'Links',aEdSt[10]);
					strEd += htmlEdPowerLink(25,'Maps',aEdSt[8]);
					strEd += htmlEdPowerLink(16,'Polls',aEdSt[11]);
					strEd += '</div>';
				strEd +=  htmlEdPowerHeader('People', 4, fPBOpen4, 'managepeople');
					strEd += htmlEdPowerLink(206,'Members',1);
					strEd += htmlEdPowerLink(204,'Sponsors',1);
					strEd += htmlEdPowerLink(21,'Security & Access',1);
					strEd += '</div>';
				strEd +=  htmlEdPowerHeader('Other Features', 5, fPBOpen5, 'otherfeatures');
					strEd += htmlEdPowerLink(28,'Special Sections',1);
					strEd += htmlEdPowerLink(33,'Weekly Newsletters',1);
					strEd += htmlEdPowerLink(17,'Email Subscriptions',1);
					strEd += htmlEdPowerLink(38,'RSS Subscriptions',1);
					strEd += htmlEdPowerLink(36,'Marketplace',1);
					strEd += htmlEdPowerLink(22,'Search Engine settings',1);
					strEd += '</div>';
				strEd +=  htmlEdPowerHeader('Support', 6, fPBOpen6, 'support');
					strEd += getEdHelp(true,'checklist') + ' <a href="javascript:adminHelp(\'checklist\')" class="ed_pb_link">Getting Started</a><br>';
					strEd += getEdHelp(true,'manual') + ' <a href="javascript:adminHelp(\'manual\')" class="ed_pb_link">Online Manual</a><br>';
					strEd += getEdHelp(true,'support') + ' <a href="javascript:adminHelp(\'support\')" class="ed_pb_link">Support</a><br>';
					strEd += htmlEdPowerLink(39,'Update Service',1);
					strEd += '</div>';
			strEd += '</div>';
		}

		if (strPix != '') {
			strPix = gWWWPath + 'data/' + strPix;
			document.writeln('<img id="mh" name="masthead" src="' + strPix + '" alt="" border="0">');
		}
		
		document.writeln('<div id="bit1"></div><div id="bit2"></div><div id="bit3"></div><div id="bit4"></div><div id="bit5"></div>');
		
		if (fShowTitle == 1) {
			var str 	  = '';
			var strStyle  = 'style=" font-size:'+nTitleFontSize+'px;';
			var strStyle2 = 'style=" font-size:'+nTitleFontSize+'px;';
			if (posTitle != '') {
				var aP = posTitle.split(':');
				var x = parseInt(aP[0]);
				var y = parseInt(aP[1]);
				strStyle += 'left:'+x+'px;top:'+y+'px;';
				x += 1; y += 1;
				strStyle2 += 'left:'+x+'px;top:'+y+'px;';
			}
			if (strFontColor != '') {
				strStyle += 'color:#'+strFontColor+';';
			}
			strStyle += '"';
			strStyle2 += '"';
			
			str += '<div id="mh_titleshadow" '+strStyle2+'>'+ strTitle+'</div>';
			str += '<div id="mh_title" '+strStyle+'>'+ strTitle+'</div>';
			document.writeln(str);
			str = '';
		}
		
		if (fShowDate == 1) {
			var myDate = getNow();
			var nMonth = myDate.getMonth();
			var str 	 = '';
			var strStyle = 'style="';
			var strStyleA = 'style="';
			if (posDate != '') {
				var aP = posDate.split(':');
				strStyle += 'left:'+aP[0]+'px;top:'+aP[1]+'px;';
			}
			if (strFontColor != '') {
				strStyle += 'color:#'+strFontColor+';';
				strStyleA += 'color:#'+strFontColor+';';
			}
			strStyle += '"';
			strStyleA += '"';
			str += '<div id="mh_topdate" '+strStyle+'>';
				if (strUsername != '') { str += 'Welcome <a href="javascript:showMember('+idUser+')" '+strStyleA+'>'+strUsername+'</a><br>';	}
				str += aDays[myDate.getDay()] +' '+ strTimeOfDay+'<br>';
				str += aMonths[nMonth] + ' ' + myDate.getDate() + ', ' + timeGetYear(myDate) + '<br>';
				if (fIsAdmin) { str += getEdDot(fIsAdmin,11); }
			str += '</div>';
			document.writeln(str);
			str = '';
		}
		
		document.writeln(aMasthead[1]);
		
		var iLastCommand = aMasthead.length - 2;
		var iFirstCmd1 = 2;
		var iFirstCmd2 = 0;
		var iFirstCmd3 = 0;
		var iFirstCmd4 = 0;
		var iLastCmd1 = 0;
		var iLastCmd2 = 0;
		var iLastCmd3 = 0;
		var iLastCmd4 = iLastCommand;
		for (var i = 2; i <= iLastCmd4; i++) {
			var strCmd = aMasthead[i];
			if      (strCmd == 'x')      { iLastCmd1 = i - 1; iFirstCmd2 = i + 1; }
			else if (strCmd == 'custom') { iLastCmd2 = i - 1; iFirstCmd3 = i + 1; } 
			else if (strCmd == 'topics') { iLastCmd3 = i - 1; iFirstCmd4 = i + 1; } 
		}
		
		var strMHStyle = '';
		var strMSStyle = '';
		var strSide = '';
		var strSideArea = '';
		var strHtmlEdMenuHead = '';
		var strHtmlEdMenu = '';
		var strHtmlEdSideHead = '';
		var strHtmlEdSide = '';
		if (isNotEmpty(strMenuColor))   	{ strMHStyle = ' style="color:#'+strMenuColor+';"'; }
		if (isNotEmpty(strSideMenuColor))   { strMSStyle = ' style="color:#'+strSideMenuColor+';"'; }

		str = '';
		str += '<div id="menubar">';
		strSideArea += '<div id="pgArea_farcol">';
		strSideArea += strEd;	//ed powerbar
		strSide += '<div id="menubar_right">';
			if (fIsAdmin) { 
				strSide += '<div class="ms_header">';
				strSide += getEdDot(fIsAdmin,11);
				strSide += '</div>'; 
			}
			str += '<table cellspacing="0" cellpadding="0"><tr>';
			strSpacers = '<tr>';
				// -- home
				if (fHome == 1) {
					str += '<td valign="top"><div class="m_header" style="padding-left:0px;">';
						str += '<a class="m_h_text" href="'+urlHome+'" title="'+strHome+'" '+strMHStyle+'>'+strHome+' </a>';
					str += '</div></td>';
					strSide += '<div class="ms_header">';
						strSide += '<a class="ms_h_text" href="'+urlHome+'" title="'+strHome+'" '+strMSStyle+'>'+strHome+' </a>';
					strSide += '</div>';
					
				}
				// -- frontpage
				if (fHome == 1) { str += '<td valign="top"><div class="m_header">'; }
				else			{ str += '<td valign="top"><div class="m_header" style="padding-left:0px;">'; }
					str += '<a class="m_h_text" href="javascript:showHome();" title="'+strMenuFP+'" '+strMHStyle+'>'+strMenuFP+' </a>';
				str += '</div></td>';
				strSide += '<div class="ms_header">';
					strSide += '<a class="ms_h_text" href="javascript:showHome();" title="'+strMenuFP+'" '+strMSStyle+'>'+strMenuFP+' </a>';
				strSide += '</div>';
				// -- inside pages menu
				str += '<td valign="top" >';
					str += getMenuHead('mh_section_menu', strMenuIP, strMenuColor);
					str += '<div style="position:relative;"><div id="mh_section_menu" >';
					strSide += '<div class="mh_side_menu">';
					strSide += getMenuSectionSide(strMenuIP, strMSStyle);
					// built in
					for (var i = iFirstCmd1; i <= iLastCmd1; i++) {
						var strCmd = aMasthead[i];
						var aS = strCmd.split("|");
						var idS			= aS[0];
						var strLTitle	= aS[1];
						var strLURL		= aS[2];
						if 		(idS == gidSectionAds) 	 	{ strLURL = 'showAds(0)'; }
						else if (idS == gidSectionArticles) { strLURL = 'showArticles(0)'; }
						else if (idS == gidSectionBiz) 	 	{ strLURL = 'gotoBizCat(0)'; }
						else if (idS == gidSectionEvents) 	{ strLURL = 'showCalendar(0)'; }
						else if (idS == gidSectionMap) 	 	{ strLURL = 'showMap(0)'; }
						else if (idS == gidSectionGallery)  { strLURL = 'showGallery(0)'; }
						else if (idS == gidSectionLinks) 	{ strLURL = 'showLinks(0)'; }
						else if (idS == gidSectionPolls) 	{ strLURL = 'showPolls(0)'; }
						str += getMenuCommand(strLTitle, strLURL);
						strSide += getMenuCommandSide(strLTitle, strLURL, strMSStyle);
					}
					// add newsletter
					str += getMenuCommand('Newsletters', 'showNewsletters(1)');
					strSide += getMenuCommandSide('Newsletters', 'showNewsletters(1)', strMSStyle);
					// custom links
					if (iLastCmd2 >= iFirstCmd2) {
						str += getMenuSection('');
						strSide += getMenuSectionSide('', strMSStyle);
						for (var i = iFirstCmd2; i <= iLastCmd2; i++) {
							var strCmd = aMasthead[i];
							var aS = strCmd.split("|");
							var idLink				= aS[0];
							var strLinkTitle		= aS[1];
							var strLinkURL			= aS[2];
							var isInternal			= aS[3];
							var fOwnWindow			= aS[4];
							str += getMenuCommandExtra(strLinkTitle, strLinkURL, isInternal, fOwnWindow);
							strSide += getMenuCommandSideExtra(strLinkTitle, strLinkURL, isInternal, fOwnWindow, strMSStyle);
						}
					}
					str += '</div></div>';
					strSide += '</div>';
				str += '</td>';
				// -- custom menu
				if (iLastCmd3 >= iFirstCmd3) {
					str += '<td valign="top" >';
						if ((strMenuEd == '') || (strMenuEd == ' ')) { strMenuEd += '&nbsp;'; }
						str += getMenuHead('mh_editor_menu', strMenuEd, strMenuColor);
						str += '<div style="position:relative;"><div id="mh_editor_menu" >';
						strSide += '<div class="mh_side_menu">';
						strSide += getMenuSectionSide(strMenuEd, strMSStyle);
						// built in
						for (var i = iFirstCmd3; i <= iLastCmd3; i++) {
							var strCmd = aMasthead[i];
							var aS = strCmd.split("|");
							var idLink				= aS[0];
							var strLinkTitle		= aS[1];
							var strLinkURL			= aS[2];
							var isInternal			= aS[3];
							var fOwnWindow			= aS[4];
							str += getMenuCommandExtra(strLinkTitle, strLinkURL, isInternal, fOwnWindow);
							strSide += getMenuCommandSideExtra(strLinkTitle, strLinkURL, isInternal, fOwnWindow, strMSStyle);
						}
						str += '</div></div>';
						strSide += '</div>';
					str += '</td>';
				}
				// -- topics menu
				if (fIsAdmin || (iLastCmd4 >= iFirstCmd4)) {
					var nTPCmds = (iLastCmd4 - iFirstCmd4) + 1;
					str += '<td valign="top" >';
						str += getMenuHead('mh_topics_menu', strMenuTp, strMenuColor);
						str += '<div style="position:relative;"><div id="mh_topics_menu" >';
						strSide += '<div class="mh_side_menu">';
						strSide += getMenuSectionSide(strMenuTp, strMSStyle);
						//if (fIsAdmin || (nTPCmds >= 20)) {
							str += getMenuCommand('View All...','showTopics()');							
							strSide += getMenuCommandSide('View All...','showTopics()', strMSStyle);
							if (nTPCmds > 20)  { str += getMenuSection('featured'); strSide += getMenuSectionSide('featured', strMSStyle); }
							else if (fIsAdmin) { str += getMenuSection(''); strSide == getMenuSectionSide('', strMSStyle); }
						//}
						for (var i = iFirstCmd4; i <= iLastCmd4; i++) {
							var strCmd = aMasthead[i];
							var aS = strCmd.split("|");
							var idTopic				= aS[0];
							var strLinkTitle		= aS[1];
							var strLink				= 'showTopic('+idTopic+')'
							str += getMenuCommand(strLinkTitle, strLink);
							strSide += getMenuCommandSide(strLinkTitle, strLink, strMSStyle);
						}
						str += '</div></div>';
						strSide += '</div>';
					str += '</td>';
				}
				// -- help
				str += '<td valign="top" >';
					str += getMenuHead('mh_help_menu', strMenuHp, strMenuColor);
					str += '<div style="position:relative"><div id="mh_help_menu">';
					strSide += '<div class="mh_side_menu">';
						str += getMenuSection('reader tools');
						str += getMenuCommand('Search','showSearch()');
						strSide += getMenuSectionSide('reader tools', strMSStyle);
						strSide += getMenuCommandSide('Search','showSearch()', strMSStyle);
						if (fRSS > 0){
							var rssIcon = '';
							if (nRSSIcon > 0) { rssIcon = ' <img src="bits/rss_'+nRSSIcon+'.gif" alt="View list of RSS Feeds..." border="0">'; }
							str += getMenuCommand('Subscribe - RSS'+rssIcon,'showRSSList()');
							strSide += getMenuCommandSide('Subscribe - RSS'+rssIcon,'showRSSList()', strMSStyle);
						}
						if (fSubOn > 0){
							if ((fSub1 > 0) || (fSub2 > 0))  {
								str += getMenuCommand('Subscribe - Email','addSubscriptions()');
								strSide += getMenuCommandSide('Subscribe - Email','addSubscriptions()', strMSStyle);
							}
							str += getMenuCommand('Cancel Email Subscriptions','deleteSubscriptions()');
							strSide += getMenuCommandSide('Cancel Email Subscriptions','deleteSubscriptions()', strMSStyle);
						}
						str += getMenuCommand('Change Look','chooseSkin()');
						strSide += getMenuCommandSide('Change Look','chooseSkin()', strMSStyle);
						strSide += getMenuSectionSide('help', strMSStyle);
						strSide += getMenuCommandSide('About Us','showHelp(1)', strMSStyle);
						strSide += getMenuCommandSide('Help Topics','showHelp()', strMSStyle);
						strSide += getMenuSectionSide('contact', strMSStyle);
						strSide += getMenuCommandSide('Report a Problem','sendMessage(\'Problem Report\')', strMSStyle);
						strSide += getMenuCommandSide('Send Us a Message','sendMessage(\'General Inquiry\')', strMSStyle);
						str += getMenuSection('help');
						str += getMenuCommand('About Us','showHelp(1)');
						str += getMenuCommand('Help Topics','showHelp()');
						str += getMenuSection('contact');
						str += getMenuCommand('Report a Problem','sendMessage(\'Problem Report\')');
						str += getMenuCommand('Send Us a Message','sendMessage(\'General Inquiry\')');
						if ((nLevel >= 0) || ((fShowSignInCommand == 1) && (urlSignIn != ''))) {
							str += getMenuSection('members');
							strSide += getMenuSectionSide('members', strMSStyle);
						}
						if (nLevel >= 0) {
							str += getMenuCommand('View My Page','showMember('+idUser+')');
							str += getMenuCommand('View Member List','showMembers()');
							str += getMenuCommand('Sign Out','signOut()');
							strSide += getMenuCommandSide('View My Page','showMember('+idUser+')', strMSStyle);
							strSide += getMenuCommandSide('View Member List','showMembers()', strMSStyle);
							strSide += getMenuCommandSide('Sign Out','signOut()', strMSStyle);
						} else {
							if ((fShowSignInCommand == 1) && (urlSignIn != '')) {
								str += getMenuCommand('Sign In','signIn(\''+urlSignIn+'\')');
								strSide += getMenuCommandSide('Sign In','signIn(\''+urlSignIn+'\')', strMSStyle);
							}
						}

					str += '</div></div>';
					strSide += '</div>';
				str += '</td>';
			str += '</tr>';
			str += '</table>';
		str += '</div>';
		strSide += '</div>';
		if (fSideMenu == 1) { strSideArea += strSide; }
		strSideArea += '</div>';
		document.writeln(str);
		document.writeln(strSideArea); 

	}
	function htmlEdPowerLink (iCmd, strCmd, nSt) {
		var strCl = 'ed_pb_link';
		if (nSt == 0) { strCl = 'ed_pb_linkx'; }
		var strEPL = getEdDot(true, iCmd)+' <a href="javascript:adminCommand('+iCmd+')" class="'+strCl+'">'+strCmd+'</a><br>';
		return strEPL;
	}
	function htmlEdPowerHeader (strH, i, fOpen, strTopic) {
		var strEPL = '<div class="h2_admin"><table cellpadding="0" cellpadding="0" width="100%"><tr>';
		strEPL += '<td><a href="javascript:toggleEdPBSection(\''+i+'\')">'+strH+'<img src="bits/dlg_pop_down.gif" width="10" height="6" alt="" border="0"></a></td>';
		strEPL += '<td align="right">';
		strEPL += getEdHelp(true, strTopic);
		strEPL += '</td>';
		strEPL += '</tr></table></div>';
		strEPL += '<div id="ed_pb'+i+'" ';
		if (fOpen == 1) { strEPL += 'style="display:block"'; }
		strEPL += '>';
		return strEPL;
	}
	function toggleEdPBSection(i) {
		var id = 'ed_pb'+i;
		var strC = 'adminPB'+i;
		var d = getDOM(id,1);
		if (d.display == "block") { 
			d.display = "none";
			SetCookieYear(strC,0,"/");
		} else {
			d.display = "block";		
			SetCookieYear(strC,1,"/");
		}
	}
	
//================================
//
//	SHOW MAIN WINDOWS and DIALOGS
//
	

	function showHome() {
		location = gCGIPath + 'show_home.cgi';
	}
	function showSearch() {
		location = gCGIPath + 'show_search.cgi';
	}
	function doSearch(strTerms, nRealm, nFields,  nAndOr) {
		if (strTerms == null) { strTerms = ''; }
		if (nRealm == null)   { nRealm = 0; }
		if (nFields == null)  { nFields = 0; }
		if (nAndOr == null)   { nAndOr = 0; }
		strTerms = escape(strTerms);
		location = gCGIPath + 'show_search.cgi?SEARCH='+strTerms+'&P='+nRealm+'&F='+nFields+'&S='+nAndOr;
	}
	
	function showArticles(idTopic,id,iStart,nShow,nStatus) {
		location = gCGIPath + 'show_articles.cgi?TOPIC='+idTopic+'&ID='+id+'&ISTART='+iStart+'&NSHOW='+nShow+'&S='+nStatus;
	}
	function showArticleComments(idA, idC,nStatus) {
		location = gCGIPath + 'show_articlecomments.cgi?IDA='+idA+'&IDC='+idC+'&S='+nStatus;
	}
	function showAd(idTopic,idAd) {
		location = gCGIPath + 'show_classad.cgi?TOPIC='+idTopic+'&ID='+idAd;
	}
	function showAds(idTopic,nStatus,iStart,nShow) {
		var nSt  = 1;
		var nExp = 0;
		if (nStatus == -1) { nSt = -1; }
		if (nStatus == -2) { nExp = 1 }
		location = gCGIPath + 'show_classads.cgi?TOPIC='+idTopic+'&S='+nSt+'&EXP='+nExp+'&ISTART='+iStart+'&NSHOW='+nShow;
	}
	function showBiz(id) {
		location = gCGIPath + 'show_biz.cgi?ID='+id;
	}
	function gotoBizCat(idTopic,idShow,nStatus) {
		location = gCGIPath + 'show_bizlist.cgi?TOPIC='+idTopic+'&CAT='+idShow+'&S='+nStatus;
	}
	function showLinks(idTopic) {
		location = gCGIPath + 'show_links.cgi?TOPIC='+idTopic;
	}
	function showGallery(idTopic,iStart,nShow,nStatus) {
		location = gCGIPath + 'show_gallery.cgi?TOPIC='+idTopic+'&ISTART='+iStart+'&NSHOW='+nShow+'&S='+nStatus;
	}
	function showNewsletters(nS) {
		location = gCGIPath + 'show_newsletters.cgi?S='+nS;
	}
	function showNewsletter(id, fOwnWindow) {
		if (fOwnWindow) {
			var strCGI = 'show_newsletter.cgi?ID='+id+'&M=0';
			showWindowCGI("ViewNewsletterForPrinting",530,700,strCGI);
		} else {
			location = gCGIPath + 'show_newsletter.cgi?ID='+id+'&M=1';
		}
	}
	function showEvent(id) {
		location = gCGIPath + 'show_event.cgi?ID='+id;
	}
	function showCalendar(idTopic,strDayA,strDayZ,nView,nWeek,nExport,nStatus) {
		if (idTopic == null) { idTopic = 0; }
		if (nView == null)   { nView = 0; }
		if (nWeek == null)   { nWeek = 0; }
		if (strDayA == null) { strDayA = 0; }
		if (strDayZ == null) { strDayZ = 0; }
		if (nExport == null) { nExport = 0; }
		if (nStatus == null) { nStatus = 1; }
		location = gCGIPath + 'show_calendar.cgi?TOPIC='+idTopic+'&WEEK='+nWeek+'&VIEW='+nView+'&DAYA='+strDayA+'&DAYZ='+strDayZ+'&EXPORT='+nExport+'&S='+nStatus;
	}
	function showPolls(idTopic,id,iStart,nShow,nStatus) {
		if (idTopic == null) { idTopic = 0; }
		if (id == null)   	 { id = 0; }
		if (iStart == null)  { iStart = 0; }
		if (nShow == null)   { nShow = 0; }
		location = gCGIPath + 'show_polls.cgi?TOPIC='+idTopic+'&ID='+id+'&ISTART='+iStart+'&NSHOW='+nShow+'&S='+nStatus;
	}
	function showMap(idTopic,id,nStatus) {
		location = gCGIPath + 'show_map.cgi?TOPIC='+idTopic+'&ID='+id+'&S='+nStatus;
	}
	function showHelp(id,nStatus) {
		location = gCGIPath + 'show_help.cgi?ID='+id+'&S='+nStatus;
	}
	function showGalleryItem(idTopic,id) {
		location = gCGIPath + 'show_galleryitem.cgi?TOPIC='+idTopic+'&ID='+id;
	}
	function showBigMapX(idTopic,idMapX) {
		location = gCGIPath + 'show_mapitem.cgi?TOPIC='+idTopic+'&ID='+idMapX;
	}
	function showTopics() {
		location = gCGIPath + 'show_topics.cgi';
	}
	function showTopic(id) {
		location = gCGIPath + 'show_topic.cgi?TOPIC='+id;
	}
	function showPage(urlPath) {
		location = gCGIPath + 'show.cgi?P='+urlPath;
	}
	function showMembers(nSort,nExtra) {
		location = gCGIPath + 'show_members.cgi?SORT='+nSort+'&EXTRA='+nExtra;
	}
	function showMember(id) {
		location = gCGIPath + 'show_member.cgi?ID='+id;
	}
	function showRSSList(id) {
		location = gCGIPath + 'show_rss_list.cgi';
	}

	//	DIALOGS
	function addEvent(idTopic, nDay, nMonth, nYear) {
		if (nDay == 0) {
			var 	tToday =  new Date();		
			var 	nDay = tToday.getDate();
			var 	nMonth = tToday.getMonth()+1;
			var 	nYear = timeGetYear(tToday);
		}
		var strCGI = "dlg_event_new.cgi?TOPIC="+idTopic+"&DATE=" + nDay + ":"+ nMonth + ":"+ nYear;
		showDialogCGI("NewEvent",590,670,strCGI);
	}
	function noaddEvent () {}
	function editEventPlus(id) {
		var strCGI = "dlg_event_edit.cgi?ID="+id;
		showDialogCGI("EditEvent",590,670,strCGI);
	}
	function deleteEvent(id) {
		var strCGI = "dlg_event_del.cgi?ID="+id;
		showDialogCGI("DeleteEvent",590,360,strCGI);
	}
	function undeleteEvent(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_event_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function addAd(idTopic, nCategory) {
		var strCGI = "dlg_ad_new.cgi?TOPIC="+idTopic+"&CAT="+nCategory;
		showDialogCGI("NewClassifiedAd",590,670,strCGI);
	}
	function editAdPlus(id) {
		var strCGI = "dlg_ad_edit.cgi?ID="+id;
		showDialogCGI("EditClassifiedAd",590,670,strCGI);
	}
	function deleteAd(id) {
		var strCGI = "dlg_ad_del.cgi?ID="+id;
		showDialogCGI("DeleteClassifiedAd",590,300,strCGI);
	}
	function undeleteAd(id) {
		var fOK = confirm('This makes the ad viewable by readers AND sets it to expire 4 weeks from today. Continue?');
		if (fOK) {
			var strCGI = "submit_ad_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function addArticle(idTopic, nCategory) {
		var strCGI = "dlg_article_new.cgi?TOPIC="+idTopic+"&CAT="+nCategory;
		showDialogCGI("NewArticle",590,670,strCGI);
	}
	function editArticlePlus(id) {
		var strCGI = "dlg_article_edit.cgi?ID="+id;
		showDialogCGI("EditArticle",590,670,strCGI);
	}
	function deleteArticle(id) {
		var strCGI = "dlg_article_del.cgi?ID="+id;
		showDialogCGI("DeleteArticle",590,300,strCGI);
	}
	function undeleteArticle(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_article_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function emailArticle(id) {
		var strCGI = "dlg_article_email.cgi?ID="+id;
		showDialogCGI("DeleteArticle",590,460,strCGI);
	}
	function printArticle(id) {
		var strCGI = "show_pop_article_print.cgi?ID="+id;
		showWindowCGI("PrintArticle",500,500,strCGI);
	}
	function orderArticles(n) {
		SetCookieYear('articleOrder',n,"/");
		location.reload();
	}
	function addArticleType() {
		var strCGI = "dlg_articletype_new.cgi";
		showDialogCGI("NewArticleType",590,320,strCGI);
	}
	function editArticleType(id) {
		var strCGI = "dlg_articletype_edit.cgi?ID="+id;
		showDialogCGI("EditArticleType",590,320,strCGI);
	}
	function deleteArticleType(id) {
		var fOK = confirm('Are you sure you want to DELETE this article CATEGORY?');
		if (fOK) {
			var strCGI = "submit_articletype_del.cgi?ID="+id;
			showDialogCGI("DeleteArticleType",590,300,strCGI);
		}
	}
	function fetchAttachment(id,url) {
		var t 		= getNow(); 
		var strCGI = "show_article_attachment.cgi?ID="+id+"&F="+url+"&X="+t.getTime()+"/"+url;
		showWindowCGI("ArticleAttachment",500,500,strCGI);
	}
	function addComment(idArticle) {
		var strCGI = "dlg_articlecomment_new.cgi?A="+idArticle;
		showDialogCGI("NewArticleComment",590,670,strCGI);
	}
	function editComment(id) {
		var strCGI = "dlg_articlecomment_edit.cgi?ID="+id;
		showDialogCGI("EditArticleComment",590,670,strCGI);
	}
	function deleteComment(id) {
		var strCGI = "dlg_articlecomment_del.cgi?ID="+id;
		showDialogCGI("DeleteArticleComment",590,300,strCGI);
	}
	function addBiz(nCatagory) {
		var strCGI = "dlg_biz_new.cgi?CAT="+nCatagory;
		showDialogCGI("NewBizListing",590,670,strCGI);
	}
	function editBizPlus(id) {
		var strCGI = "dlg_biz_edit.cgi?ID="+id;
		showDialogCGI("EditBizListing",590,460,strCGI);
	}
	function deleteBiz(id) {
		var strCGI = "dlg_biz_del.cgi?ID="+id;
		showDialogCGI("DeleteBizListing",590,300,strCGI);
	}
	function undeleteBiz(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_biz_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function askBizSponsor() {
		var strCGI = "dlg_biz_sponsorinfo.cgi";
		showDialogCGI("SponsorInfo",590,400,strCGI);
	}
	function sponsorBiz(id) {
		var strCGI = "dlg_biz_sponsor.cgi?ID="+id;
		showDialogCGI("SponsorBizListing",590,400,strCGI);
	}
	 
	function addBizType() {
		var strCGI = "dlg_biztype_new.cgi";
		showDialogCGI("NewBizType",590,320,strCGI);
	}
	function editBizType(id) {
		var strCGI = "dlg_biztype_edit.cgi?ID="+id;
		showDialogCGI("EditBizType",590,320,strCGI);
	}
	function deleteBizType(id) {
		var strCGI = "dlg_biztype_del.cgi?ID="+id;
		showDialogCGI("DeleteBizType",590,300,strCGI);
	}
	function addSubscriptions() {
		var strCGI = "dlg_subscribe.cgi";
		showDialogCGI("OptSubscriptions",590,600,strCGI);
	}
	function deleteSubscriptions() {
		var strCGI = "dlg_subscribe_x.cgi";
		showDialogCGI("OptSubscriptions",590,330,strCGI);
	}
	function chooseSkin() {
		var strCGI = "dlg_options_skin.cgi";
		showDialogCGI("OptSkin",590,300,strCGI);
	}
	function addGalleryItem(idTopic) {
		var strCGI = "dlg_gallery_new.cgi?TOPIC="+idTopic;
		showDialogCGI("NewGalleryItem",590,670,strCGI);
	}
	function editGalleryItem(id) {
		var strCGI = "dlg_gallery_edit.cgi?ID="+id;
		showDialogCGI("EditGalleryItem",590,670,strCGI);
	}
	function deleteGalleryItem(id) {
		var strCGI = "dlg_gallery_del.cgi?ID="+id;
		showDialogCGI("DeleteGalleryItem",590,300,strCGI);
	}
	function undeleteGalleryItem(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_gallery_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function edchoiceGalleryItem(id) {
		var fOK = confirm('This item will appear on the frontpage, replacing what is there now. Continue?');
		if (fOK) {
			var strCGI = "submit_gallery_edchoice.cgi?ID="+id;
			showDialogCGI("EdChoiceGalleryItem",590,300,strCGI);
		}
	}
	function editMapX(idMapX) {
		var strCGI = "dlg_mapx_edit.cgi?ID="+idMapX;
		showDialogCGI("EditMapX",590,670,strCGI);
	}
	function addPoll(idTopic) {
		var strCGI = "dlg_poll_new.cgi?TOPIC="+idTopic;
		showDialogCGI("NewPoll",590,500,strCGI);
	}
	function editPoll(id) {
		var strCGI = "dlg_poll_edit.cgi?ID="+id;
		showDialogCGI("EditPoll",590,500,strCGI);
	}
	function delPoll(id) {
		var fOK = confirm('Are you sure you want to DELETE this poll? Readers will not be able to see the results anymore.');
		if (fOK) {
			var strCGI = "submit_poll_del.cgi?ID="+id;
			showDialogCGI("DeletePoll",590,300,strCGI);
		}
	}
	function undeletePoll(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_poll_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function closePoll(id) {
		var fOK = confirm('Are you sure you want to CLOSE this poll? Readers will NOT be able to vote anymore.');
		if (fOK) {
			var strCGI = "submit_poll_close.cgi?ID="+id;
			showDialogCGI("ClosePoll",590,300,strCGI);
		}
	}
	function openPoll(id) {
		var fOK = confirm('Are you sure you want to make this poll ACTIVE? Readers will be able to vote on it.');
		if (fOK) {
			var strCGI = "submit_poll_open.cgi?ID="+id;
			showDialogCGI("OpenPoll",590,300,strCGI);
		}
	}
	function addLinkType() {
		var strCGI = "dlg_linktype_new.cgi";
		showDialogCGI("NewLinkType",590,500,strCGI);
	}
	function editLinkType(idLink) {
		var strCGI = "dlg_linktype_edit.cgi?ID="+idLink;
		showDialogCGI("EditLinkType",590,500,strCGI);
	}
	function addLink(idTopic) {
		var strCGI = "dlg_link_new.cgi?TOPIC="+idTopic;
		showDialogCGI("NewLink",590,580,strCGI);
	}
	function editLink(idLink) {
		var strCGI = "dlg_link_edit.cgi?ID="+idLink;
		showDialogCGI("EditLink",590,580,strCGI);
	}
	function delLink(idLink) {
		var fOK = confirm('Are you sure you want to delete this link?');
		if (fOK) {
			var strCGI = "submit_link_del.cgi?ID="+idLink;
			showDialogCGI("DeleteLink",590,300,strCGI);
		}
	}
	function addTopicType() {
		var strCGI = "dlg_topictype_new.cgi";
		showDialogCGI("NewTopicType",590,500,strCGI);
	}
	function editTopicType(id) {
		var strCGI = "dlg_topictype_edit.cgi?ID="+id;
		showDialogCGI("EditTopicType",590,500,strCGI);
	}
	function delTopicType(id) {
		var strCGI = "submit_topictype_del.cgi?ID="+id;
		showDialogCGI("DeleteTopicType",590,300,strCGI);
	}
	function arrangeTopicTypes() {
		var strCGI = "dlg_topictype_arrange.cgi";
		showDialogCGI("ArrangeTopicTypes",590,500,strCGI);
	}
	function addTopic(){
		var strCGI = "dlg_topic_new.cgi";
		showDialogCGI("NewTopic",590,700,strCGI);
	}
	function editTopic(id) {
		var strCGI = "dlg_topic_edit.cgi?ID="+id;
		showDialogCGI("EditTopic",590,700,strCGI);
	}
	function arrangeTopics() {
		var strCGI = "dlg_topic_arrange.cgi";
		showDialogCGI("ArrangeTopics",590,500,strCGI);
	}
	function moveTopic(id,n) {
		var strCGI = "submit_topic_move.cgi?ID="+id+"&N="+n;
		showDialogCGI("MoveTopic",590,300,strCGI);
	}
	function orderTopics(n) {
		SetCookie('topicOrdering',n,'','/');
		location.reload();
	}
	function setTopicStatus(id, nS) {
		var strA = '';
		if      (nS == 0) { strA = "HIDE SECTION: Readers *won't* be able to see this section anymore. Editors always can. Continue?"; }
		else if (nS == 1) { strA = "CLOSE SECTION: Readers *won't* be able to add or change items in this section. Editors always can. Continue?"; }
		else if (nS == 2) { strA = 'OPEN SECTION: Readers will be able to add and change items in this section. Continue?'; }
		var fOK = false;
		if (strA != '') {
			fOK = confirm(strA);
		}
		if (fOK) {
			var strCGI = "submit_topic_status.cgi?ID="+id+"&S="+nS;
			showDialogCGI("SetTopicStatus",590,300,strCGI);
		}
	}
	function addHelpType() {
		var strCGI = "dlg_helptype_new.cgi";
		showDialogCGI("NewHelpType",590,500,strCGI);
	}
	function editHelpType(id) {
		var strCGI = "dlg_helptype_edit.cgi?ID="+id;
		showDialogCGI("EditHelpType",590,500,strCGI);
	}
	function addHelp(){
		var strCGI = "dlg_help_new.cgi";
		showDialogCGI("NewHelpTopic",590,700,strCGI);
	}
	function editHelp(id) {
		var strCGI = "dlg_help_edit.cgi?ID="+id;
		showDialogCGI("EditHelpTopic",590,700,strCGI);
	}
	function editHelpText(id) {
		var strCGI = "dlg_help_edittext.cgi?ID="+id;
		showDialogCGI("EditHelpTopicText",590,800,strCGI);
	}
	function delHelp(id) {
		var fOK = confirm('This will remove this topic. To temporarily hide it from readers, choose the "make pending" command instead. Continue with deleting?! ');
		if (fOK) {
			var strCGI = "submit_help_del.cgi?ID="+id;
			showDialogCGI("DeleteHelpTopic",590,300,strCGI);
		}
	}
	function undeleteHelp(id) {
		var fOK = confirm('Are you sure you want to UNDELETE this? Readers will be able to see it.');
		if (fOK) {
			var strCGI = "submit_help_undel.cgi?ID="+id;
			showDialogCGI("UndeleteItem",590,300,strCGI);
		}
	}
	function closeHelp(id) {
		var fOK = confirm('Are you sure you want to change this to pending? Readers will NOT be able to see it.');
		if (fOK) {
			var strCGI = "submit_help_close.cgi?ID="+id;
			showDialogCGI("CloseHelp",590,300,strCGI);
		}
	}
	function openHelp(id) {
		var fOK = confirm('Are you sure you want to make this visible to readers now?');
		if (fOK) {
			var strCGI = "submit_help_open.cgi?ID="+id;
			showDialogCGI("OpenHelp",590,300,strCGI);
		}
	}
	function sendMessage(strSubject) {
		strSubject = escape(strSubject);
		var strCGI = "dlg_message_new.cgi?SUBJECT="+strSubject;
		showDialogCGI("SendMessage",590,450,strCGI);
	}
	function sendMemberMessage() {
		var strCGI = "dlg_message_member_new.cgi";
		showDialogCGI("SendMessage",590,400,strCGI);
	}
	function assignMessage(id) {
		var strCGI = "dlg_message_assign.cgi?ID="+id;
		showDialogCGI("AssignMessage",590,320,strCGI);
	}
	function forwardMessage(id) {
		var strCGI = "dlg_message_forward.cgi?ID="+id;
		showDialogCGI("ForwardMessage",590,450,strCGI);
	}
	function replyMessage(id) {
		var strCGI = "dlg_message_reply.cgi?ID="+id;
		showDialogCGI("ReplyMessage",590,450,strCGI);
	}
	function viewMessage(id) {
		var strCGI = "show_admin_msg.cgi?ID="+id;
		showDialogCGI("ViewMessage",460,300,strCGI);
	}
	function delMessage(id, nLoc) {
		location = gCGIPath + 'submit_message_del.cgi?ID='+id+'&LOC='+nLoc;
	}
	function saveMessage(id) {
		location = gCGIPath + 'submit_message_save.cgi?ID='+id;
	}
	function toInboxMessage(id) {
		location = gCGIPath + 'submit_message_toinbox.cgi?ID='+id;
	}
	function chartStats(strType, id) {
		var strCGI = "show_admin_statschart.cgi?V="+strType+"&ID="+id;
		showDialogCGI("StatChart",650,400,strCGI);
	}
	function editMember(id) {
		var strCGI = "dlg_member_edit.cgi?ID="+id;
		showDialogCGI("EditMember",590,800,strCGI);
	}
	function resetMemberPassword(id) {
		var strCGI = "dlg_member_password.cgi?ID="+id;
		showDialogCGISecure("EditMemberPassword",590,400,strCGI);
	}
	function showInfoWindow(idInfo) {
		var strCGI = "show_infotip.cgi?ID="+idInfo;
		showDialogCGI("InfoTip",350,500,strCGI);
	}

	
	//  CREATE DIALOG WINDOWS
	// -- Create minimum-crome client side browser window
	function wndOpenNewDialog(strWndName, dxPref, dyPref) {
		var dx = screen.width - 80 ;
		var dy = screen.height - 160;
		if (dxPref > dx) {dxPref = dx;}
		if (dyPref > dy) {dyPref = dy;}
		var strParams = "scrollbars,status,resizable,width=" + dxPref +",height="+ dyPref;
		var wndNew = window.open("",strWndName,strParams);
		var xWnd = parseInt((dx + 70 - dxPref)/2);
		if (xWnd < 10) { xWnd = 10; }
		wndNew.moveTo(xWnd,82);
		return wndNew;
	}
	// open dialog in own window
	function showDialog(strName,dx,dy,strURL) {
		var wndName = "wnd"+strName;
		var strPath = gWWWPath+strURL;
		var wndNew = wndOpenNewDialog(wndName,dx,dy);
		if (wndNew != null) {
			wndNew.location = strPath;
			wndNew.focus();
		} else {
			alert("Sorry, the "+strName+" window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
		}
	}	
	// -- Call cgi program to return correct dialog html for the client side window
	function showDialogCGI(strName,dx,dy,strCGI) {
		var wndName = "wnd"+strName;
		var strCGIPath = gCGIPath+strCGI;
		var wndNew = wndOpenNewDialog(wndName,dx,dy);
		if (wndNew != null) {
			wndNew.location = strCGIPath;
			wndNew.focus();
		} else {
			alert("Sorry, the "+strName+" window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
		}
	}	
	// -- Call cgi program securely to return correct dialog html for the client side window
	function showDialogCGISecure(strName,dx,dy,strCGI) {
		var wndName = "wnd"+strName;
		var strCGIPath = gCGIPathSecure+strCGI;
		var wndNew = wndOpenNewDialog(wndName,dx,dy);
		if (wndNew != null) {
			wndNew.location = strCGIPath;
			wndNew.focus();
		} else {
			alert("Sorry, the "+strName+" window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
		}
	}	
	// -- Create high-chrome client side browser window	
	function wndOpenNewWindow(strWndName, dxPref, dyPref) {
		var dx = screen.width - 80 ;
		var dy = screen.height - 160;
		if (dxPref > dx) {dxPref = dx;}
		if (dyPref > dy) {dyPref = dy;}
		var strParams = "status,menubar,scrollbars,resizable,width=" + dxPref +",height="+ dyPref;
		var wndNew = window.open("",strWndName,strParams);
		var xWnd = parseInt((dx + 70 - dxPref)/2);
		if (xWnd < 10) { xWnd = 10; }
		wndNew.moveTo(xWnd,82);
		return wndNew;
	}
	// -- Call cgi program securely to return correct dialog html for the client side window
	function showWindowCGI(strName,dx,dy,strCGI) {
		var wndName = "wnd"+strName;
		var strCGIPath = gCGIPath+strCGI;
		var wndNew = wndOpenNewWindow(wndName,dx,dy);
		if (wndNew != null) {
			wndNew.location = strCGIPath;
			wndNew.focus();
		} else {
			alert("Sorry, the "+strName+" window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
		}
	}	
	
	// EXTERNAL DOCUMENT WINDOWS
	// -- create href for external website
	function getWebsiteHref(strURL) {
		var str = '';
		var urlEscaped = escape(strURL);
		if (strURL.substring(0,2) == '..') {								
			str += ' href="javascript:showPage(\''+strURL+'\')" ';
		} else {
			str += ' href="'+gCGIPath+'show_website.cgi?URL='+urlEscaped+'" target="_blank" ';
		}
		return str;
	}
	function getWebsiteHrefPlus(strURL,IsInternalLink) {
		var str = '';
		var urlEscaped = escape(strURL);
		if (IsInternalLink == 1) {							
			str += ' href="'+gCGIPath+'show_website.cgi?URL='+urlEscaped+'" ';
		} else {
			str += ' href="'+gCGIPath+'show_website.cgi?URL='+urlEscaped+'" target="_blank" ';
		}
		return str;
	}
	
// =======================
//
//	ADMIN FEATURES
//
	function signIn(urlSignIn) {
		showDialogCGISecure("SignIn",590,300,urlSignIn);
	}
	function signOut() {
		var strCGI = "submit_signout.cgi";
		document.location = gCGIPath+strCGI;
	}
	function loginExpired() {
		location = gCGIPath + 'show_home.cgi?EXPIRED=1';
	}
	function adminHelp(strHelp) {
		var urlCGI = 'http://www.stonebreakerdesigns.com/cgi-bin/tidehelp/TidelineHelp.cgi?T='+strHelp;
		var wndNew = wndOpenNewWindow("AdminHelp",900,600);
		if (wndNew != null) {
			wndNew.location = urlCGI;
			wndNew.focus();
		} else {
			alert("Sorry, the help window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
		}
	}
	function adminCommand(iCommand) {
		var urlCGI = '';
		var fDlg = true;
		if (iCommand == 1) { urlCGI = gCGIPath+"admin_show_sessions.cgi"; }
		else if (iCommand == 2) { urlCGI = gCGIPath+"admin_show_db.cgi"; }
		else if (iCommand == 3) { urlCGI = gCGIPath+"admin_checktmpdir.cgi"; }
		else if (iCommand == 4) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=2"; }
		else if (iCommand == 5) { urlCGI = gCGIPath+"dlg_adminoptions_event.cgi"; }
		else if (iCommand == 6) { urlCGI = gCGIPath+"dlg_adminoptions_ad.cgi"; }
		else if (iCommand == 7) { urlCGI = gCGIPath+"dlg_adminoptions_biz.cgi"; }
		else if (iCommand == 8) { urlCGI = gCGIPath+"dlg_adminoptions_article.cgi"; }
		else if (iCommand == 9) { urlCGI = gCGIPath+"dlg_adminoptions_masthead_images.cgi"; }
		else if (iCommand == 10) { urlCGI = gCGIPath+"dlg_adminoptions_link.cgi"; }
		else if (iCommand == 11) { urlCGI = gCGIPath+"dlg_adminoptions_masthead.cgi"; }
		else if (iCommand == 12) { urlCGI = gCGIPath+"dlg_adminoptions_gallery.cgi"; }
		else if (iCommand == 13) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=1"; }
		else if (iCommand == 14) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=0"; }
		else if (iCommand == 15) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=3"; }
		else if (iCommand == 16) { urlCGI = gCGIPath+"dlg_adminoptions_poll.cgi"; }
		else if (iCommand == 17) { urlCGI = gCGIPath+"dlg_adminoptions_subscribe.cgi"; }
		else if (iCommand == 18) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=4"; }
		else if (iCommand == 19) { urlCGI = gCGIPath+"dlg_adminoptions_tidepool.cgi"; }
		else if (iCommand == 20) { urlCGI = gCGIPath+"dlg_adminoptions_weather.cgi"; }
		else if (iCommand == 21) { urlCGI = gCGIPath+"dlg_adminoptions_membership.cgi"; }
		else if (iCommand == 22) { urlCGI = gCGIPath+"dlg_adminoptions_searchengines.cgi"; }
		else if (iCommand == 23) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=5"; }
		else if (iCommand == 24) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=6"; }
		else if (iCommand == 25) { urlCGI = gCGIPath+"dlg_adminoptions_map.cgi"; }
		else if (iCommand == 26) { urlCGI = gCGIPath+"dlg_adminoptions_skins.cgi"; }
		else if (iCommand == 27) { urlCGI = gCGIPath+"dlg_ednote_edit.cgi"; }
		else if (iCommand == 28) { urlCGI = gCGIPath+"dlg_adminoptions_topics.cgi"; }
		else if (iCommand == 29) { urlCGI = gCGIPath+"dlg_adminoptions_images.cgi"; }
		else if (iCommand == 30) { urlCGI = gCGIPath+"dlg_adminoptions_images_custom.cgi?N=1"; }
		else if (iCommand == 31) { urlCGI = gCGIPath+"dlg_adminoptions_images_custom.cgi?N=2"; }
		else if (iCommand == 32) { urlCGI = gCGIPath+"dlg_attachtype_list.cgi"; }
		else if (iCommand == 33) { urlCGI = gCGIPath+"dlg_adminoptions_newsletter.cgi"; }
		else if (iCommand == 34) { urlCGI = gCGIPath+"dlg_adminoptions_search.cgi"; }
		else if (iCommand == 35) { urlCGI = gCGIPath+"dlg_adminoptions_subscribe_x.cgi"; }
		else if (iCommand == 36) { urlCGI = gCGIPath+"dlg_adminoptions_marketplace.cgi"; }
		else if (iCommand == 37) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=7"; }
		else if (iCommand == 38) { urlCGI = gCGIPath+"dlg_adminoptions_rss.cgi"; }
		else if (iCommand == 39) { urlCGI = gCGIPath+"dlg_adminoptions_tus.cgi"; }
		else if (iCommand == 40) { urlCGI = gCGIPath+"admin_nightly.cgi?UPDATE=8"; }
		
		else if (iCommand == 105) { urlCGI = gCGIPath+"dlg_admintopics_event.cgi?ID="+gidCurTopic; }
		else if (iCommand == 106) { urlCGI = gCGIPath+"dlg_admintopics_ad.cgi?ID="+gidCurTopic; }
		else if (iCommand == 107) { urlCGI = gCGIPath+"dlg_admintopics_biz.cgi?ID="+gidCurTopic; }
		else if (iCommand == 108) { urlCGI = gCGIPath+"dlg_admintopics_article.cgi?ID="+gidCurTopic; }
		else if (iCommand == 110) { urlCGI = gCGIPath+"dlg_admintopics_link.cgi?ID="+gidCurTopic; }
		else if (iCommand == 112) { urlCGI = gCGIPath+"dlg_admintopics_gallery.cgi?ID="+gidCurTopic; }
		else if (iCommand == 116) { urlCGI = gCGIPath+"dlg_admintopics_poll.cgi?ID="+gidCurTopic; }
		else if (iCommand == 125) { urlCGI = gCGIPath+"dlg_admintopics_map.cgi?ID="+gidCurTopic; }
		
		else if (iCommand == 200) { urlCGI = gCGIPath+"show_admin_review.cgi"; fDlg = false; }
		else if (iCommand == 201) { urlCGI = gCGIPath+"show_admin_summary.cgi"; fDlg = false; }
		else if (iCommand == 202) { urlCGI = gCGIPath+"show_admin_msgs.cgi"; fDlg = false; }
		else if (iCommand == 203) { urlCGI = gCGIPath+"show_admin_msgs_saved.cgi"; fDlg = false; }
		else if (iCommand == 204) { urlCGI = gCGIPath+"show_admin_sponsors.cgi"; fDlg = false; }
		else if (iCommand == 206) { urlCGI = gCGIPath+"show_members.cgi"; fDlg = false; }
	
		if (urlCGI != '') {
			if (fDlg) {
				var wndNew = wndOpenNewWindow("AdminTool",590,700);
				if (wndNew != null) {
					wndNew.location = urlCGI;
					wndNew.focus();
				} else {
					alert("Sorry, the Admin window could not be opened. Please try again. If you continue having troubles, please let us know. Thank you.");
				}
			} else {
				location = urlCGI;
			}
		} else {
			alert("Sorry, you requested a command that doesn't exist. Command ID ="+iCommand);
		}
	}
	
	function getEdDot(fIsAdmin,idCmd) {
		var strR = '';
		if (fIsAdmin) {
			strR += '<a href="javascript:adminCommand('+idCmd+')" title="Change preferences...">';
			strR += '<img src="'+gWWWPath+'bits/ed-dot.gif" width="12" height="12" alt="Change preferences..." border="0" onmouseover="this.src=\''+gWWWPath+'bits/ed-dot2.gif\'" onmouseout="this.src=\''+gWWWPath+'bits/ed-dot.gif\'" style="padding-left:2px;">';
			strR += '</a>';
		}
		return strR;
		
	}
	function getEdHelp(fIsAdmin,strHelpTopic) {
		var strR = '';
		if (fIsAdmin) {
			strR += '<a href="javascript:adminHelp(\''+strHelpTopic+'\')" title="Help info...">';
			strR += '<img src="'+gWWWPath+'bits/ed-help.gif" width="12" height="12" alt="Help info..." border="0" onmouseover="this.src=\''+gWWWPath+'bits/ed-help2.gif\'" onmouseout="this.src=\''+gWWWPath+'bits/ed-help.gif\'" style="padding-left:2px;">';
			strR += '</a>';
		}
		return strR;
		
	}

//================================
//
//	PRODUCT FUNCTIONS
//

	function togglePopOpen(id){
		var d = getDOM(id,1);
		if (d.display == "block") { 
			d.display = "none";
		} else {
			d.display = "block";		
		}
	}
	
	function toggleMenu(id){
		var d = getDOM(id,1);
		if (d.visibility == "visible") { 
			d.visibility = "hidden";
		} else {
			d.visibility = "visible";		
		}
	}
	
//================================
//
//	SKINS
//

	function changeSkin(idSkin) {
		SetCookieYear('skin',idSkin,"/");
		top.location.reload();
	}

//================================
//
//	HTML HELPERS
//

	function htmlRSSListLink(iconRSS, strRSS, strClass, fEmailOn) {
		var str = '';
		var urlRSSIcon = '';
		if (iconRSS > 0 )   { urlRSSIcon = 'rss_'+iconRSS+'.gif'; }
		if (strRSS == '')   { strRSS = 'RSS'; }
		if (strClass != '') { strClass = ' class="'+strClass+'" ';				
						}		
		str += '<table cellspacing="1" cellpadding="0"><tr>';
			str += '<td valign="middle" '+strClass+'>Subscribe via&nbsp;</td>';
			if (urlRSSIcon != '') {
				str += '<td valign="middle" '+strClass+'>';
					str += '<a href="javascript:showRSSList()" title="View list of RSS Feeds..." '+strClass+'>';
					str += '<img src="bits/'+urlRSSIcon+'" alt="View list of RSS Feeds..." border="0">';				
					str += '</a>';
				str += '</td>';
			}
			str += '<td valign="middle" '+strClass+'>';
				str += '&nbsp;<a href="javascript:showRSSList()" title="View list of RSS Feeds..." '+strClass+'>' + strRSS + '</a>';
			str += '</td>';
			if (fEmailOn) {
				str += '<td valign="middle" '+strClass+'>&nbsp;'+getFooterDivider()+'&nbsp;<a href="javascript:addSubscriptions();" '+strClass+'>email</a></td>';
			}
		str += '</tr></table>';
		return str
	}

//================================
//
//	ADS
//
	function showAdImage(idAd, idImgDiv, urlAdPhoto) {
		var str = '<img src="ads/ad_'+idAd+'/'+urlAdPhoto+'" width="180" alt="" border="1" onclick="hideAdImage('+idAd+',\''+idImgDiv+'\',\''+urlAdPhoto+'\')" >';
		var dom 	 = getDOM(idImgDiv,0);
		dom.innerHTML = str;
	}
	function hideAdImage(idAd, idImgDiv, urlAdPhoto) {
		var str = '<img src="bits/photo.gif" width="180" alt="" border="1"  title="Click to view photo..."  alt="Click to view photo..." onclick="showAdImage('+idAd+',\''+idImgDiv+'\',\''+urlAdPhoto+'\')" >';
		var dom 	 = getDOM(idImgDiv,0);
		dom.innerHTML = str;
	}
	function drawAdList(aAds, idAdTypeMatch, fIsAdmin, fCanPost, nStatusShow, nFormat, nMax) {
		var str = ''; 	
		var nPixSoFar = 0;
		var nAds = aAds.length - 1;
		var iAd = 0;
		for (var i = 0; i < nAds; i++) {
			var aA = aAds[i].split("|");
			var idAd			= aA[0];
			var idAdType		= aA[1];
			var strAdType		= aA[2];
			var tStart 			= aA[3];
			var tFinish			= aA[4];
			var strAuthor 		= aA[5];
			var strTitle 		= aA[6];
			var strDescription	= aA[7];
			var urlPhoto 		= aA[8];
			var strEmail 		= aA[9];
			var urlWebsite 		= aA[10];
			var nModifiedDays	= aA[11];
			var strDelDate		= aA[12];
			var nExpDays		= aA[13];
			var nStatus			= aA[14];
			
			if ((idAdTypeMatch <= 0) || (idAdTypeMatch == idAdType)) {
				
				str += '<div class="ad_area">';
					// TITLE
					str += '<div class="ad_title">';
						if (nFormat == 0) { str += '<a class="ad_title" href="javascript:togglePopOpen(\'fp_a'+idAd+'\');" title="click to open and close...">'; }
						str += strTitle;
						if (nModifiedDays <= gnModifiedDaysNew ) { str += '<img src="bits/updated2.gif" width="11" height="11" alt="New or Updated" title="New or Updated" border="0">';					}
						if (nFormat == 0) { str += '</a>'; }
					str += '</div>';
					
					if (nFormat == 0) { str += '<div id="fp_a'+idAd+'" style="display:none">'; }
						// PHOTO
						if (urlPhoto != '') {
							str += '<div class="ad_pix">';
								str += '<div id="img_ad'+idAd+'">';
								if (nPixSoFar == 0) {
									str += '<img src="ads/ad_'+idAd+'/'+urlPhoto+'" width="180" alt="" border="1" onclick="hideAdImage('+idAd+',\'img_ad'+idAd+'\',\''+urlPhoto+'\')" >';
									nPixSoFar++;
								} else {
									str += '<img src="bits/photo.gif" title="Click to view photo..."  alt="Click to view photo..." border="1" onclick="showAdImage('+idAd+',\'img_ad'+idAd+'\',\''+urlPhoto+'\')" width="180" style="cursor:pointer">';
								}
								str += '</div>';
							str += '</div>';
						}
						
						// TEXT 
						str += '<div class="ad_text">';
							if (nExpDays > 0) {
								str += '<b>AD EXPIRED: '+tFinish+'</b><br>';
							}
							str += strDescription;
						str += '</div>';
						
						// FOOTER
						str += '<div class="ad_ftr">';
							fShowDivider = false;
							str += 'by '+strAuthor;
							fShowDivider = true;
							if (strEmail != "") {
								if (fShowDivider) { str += getFooterDivider(); }
								str += '<a class="ad_ftr" href="' + createMailString(strEmail) + '">email</a>';
								fShowDivider = true;
							}
							if (urlWebsite != "") {
								if (fShowDivider) { str += getFooterDivider(); }
								str += '<a class="ad_ftr" ';
								str += getWebsiteHref(urlWebsite);
								str += '>website</a>';
								fShowDivider = true;
							} 
							if (fCanPost && (nStatus > 0)) {
								if (fShowDivider) { str += getFooterDivider(); }
								str += '<a class="ad_ftr" href="javascript:editAdPlus('+ idAd + ')">edit</a>';
								fShowDivider = true;
								if (fShowDivider) { str += getFooterDivider(); }
								str += '<a class="ad_ftr" href="JavaScript:deleteAd('+ idAd + ')">del</a>';
								fShowDivider = true;
							}
							if (fIsAdmin && (nStatus < 0)) {
								if (strDelDate == '') { strDelDate = '(unknown date)'; }
								if (fShowDivider) { str += getFooterDivider(); }
								str += '<span class="ad_ftr">Deleted on '+strDelDate + getFooterDivider() + '</span>';
								str += '<a class="ad_ftr" href="javascript:undeleteAd('+ idAd + ')">undelete</a>';
								fShowDivider = true;
							}
					str += '</div>';
				if (nFormat == 0) { str += '</div>'; }
	
				str += '</div>';
				document.writeln(str);
				str = '';
			}
		} 
	}


//================================
//
//	GALLERY
//
	function drawGalleryList(aGallery, fIsAdmin, nFormat, nLayout, idTopic, nStatusShow) {
		var str = ''; 	
		var dxCol1 = 280;
		var dxCol2 = 280;
		var dxCol3 = 220;
		var iCol = 1;
		
		if (nLayout == 1) { str += '<table width="760" cellspacing="0" cellpadding="0">'; }
		
		for (var i = 0; i < aGallery.length - 1; i++) {
			var aA = aGallery[i].split("|");
			var idG				= aA[0];
			var strAuthor 		= aA[1];
			var strTitle 		= aA[2];
			var strDescription	= aA[3];
			var urlPhoto 		= aA[4];
			var strEmail 		= aA[5];
			var urlWebsite 		= aA[6];
			var nModifiedDays	= aA[7];
			var strDate			= aA[8];
			
			if (nLayout == 1) {
				if 		(iCol == 1) { str += '<tr><td width="'+dxCol1+'" valign="top" ><div style="margin-right:60px;">';	}
				else if (iCol == 2) { str += '<td width="'+dxCol2+'" valign="top" ><div style="margin-right:60px;">';	}
				else if (iCol == 3) { str += '<td width="'+dxCol3+'" valign="top" ><div style="margin-right:0px;">';	}
			}

			str += '<div id="ga_area_'+i+'" class="ga_area">';
				str += htmlInnerOneGallery(aA, fIsAdmin, nFormat, nLayout, idTopic, nStatusShow)
			str += '</div>';

			if (nLayout == 1) {
				if 		(iCol == 1) { str += '</div></td>';	}
				else if (iCol == 2) { str += '</div></td>';	}
				else if (iCol == 3) { str += '</div></td></tr>';	}
			}
			document.writeln(str);
			str = '';
			
			iCol++;
			if (iCol > 3) { iCol = 1; }

		}

		if (nLayout == 1) {	
			if (iCol == 2) { str += '<td width="'+dxCol2+'" valign="top" >&nbsp;</div></td>';}
			if (iCol >= 2) { str += '<td width="'+dxCol3+'" valign="top" >&nbsp;</div></td></tr>';	}
			str += '</table>';	
		}
		document.writeln(str);
		
	}

	function htmlInnerOneGallery(aA, fIsAdmin, nFormat, nLayout, idTopic, nStatusShow) {
			var idG				= aA[0];
			var strAuthor 		= aA[1];
			var strTitle 		= aA[2];
			var strDescription	= aA[3];
			var urlPhoto 		= aA[4];
			var strEmail 		= aA[5];
			var urlWebsite 		= aA[6];
			var nModifiedDays	= aA[7];
			var strDate			= aA[8];
			
			var str = '';
			// PHOTO
			if (urlPhoto != '') {
				str += '<div class="ga_pix">';
					str += '<a href="javascript:showGalleryItem('+idTopic+','+idG+');" title="Click to view \''+strTitle+'\' by '+strAuthor+'...">'; 
					str += '<img src="gallery/gallery_'+idG+'/thumb_'+urlPhoto+'" alt="Click to view \''+strTitle+'\' by '+strAuthor+'..."  title="Click to view \''+strTitle+'\' by '+strAuthor+'..." width="200" border="1">';
					str += '</a>';
				str += '</div>';
			}
			
			if ((nFormat == 1) || (urlPhoto == '')) {
				// TITLE
				str += '<div class="ga_title">';
					str += '<a class="ga_title" href="javascript:showGalleryItem('+idTopic+','+idG+');" title="Click to view \''+strTitle+'\' by '+strAuthor+'...">'; 
					str += strTitle;
					if (nModifiedDays <= gnModifiedDaysNew ) { str += '<img src="bits/updated2.gif" width="11" height="11" alt="New or Updated" title="New or Updated" border="0">';					}
					str += '</a>'; 
				str += '</div>';
				// TEXT 
				str += '<div class="ga_text">';
					str += makeURLsHot(strDescription);
				str += '</div>';
			}
			
			// DATE
			if (nLayout == 1) {
				str += '<div class="ga_date">'+strDate+'</div>';
			}
			
			// FOOTER
			str += '<div class="ga_ftr">';
				fShowDivider = false;
				str += 'by '+strAuthor;
				fShowDivider = true;
				if (fShowDivider) { str += getFooterDivider(); }
				if (nStatusShow < 0) {
						str += '<a class="ga_ftr" href="javascript:undeleteGalleryItem('+idG+');">undelete</a>';					
				} else {
					if (urlPhoto != "") {
						str += '<a class="ga_ftr" href="javascript:showGalleryItem('+idTopic+','+idG+');">view big</a>';
					} else {
						str += '<a class="ga_ftr" href="javascript:showGalleryItem('+idTopic+','+idG+');">view details</a>';						
					}
				}
				fShowDivider = true;
			str += '</div>';

			return str;
	}
	
//================================
//
//	POLL
//
	function votePoll() {
		var frm = document.frmPoll;
		var id = frm.ID.value;
		var nChoice = 0;
		for (var i = 0; i <= 5; i++) {
			if (frm.CHOICE[i].checked) {
				nChoice = i+1;
				break;
			}
		}
		if (nChoice == 0) {
			alert('Please select an answer submitting your vote.');
			return false;
		} else {
			var strCGI = "submit_poll_vote.cgi?ID="+id+"&CHOICE="+nChoice;
			showDialogCGI("PollVote",590,300,strCGI);
			return false;
		}
	}

	function votePendingPoll(frm) {
		alert('This Poll is not open and ready to accept votes yet.');
		return false;
	}

	function drawPoll(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic) {
		var aP = strEditRecord.split('|');
		var idPoll	 			= aP[0];
		var nStatus				= aP[20];
		
		var strTypeToDraw			= 'results';
		
		if (nStatus == 2) { 
			// -- ACTIVE
			if (acceptsCookies()) {
				var idsPollsVoted = GetCookie('pollsvoted');
				var idThisPoll	  = ':'+idPoll+':'
				var nTestLoc
				if (isNotEmpty(idsPollsVoted) && (idsPollsVoted.indexOf(idThisPoll, 0) >= 0)) {
					strTypeToDraw = 'results';
				} else {
					strTypeToDraw = 'active';
				}
			}
		} else if (nStatus == 0) {
			strTypeToDraw = 'pending';
		}
		
		if (strTypeToDraw == 'results') {
			drawPollResults(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic);
		} else if (strTypeToDraw == 'active') {
			drawActivePoll(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic);
		} else {
			drawActivePoll(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic);
		}

	}

	function drawActivePoll(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic) {
		var str = ''; 	
		var aP = strEditRecord.split('|');
		var idPoll	 			= aP[0];
		var idPollType 			= aP[1];
		var strDate				= aP[2];
		var strTitle			= aP[3];
		var strQ				= aP[4];
		var strC1				= aP[5];
		var strC2				= aP[6];
		var strC3				= aP[7];
		var strC4				= aP[8];
		var strC5				= aP[9];
		var strC6				= aP[10];
		var strButtonLabel		= aP[19];
		var nStatus				= aP[20];
			
		var strStyleEx = '';
		if (fOnFrontpage) { strStyleEx = '_fp'; }
		
		str += '<div class="po_area'+strStyleEx+'">';
		
			var strFrmReturn = 'votePendingPoll()';
			if (nStatus == 2) { strFrmReturn = 'votePoll()'; }
			str += '<form name="frmPoll" method="POST" action="" enctype="multipart/form-data" onSubmit="return false;" style="margin-bottom:0px;">';
				// DATE
				if (nFormat == 1) {
					str += '<div class="po_date'+strStyleEx+'">'+ strDate+'</div>';
				}
				// TITLE
				str += '<div class="po_title'+strStyleEx+'">'+ strTitle+'</div>';
				str += '<table style="table-layout:fixed">';
					// FORCE SIZING
					str += '<COL WIDTH="25"><COL WIDTH="25">'; 
					// Q
					str += '<tr><td valign="top"><div class="po_Q'+strStyleEx+'">Q</div></td>';
					str += '<td colspan="2" valign="bottom"><div class="po_qst'+strStyleEx+'"> '+ strQ+'</div></td></tr>';
					// choices
					if (strC1 != '') { 
						str += '<tr><td><div style="margin-left:12px;">&nbsp;</div></td><td width="26"><input type="Radio" name="CHOICE" value="1"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC1+'</div></td></tr>';
					}
					if (strC2 != '') { 
						str += '<tr><td>&nbsp;</td><td width="20"><input type="Radio" name="CHOICE" value="2"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC2+'</div></td></tr>';
					}
					if (strC3 != '') { 
						str += '<tr><td>&nbsp;</td><td width="20"><input type="Radio" name="CHOICE" value="3"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC3+'</div></td></tr>';
					}
					if (strC4 != '') { 
						str += '<tr><td>&nbsp;</td><td width="20"><input type="Radio" name="CHOICE" value="4"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC4+'</div></td></tr>';
					}
					if (strC5 != '') { 
						str += '<tr><td>&nbsp;</td><td width="20"><input type="Radio" name="CHOICE" value="5"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC5+'</div></td></tr>';
					}
					if (strC6 != '') { 
						str += '<tr><td>&nbsp;</td><td width="20"><input type="Radio" name="CHOICE" value="6"></td>';
						str += '<td valign="bottom"><div class="po_c'+strStyleEx+'">'+strC6+'</div></td></tr>';
					}
				str += '</table>';
				// hidden id
				str += '<input type="hidden" name="ID" value="'+idPoll+'">';
				// page redirect info
				var strLoc = idPoll;
				if (fOnFrontpage) { strLoc = 0; }
				str += '<input type="hidden" name="LOC" value="'+strLoc+'">';
				// button
				if (strButtonLabel == '') { strButtonLabel = 'Vote'; }
				str += '<div class="po_btn_area'+strStyleEx+'">';
					str += '<input type="BUTTON" value="'+strButtonLabel+'" class="po_btn" onclick="'+strFrmReturn+'"><br>';
					str += 'Vote to see results';
				str += '</div>';
			str += '</form>';
			
		str += '</div>';
		str += getPollFooter(fIsAdmin, idPoll, idPollType, nStatus, idTopic);
		document.writeln(str);
		
	}
	
	function drawPollResults(strEditRecord, fIsAdmin, nFormat, fOnFrontpage, idTopic) {
		var str = ''; 	
		var aP = strEditRecord.split('|');
		var idPoll	 			= aP[0];
		var idPollType 			= aP[1];
		var strDate				= aP[2];
		var strTitle			= aP[3];
		var strQ				= aP[4];
		var strC1				= aP[5];
		var strC2				= aP[6];
		var strC3				= aP[7];
		var strC4				= aP[8];
		var strC5				= aP[9];
		var strC6				= aP[10];
		var nV1					= parseInt(aP[11]);
		var nV2					= parseInt(aP[12]);
		var nV3					= parseInt(aP[13]);
		var nV4					= parseInt(aP[14]);
		var nV5					= parseInt(aP[15]);
		var nV6					= parseInt(aP[16]);
		var nAnswer				= parseInt(aP[17]);
		var strAnswerInfo		= aP[18];
		var strButtonLabel		= aP[19];
		var nStatus				= aP[20];
		
		var nVTotal = nV1 + nV2 + nV3 + nV4 + nV5 + nV6;
		if (idPollType == 0) { nAnswer = 0; }
		var strStyleEx = '';
		if (fOnFrontpage) { strStyleEx = '_fp'; }
			
		str += '<div class="po_area'+strStyleEx+'">';
		
				// DATE
				if (nFormat == 1) {
					str += '<div class="po_date'+strStyleEx+'">'+ strDate+'</div>';
				}
				// TITLE
				str += '<div class="po_title'+strStyleEx+'">'+ strTitle+'</div>';
				str += '<table>'; 
					// Q
					str += '<tr><td><div class="po_Q'+strStyleEx+'">Q</div></td>';
					str += '<td colspan="2"><div class="po_qst'+strStyleEx+'"> '+ strQ+'</div></td></tr>';
				str += '</table>'; 
				str += '<table>'; 
					// choices
					for (var i = 1; i <= 6; i++) {
						var strC = '';
						var nV   = 0;
						eval('strC = strC'+i);
						if (strC != '') { 
							eval('nV = nV'+i);
							var nPer = Math.round((nV * 100) / nVTotal);
							var pxPer = parseInt((nPer + 1) / 2);
							var pxPerEmpty = 50 - pxPer;
							str += '<tr>';
								str += '<td>';
									if (nAnswer == i) {
										str += '<div class="po_bar_correct'+strStyleEx+'">';
									} else {
										str += '<div class="po_bar'+strStyleEx+'">';
									}
										var pxH = 14;
										if (fOnFrontpage) { pxH = 11; }
										str += '<img src="spacer.gif" width="'+pxPerEmpty+'" height="'+pxH+'" alt="" border="0">';
										if (nPer > 0) {
											str += '<img src="bits/pollbar.gif" width="'+pxPer+'" height="'+pxH+'" alt="" border="0">';
											str += '<div class="po_per'+strStyleEx+'">'+nPer+'%</div>';
										}
									str += '</div>';
								str += '</td>';
								str += '<td valign="top">';
									if (nAnswer == i) {
										str += '<div class="po_c_yes'+strStyleEx+'">'+strC+'';
									} else {
										str += '<div class="po_c'+strStyleEx+'">'+strC;
									}
									if (nFormat == 1) {
										str += ' <span class="po_vot'+strStyleEx+'">('+nV+' votes)</span>';
									}
									str += '</div>';
								str += '</td>';
							str += '</tr>';
						}
					}
				str += '</table>';
				if (nAnswer > 0) {
					str += '<table>'; 
						// A
						var strA = eval('strC'+nAnswer);
						str += '<tr><td><div class="po_Q'+strStyleEx+'">A</div></td>';
						str += '<td colspan="2"><div class="po_ans'+strStyleEx+'"> ';
							str += strA;
							if (nFormat == 0) {
								str += ' <a href="javascript:showPolls('+idTopic+','+idPoll+')" class="po_ainfo'+strStyleEx+'">(more info...)</a>';
							}
						str += '</div></td></tr>';
						if (strAnswerInfo != '') {
							str += '<tr><td>&nbsp;</td><td><div class="po_ainfo'+strStyleEx+'">';
							if (nFormat == 1) {
								str += makeURLsHot(strAnswerInfo);
							}
							str += '</div></td></tr>';
						}
					str += '</table>'; 
				}
				
		// RESULTS LABEL
		str += '<div class="po_r_lbl'+strStyleEx+'">results from '+nVTotal+' votes</div>';
		str += '</div>';

		// FOOTER
		str += getPollFooter(fIsAdmin, idPoll, idPollType, nStatus, idTopic);
		
		document.writeln(str);
		
	}
	
	function getPollFooter(fIsAdmin, idPoll, idPollType, nStatus, idTopic) {
		var str = '';
		if (fIsAdmin) {
			// FOOTER
			str += '<div class="ga_ftr">';
				// type of poll
				if (nStatus    == -1) { str += 'Deleted '; }
				if (nStatus    ==  0) { str += 'Pending '; }
				if (nStatus    ==  1) { str += 'Closed '; }
				if (nStatus    ==  2) { str += 'Active '; }
				if (idPollType ==  0) { str += 'Survey '; }
				if (idPollType ==  1) { str += 'Quiz '; }
				
				if (nStatus    == -1) {
					str += getFooterDivider();
					str += '<a class="ga_ftr" href="javascript:undeletePoll('+idPoll+');">undelete</a>';				
				} else {
					str += getFooterDivider();
					str += '<a class="ga_ftr" href="javascript:addPoll('+idTopic+');">new</a>';
					str += getFooterDivider();
					str += '<a class="ga_ftr" href="javascript:editPoll('+idPoll+');">edit</a>';
					str += getFooterDivider();
					if (nStatus == 2) {
						str += '<a class="ga_ftr" href="javascript:closePoll('+idPoll+');">close</a>';
					} else {
						str += '<a class="ga_ftr" href="javascript:openPoll('+idPoll+');">open</a>';				
					}
					if (nStatus >= 0) {
						str += getFooterDivider();
						str += '<a class="ga_ftr" href="javascript:delPoll('+idPoll+');">del</a>';
					}
				}
			str += '&nbsp;</div>';
		}
		return str;
	}
	
//================================
//
//	BIZ FUNCTIONS
//
	function shuffle(Q) { 
		var R, T, J;
   		for (J = Q.length-1; J > 0; J--) { 
			R=randomN(J+1) ; 
			T=Q[J] ; 
			Q[J]=Q[R] ; 
			Q[R]=T ;
		} 
   		return Q ;
	}	
	
	

//================================
//
//	TEXT, NUMBER AND DATE FUNCTIONS
//

	function passwordError(strPass, strPasswordType) {
		var fError = false;
		var reIllegals = /[^a-zA-Z0-9\!\#\$\?]/;
		var reNonLetter = /[^a-zA-Z]/;
		if (strPass == '') {
			alert ("Your "+strPasswordType+" password can't be empty. Please try again.");
			fError = true;
		} else 
		if (strPass.length < 6) {
			alert ("Your "+strPasswordType+" password must have at least 6 characters. Please try again.");
			fError = true;		
		} else
		if (strPass.length > 20) {
			alert ("Your "+strPasswordType+" password must have at fewer than 20 characters. Please try again.");
			fError = true;		
		} else
		if (strPass.search(reIllegals) >= 0) {
			alert ("Your "+strPasswordType+" password contains characters that are not allowed. Please try again using only letters, numbers and accpeted symbols.");
			fError = true;		
		} else
		if (strPass.search(reNonLetter) == -1) {
			alert ("Your "+strPasswordType+" password must contain at least one character that is not a letter. Please try again by adding a number or accpeted symbol.");
			fError = true;		
		} 
		return fError;
	}
	
	function shortenText(strText, cchMaxText) {
		cchMaxText += 0;
		if (cchMaxText <= 0) { cchMaxText = 200; }
		// remove extra lines
		while (strText.indexOf('<br><br>', 0) > 0) {
			strText = strText.replace('<br><br>', '<br>');
		}
		// remove fancy links
		var regexWeb = /(((https?:\/\/www\.)|(www\.)|(https?:\/\/)|(ftp:\/\/))[^< !:'"\)\[\]]*) *\[([^\]]+)\]/gi;
		var strText = strText.replace(regexWeb, "$7");
		
		var cchText = strText.length;
		if (cchText > cchMaxText) {
			var fMidSentence = false;
			var cchMinText = parseInt(cchMaxText/2);
			if (cchMinText < 0) { cchMinText = 0; }
			// find first period after min
			var iDot = strText.indexOf(".", cchMinText) + 1;
			// else find first space after min
			if ((iDot <= 0) || (iDot > cchMaxText)) {
				fMidSentence = true;
				iDot = strText.indexOf(" ",cchMinText); 
				// if still too long then lop it at max
				if ((iDot <= 0) || (iDot > cchMaxText)) {
					iDot = cchMaxText; 
				}
			}
			// shorten text
			strText = strText.substring(0,iDot);
			if (fMidSentence) {strText += "..."; }
			strText += ' <span class="ar_more"> continued... </span> '
			strText += "</b></i></u></span>"; 
		}
		return strText;
	}

	function makeURLsHot(txt, strClassName) {
		txt += ' ';
		var strSearch = txt;	
		var aURL = new Array();		
		var aposURL = new Array();  
		var iURL = -1;				
		var indexLastMatch = 0;		
		var regexWeb = /(((https?:\/\/www\.)|(www\.)|(https?:\/\/)|(ftp:\/\/)|(javascript:))[^< !:"\[\]]*)./i;
		var reMatch = regexWeb.exec(strSearch);
		while (reMatch) {
			iURL++;
			var strFound = reMatch[1];
			aURL[iURL] = strFound;
			aposURL[iURL] = indexLastMatch + reMatch.index;
			indexLastMatch = indexLastMatch + reMatch.index + strFound.length;
			strSearch = txt.substring(indexLastMatch,txt.length);
			reMatch = regexWeb.exec(strSearch);
		}
		
		var strMatch = '';		
		var lenMatch = 0;
		var iMatch = -1;
		var strPre = '';
		var strPost = '';
		var reHTTP = /^www/i;
		var strHTTP = '';
		var rePERIOD = /[\.\,\?]$/;
		for (var u = iURL; u >= 0; u--) {
			strMatch = aURL[u];
			strMatch = strMatch.replace(rePERIOD, '');
			lenMatch = strMatch.length;
			iMatch = aposURL[u];
			var strLinkText = strMatch;
			if (reHTTP.test(strMatch)) {
				strMatch = 'http://'+strMatch;
			}
			strPre = txt.substring(0,iMatch);
			strPost = txt.substring((iMatch+lenMatch),txt.length);
			var reBRACKET = /^ *\[/;
			if (reBRACKET.test(strPost)) {
				strPost = strPost.replace(reBRACKET, '');
				var reREALTEXT = /^.+\]/;
				if (reREALTEXT.test(strPost)) {
					var iClose = strPost.indexOf(']');
					strLinkText = strPost.substring(0,iClose);
					strPost = strPost.substring((iClose+1), strPost.length);
				}
			}
			var strTarg  = 'target="_blank"';
			if (strMatch.indexOf(gCGIPath) == 0) {
				strTarg = '';
			}
			else if (strMatch.indexOf('javascript:') == 0) {
				strTarg = '';
			}
			var strClass = 'class="urlHot"';
			if (strClassName != null) { strClass = 'class="'+strClassName+'"'; }
			var strNewLink = '<a href="'+strMatch+'"  '+strTarg+' '+strClass+'>' + strLinkText + '</a>';
			txt = strPre + strNewLink +strPost;
		}
		return txt;
	}

	function getMailAddress(strEmailFromDB) {
		var str = '';
		while (strEmailFromDB.indexOf(',,,', 0) > 0) {
			strEmailFromDB = strEmailFromDB.replace(',,,', '@');
		}
		while (strEmailFromDB.indexOf('***', 0) > 0) {
			strEmailFromDB = strEmailFromDB.replace('***', '.');
		}
		str = strEmailFromDB;
		return str;
	}
	function createMailString(strEmailFromDB) {
		var str = '';
		strEmailFromDB = getMailAddress(strEmailFromDB);
		str = 'mai'+'lto:'+strEmailFromDB;
		return str;
	}
	function showMailAddress(strEmailFromDB) {
		var str = getMailAddress(strEmailFromDB);
		if (str != '') {
			alert(str);
		}
	}

	function getEventDateHTML(strEStart, strEEnd, nFormat) {
		strReturn = '';
		var aD = parseMysqlDatetime(strEStart);
		var nStartYear 		= aD[0];
		var nStartMonth		= aD[1];
		var nStartDay 		= aD[2];
		var nStartHour		= aD[3];
		var nStartMinute	= aD[4];
		var nStartSecond	= aD[5];
		
		aD = parseMysqlDatetime(strEEnd);
		var nEndYear 		= aD[0];
		var nEndMonth		= aD[1];
		var nEndDay 		= aD[2];
		var nEndHour		= aD[3];
		var nEndMinute		= aD[4];
		var nEndSecond		= aD[5];
		
		var tToday = getNow();
		tToday.setHours(12);
		var nTodayDay 		= tToday.getDate();
		var nTodayMonth 	= tToday.getMonth() + 1;
		var nTodayYear 		= timeGetYear(tToday);
		var msecToday 		= tToday.getTime();
		var msecTomorrow 	= msecToday + msecOneDay;
		
		var tE1 = new Date(nStartYear,nStartMonth-1,nStartDay, nStartHour, nStartMinute, nStartSecond); 
		var msecE1 = tE1.getTime();
		var nWeekday = tE1.getDay();
		var tE2 = new Date(nEndYear,nEndMonth-1,nEndDay, nEndHour, nEndMinute, nEndSecond); 
		var msecE2 = tE2.getTime();
		var tE1DayBegins = new Date(nStartYear,nStartMonth-1,nStartDay, 0, 0, 0); 
		var msecE1DayBegins = tE1DayBegins.getTime();
		var tE2DayEnds = new Date(nEndYear,nEndMonth-1,nEndDay, 23, 59, 59); 
		var msecE2DayEnds = tE2DayEnds.getTime();

		if (nFormat == 1) {
			if ((msecToday > msecE1DayBegins) && (msecToday < msecE2DayEnds)) {
				strReturn += 'Today';				
			} else if ((msecTomorrow > msecE1DayBegins) && (msecTomorrow < msecE2DayEnds)) {
				strReturn += 'Tomorrow';										
			} else {
				strReturn += aDays[nWeekday];
			}
			strReturn += ', ';
		}

		strReturn += nStartDay + ' ' +  aMonthsShort[nStartMonth-1];
		if (nStartDay != nEndDay) {
			strReturn += ' - ' + nEndDay + ' ' + aMonthsShort[nEndMonth-1];
		}

		if (nStartDay == nEndDay) {
			if ((msecE1 == msecE1DayBegins) && (msecE2 == msecE2DayEnds)) {
				strReturn += '';		
			} else {
				strReturn += ', ';
				strReturn += getTimeString(nStartHour, nStartMinute);
				var nMins = ((nEndHour-nStartHour) * 60) + (nEndMinute-nStartMinute) + 1;
				if (nMins == 2) {
					strReturn += ' on';	
				}		
				if (nMins > 5) {
					strReturn += '-' + getTimeString(nEndHour, nEndMinute);	
				}		
			}
		}
		
		return strReturn;
	}
	
	function getNow() {
		var aNow = gServerTime.split(':');
		var nYear = parseInt(aNow[5]) + 1900;
		var tNow = new Date(nYear, aNow[4],aNow[3],aNow[2],aNow[1],aNow[0]);
		return tNow;
	}
	function getYearFromToday() {
		var tYear = getNow();
		var msecYear = tYear.getTime() + msecOneYear;
		tYear.setTime(msecYear);
		return tYear;	
	}

	function parseMysqlDatetime(datetime) {
		var aDT = new Array();
		var aD = datetime.split(' ');
		if (aD.length == 1) { aD[1] = '00:00:01'; }
		var aDateIn	= aD[0].split('-');
		var aTimeIn	= aD[1].split(':');
		aDT[0] 		= aDateIn[0];
		aDT[1]		= parseInt(aDateIn[1],10);
		aDT[2]		= parseInt(aDateIn[2],10);
		aDT[3]		= parseInt(aTimeIn[0],10);
		aDT[4]		= parseInt(aTimeIn[1],10);
		aDT[5]		= parseInt(aTimeIn[2],10);
		var tToday 			= getNow();
		var msecToday 		= tToday.getTime();
		var nMonthIn 		= aDT[1] - 1;
		var tIn				= new Date(aDT[0],nMonthIn,aDT[2],aDT[3],aDT[4],aDT[5]);
		var msecIn			= tIn.getTime();
		aDT[6]				  = msecIn - msecToday;
		
		return aDT;
	}

	function msecFromMysqlDatetime(datetime) {
		var aD = parseMysqlDatetime(datetime);
		var tDate = new Date(aD[0],(aD[1] - 1),aD[2],aD[3],aD[4],aD[5]);
		var msecDate = tDate.getTime();
		return msecDate;
	}
	function mysqlDateFromMsec(msec) {
		var tDate = new Date(msec);
		var strMysqlDate = timeGetYear(tShow) + '-' + (tDate.getMonth() + 1) + '-' + tDate.getDay();
		return strMysqlDate;
	}
	
	function timeGetYear(dateIn) {
		// IE AND NETSCAPE RETURN DIFFERENT VALUES FOR GETYEAR()!
		var yearIn = dateIn.getYear();
		if (yearIn < 1900) {yearIn += 1900;}
		return yearIn;
	}
	function getDaysInMonth(t) {
		var nReturn = 0;
		var aDaysInM = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		var iMonth = t.getMonth();
		nDays = aDaysInM[iMonth];
		if (nDays > 28) { nReturn = nDays; }
		else {
			var msect = t.getTime();
			var tNext = new Date(msect);
			tNext.setHours(0);
			tNext.setDate(1);
			tNext.setMonth(iMonth + 1);
			tNext.setDate(1);
			msect = tNext.getTime() - 120000;
			tNext.setTime(msect);
			nDays = tNext.getDate();
			nReturn = nDays;
		}
		return nReturn;
		
	}
	
	function getTimeString (nH,nM) {
		var numH = parseInt(nH,0);
		var numM = parseInt(nM,0);
		if (numM%5 != 0) { 
			numM = numM+1;
			if (numM == 60) {
				numM = 0;
				numH = numH+1; 
				if (numH == 24) {
					numH = 0;
				}
			}
		}
		
		var strReturn = '';
		var strAMPM = 'a';
		var strHour = numH;
		var strMinute = numM;
		var strExtra0 = '';

		if (numH > 11) { strAMPM = 'p'; }
		if (numM < 10) { strExtra0 = '0'; }
		if (numH == 0) { strHour = '12'; }
		else if (numH > 12) { strHour = numH - 12;}
		
		strReturn = strHour;
		if (strMinute != 0) { strReturn += ':' + strExtra0 + strMinute; }
		strReturn += '' + strAMPM;
		
		return strReturn;
	}

	function getInt(strIn) {
		if (strIn.charAt(0) == '0') {strIn = strIn.charAt(1);} //needed for parseInt bug with '08'
		strIn = parseInt(strIn);
		return strIn;
	}
	
	function isNotEmpty(val) {
		if ((val == null) || (val == '')) {
			return false;
		} else {
			return true;
		}
	}
	function isEmpty(val) {
		if ((val == null) || (val == '')) {
			return true;
		} else {
			return false;
		}
	}
	
	function randomN(N) { 
		// returns 0 to (N-1)
		return Math.floor(N*(Math.random()%1)) ;
	}
	
	function dequote( str ) {
		str = str.replace(/['"]/g, "");
		return str;
	}
	
	function refreshPage() {
		location.reload();
	}	 
	function refreshTideline() {
		location.reload();
	}	 

	function refreshSite() {
		location.reload();
	}	 
	
	function getFooterDivider() {
		var str = ' &middot; ';
		return str;
	} 

	function getMemberLevel(nLevel) {
		return aMemberLevels[nLevel];
	}
	function getMemberLevelPlural(nLevel) {
		return aMemberLevelsPl[nLevel];
	}

//================================
//
//	MISC
//

	function idInList(id,idList) {
		var fReturn = false;
		idList += '';
		var aList = idList.split(":");
		for (var z = 0; z <= aList.length-1; z++) {
			if (id == aList[z]) {
				fReturn = true;
				break;
			}
		}
		return fReturn;
	}

	function getFileExt(urlFile) {
		var strExt = '';
		var reExt = /\.(.{2,4})$/i;
		var reMatch = reExt.exec(urlFile);
		if (reMatch) {
			strExt = reMatch[1];
			strExt = strExt.toLowerCase();
		}
		return strExt;
	}
		
//================================
//
//	POPUP MENUS
//

	function getMenuHead(strMenuId, strText, rgbColor) {
		var str = '';
		var strStyle = ''
		if (isNotEmpty(rgbColor)) { strStyle = ' style="color:#'+rgbColor+';" '; }
		// stop ie wrap
		str += '<div class="m_header"><a href="javascript:showMenu(\''+strMenuId+'\')" onMouseOut="menu_t = 1; delayHide()" class="m_h_text" '+strStyle+'>'+strText+'<img src="'+gWWWPath+'bits/menu-down.gif" width="10" height="6" alt="" border="0"></a></div>';

		return str;
	}
	function getMenuCommand(strText, strJsCommand) {
		var str = '';
		str += '<a href="javascript:'+strJsCommand+'" class="m_c_text" onMouseOut="menu_t = 1; delayHide()" onMouseOver="menu_t = 2;" >'+strText+'</a>';

		return str;
	}
	function getMenuCommandSide(strText, strJsCommand, strMSStyle) {
		var str = '';
		str += '<a href="javascript:'+strJsCommand+'" class="ms_c_text" '+strMSStyle+'>'+strText+'</a><br>';

		return str;
	}
	function getMenuCommandExtra(strText, strCommand, isInternal, fOwnWindow) {
		var str = '';
		if (isInternal == 1) {
			str += '<a href="javascript:showPage(\''+strCommand+'\')" class="m_c_text" onMouseOut="menu_t = 1; delayHide()" onMouseOver="menu_t = 2;" >'+strText+'</a>';
		} else {
			if (fOwnWindow == 1) {
				str += '<a ';
				str += getWebsiteHref(strCommand);
				str += ' class="m_c_text" onMouseOut="menu_t = 1; delayHide()" onMouseOver="menu_t = 2;" >'+strText+'</a>';		
			} else {
				str += '<a ';
				str += getWebsiteHrefPlus(strCommand,1);
				str += ' class="m_c_text" onMouseOut="menu_t = 1; delayHide()" onMouseOver="menu_t = 2;" >'+strText+'</a>';					
			}	
		}
		return str;
	}
	function getMenuCommandSideExtra(strText, strCommand, isInternal, fOwnWindow, strMSStyle) {
		var str = '';
		if (isInternal == 1) {
			str += '<a href="javascript:showPage(\''+strCommand+'\')" class="ms_c_text"  '+strMSStyle+'>'+strText+'</a>';
		} else {
			if (fOwnWindow == 1) {
				str += '<a ';
				str += getWebsiteHref(strCommand);
				str += ' class="ms_c_text"  '+strMSStyle+'>'+strText+'</a>';		
			} else {
				str += '<a ';
				str += getWebsiteHrefPlus(strCommand,1);
				str += ' class="ms_c_text"  '+strMSStyle+'>'+strText+'</a>';					
			}	
		}
		str += '<br>';
		return str;
	}
	function getMenuSection(strText) {
		var str = '';
		str += '<div class="m_section" onMouseOut="menu_t = 1; delayHide()" onMouseOver="menu_t = 2;">'+strText+'</div>';

		return str;
	}
	function getMenuSectionSide(strText, strMSStyle) {
		var str = '';
		if (strText != '') { str += '<div class="ms_section" '+strMSStyle+'>'+strText+'</div>'; }

		return str;
	}
	
	// global menu variables
	var domMenu_cur = null;
	var domMenu_old = null;
	var menu_t = 0;
	var menu_lDelay = 3;
	var menu_lCount = 0;
	var menu_pause = 100;
	
	function showMenu(menuName){
		menu_t = 2;
		if (domMenu_old) {
			domMenu_old.display = 'none'; 
			domMenu_old.zIndex = '0'; 
			menu_t = 2; 
			menu_lCount = 0;
		}
		domMenu_cur = getDOM(menuName,1);
		if (domMenu_old != domMenu_cur) {	
			domMenu_cur.display = 'block';
			domMenu_cur.zIndex = 1000;
			domMenu_old = domMenu_cur;
		}
		else { domMenu_old = null; }
	}
	
	function delayHide() {
	    if ((domMenu_old) && (menu_t == 0)) {
	        domMenu_old.display = 'none'; 
	        domMenu_old.zIndex = '0';
	        domMenu_old = null;
	        menu_lCount = 0; 
	        return false;
	    }
	    if (menu_t == 2) { menu_lCount = 0; return false; }
	    if (menu_t == 1) { 
	        menu_lCount = menu_lCount + 1;
	        if (menu_lDelay <= menu_lCount) { menu_t = 0; }
	        setTimeout('delayHide()',menu_pause);
	    }
	}
		

	
//================================
//
//	COOKIES
//

	function getCookieVal (offset) {
	  var endstr = document.cookie.indexOf (";", offset);
	  if (endstr == -1)
	    endstr = document.cookie.length;
	  return unescape(document.cookie.substring(offset, endstr));
	}
	function GetCookie (name) {
	  if (gSiteId != 1) { name = gSiteId+'_'+name; }
	  var arg = name + "=";
	  var alen = arg.length;
	  var clen = document.cookie.length;
	  var i = 0;
	  while (i < clen) {
	    var j = i + alen;
	    if (document.cookie.substring(i, j) == arg)
	      return getCookieVal (j);
	    i = document.cookie.indexOf(" ", i) + 1;
	    if (i == 0) break; 
	  }
	  return null;
	}
	function SetCookieYear (name, value, path, domain, secure) {
		var dateExp = new Date();
		dateExp.setTime(dateExp.getTime() + msecOneYear);		
		SetCookie (name,value,dateExp,path,domain,secure)
	}
	function SetCookie (name,value,expires,path,domain,secure) {
	  if (gSiteId != 1) { name = gSiteId+'_'+name; }
	  document.cookie = name + "=" + escape (value) +
	    ((expires) ? "; expires=" + expires.toGMTString() : "") +
	    ((path) ? "; path=" + path : "") +
	    ((domain) ? "; domain=" + domain : "") +
	    ((secure) ? "; secure" : "");
	}
	function DeleteCookie (name,path,domain) {
	  if (gSiteId != 1) { name = gSiteId+'_'+name; }
	  if (GetCookie(name)) {
	    document.cookie = name + "=" +
	      ((path) ? "; path=" + path : "") +
	      ((domain) ? "; domain=" + domain : "") +
	      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	  }
	}
	function acceptsCookies() {
		var fReturn = false;
		SetCookie('testAccept','35s6');
		var nVal = GetCookie('testAccept');
		fReturn = (nVal == '35s6');
		return fReturn
	}
	
//================================
//
//	DOM
//
var isID = 0;
var isAll = 0;
if (document.getElementById) {isID  = 1; }
if (document.all) 			 {isAll = 1; }

	function getDOM(objID,fStyle) {
		if (fStyle == 1) {
			if (isID) 		{return (document.getElementById(objID).style);}
			else if (isAll) {return (document.all[objID].style);}
			else 			{return null; }
		}
		else {
			if (isID) 		{return (document.getElementById(objID));}
			else if (isAll) {return (document.all[objID]);}
			else 			{return null; }
		}
	}
	function getLeft(objID){
		var dom = getDOM(objID,0);
		var domStyle = getDOM(objID,1);
		if (domStyle.pixelLeft) return domStyle.pixelLeft;
		else if (domStyle.left) return domStyle.left;
		else if (dom.offsetLeft) return dom.offsetLeft;
		return (null);
	}
	function getTop(objID){
		var dom = getDOM(objID,0);
		var domStyle = getDOM(objID,1);
		if (domStyle.pixelTop) return domStyle.pixelTop;
		else if (domStyle.top) return domStyle.top;
		else if (dom.offsetTop) return dom.offsetTop;
		return (null);
	}

	function getMouseX(evt) {
		var x = -1;
		if (evt.x) 		{ x = evt.x + findScrollLeft();}
		if (evt.pageX) 	{ x = evt.pageX; }
		return x;
	}
	function getMouseY(evt) {
		var y = -1;
		if (evt.y) 		{ y = evt.y + findScrollTop(); }
		if (evt.pageY) 	{ y = evt.pageY;  }
		return y;
	}
	function findScrollLeft() {
		if (window.pageXOffset != null)
			return window.pageXOffset; 
		if (document.body.scrollLeft != null)
			return document.body.scrollLeft;
		return (null);
	}
	
	function findScrollTop() {
		if (window.pageYOffset != null)
			return window.pageYOffset;
		if (document.body.scrollHeight != null)
			return document.body.scrollTop;
		return (null);
	}
