// JavaScript Document

sfFocus = function() {
	var sfEls = document.getElementsByTagName("INPUT");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onfocus=function() {
			this.className+=" sffocus";
		}
		sfEls[i].onblur=function() {
			this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfFocus);

// collapse program descriptions
if (document.getElementById("programs"))
{
	var divs = document.getElementById("programs").getElementsByTagName("div");
	var divsLength = divs.length;
	
	for (i = 0; i < divsLength; i++) 
	{
		animatedcollapse.addDiv(divs[i].id, 'fade=1,height=auto,group=programs')
		animatedcollapse.init()
	}
}

function sortUnorderedList(ul)
{
	if (typeof ul == "string")
	ul = document.getElementById(ul);
	
	// Get the list items and setup an array for sorting
	var lis = ul.getElementsByTagName("LI");
	var l = lis.length;
	
	// Make arrays objects so I can pass as reference
	var hrefs = Object([]);
	var vals = Object([]);
	
	// Populate the arrays
	for (var i = 0; i < l; i++)
	{
		hrefs.push(lis[i].getElementsByTagName("a")[0].href);
		vals.push(lis[i].getElementsByTagName("a")[0].innerHTML);
	}
	
	// Sort them
	sortArrays(vals, hrefs);
	
	// Change the list on the page
	for (var i = 0; i < l; i++)
	lis[i].innerHTML = "<a href=\"" + hrefs[i] + "\">" + vals[i] + "</a>";
}

function sortArrays(vals, hrefs)
{
	var unsorted = true;
	while (unsorted)
	{
		// Tracks whether any changes were made, changed to false on any swap
		var complete = true;
		for (var i = 0; i < vals.length - 1; i++)
		{                       
			// Holds the value for determining whether to swap the current positions
			var swap = false;
			var currentItem = vals[i];
			var nextItem = vals[i + 1];
			var currentHref = hrefs[i];
			var nextHref = hrefs[i + 1];
			
			if (currentItem > nextItem)
					swap = true;
			
			if (swap)
			{
				vals[i] = nextItem;
				vals[i + 1] = currentItem;
				hrefs[i] = nextHref;
				hrefs[i + 1] = currentHref;
				complete = false;
			}
		}
		if (complete)
			unsorted = false;
	}
}

