//================================
//
//	RIP HELPER FUNCTIONS
//
//================================

	// default left column
	function drawResStdLeftColumn(strCName) {
		drawResourcePix(idRes, idResType, strPhotoURL,strPhotoCaption);
		drawDescription(idRes, strResFullName, strResTypeName, strDescription);
		showPeopleList(aContacts, "People");
		showGroupList(aChildGips, "Groups", strResName);
	}
	// default main column
	function drawResStdMainColumn(strName) {
		if (fHasRefs) {
			drawReferences(aReferences, aReferencePieces, idRes, strResName, fEditor, idFeatureRef, fEditor);
		} else {
			drawNoRefs(idRes, strResName, fEditor);
		}
	}
	// default right column
	function drawResStdRightColumn(strName) {
	}

	//  FROM THE VAULT
	//  ex: <script type="text/javascript">drawRIPImage('art_center.jpg',380)</script> -->
	function drawRIPImage(strFilename, pxWidth) {
		pxWidth += 0;
		var strPath = gCGIPath+"fetch_rip_pix.cgi?F="+escape(strFilename);
		var strWidth = '';
		if (pxWidth > 0) {
			strWidth = ' width="'+pxWidth+'" ';
		}
		document.writeln('<img src="'+strPath+'" '+strWidth+' alt="" border="0">');
	}

	function drawBulletinArt(strFilename, idRef, idGroup, pxWidth) {
		pxWidth += 0;
		var strPath = gCGIPath+"fetch_bulletin_piece.cgi?ID="+idRef+"&GIP="+idGroup+"&F="+escape(strFilename);
		var strWidth = '';
		if (pxWidth > 0) {
			strWidth = ' width="'+pxWidth+'" ';
		}
		var str = '';
		str += '<img src="'+strPath+'" '+strWidth+' alt="" border="0">';
		document.writeln(str);
	}

	// ex:	<a href="javascript:showRIPDocument('security/art_left.jpg')">show picture test</a>
	function showRIPDocument(strFilename) {
		var strCGI = "fetch_rip_doc.cgi?F="+escape(strFilename);
		showWindowCGICustom("",600,600,strCGI, 2);
	}
	
	// ex:	<a href="javascript:showBulletinAttachment('art_left.jpg,55,1234')">show document test</a>
	function showBulletinAttachment(strFilename, idRef, idGroup) {
		var strCGI = "fetch_bulletin_piece.cgi?ID="+idRef+"&GIP="+idGroup+"&F="+escape(strFilename);
		showWindowCGICustom("",600,600,strCGI, 2);
	}
	
	//
	function drawReferences(aReferences, aReferencePieces, idRes, strResName, fEditor, idFeatureReference, fShowComments) {
		if (fHasRefs) {
			var str = '';
			str += getTopReferencesHTML(aReferences, aReferencePieces, idRes, strResName, idFeatureReference, fEditor, fShowComments);
			document.writeln(str);
		}
	}
	
	//
	function drawMainMenu(idRes, strName) {
		var str = '';
		var strRightLinks = '';
		str += getSubHeadWithRightHTML(strName,'',3,'page',strRightLinks);
		document.writeln(str);
	}
	//
	function drawXResourcePix(idRes, idResType, strPix, strCaption) {
		var str = '';
		if (!strPix) {
			strPix = 'resourcetype-'+idResType+'.jpg';
		}
		str += '<div id="resourcepix">';
			var strURL = gCGIPath+"fetch_rip_pix.cgi?F="+escape(strPix)+"&ID="+idRes;
			str += '<img src="'+strURL+'" class="pixtdpage" alt="" title="'+strCaption+'">';
		str += '</div>';
		document.writeln(str);
	}
	//
	function drawResourcePix(idRes, idResType, strPix, strCaption) {
		var str = '';
		if (!strPix) {
			strPix = 'resourcetype-'+idResType+'.jpg';
		}
		str += '<div id="resourcepix">';
			var strURL = gCGIPath+"fetch_rip_pix.cgi?F="+escape(strPix)+"&ID="+idRes;
			var strLink = '<a href="javascript:showPagePix(\'RIP\',\''+strPix+'\')">';
			var strTitle = 'Click to see larger...';
			if (fEditor) {
				strLink = '<a href="javascript:editResourcePix(\''+idRes+'\')">';
				strTitle = 'Click to change...';
			}
			if (strCaption) { strTitle = strCaption+' ('+strTitle+')'; }
			str += strLink;
			str += '<img src="'+strURL+'" class="pixtdpage" alt="" title="'+strTitle+'">';
			// alert(strURL);
			str += '</a>';
		str += '</div>';
		document.writeln(str);
	}
	//
	function toggleContactDetail() {
		gfCDetails = !gfCDetails;
		var ob 	= getDOM('contactInfo',0);
		var ob2 = getDOM('contactInfo_label',0);
		ob.innerHTML = getResourceContactHTML ();
		ob2.innerHTML = getDetailsLabel(gfCDetails);
	}
	function getResourceContactHTML () {
		var str = '';
		if (gfCDetails) {
			str += '<div class="invite_text">';
				str += '<div class="boldtext">Short Name</div>';
				str += strResName;
			str += '</div>';

		}
		var strDesc = strDescription;
		if (!gfCDetails) {
			strDesc = trimStringEnd(strDesc, 250);
		}
		if (!strDesc) {
			strDesc = gstrMissingDesc;
			if (fEditor) {
				strDesc += ' (click here to add)';
			} 
		}
		strDesc = makeURLsHot(strDesc,"rip_textlink");
		str += '<div class="invite_text">';
			if (fEditor) {
				str += '<a href="javascript:editResourceDescription('+idRes+')">';
			} 
			str += '<span id="pagedesc">'+strDesc+'</span>';
			if (fEditor) {
				str += '</a>';
			} 
		str += '</div>';
		return str;
	}
	function drawDescription(idRes, strResFullName, strResTypeName, strDescription) {
		var str = '';
		// -- SUBHEAD: Menus
		str += '<div id="ripLinks">';
			str += getRIPMenusHTML();
		str += '</div>';
		// -- SUBHEAD: Profile
		// var strRightLinks = strResTypeName;
		var strRightLinks = 'About';
		strRightLinks += '|<a href="javascript:toggleContactDetail()"><span id="contactInfo_label">'+getDetailsLabel(gfCDetails)+'</span></a>';
		str += '<div id="contactblock"  onmouseover="showMenuDetails(event,this.id,\'rip_details\')" onmouseout="hideMenuDetails(event,this.id,\'rip_details\')" >';
			str += getSubHeadWithRightHTML(strRightLinks,'',1,'page','rip_details') 
			str += '<div id="contactInfo">';
				str += getResourceContactHTML();
			str += '</div>';
		str += '</div>';
		document.writeln(str);
	}
	//
	function viewGIPCalendarReportHistorical(idGroup,dayA,dayZ) {
		var strCGI = "show_calendar.cgi?GIP="+idGroup+"&CREATETITLE=1"+"&DAYA="+dayA+"&DAYZ="+dayZ;
		showWindowCGICustom("CalendarReport",950,600,strCGI,3,0,0);
	}
	//
	function featureReference(idRef,idRes,fFlag) {
		top.document.location = gCGIPath+"submit_reference_featured.cgi?RIP="+idRes+"&ID="+idRef+"&MODE="+fFlag;
	}
	//
	function bulkDistributeReferences(idRef,idRes) {
		var strCGI = "dlg_references_bulkdistribute.cgi?RIP="+idRes+"&ID="+idRef;
		showDialogCGI("BulkDistributeReferences",599,400,strCGI);
	}	
	function addRipContact(idRes) {
		var strCGI = "dlg_ripcontact_add.cgi?RIP="+idRes;
		showDialogCGI("AddResourceContact",599,270,strCGI);
	}
	function delRipContacts(idRes) {
		var strCGI = "dlg_ripcontact_del.cgi?RIP="+idRes;
		showDialogCGI("DeleteResourceContact",599,270,strCGI);
	}
	function requireReferences(idRes) {
		var strCGI = "dlg_references_required.cgi?RIP="+idRes;
		showDialogCGI("setRequiredReference",599,330,strCGI);
	}
	function editResourcePix(idRes) {
		var strCGI = "dlg_resource_pix.cgi?RIP="+idRes;
		showDialogCGI("editResourcePix",599,330,strCGI);
	}
	function editResourceName(idRes) {
		var strCGI = "dlg_resource_displayname.cgi?RIP="+idRes;
		showDialogCGISecure("editResourceName",599,330,strCGI);
	}
	function editResourceDescription(idRes) {
		var strCGI = "dlg_resource_description.cgi?RIP="+idRes;
		showDialogCGI("editResourceDescription",599,430,strCGI);
	}
	function editResourceBanner(idRes) {
		var strCGI = "dlg_banner.cgi?ID="+idRes+"&TYPE=Resource";
		showDialogCGI("editResourceBanner",599,400,strCGI);
	}
	function editRipContact(idContact,idRes) {
		var strCGI = "dlg_ripcontact_edit.cgi?RIP="+idRes+"&CONTACT="+idContact;
		showDialogCGI("ChangeResourceContact",599,400,strCGI);
	}
	function archiveRipGroup(idGroup, strGroup) {
		var fDel = confirm('Archive the group "'+strGroup+'"?');
		if (fDel) {
			var strCGI = "submit_group_archive.cgi?ID="+idGroup+"&TITLE="+escape(strGroup);
			showInProgressDialogCGI("ArchiveGroup",600,400,strCGI);
		}
	}
	function archiveRipGroups(idRes) {
		var strCGI = "dlg_resource_groupstatus.cgi?RIP="+idRes;
		showDialogCGI("ArchiveRipGroups",600,400,strCGI);
	}
	function createScrollLink(strLink, strAnchorName) {
		var str = '';
		var hrefNew = location.pathname + location.search + '#' + strAnchorName;
		// create html
		str = '<a href="'+hrefNew+'">'+strLink+'</a>';
		document.writeln(str);
	}

	function drawRIPNavLinkHeader(strResName) {
		// var str = '<div class="rip_head">'+strResName+'<br>Information</div>';
		// var str = '<div class="rip_head">Information</div>';
		// var str = '<br>';
		// document.writeln(str);
	}
	function drawRIPNavPageLink(idRes,strText,strFilename) {
		var str = '';
		if (!strFilename) { 
			str += '<a class="navlink" href="javascript:showRIP('+idRes+')">'+strText+'</a>';
		} else if (strFilename == 'GIP') {
			str += '<a class="navlink" href="javascript:showGroup('+idRes+')">'+strText+'</a>'; 
		} else { 	
			str += '<a class="navlink" href="javascript:showRIPPage('+idRes+',\''+strFilename+'\')">'+strText+'</a>'; 
		}
		str += '<br>';
		document.writeln(str);
	}
	function drawCalendarLink(idRes,strText) {
		var str = '';
		str += '<a class="navlink" href="javascript:viewRIPCalendarReport('+idRes+')">'+strText+'</a>';
		str += '<br>';
		document.writeln(str);
	}
	function drawOtherLink(strLink,strText) {
		var str = '';
		str += '<a class="navlink" target="_blank" href="'+strLink+'">'+strText+'</a>';
		str += '<br>';
		document.writeln(str);
	}
	//
	function getAffiliatedGroups() {
		var str = '';
		for (var i = 0; i < nChildGips; i++) {
			var aCG = aChildGips[i].split('|');
			var idGroup			= aCG[0];
			var idGroupType		= aCG[1];
			var strTitle 		= aCG[2];
			var strDescription 	= aCG[3];
			var ContactId		= aCG[4];
			var ContactName		= aCG[5];
			var nAccess			= aCG[6];
			var urlPhoto		= aCG[7];
			var strLocation		= aCG[8];
			var fPublish		= (aCG[9] == 1);
			var strAccess = getAccessStr(nAccess);
			var strGTip = 'Click to go to the group &quot;'+strTitle+'&quot;...';
			var strPTip = 'Click to go to '+ContactName+'\'s page...';
			if (strDescription.length == 0) {
				strDescription = "No description available."
			}
			
			if (!gfGDetails) {
				str += '<div class="mygroup_text">';
					str += '<a class="myplainlink" href="javascript:showGroup('+idGroup+')" title="'+strGTip+'">'+trimStringCenter(strTitle,28)+'</a>'; //<img src="/bits/Blank.gif" border="0"> 
				str += '</div>';
				continue;
			}
			if (!urlPhoto) {
				urlPhoto = 'grouptype-'+idGroupType+'.jpg';
			}


			str += '<div id="g'+i+'" onmouseover="showCellDetails(event,\'g'+i+'\')" onmouseout="hideCellDetails(event,\'g'+i+'\')">';
				str += '<table cellspacing="0" cellpadding="0">';
				str += '<tr>';
				// PHOTO
				var urlThumb = getThumbURL('GIP',urlPhoto) 
				str += '<td class="mygroup_thumbnail"><a href="javascript:showGroup('+idGroup+')" title="'+strGTip+'" alt=""><img src="'+urlThumb+'" class="pixtdmedium"></a></td>';
				str += '<td class="mygroup_contactinfo">';
				str += '<div class="mygroup_text">';
					// GROUP NAME
					str += '<div id="g'+i+'top" style="visibility:hidden;">';
						if (nAccess < 1) 		{ str += '<img src="bits/PrivateGroupBlack.gif" width="13" height="13" title="'+strAccess+'" alt="" border="0">&nbsp';	}
						else if (nAccess < 2) 	{ str += '<img src="bits/AssignedGroupBlack.gif" width="13" height="13" title="'+strAccess+'" alt="" border="0">&nbsp';	}
						else 					{ str += '<img src="bits/OpenGroupBlack.gif" width="13" height="13" title="'+strAccess+'" alt="" border="0">&nbsp;'		}
						if (fPublish) 			{ str += '<img src="bits/AudioStopBlack.gif" width="13" height="13" title="Publishing group; all group editors can distribute information to this group..." alt="" border="0">&nbsp';	}
					str += '</div>';
					str += getTitleToggleHTML('group'+i, strTitle, 'group', 'mygroup_namelink', false, false);
					//  GROUP DETAILS
					str += '<div id="group'+i+'" style="display:none;">';
						str += '<div class="invite_text">';
							str += '<div class="boldtext">View</div>';
							str += '<a href="javascript:viewGIPPersonDirectory('+idGroup+')" title="Click to open the group membership directory..." alt="">Directory</a>';
							str += '&nbsp;&middot;&nbsp;<a href="javascript:viewGIPCalendarReport('+idGroup+',0)" title="Click to open the group calendar..." alt="">Calendar</a>';
						str += '</div>';
						str += '<div class="invite_text">';
							str += '<div class="boldtext">Affiliation</div>';
							str += strResName;
						str += '</div>';
						str += '<div class="invite_text">';
							str += '<div class="boldtext">Description</div>';
							str += strDescription;
							if (strLocation) {
								str += ' ('+strLocation+')';
							}
						str += '</div>';
						str += '<div class="invite_text">';
							str += '<div class="boldtext">Access</div>';
							str += strAccess;
						str += '</div>';
						str += '<div class="invite_text">';
							str += '<div class="boldtext">Contact</div>';
							str += '<a href="javascript:gotoUserPage('+ContactId+')" title="'+strPTip+'" alt="">'+ContactName+'</a>';
						str += '</div>';
						if (fEditor) {
							str += '<div class="invite_text">';
								str += '<div class="boldtext">Admin</div>';
								str += '<a href="javascript:archiveRipGroup('+idGroup+',\''+strTitle+'\')" title="Click to archive this group..." alt="">archive</a>';
								str += '&nbsp;&middot;&nbsp;<a href="javascript:editGroupInfo('+idGroup+')" title="Click to change this group\'s settings..." alt="">set up</a>';
								str += '<br><a href="javascript:editGroupDisplayname('+idGroup+')" title="Click to change the group\'s name..." alt="">change group name</a>';
								str += '<br><a href="javascript:editGroupsPix('+idGroup+')" title="Click to change the group\'s photo..." alt="">change photo</a>';
								str += '<br><a href="javascript:assignGroupMembers('+idGroup+')" title="Click to assign members to this group..." alt="">add people</a>';
								str += '&nbsp;&middot;&nbsp;<a href="javascript:unassignGroupMembers('+idGroup+')" title="Click to remove members from this group..." alt="">remove</a>';
								str += '<br><a href="javascript:editGroupContacts('+idGroup+')" title="Click to change this group\'s contact person..." alt="">change contact</a>';
							str += '</div>';
						}
					str += '</div>';
					str += '<div id="g'+i+'bot" style="visibility:hidden;">';
						str += '<a class="cellinfo" href="javascript:showGroup('+idGroup+')" title="'+strGTip+'" alt="">go to page</a>';
						// str += '&nbsp;&middot;&nbsp;<a class="cellinfo" href="javascript:addAnything('+idGroup+')" title="Click to post to the '+strTitle+' group...">notify</a>';
					str += '</div>';
				str += '</div>';
				str += '</td></tr>';
				str += '</table>';
			str += '</div>';
		}
		return str;
		
	}
	function getRIPGroupListHTML () {
		var str = '';
		var strGroupList = getAffiliatedGroups();
		if (strGroupList) {
			str += strGroupList;
		} else {
			str += '<div class="invite_text">';
				str += 'No affiliated groups.';
			str += '</div>';
		}
		if (!fDefaultPage) {
			if (fEditor) {
				str += '<div class="nav_commands_top">';
					str += '<a class="myplainlink" href="javascript:addGroup('+idRes+',0)" title=""><img src="bits/CreateNewBlack.gif" border="0"> Create a New Group Page...</a>';
				str += '</div>';
			}
		}
		return str;
	}
	function toggleGroupDetail() {
		gfGDetails = !gfGDetails;
		var ob 	= getDOM('grouplist',0);
		var ob2 = getDOM('grouplist_label',0);
		ob.innerHTML = getRIPGroupListHTML ();
		ob2.innerHTML = getDetailsLabel(gfGDetails);
		trimToggle('group',nChildGips);
	}
	function showGroupList(aChildGips, strName, strResName) {
		var str = '';
		var strRightLinks = 'Groups';
		if (nChildGips > 0) {
			strRightLinks += '|<a href="javascript:toggleGroupDetail()"><span id="grouplist_label">'+getDetailsLabel(gfGDetails)+'</span></a>';
		}
		str += '<div id="groupsblock"  onmouseover="showMenuDetails(event,this.id,\'group\')" onmouseout="hideMenuDetails(event,this.id,\'group\')" >';
			str += getSubHeadWithRightHTML(strRightLinks,0,1,'page','group'); //nChildGips
			str += '<div id="grouplist">';
				str += getRIPGroupListHTML ();
			str += '</div>';
		str += '</div>';
		document.writeln(str);
	}
	function drawNoRefs(idRes, strResName, fEditor) {
		var str = '';
		var strRightLinks = '';
		if (fEditor) {
			strRightLinks += getRShelfLinks (idRes, 0, fHasRefs);
		}
		str += '<div id="norefsblock"  onmouseover="showMenuDetails(event,this.id,\'norefs\')" onmouseout="hideMenuDetails(event,this.id,\'norefs\')" >';
			str += getSubHeadWithRightHTML('Resources','norefs',3,'page',strRightLinks);
			str += '<div id="norefs" class="widecontentarea" style="display:block">';
				str += '<div class="rip_text_main">';
					if (fEditor) {
						str += '<a class="navlink" href="javascript:addReference('+idRes+',0)">No resources. (click to add)</a>';
					} else {
						str += 'No resources.';
					}
				str += '</div>';
			str += '</div>';
		str += '</div>';
		document.writeln(str);
	}
	// Keep this is sync with the same for LIPs in lip.js.
	function getPeopleList () {
		var str = '';
		for (var i = 0; i < nContacts; i++) {
			var aP = aContacts[i].split('|');
			str += getOnePersonHTML(aP, i);
		}
		return str;
	}
	function getRIPPeopleListHTML () {
		var str = '';
		var strPeopleList = getPeopleList();
		if (strPeopleList) {
			str += strPeopleList;
		} else {
			str += '<div class="invite_text">';
				str += 'No people added.';
			str += '</div>';
		}
		if (fEditor) {
			str += '<div class="nav_commands_top">';
				str += '<a class="myplainlink" href="javascript:addRipContact('+idRes+')" title=""><img src="bits/AddPeopleBlack.gif" border="0"> Add People...</a>';
				if (strPeopleList) {
					str += '<br><a class="myplainlink" href="javascript:delRipContacts('+idRes+')" title=""><img src="bits/RemovePeopleBlack.gif" border="0"> Remove People...</a>';
				}
			str += '</div>';
		}
		return str;
	}
	function togglePeopleDetail() {
		gfPDetails = !gfPDetails;
		var ob 	= getDOM('peoplelist',0);
		var ob2 = getDOM('peoplelist_label',0);
		ob.innerHTML = getRIPPeopleListHTML ();
		ob2.innerHTML = getDetailsLabel(gfPDetails);
		trimToggle('person',nContacts);
	}
	function showPeopleList(aContacts, strName) {
		var str = '';
		var strRightLinks = 'People';
		if (nContacts > 0) {
			strRightLinks += '|<a href="javascript:togglePeopleDetail()"><span id="peoplelist_label">'+getDetailsLabel(gfPDetails)+'</span></a>';
		}
		str += '<div id="peopleblock"  onmouseover="showMenuDetails(event,this.id,\'person\')" onmouseout="hideMenuDetails(event,this.id,\'person\')" >';
			str += getSubHeadWithRightHTML(strRightLinks,0,1,'page','person'); //nContacts
			// EACH PERSON
			str += '<div id="peoplelist">';
				str += getRIPPeopleListHTML();
			str += '</div>';
		str += '</div>';
		document.writeln(str);
	}

//
// INDEX PAGE FUNCTION
//
	function toggleRoleGroup(id) {
		var id = "rolegroup_"+id;
		var d = getDOM(id,1);
		if (d.display != 'block') 	{ d.display = 'block';  }
		else 					  	{ d.display = 'none'; }
	}
	function toggleResourceGroup(id) {
		var id = "ripgroup_"+id;
		var d = getDOM(id,1);
		if (d.display != 'block') 	{ d.display = 'block';  }
		else 					  	{ d.display = 'none'; }
	}
	function toggleOfficeGroup(id) {
		var id = "officegroup_"+id;
		var d = getDOM(id,1);
		if (d.display != 'block') 	{ d.display = 'block';  }
		else 					  	{ d.display = 'none'; }
	}
//
//

	// SHOW REFERENCES List 
	function getTopReferencesHTML(aReferences, aReferencePieces, idResource, strResName, idFeatureReference, fEditor, fShowComments) {
		var str = '';
		var strSec = '';
		var fFeaturedReferenceShown = false;
		var nSaveCategory = 0;
		var strSaveMenuName = '';
		var strSaveSection = '';
		var nIndex = 0;
		var fShowDetails = false;
		var strMenuName = '';
		var strListClass = 'referencelist';
		// step through array grabbing the most recent nShow references
		for (var i = 0; i < aReferences.length - 1; i++) {
			var aReference = aReferences[i].split('|');
			var idRef 				= aReference[0];
			var nCategory 			= aReference[1];
			var strMenuName			= aReference[16];
			var fCategoryIsWelcome	= (aReference[22] == 1);
			// SKIP BECAUSE FEATURED REFERENCE?
			var fFeaturedReference = false;
			if (idFeatureReference == idRef) { 
				if (fFeaturedReferenceShown) {
					continue;
				} else {
					fFeaturedReference = true; 
					fFeaturedReferenceShown = true;	
				}
			}
			var strSectionId = 'ref_'+nCategory+'_';
			if (fFeaturedReference) {
				strSectionId += 'f_';
			}
			// SECTION DIVIDER BAR?
			//		-- show divider bar if we have displayed enough above already
			if (nSaveCategory != nCategory) {
				if (strSec) {
					var strMouse = '';
					if (strSaveMenuName) {
						strMouse = 'onmouseover="showMenuDetails(event,this.id,\''+strSaveSectionId+'\')" onmouseout="hideMenuDetails(event,this.id,\''+strSaveSectionId+'\')"';
					}
					str += '<div id="resblock'+nSaveCategory+'" '+strMouse+' >';
						if (strSaveMenuName) {
							var strSubTitle = strSaveMenuName;
							if (fEditor) {
								strSubTitle += '|' + getRShelfLinks (idRes, 0, fHasRefs);
							}
							str += getSubHeadWithRightHTML(strSubTitle,nIndex,3,'page',strSaveSectionId);
						}
						str += '<div class="'+strListClass+'">';
							str += strSec;
						str += '</div>';
					str += '</div>';

				}
				nSaveCategory = nCategory;
				strSaveMenuName = strMenuName;
				strSaveSectionId = strSectionId;
				nIndex = 0;
				strSec = '';
			}

			// CONTENT
			strSec += getOneReferenceHTML(aReference, aReferencePieces, idResource, strResName, strSectionId, fShowComments, fShowDetails, fFeaturedReference, nIndex, idResource, 0, fEditor); nIndex++ ;

			strListClass = 'referencelist';
			if (fFeaturedReference || fCategoryIsWelcome) {
				strSaveMenuName = '';
				strListClass = 'referencelist_top';
			}

		}
		if (strSec) {
			var strMouse = '';
			if (strSaveMenuName) {
				strMouse = 'onmouseover="showMenuDetails(event,this.id,\''+strSaveSectionId+'\')" onmouseout="hideMenuDetails(event,this.id,\''+strSaveSectionId+'\')"';
			}
			str += '<div id="resblock'+nSaveCategory+'" '+strMouse+' >';
				if (strSaveMenuName) {
					var strSubTitle = strSaveMenuName;
					if (fEditor) {
						strSubTitle += '|' + getRShelfLinks (idRes, 0, fHasRefs);
					}
					str += getSubHeadWithRightHTML(strSubTitle,nIndex,3,'page',strSaveSectionId);
				}
				str += '<div class="'+strListClass+'">';
					str += strSec;
				str += '</div>';
			str += '</div>';
		}
		return str;
	}


	// ---------------------------------------------
	// GET SEARCH RESULTS HTML 
	//		Creates site search html
	//		-- aItemsFound: array of found records
	function getSearchResultsHTML(aItemsFound,strSearchText,aReferencePieces,aBulletinPieces) {
		// HEADING + FIND
		var str = '';
		var strSec = '';
		var nSec = 0;
		var nItemsFound = aItemsFound.length-1;
		var nSaveType = -1;
		var strItemName = '';
		var strSubHead = ''; 
		var strSubDiv = '';
		var strItemCode		= '';
		var aDaysInM = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		for (var i = 0; i < nItemsFound; i++) {
			var aR = aItemsFound[i].split('|');
			var nType			= aR[0];
			var idItem	 		= aR[1];
			var strTitle 		= aR[2];
			var strDesc 		= aR[3];
			var strPostingDate 	= aR[4];
			var idAuthor 		= aR[5];
			var strAuthor 		= aR[6];
			var idType	 		= aR[7];
			var strTypeName 	= aR[8];
			var nPageType	 	= aR[9];
			var idPage 			= aR[10];
			var strPageName	 	= aR[11];
			var strSQLDate	 	= aR[12];
			var strEmail	 	= aR[13];
			var strURL	 		= aR[14];
			var nStatus	 		= aR[15];
			var strDistList 	= aR[aR.length-1];
			if (nType != nSaveType) {
				if (nSec > 0) {
					if (nSec > 1) { strSubHead += 's'; }
					str += '</div>';
					str += getSubHeadWithRightHTML(strSubHead,nSec,3,'page',strSubDiv);
					str += '<div class="widecontentarea">';
					str += strSec;
				}
				if (nType == 0) { strItemName = 'Shared Resource';  		strItemCode = 'resource';	}
				else if (nType == 1) { strItemName = 'Group Resource'; 		strItemCode = 'resource'; 	}
				else if (nType == 2) { strItemName = 'Group Bulletin'; 		strItemCode = 'bulletin';	}
				else if (nType == 3) { strItemName = 'Group Event'; 		strItemCode = 'event';		}
				else if (nType == 4) { strItemName = 'Group Notice'; 		strItemCode = 'notice';		}
				else if (nType == 5) { strItemName = 'Home Page'; 			strItemCode = 'pip';		}
				else if (nType == 6) { strItemName = 'Group Page'; 			strItemCode = 'gip';		}
				else if (nType == 7) { strItemName = 'Department Page'; 	strItemCode = 'rip';		}
				else if (nType == 8) { strItemName = 'Location Page'; 		strItemCode = 'lip';		}
				
				strSubDiv = 'searchitem'+nType+'_';
				strSubHead = strItemName; 
				nSaveType = nType;
				strSec = '';
				nSec = 0;
			}
			if (nStatus == 0) {
				strPageName += ' (archive)';
			}
				
			var strLocalLink = 'local:'+strItemCode+':'+idItem;
			strSec += '<div class="rip_colbox_wide" id="'+strItemCode+i+'" onmouseover="showFooterDetails(event,\''+strItemCode+i+'\')" onmouseout="hideFooterDetails(event,\''+strItemCode+i+'\')">';
				strSec += '<div class="resource_area">';
				//strSec += '<div class="resource_area" >';
					strSec += '<table cellspacing="0" cellpadding="0" class="footer_wide"><tr>';
					strSec += '<td align="left">';
					// TYPE
					if (nPageType == 0) { 
						strSec += '<a class="cellinfo" href="javascript:showRIP('+idPage+')">'+strPageName+'</a>';
					} else if (nPageType == 1) { 
						strSec += '<a class="cellinfo" href="javascript:showGroup('+idPage+')">'+strPageName+'</a>';
					} else if (nPageType == 2) { 
						strSec += '<a class="cellinfo" href="javascript:gotoUserPage('+idPage+')">'+strPageName+'</a>';
					} else if (nPageType == 3) { 
						strSec += '<a class="cellinfo" href="javascript:showLIP('+idPage+')">'+strPageName+'</a>';
					} else if (nPageType == 5) { 
						strSec += '<a class="cellinfo" href="javascript:gotoUserPage('+idItem+')">'+strPageName+'</a>';
					} else if (nPageType == 6) { 
						strSec += '<a class="cellinfo" href="javascript:showGroup('+idItem+')">'+strPageName+'</a>';
					} else if (nPageType == 7) { 
						strSec += '<a class="cellinfo" href="javascript:showRIP('+idItem+')">'+strPageName+'</a>';
					} else if (nPageType == 8) { 
						strSec += '<a class="cellinfo" href="javascript:showLIP('+idItem+')">'+strPageName+'</a>';
					}
					if (nType <= 2) { 
						strSec += '&nbsp;&middot;&nbsp;';
					}
					if (nType == 0) {  strSec += '<a class="cellinfo" href="javascript:showReference('+idItem+')">' + strTypeName + '</a>';
					} else if (nType == 1) 	{  strSec += '<a class="cellinfo" href="javascript:showReference('+idItem+')">' + strTypeName + '</a>';
					} else if (nType == 2) 	{  
						strSec += '<a class="cellinfo" href="javascript:gotoBulletin('+idItem+')">' + strTypeName + '</a>';
						strSec += '&nbsp;&middot;&nbsp;';
						strSec += '<a class="cellinfo" href="javascript:gotoBulletin('+idItem+')">' + strPostingDate + '</a>';
					} else if (nType == 3) 	{ 
						strSec += '&nbsp;&middot;&nbsp;';
						strSec += '<a class="cellinfo" href="javascript:showLIP('+idPage+')">' + strPostingDate + '</a>';
					} else if (nType == 4) 	{ 
						strSec += '&nbsp;&middot;&nbsp;';
						strSec += '<a class="cellinfo" href="javascript:showGroup('+idPage+')">' + strPostingDate + '</a>';
					} else if (nType == 5) 	{ 
						if (strPostingDate) {
							strSec += '&nbsp;&middot;&nbsp;';
							strSec += '<a class="cellinfo" href="javascript:gotoUserPage('+idItem+')">' + classoftoGrade(strPostingDate) + '</a>';
						}
					}
					strSec += '</td>';
					strSec += '<td align="right">';
					strSec += '<span id="'+strItemCode+i+'bot" style="visibility:hidden">';
					if ((nPageType == 0) && fGCanEdit) { 
						strSec += '<a class="cellinfo" href="javaScript:bulkDistributeReferences('+idItem+','+idPage+')" title="Click to use this '+strItemName+' for your groups...">distribute</a>';
						strSec += '&nbsp;&middot;&nbsp;';
					} else if (nPageType == 5) { 
						if (idType == 2) {
							strSec += '<a class="cellinfo" href="javascript:viewParentContactInfo('+idItem+')">contact info</a>';
							strSec += '&nbsp;&middot;&nbsp;';
						} else if (idType == 3 || idType == 4) {
							strSec += '<a class="cellinfo" href="javascript:viewEmployeeContactInfo('+idItem+')">contact info</a>';
							strSec += '&nbsp;&middot;&nbsp;';
						}
						strSec += '<a class="cellinfo" href="javascript:addPersonMessage('+idItem+', \'\')">write</a>';
						strSec += '&nbsp;&middot;&nbsp;';
						strSec += '<a class="cellinfo" href="javascript:gotoUserPage('+idItem+')">go to page</a>';
					} else if (nPageType == 6) { 
						strSec += '<a class="cellinfo" href="javascript:showGroup('+idItem+')">go to page</a>';
					} else if (nPageType == 7) { 
						strSec += '<a class="cellinfo" href="javascript:showRIP('+idItem+')">go to page</a>';
					} else if (nPageType == 8) { 
						strSec += '<a class="cellinfo" href="javascript:showLIP('+idItem+')">go to page</a>';
					}
					if (nType == 0) {
						strSec += '<a class="cellinfo" href="javascript:showReference('+idItem+')" title="Click to open this '+strItemName+'">open</a>';
					} else if (nType == 1) { 
						strSec += '<a class="cellinfo" href="javascript:showReference('+idItem+')" title="Click to open this '+strItemName+'">open</a>';
					} else if (nType == 2) { 
						strSec += '<a class="cellinfo" href="javascript:gotoBulletin('+idItem+')" title="Click to open this '+strItemName+'">open</a>';
					} else if (nType == 3) {
						var aD = parseMysqlDatetime(strSQLDate);
						var nY = aD[0];
						var nM = aD[1];
						var nDays = aDaysInM[nM-1];
						var dayA = nY+'-'+nM+'-1 00:00:00';
						var dayZ = nY+'-'+nM+'-'+nDays+' 23:59:00';
						strSec += '<a class="cellinfo" href="JavaScript:viewGIPCalendarReportHistorical('+idPage+',\''+dayA+'\',\''+dayZ+'\')" title="Click to open this group\'s calendar...">calendar</a>';
						strSec += '&nbsp;&middot;&nbsp;';
						strSec += '<a class="cellinfo" href="javascript:showEvent('+idItem+')" title="Click to open this '+strItemName+'">open</a>';
					} else if (nType == 4) { 
						strSec += '<a class="cellinfo" href="javascript:showNotice('+idItem+')" title="Click to open this '+strItemName+'">open</a>';
					}
					strSec += '</span>';
					strSec += '</td>';
					strSec += '</tr></table>';
				strSec += '</div>';
				strSec += getTitleToggleHTML(strSubDiv+nSec, strTitle, strItemName, 'bulletinfront_title', false, false);
				strSec += '<div id="'+strSubDiv+nSec+'" style="display:none;">';
					strSec += '<div class="bulletinfront_text">';
						if (strDesc) { 
							strDesc = stripHTML(strDesc); 
							strDesc = makeURLsHot(strDesc);
							strDesc = cleanStr(strDesc);
						}
						if (!strDesc) {
							strDesc = 'No description.';
						}
						strSec += '<span id="'+strSubDiv+nSec+'_text">';
						strSec += strDesc;
						strSec += '</span>';
						strSec += ' ';
						if (nType <= 1) {
							strSec += getLinksHTML (aReferencePieces, idItem, 0, 0, 0);
						}
						if (nType == 2) {
							strSec += getLinksHTML (aBulletinPieces, idItem, 0, 0, 1);
						}
						if (strEmail) {
							if (nPageType == 5) { 
								strSec += ' &middot; <a href="'+getMailToValue(strEmail,strTitle,"","",0) + '" title="Click to write an e-mail message to '+strTitle+'...">'+strEmail+'</a>';
							} else {
								strSec += ' &middot; <a href="'+getMailToValue(strEmail,strTitle,"","",0) + '" title="Click to write an e-mail message to '+strEmail+'...">reply</a>';
							}
						} 
						if (strURL) {
							strSec += ' &middot; <a href="javascript:showWebsite(\''+escape(strURL)+'\','+idPage+','+nPageType+')" title="Click to go to '+strURL+'...">link</a>';
						}
					strSec += '</div>';
					strSec += '<div class="bulletinfront_footer" style="text-align:left;">';
						strSec += '<span class="cellinfo">';
						if ((nType >= 5) && (nType <= 8)) {
							strSec += ' ('+strLocalLink+')';
						}
						if (nType < 5) {
							strSec += 'Posted';
							if (nType != 3) { 
								strSec += ' on ' + strPostingDate;
							}
							strSec += ' by ';
							strSec += '<a class="cellinfo" href="javascript:gotoUserPage('+idAuthor+')">'+strAuthor+'</a>';
							if (nType <= 2) {
								strSec += ' ('+strLocalLink+')';
							}
							if (strDistList) {
								strSec += '<br>Also posted to ';
								var aDist = strDistList.split(';'); // format: "id:groupname;id:groupname;"
								var nDist = aDist.length-1;
								for (var d = 0; d < nDist; d++) {
									if (d == 24) { strSec += ' and '+(nDist-24)+' more..'; break; }
									var aPage = aDist[d].split(':');
									if (d > 0) { strSec += ', '; }
									if (nType == 0) { 
										strSec += '<a class="cellinfo" href="javascript:showRIP('+aPage[0]+')">'+aPage[1]+'</a>.';
									} else { 
										strSec += '<a class="cellinfo" href="javascript:showGroup('+aPage[0]+')">'+aPage[1]+'</a>.';
									}
								}
							}
						}
						strSec += '</span>';
					strSec += '</div>';
				strSec += '</div>';
			strSec += '</div>';
			nSec++;
		}
		if (nSec > 0) {
			if (nSec > 1) { strSubHead += 's'; }
				str += '</div>';
				str += getSubHeadWithRightHTML(strSubHead,nSec,3,'page',strSubDiv);
				str += '<div class="widecontentarea">';
				str += strSec;
				str += '</div>';
		}
		str += '<div class="page_sectionhead_wide">';
			str += '<table cellspacing="0" cellpadding="0" class="page_sectionhead_table_wide"><tr>';
				str += '<td class="page_sectionhead_text">Summary</td>';
			str += '</tr></table>';
			str += '</div>';
			str += '<div class="widecontentarea">';
				str += '<div class="rip_colbox_wide">';
					str += '<div class="rip_text_main">';
					if (nItemsFound == 0) {
						str += 'Nothing found for "'+strSearchText+'."';
					} else if (nItemsFound == 1) {
						str += 'Found 1 item.';
					} else {
						str += nItemsFound+' items found.';
					}
				str += '</div>';
			str += '</div>';
		str += '</div>';
		return str;
	}

	//
	// Page-specific menus to fit under Links
	//
	function drawRIPMenus() {
		drawPlanMenu(0, fGCanEdit, 0, false);
		drawSiteAdminMenus(idRes);
	}
	function getRIPMenusHTML() {
		var str = '';
		if (fEditor) 			{ str += 'Editor View'; 	}
		else 					{ str += 'Visitor View'; 	}
		// basic
		str += '<div class="nav_commands_top">';
			//if (fGCanEdit) {
				str += getSubMenuCommandHTML('bulkDistributeReferences(0,'+idRes+')','Borrow a Resource...','PaperclipBlack.gif');
			//}
			str += getSubMenuCommandHTML('viewRIPCalendarReport('+idRes+')','Department Calendar...','MonthBlack.gif');
			str += getSubMenuCommandHTML('addPersonMessage(0,\'\')','Write Someone...','MailBlack.gif');
			if (fEditor && fHasRefs) {
				str += getSubMenuCommandHTML('requireReferences('+idRes+')','Set Defaults for New Pages...','SettingsBlack.gif');
			}
		str += '</div>';
		if (fEditor) {
			// var fDisplay = getMenuState('nav_edit',false);
			var fDisplay = false;
			var strDisplay = getMenuDisplay(fDisplay);
			str += getSubMenuToggleHeaderHTML('nav_submenutoggle_top', 'nav_edit', 'Editing Options', fDisplay);
			str += '<div id="nav_edit" style="'+strDisplay+'" >';
				str += '<div class="nav_commands_top">';
					str += getSubMenuCommandHTML('addReference('+idRes+',0)','Add a Resource...','ResourceBlack.gif');
					str += getSubMenuCommandHTML('findReference('+idRes+',0)','Find a Resource...','SearchSmallBlack.gif');
					if (fHasRefs) {
						str += getSubMenuCommandHTML('changeReferenceOrder('+idRes+',0)','Arrange Resources...','ArrangeBlack.gif');
						str += getSubMenuCommandHTML('changeReferenceState('+idRes+',0)','Feature More or Less Detail...','MonitorBlack.gif');
						str += getSubMenuCommandHTML('removeReferences('+idRes+',0)','Remove Resources...','UnsubscribeBlack.gif');
					}
				str += '</div>';
			str += '</div>';
		}
		if (fEditor) {
			// var fDisplay = getMenuState('nav_setup',false);
			var fDisplay = false;
			var strDisplay = getMenuDisplay(fDisplay);
			str += getSubMenuToggleHeaderHTML('nav_submenutoggle_top', 'nav_setup', 'Page Settings', fDisplay);
			str += '<div id="nav_setup" style="'+strDisplay+'" >';
				str += '<div class="nav_commands_top">';
					str += getSubMenuCommandHTML('editResourceName('+idRes+')','Display Name...','EditNameBlack.gif');
					str += getSubMenuCommandHTML('editResourcePix('+idRes+')','Photo...','ChangePhotoBlack.gif');
					str += getSubMenuCommandHTML('editResourceDescription('+idRes+')','Description & Other Settings...','SettingsBlack.gif');
					// str += getSubMenuCommandHTML('editResourceBanner('+idRes+')','Banner...');
					// str += getSubMenuCommandHTML('addRipContact('+idRes+')','Add People...','PersonBlack.gif');
					// str += getSubMenuCommandHTML('delRipContacts('+idRes+')','Remove People...','UnsubscribeBlack.gif');
					str += getSubMenuCommandHTML('archiveRipGroups('+idRes+')','Archive/Restore Group Pages...','DeleteBlack.gif');
					// str += getSubMenuCommandHTML('addGroup('+idRes+',0)','Create a New Group Page...','CreateNewBlack.gif');
				str += '</div>';
			str += '</div>';
		} 
		str += getPageAdminMenusHTML(0,idRes);
		return str;
	}

