var blockGetSearchResults = false;
var blockGetWorkInfo = false;

addEvent(window,"load",inittree);

function inittree() 
{
	blockGetSearchResults = true;
	
	wtList = document.TreeForm.wt.value;
	gtiList = document.TreeForm.gti.value;
	ctList = document.TreeForm.ct.value;
	
	clearWT();
	clearGTI();
	clearCT();
	
	for (i = 1; i <= listLen(wtList); i++)
	{
		x = listGetAt(wtList, i);
		addWT(x);
		expandToItem('treebrowser', 'wt_' + x);
	}
	
	for (i = 1; i <= listLen(gtiList); i++)
	{
		x = listGetAt(gtiList, i);
		addGTI(x);
		expandToItem('treebrowser', 'gti_' + x);
	}
	
	for (i = 1; i <= listLen(ctList); i++)
	{
		x = listGetAt(ctList, i);
		addCT(x);
		expandToItem('treebrowser', 'ct_' + x);
	}
	
	blockGetSearchResults = false;
	getSearchResults(true);
}

function removeGeoTag(GeoTagLinkId)
{
	new Ajax.Request(urlbase + '/cfc/Tags.cfc', 
		{
			method: 'post',
			parameters: { method: 'removeGeoTag', GeoTagLinkId: GeoTagLinkId, FormatType: 'browser' },
			onComplete: function(transport)
				{
					$('GeoTags').innerHTML = transport.responseText;
					$('GeoTagEntryBox').value = '';
					$('GeoTagEntryBox').focus();
				}
		});
}

function getSearchResults(RefreshWork)
{
	var RefreshWork = (RefreshWork == null) ? false : true;
	
	if (!blockGetSearchResults)
	{
		a = document.getElementById('searchresults');
		a.innerHTML = '<div style="padding-top: 100px; padding-bottom: 100px; text-align: center; vertical-align: middle;"><b>Loading</b><br /><br /><br /><img src="images/loading.gif" alt="Loading" /></div>';
		
		new Ajax.Updater('searchresults', urlbase + '/cfc/ResourceBrowser.cfc', 
						 {
							method: 'post',
							evalScripts: true,
							parameters: $('TreeForm').serialize(true),
							onComplete: function(transport)
								{
									if (RefreshWork && document.TreeForm.w.value != '')
									{
										selectWork(document.TreeForm.w.value, true);
									}
								}
						 });
	}
}

function getWorkInfo()
{
	if (!blockGetWorkInfo)
	{
		a = document.getElementById('workinfo');
		a.innerHTML = '<div style="padding-top: 100px; padding-bottom: 100px; text-align: center; vertical-align: middle;"><b>Loading</b><br /><br /><br /><img src="images/loading.gif" alt="Loading" /></div>';

		new Ajax.Updater('workinfo', urlbase + '/cfc/ResourceBrowser.cfc',
						 {
							 method: 'post',
							 evalScripts: true,
							 parameters: { method: 'outputWorkInfo',
							 			   w: document.TreeForm.w.value }
						 });
	}
}
							 			   

function selectWork(WorkId, Scroll)
{
	var Scroll = (Scroll == null) ? false : true;

	atr = document.getElementById('searchresults').getElementsByTagName('tr');
	for (i = 0; i < atr.length; i++)
	{
		atr[i].className = 'resitem';
	}

	tr = document.getElementById('tr_w_' + WorkId);
	if (tr != null) 
	{
		tr.className = 'resitemsel';
		if (Scroll) tr.scrollIntoView();
	}
	
	document.TreeForm.w.value = WorkId;
	getWorkInfo();
}

function addWT(wt2)
{
	if (listFind(document.TreeForm.wt.value, wt2) == 0)
	{
		a = document.getElementById('a_wt_' + wt2);
		if (a != null)
		{
			document.TreeForm.wt.value = listAppend(document.TreeForm.wt.value, wt2);
			a.className = 'treelinksel';
			refreshWTall();
			getSearchResults();
		}
	}
}

function toggleWT(wt2)
{
	var x = listFind(document.TreeForm.wt.value, wt2)
	if (x == 0)
	{
		document.TreeForm.wt.value = listAppend(document.TreeForm.wt.value, wt2);

		a = document.getElementById('a_wt_' + wt2);
		a.className = 'treelinksel';
	}
	else
	{
		document.TreeForm.wt.value = listDeleteAt(document.TreeForm.wt.value, x);
		
		a = document.getElementById('a_wt_' + wt2);
		a.className = 'treelink';
	}

	refreshWTall();
	getSearchResults();
}

function addCT(ct2)
{
	if (listFind(document.TreeForm.ct.value, ct2) == 0)
	{
		a = document.getElementById('a_ct_' + ct2);
		if (a != null)
		{
			document.TreeForm.ct.value = listAppend(document.TreeForm.ct.value, ct2);
			a.className = 'treelinksel';
			refreshCTall();
			getSearchResults();
		}
	}
}

function toggleCT(ct2)
{
	var x = listFind(document.TreeForm.ct.value, ct2)
	if (x == 0)
	{
		document.TreeForm.ct.value = listAppend(document.TreeForm.ct.value, ct2);

		a = document.getElementById('a_ct_' + ct2);
		a.className = 'treelinksel';
	}
	else
	{
		document.TreeForm.ct.value = listDeleteAt(document.TreeForm.ct.value, x);
		
		a = document.getElementById('a_ct_' + ct2);
		a.className = 'treelink';
	}

	refreshCTall();
	getSearchResults();
}

function addGTI(gti2)
{
	if (listFind(document.TreeForm.gti.value, gti2) == 0)
	{
		a = document.getElementById('a_gti_' + gti2);
		if (a != null)
		{
			document.TreeForm.gti.value = listAppend(document.TreeForm.gti.value, gti2);
			a.className = 'treelinksel';
			refreshGTIall();
			getSearchResults();
		}
	}		
}

function toggleGTI(gti2)
{
	var x = listFind(document.TreeForm.gti.value, gti2)
	if (x == 0)
	{
		document.TreeForm.gti.value = listAppend(document.TreeForm.gti.value, gti2);

		a = document.getElementById('a_gti_' + gti2);
		a.className = 'treelinksel';
	}
	else
	{
		document.TreeForm.gti.value = listDeleteAt(document.TreeForm.gti.value, x);
		
		a = document.getElementById('a_gti_' + gti2);
		a.className = 'treelink';
	}

	refreshGTIall();
	getSearchResults();
}

function refreshWTall()
{
	a = document.getElementById('a_wt_all');

	if (listLen(document.TreeForm.wt.value) == 0)
	{
		a.className = 'treelinksel';
		a.innerHTML = 'viewing all';
	}
	else
	{
		a.className = 'treelink';
		a.innerHTML = 'view all';
	}
}

function refreshCTall()
{
	a = document.getElementById('a_ct_all');

	if (listLen(document.TreeForm.ct.value) == 0)
	{
		a.className = 'treelinksel';
		a.innerHTML = 'viewing all';
	}
	else
	{
		a.className = 'treelink';
		a.innerHTML = 'view all';
	}
}

function refreshGTIall()
{
	a = document.getElementById('a_gti_all');

	if (listLen(document.TreeForm.gti.value) == 0)
	{
		a.className = 'treelinksel';
		a.innerHTML = 'viewing all';
	}
	else
	{
		a.className = 'treelink';
		a.innerHTML = 'view all';
	}
}

function clearWT()
{
	document.TreeForm.wt.value = '';
	
	ar = document.getElementById('wt_0').getElementsByTagName('a');
	for (i = 0; i < ar.length; i++)
	{
		ar[i].className = 'treelink';
	}
	
	refreshWTall();
	getSearchResults();
}

function clearCT()
{
	document.TreeForm.ct.value = '';
	
	ar = document.getElementById('ct_0').getElementsByTagName('a');
	for (i = 0; i < ar.length; i++)
	{
		ar[i].className = 'treelink';
	}
	
	refreshCTall();
	getSearchResults();
}

function clearGTI()
{
	document.TreeForm.gti.value = '';

	ar = document.getElementById('gti_0').getElementsByTagName('a');
	for (i = 0; i < ar.length; i++)
	{
		ar[i].className = 'treelink';
	}
	
	refreshGTIall();
	getSearchResults();
}
