var bizBoxes = new Array();

function convertListsToSelect() {
	var uls = document.getElementsByTagName('ul');
	for (var i=uls.length-1; i >= 0; i--)
	{
		var select = document.createElement('select');
		var addobj = select;
		var lis = uls[i].getElementsByTagName('li');
		for (var j=0; j < lis.length; j++)
		{
		    if (lis[j].className.indexOf('optgroup') > -1)
		    {
		        addobj = document.createElement('optgroup');
		        addobj.label = lis[j].innerHTML;
		        select.appendChild(addobj);
		    }
		    else
		    {
		        var anchor = lis[j].firstChild;
		        var option = document.createElement('option');
		        option.value = anchor.href;
		        option.innerHTML = anchor.innerHTML;
		        addobj.appendChild(option);
		    }
		}
		
		var parent = uls[i].parentNode;
		parent.removeChild(uls[i]);
		parent.appendChild(select);
	}
}



function mouseOverBox(e){
	// cross browser access to event
	if (!e) var e = window.event;
	
	// targ = the element the event took place on
	var targ = e.target || e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	// relTarg = the element mouse comes from
	var relTarg = e.relatedTarget || e.fromElement;
	
	// Check relations
	while (relTarg && relTarg != this)
		relTarg = relTarg.parentNode;
	if (relTarg == this)
		return;
		
    // Execute code
    for (var i=0; i<bizBoxes.length; i++)
        bizBoxes[i].className = bizBoxes[i].className.replace(" boxSelected", "");
	this.className += " boxSelected";
    
}

function mouseOutBox(e) {
	// cross browser access to event
	if (!e) var e = window.event;
	
	// targ = the element the event took place on
	var targ = e.target || e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
			
	// relTarg = the element mouse goes to
	var relTarg = e.relatedTarget || e.toElement;
	
    // Don't execute if it's the select
	if (!relTarg ||
		relTarg.nodeName.indexOf('SELECT') > -1 ||
		relTarg.nodeName.indexOf('OPTION') > -1)
		return;
	
	// Or if this doesn't pass
	while (relTarg && relTarg != this)
		relTarg = relTarg.parentNode;
	if (relTarg == this)
		return;
	
	this.className = this.className.replace(" boxSelected", "");
}

function selectChanged(e) {
    if (!this.value || this.value == "")
        return;
        
    if (this.parentNode && this.parentNode.className.indexOf("newWindow") > -1)
        window.open(this.value, "");
    else
        window.location.href = this.value;
}
// http://themaninblue.com/writing/perspective/2004/10/19/ for better and more advanced alternative

function registerEvents(){
	var entries = document.getElementsByTagName('div');
	for (var i = 0; i < entries.length; i++) {
		if (entries[i].className.indexOf('bizBox') > -1) {
			entries[i].onmouseover = mouseOverBox;
			entries[i].onmouseout = mouseOutBox;
			bizBoxes.push(entries[i]);
		}
	}
	
	var selects = document.getElementsByTagName('select');
	for (var i=0; i < selects.length; i++)
	{
		selects[i].onchange = selectChanged;
	}
}
