<!--
var _imagePairs = [['plus_small.bmp', 'minus_small.bmp']];
var _imagePath = pathPart(location.href) + 'images/';
var originalHidden = null;

function showHide(id) 
{
	element = document.getElementById(id);
	
	showHideEl(element);
}

// returns true if the element's expanded state was changed
function showHideEl(element, forceShow)
{
	if (element == null)
	{
		alert("null element passed to showHideEl");
		return;
	}

	if (element.style == null)
		element.attributes.add('style');
		
	if (element.style.display == null)
		element.attributes.style.add('display');
	
	var wasExpanded = element.style.display == 'block'
	
	if (forceShow != null)
		element.style.display = forceShow ? 'block' : 'none';
	else
		element.style.display = element.style.display == 'block' ? 'none' : 'block';
	
	if (forceShow == null)
	{
		var hidden = document.getElementById('expandState');
		var s = element.parentNode.id.substring(1) + '=';
		var b = element.style.display == 'none'
		
		if (hidden != null)
			hidden.value = hidden.value.replace(s + (b ? '1' : '0'), s + (b ? '0' : '1')); 
	
		if (originalHidden != null)
			originalHidden = originalHidden.replace(s + (b ? '1' : '0'), s + (b ? '0' : '1')); 
	
		return true
	}	
	
	return wasExpanded != forceShow;
}

function isExpanded(element)
{
	return element.style == null || element.style.display == null || element.style.display != 'none';
}

// gets passed a SPAN, that precedes the UL to show or hide
// if the SPAN has an IMG child, will attempt to swap its image
function showHideEx(obj, expand)
{
	var element = nextSiblingByTagName(obj, 'UL');
	var img = nextSiblingByTagName(obj.firstChild, 'IMG', true);
	
	if (element == null)
		return;
		
	if (showHideEl(element, expand))
		swapImg(img);			
		
}

// swaps an image based on the images in _imagePairs
// and the path in _imagePath
function swapImg(obj)
{
	if (obj == null)
		return;

	var file = filePart(obj.src);
	var i;
	
	
	for (i = 0; i < _imagePairs.length; i++)
	{
		if (file == _imagePairs[i][0])
			file = _imagePairs[i][1];
		else if (file == _imagePairs[i][1])
			file = _imagePairs[i][0];
	}
	
	obj.src = _imagePath + file; //document.getElementById('txt').value 
}

function initalizeExpandedState(restoreOriginalExpandedState)
{
	var hidden = document.getElementById('expandState');
	
	if (restoreOriginalExpandedState)
		hidden.value = originalHidden;
	
	if (hidden.value == null || hidden.value.length == 0)
	{
		saveExpandState('li', 'c');
		//document.getElementById('txt').value = 'hidden was null or zero length';
	}
	else
	{
		//document.getElementById('txt').value = 'hidden had content';
		var x = hidden.value.split(';');
		
		for (i = 0; i < x.length; i++)
		{
			var id = 'c' + x[i].substring(0, x[i].indexOf('='));
			var value = x[i].substring(x[i].indexOf('=') + 1);
			var element = document.getElementById(id);
			var ul;

			if (element != null)
				ul = nextSiblingByTagName(element.firstChild, 'UL');
				
			if (ul != null)
			{
				var span = element.firstChild;
				var img = nextSiblingByTagName(span.firstChild, 'IMG', true);


				if (img.src != _imagePath + 'blank_small.bmp')
				{
					if (isExpanded(ul))
						img.src = _imagePath + 'minus_small.bmp';
					else
						img.src = _imagePath + 'plus_small.bmp';
				}

				//if ( != isExpanded(ul))
				showHideEx(span, value == '1');
			}
		}
	}
	
	//document.getElementById('txt').value = hidden.value;
	
}

function expandContractAllEx(doExpand)
{
	expandContractAll(document.getElementById('block0'), true, doExpand);
	expandContractAll(document.getElementById('block1'), true, doExpand);
}

function expandContractAll(root, doSomething, doExpand)
{
	// format is ul.[li+].{span ul}.[li+].span etc.

	// now we're at the <ul>
	// so point child to the first <li>
	var li = nextSiblingByTagName(getFirstChild(root), 'LI', true);
	
	if (li == null)
		return;
		
	// loop through each OL.LI
	while (li != null)
	{
		// get OL.LI.OL
		var liSpan = nextSiblingByTagName(getFirstChild(li), 'SPAN', true);
		var liUl = nextSiblingByTagName(liSpan, 'UL', false);
		li = nextSiblingByTagName(li, 'LI', false);
		
		if (liSpan == null)
			continue;
			
		
		if (doSomething)
			showHideEx(liSpan, doExpand);
			
		expandContractAll(liUl, true, doExpand);
	}
	
	

}

function collapseRecursive(obj)
{
	var element = getFirstChild(obj);

	while (element != null)
	{
		if (element.tagName == 'UL' || element.tagName == 'LI')
		{
			collapseRecursive(element);	
		}
		if (element.tagName == 'SPAN')
			showHideEx(element);						
		
		element = element.nextSibling;
	}
}

function getFirstChild(obj)
{
	var element = obj;
	
	while (element != null && !element.hasChildNodes())
		element = element.nextSibling;

	return element != null ? element.firstChild : null;
}

function prevSiblingByTagName(obj, tagName)
{
	var element = obj.prevSibling;

	while (element != null)
	{
		if (element.tagName == tagName)
			return element;
		else
			element = element.prevSibling;
	}
		
	return null;
}

function nextSiblingByTagName(obj, tagName, searchPassedElement)
{
	if (obj == null)
		return null;

	var element = searchPassedElement ? obj : obj.nextSibling;

	while (element != null)
	{
		if (element.tagName == tagName)
			return element;
		else
			element = element.nextSibling;
	}
		
	return null;
}

function pathPart(fullName)
{
	if (fullName.indexOf('?') > -1)
		fullName = fullName.substring(0, fullName.indexOf('?'))
	
	return fullName.substring(0, fullName.lastIndexOf('/') + 1);
}

function filePart(fullName)
{
	return fullName.substring(fullName.lastIndexOf('/') + 1);
}

function saveExpandedState()
{
	var hidden = document.getElementById('expandState');
	
	hidden.value = hidden.value + ';';
	
	document.forms[0].submit();
	
}

function execTxt(cmd)
{
	document.getElementById('txt').value = 'massedit';
	document.forms[0].submit();
}


function massAction(action)
{
	var hidden = document.getElementById('expandState');

	hidden.value = action;
	document.forms[0].submit();
}

function showHideTrCells(trId, forceShow)
{
	var tr = document.getElementById(trId);
	
	if (tr == null)
		return;
		
	var td = nextSiblingByTagName(getFirstChild(tr), 'TD', true);
	
	while (td != null)
	{
		showHideEl(td, forceShow);
		td = nextSiblingByTagName(td, 'TD', false);
	}
}


function saveAndSubmit()
{
	saveExpandState('li', 'c');

	document.getElementById('expandState').value+= ';';

	document.forms[0].submit();
	
}

function saveExpandState(element, idPrefix) 
{
	elements = document.getElementsByTagName(element);
	var s = '';

	for (i = 0; i < elements.length; i++)
	{
		try
		{
	
			if (elements[i].id.substring(0, idPrefix.length) == idPrefix)
			{
				var ul = nextSiblingByTagName(elements[i].firstChild, 'UL');
				
				s += elements[i].id.substring(idPrefix.length) + '=' + (!ul || !isExpanded(ul) ? '0' : '1')
					+ ';';
			}
		}
		catch (ex)
		{
		
		}
		
	}
	
	var hidden =  document.getElementById('expandState');//document.createElement('input');
	hidden.value = s;
	originalHidden = s;

	//document.forms[0].submit();
}

function simpleEdit()
{
	addImage('li', 'images/edit.gif');
	document.getElementById('editMode').value = 'simpleEdit';
}

function massEdit()
{
	//addCheckbox('li');
	document.getElementById('editMode').value = 'massEdit';
	document.forms[0].submit();
	document.forms[0].submit();
}

function addImage(element, imageUrl) 
{
	elements = document.getElementsByTagName(element);
	var s = '';
	var cnt = 0;
	

	if (elements.length > 0)
	{
		var el = elements[0];
		
		for (i = 0; i < el.childNodes.length; i++)
		{
			if (el.childNodes[i].innerHTML.indexOf(imageUrl) > 0)
				return;
		}
	}
	for (i = 0; i < elements.length; i++)
	{
		try
		{
			var el = elements[i];
			var id = el.id;
			
			if ((id.charAt(0) == 'b' || id.charAt(0) == 'c') &&
				id.length > 1 && id.charAt(1) >= '0' && id.charAt(1) <= '9')
			{

				var a = document.createElement('a');
				a.innerHTML = '<img src="' + imageUrl + '">&nbsp; ';
				a.href = 'default.aspx?edit' + (id.charAt(0) == 'b' ? 'book' : 'cat') + '=' + id.substring(1);
				
				if (id.charAt(0) == 'b')
					elements[i].insertBefore(a, elements[i].firstChild);
				else
					elements[i].firstChild.insertBefore(a, elements[i].firstChild.firstChild);
				
				cnt++;
			}
		}
		catch (ex)
		{
		}
	}
}

	
function addCheckbox(element) 
{
	elements = document.getElementsByTagName(element);
	var s = '';
	var cnt = 0;

	if (false)//(elements.length > 0)
	{
		var el = elements[0];
		
		for (i = 0; i < el.childNodes.length; i++)
		{
			if (el.childNodes[i].innerHTML.indexOf('chkB') > 0)
				return;
		}
	}
	
	for (i = 0; i < elements.length; i++)
	{
		try
		{
			var el = elements[i];
			var id = el.id;
			
			if ((id.charAt(0) == 'b' || id.charAt(0) == 'c') &&
				id.length > 1 && id.charAt(1) >= '0' && id.charAt(1) <= '9')
			{
				var chk = document.createElement('input');
				
				chk.name = 'chk' + (id.charAt(0) == 'b' ? 'B' : 'C') + id.substring(1);
				
				if (id.charAt(0) == 'b')
					elements[i].insertBefore(a, elements[i].firstChild);
				else
					elements[i].firstChild.insertBefore(a, elements[i].firstChild.firstChild);
				
				cnt++;
			}
		}
		catch (ex)
		{
		}
	}
//		alert(cnt);


	//document.forms[0].submit();
			
}

function rc(xrefPk)
{
	sendQuerystring('x=' + xrefPk, true);
}


-->
