// extracted from WebReference browser sniffer
// see http://www.webreference.com/ for more information
var agt = navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();

var is_opera = (agt.indexOf("opera") != -1);

var is_safari = ((agt.indexOf('safari') != -1) && (agt.indexOf('mac') != -1));
var is_konq = (agt.indexOf('konqueror') != -1);
var is_khtml = (is_safari || is_konq);

var iePos = appVer.indexOf('msie');
var is_ie = ((iePos != -1) && (!is_opera) && (!is_khtml));

// control select visibility in IE; selects must
// be in a form and have a style assigned; the
// counter is necessary because the onmouseover
// and onmouseout events were not be handled
// synchronously; the timer is necessary to keep
// the selects from "flashing" between visible
// and hidden as the user moused over the menu items
if(is_ie){
	var selects = [];
	var selectsHidden = 0;
	setTimeout("doShowSelects()", 500);
}

function hideSelects(){
	if(is_ie){
		selectsHidden++;
		var documentForms = document.forms;
		var formsCount = documentForms.length;
		for (var thisForm = 0; thisForm < formsCount; thisForm++){
			var formElements = documentForms[thisForm].elements;
			var elementsCount = formElements.length;
			for (var thisElement = 0; thisElement < elementsCount; thisElement++){
				var elementObject = formElements[thisElement];
				var elementType = elementObject.type.toString();
				if (elementType.substring(0, 6) == "select"){
					selects[selects.length] = elementObject;
					if (elementObject.style){
						elementObject.style.visibility = 'hidden';
					}
				}
			}
		}
	}
}

function showSelects(){
	if(is_ie){
		selectsHidden--;
	}
}

function doShowSelects(){
	if(is_ie){
		if (selectsHidden <= 0){
			var selectsCount = selects.length;
			if (selectsCount > 0){
				for (var thisSelect = 0; thisSelect < selectsCount; thisSelect++){
					var selectObject = selects[thisSelect];
					if (selectObject.style){
						selectObject.style.visibility = 'visible';
					}
				}
			}
			selects = [];
			selectsHidden = 0;
		}
		setTimeout("doShowSelects()", 500);	
	}
}
