function createZipLink()
{
    var loc = parent.mainFrame.getZipName();
    parent.mainFrame.location.href = "../Library/" + loc;
}

function togglePlusMinusImage(img)
{
	if (img.src.match('plus.gif$'))
		img.src = 'minus.gif';
	else
		img.src = 'plus.gif';
}

function setSelectionToElemID(id)
{
    var elem = getDocElemById(document, id);
    elem.className = 'hilitesel';
    if (document.prevSelection && document.prevSelection != id)
    {
		var oldElem = getDocElemById(document, document.prevSelection);
		oldElem.className = 'hilite';
	}
	document.prevSelection = id;
}

function applyToggleSettings(doc)
{
	if (parent.toggleSettings)
	{
		//alert("parent.toggleSettings.length is " + parent.toggleSettings.length);
		for(k = 0; k < parent.toggleSettings.length; k++)
		{
		    //alert("Setting " + parent.toggleSettings[k][0] + " to " + parent.toggleSettings[k][1]);
			setTagDisplay(doc, parent.toggleSettings[k][0], parent.toggleSettings[k][1]);
		}
	}
}

function setTagDisplay(doc, tag, state)
{
	var coll = getDocElemsByTag(doc, tag);
	if (coll)
	{
		for(i = 0; i < coll.length; i++)
		{
			coll[i].style.display = state;
		}
	}
}

function toggleTagInDocument(doc, tag)
{
	var coll = getDocElemsByTag(doc, tag);
	if (coll)
	{
		if (coll[0].style.display == 'none')
			setTagDisplay(doc, tag, 'block');
		else
			setTagDisplay(doc, tag, 'none');
		
		if (!parent.toggleSettings)
			parent.toggleSettings = new Array(0);
			
		var found = 0;
		for(i = 0; i < parent.toggleSettings.length; i++)
		{
			if (parent.toggleSettings[i][0] == tag)
			{
				parent.toggleSettings[i][1] = coll[0].style.display;
				found = 1;
			}
		}
		if (!found)
		{
			//alert("Creating record for " + tag);
			parent.toggleSettings[parent.toggleSettings.length] 
				= new Array(tag, coll[0].style.display);
		}
	}
}

function preLoadImages(list)
{
	document.preLoadedImages = new Array(list.length);
	for (i = 0; i < list.length; i++)
	{
		document.preLoadedImages[i] = new Image();
		document.preLoadedImages[i].src = list[i];
	}
}

function swapInPreloadedImage(imgid, index)
{
	var elem = getDocElemById(document, imgid);
	if (elem)
		elem.src = document.preLoadedImages[index].src;
}

function showOneIDAndHideOthers(id, idarray)
{
	showID(id, "block");
	hideIDs(idarray);
}

function hideIDs(idarray)
{
	for(i = 0; i < idarray.length; i++)
	{
		showID(idarray[i], "none");
	}
}

function showID(id, state)
{
	var elem = getDocElemById(document, id);
	if (elem)
		elem.style.display = state;
}

function toggleID(id)
{
	var elem = getDocElemById(document, id);
	if (elem)
	{
		if(elem.style.display == 'none')
		{
			elem.style.display = 'block';
		}
		else
		{
			elem.style.display = 'none';
		}
	}
}

function getDocElemById(doc, id)
{
	if (doc.all) // use the document.all interface  (IE4+)
	{
		return doc.all[id];
	}
	// use the document.getElementById interface (IE5+, NS6+, the DOM Standard!)
	else if (doc.getElementById) 
	{
		return doc.getElementById(id);
	}
	// try the document.layers interface (NS4)
	else if (doc.layers) 
	{
		return doc.layers[id];
	}
	else
	{
		//alert("I can't find an element-getting interface!");
		return 0;
	}
}

function getDocElemsByTag(doc, tag)
{
	if (doc.all)
	{
		return doc.all.tags(tag);
	}
	else if (doc.getElementsByTagName)
	{
		return doc.getElementsByTagName(tag);
	}
}
	
	