////////////////////////////////
// Updated by DJP 20-Jan-2005 //
//////////////////////////////////////////////////////////////////////
// Purpose: Scripts for handling show/hide of objects on misc pages //
//////////////////////////////////////////////////////////////////////


// Developed from Todd's doShowHideDiv
// variables declared within XSL!!
function doShowHideGeneric(sId, sOpenClass, iPos) {

		var rowId = document.getElementById(sId + '_top')
		var imgId = document.getElementById(sId + '_Image')
		var sPos = iPos - 1
		if (rowId)
			if (rowId.style.display!='block')
			{
				document.getElementById(sId).className=sOpenClass
				document.getElementById(sId + '_top').className=sOpenClass
				document.getElementById(sId + '_gap').style.display='none'
				//document.getElementById(sId + '_status').style.display='none'
				if (document.getElementById(sId + '_subtext'))
					document.getElementById(sId + '_subtext').style.display='none'
				if (document.getElementById(iPos))
					document.getElementById(iPos).style.display='none'
				//if (document.getElementById(sPos))
					//document.getElementById(sPos).style.display='none'
				document.getElementById(sId + '_top').style.display='block'
				document.getElementById(sId + '_bottom').style.display='block'
				document.getElementById(sId + '_left1').style.display='block'
				document.getElementById(sId + '_left2').style.display='block'
				document.getElementById(sId + '_right').style.display='block'
				document.getElementById(sId + '_detail').style.display='block'
				if (imgId)
				{
					imgId.src=sCloseArrow
					imgId.alt='Close Category'
				}
				if (document.getElementById(sLastOpenId) && sLastOpenId!=sId)
					if (document.getElementById(sLastOpenId + '_top').style.display=='block')
						doShowHideGeneric(sLastOpenId,'', sLastOpenId_pos)
				if (sLastOpenId!=sId)				
				{
					sLastOpenId = sId
					sLastOpenId_pos = iPos
				}
			}
			else
			{
				document.getElementById(sId).className=''
				document.getElementById(sId + '_top').className=''
				document.getElementById(sId + '_gap').style.display='block'
				//document.getElementById(sId + '_status').style.display='inline'
				if (document.getElementById(sId + '_subtext'))
					document.getElementById(sId + '_subtext').style.display='block'
				if (document.getElementById(iPos))
					document.getElementById(iPos).style.display='block'
				//if (document.getElementById(sPos))
					//document.getElementById(sPos).style.display='block'
				document.getElementById(sId + '_top').style.display='none'
				document.getElementById(sId + '_bottom').style.display='none'
				document.getElementById(sId + '_left1').style.display='none'
				document.getElementById(sId + '_left2').style.display='none'
				document.getElementById(sId + '_right').style.display='none'
				document.getElementById(sId + '_detail').style.display='none'
				if (imgId)
				{
					imgId.src=sOpenArrow
					imgId.alt='Expand Category'
				}
			}

}

////////////////////////////////
// Created by DJP 28-Jul-2004 //
//////////////////////////////////////////////////////////////////////
// Purpose: Scripts for handling show/hide of objects on misc pages //
//////////////////////////////////////////////////////////////////////

//GLOBAL VARIABLES
var sSYSOpenArray = new Array(3)
var sSYSClosedArray = new Array(3)

// shows a page element, referenced by ID
function showItem(sId)
{	
	if (document.getElementById(sId))
	{
		document.getElementById(sId).style.display="block"
	}
}
			
// hides a page element, referenced by ID			
function hideItem(sId)
{
	if (document.getElementById(sId))
	{
		document.getElementById(sId).style.display="none"
	}
}

//gets visible status of item (true = visible)
function isItemVisible(sId)
{
	if (document.getElementById(sId))
	{
		return (document.getElementById(sId).style.display == "block")
	}
	else
	{
		return false
	}
}

// shows/hides all page elements of specified tag
function showAllByTagName(sTag, bShow)
{
	if (document.getElementsByTagName(sTag))
	{
		//get all elements of this tag
		elemArray = document.getElementsByTagName(sTag)
		
		//for each element, show/hide it!
		for (i=0; i<elemArray.length; i++)
		{
			//only affect items we have given ids to
			if (elemArray[i].id != "")
			{
				if (bShow)
				{
					showItem(elemArray[i].id)
				}
				else
				{
					hideItem(elemArray[i].id)
				}
			}
		}
	}
}


// shows page elements of specified tag and specified id prefix
function showByIdPrefix(sPrefix, sTag, bShow)
{
	if (document.getElementsByTagName(sTag))
	{
		//get all elements of this tag
		elemArray = document.getElementsByTagName(sTag)
		
		//for each element that fits our prefix, show it!
		for (i=0; i<elemArray.length; i++)
		{
			//if right at the start of the id (i.e. a prefix)
			if (elemArray[i].id.indexOf(sPrefix) == 0)
			{
				if (bShow)
				{
					showItem(elemArray[i].id)
				}
				else
				{
					hideItem(elemArray[i].id)
				}
			}
		}
	}
}

// shows page elements of specified tag and specified id suffix
function showByIdSuffix(sSuffix, sTag, bShow)
{
	var iLength = 0
	var iSuffixLength = sSuffix.length

	if (document.getElementsByTagName(sTag))
	{
		//get all elements of this tag
		elemArray = document.getElementsByTagName(sTag)
		
		//for each element that fits our prefix, show/hide it!
		for (i=0; i<elemArray.length; i++)
		{
			//if right at the end of the id (i.e. a suffix)
			//indexOf returns location of start of string (0-based)
			iLength = elemArray[i].id.length
			if (elemArray[i].id.indexOf(sSuffix) == (iLength-iSuffixLength))
			{
				if (bShow)
				{
					showItem(elemArray[i].id)
				}
				else
				{
					hideItem(elemArray[i].id)
				}
			}
		}
	}
}

// on change of our select list, filter
function doSelectChangeFilter(selectList, sTag)
{
	var i = selectList.selectedIndex
	
	// if we have a value for our selected item, only show filter value
	if (selectList[i].value != "")
	{
		// hide all
		showAllByTagName(sTag, false)
		// then show our relevant items
		showByIdPrefix(selectList[i].value, sTag, true)
	}
	// else show everything
	else
	{
		showAllByTagName(sTag, true)
	}
}


// do default view for expanding/contracting lists
function doDefaultListView(sOpenSuffix, sClosedSuffix, sTag)
{
	//hide all open categories
	showByIdSuffix(sOpenSuffix, sTag, false)
	//show all closed categories
	showByIdSuffix(sClosedSuffix, sTag, true)

}

// handles a click on expanding/contracting lists
function onListItemClick(sId, sOpenSuffix, sClosedSuffix, sTag)
{		
	var iThisLevel = 1

	sTempOpen = sId + sOpenSuffix
	sTempClosed = sId + sClosedSuffix
	
	
	if (isItemVisible(sTempOpen))
	{	
		// show closed item, hide open version
		showItem(sTempClosed)
		hideItem(sTempOpen)
	}
	else
	{
		// show open item, hide closed version
		showItem(sTempOpen)
		hideItem(sTempClosed)
		//always on top level, store ID so we know what to close
		if (sSYSOpenArray[iThisLevel]!=sTempOpen)
		{
			// show closed item, hide open version
			showItem(sSYSClosedArray[iThisLevel])
			hideItem(sSYSOpenArray[iThisLevel])
			sSYSOpenArray[iThisLevel] = sTempOpen
			sSYSClosedArray[iThisLevel] = sTempClosed
		}

	}
								
	/* old code					
	//first determine if we're showing category already
	if (isItemVisible(sTempOpen))
	{	
		// close down all items
		doDefaultListView(sOpenSuffix, sClosedSuffix, sTag)
	}
	else {
		doDefaultListView(sOpenSuffix, sClosedSuffix, sTag)
		// show open item, hide closed version
		showItem(sTempOpen)
		hideItem(sTempClosed)
	}
	*/
}

// DJP 30-Sep-2004 handles a click on expanding/contracting lists
// on multiple levels!!
function onListItemClickMulti(sId, sOpenSuffix, sClosedSuffix, sTag, iThisLevel, iMaxLevels)
{		
	var i
	
	sTempOpen = sId + sOpenSuffix + iThisLevel
	sTempClosed = sId + sClosedSuffix + iThisLevel
	
	if (isItemVisible(sTempOpen))
	{	
		// show closed item, hide open version
		showItem(sTempClosed)
		hideItem(sTempOpen)
	}
	else
	{
		// show open item, hide closed version
		showItem(sTempOpen)
		hideItem(sTempClosed)
		//store ID so we know what to close
		if (sSYSOpenArray[iThisLevel]!=sTempOpen)
		{
			// show closed item, hide open version
			showItem(sSYSClosedArray[iThisLevel])
			hideItem(sSYSOpenArray[iThisLevel])
			sSYSOpenArray[iThisLevel] = sTempOpen
			sSYSClosedArray[iThisLevel] = sTempClosed
		}
	}
	
	/* old code					
	//first determine if we're showing category already
	if (isItemVisible(sTempOpen))
	{	
		// close down all items on this level + sub items
		for (i=iThisLevel; i<=iMaxLevels; i++)
		{
			doDefaultListView(sOpenSuffix + i, sClosedSuffix + i, sTag)
		}
	}
	else {
		// close down all items on this level + sub items
		for (i=iThisLevel; i<=iMaxLevels; i++)
		{
			doDefaultListView(sOpenSuffix + i, sClosedSuffix + i, sTag)
		}
		// show open item, hide closed version
		showItem(sTempOpen)
		hideItem(sTempClosed)
	}
	*/
}
function bannerAds(id, desc, fileName, type, text, url, newWindow)
{
	this.id = id
	this.desc = desc
	this.fileName = fileName
	this.type = type
	this.text = text
	this.url = url
	this.newWindow = newWindow
}
