// IE6 workaround for CSS2 and CSS3 pseudo classes :hover :focus :active :target
// sfhover
// sffocus
// sfactive
// sftarget

function suckerfish(type, tag, parentId) 
{
	if (window.attachEvent) {
		window.attachEvent("onload", function() {
			var sfEls = (parentId == null) ? document.getElementsByTagName(tag) : document.getElementById(parentId).getElementsByTagName(tag);
			type(sfEls);
		});
	}
} // suckerfish

sfHover = function(sfEls) {
	for (var i = 0; i < sfEls.length; i++) {
		sfEls[i].onmouseover = function() {
			this.className += " sfhover";
			hideForIE(hideIdsFromIE); // Hide form select lists from IE
		}
		sfEls[i].onmouseout = function() {
			this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
			showForIE(hideIdsFromIE); // Hide form select lists from IE
		}
	}
} // sfHover

sfFocus = function(sfEls) {
	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"), "");
		}
	}
}

sfActive = function(sfEls) {
	for (var i = 0; i < sfEls.length; i++) {
		sfEls[i].onmousedown = function() {
			this.className += " sfactive";
		}
		sfEls[i].onmouseup = function() {
			this.className = this.className.replace(new RegExp(" sfactive\\b"), "");
		}
	}
}

sfTarget = function(sfEls) {
	var aEls = document.getElementsByTagName("A");
	document.lastTarget = null;
	for (var i = 0; i < sfEls.length; i++) {
		if (sfEls[i].id) {
			if (location.hash == ("#" + sfEls[i].id)) {
				sfEls[i].className += " sftarget";
				document.lastTarget = sfEls[i];
			}
			for (var j = 0; j < aEls.length; j++) {
				if (aEls[j].hash == ("#" + sfEls[i].id)) aEls[j].targetEl = sfEls[i];
				aEls[j].onclick = function() {
					if (document.lastTarget) document.lastTarget.className = document.lastTarget.className.replace(new RegExp(" sftarget\\b"), "");
					if (this.targetEl) this.targetEl.className += " sftarget";
					document.lastTarget = this.targetEl;
					return true;
				}
			}
		}
	}
}


// Ids for elements that contain children only IE6 should modify
hideIdsFromIE = [
	'entfront_head'
];

// Select lists break floating elements in IE6
function hideForIE(parentIds) 
{
	var tag = "SELECT";
	for (var i = 0; i < parentIds.length; i++) {
		if(document.getElementById(parentIds[i])) { 
			var parentId = parentIds[i];
			var elemList = document.getElementById(parentId).getElementsByTagName(tag);
			for (var i = 0; i < elemList.length; i++) {
				elemList[i].style.visibility = 'hidden';
			}
		}
	}
} // hideForIE

// Select lists break floating elements in IE6
function showForIE(parentIds) 
{
	var tag = "SELECT";
	for (var i = 0; i < parentIds.length; i++) {
		if(document.getElementById(parentIds[i])) { 
			var parentId = parentIds[i];
			var elemList = document.getElementById(parentId).getElementsByTagName(tag);
			for (var i = 0; i < elemList.length; i++) {
				elemList[i].style.visibility = '';
			}
		}
	}
} // showForIE

// Select lists break floating elements in IE6
function toggleForIE(parentIds) 
{
	for (var i = 0; i < parentIds.length; i++) {
		if(document.getElementById(parentIds[i])) {
			toggleVisibileByTag("SELECT", parentIds[i]);
		}
	}
} // toggleForIE

// Toggle the visibility of all elements with a certain tag name
//
function toggleVisibileByTag(tag, parentId) 
{
	var elemList = (parentId == null) ? document.getElementsByTagName(tag) : document.getElementById(parentId).getElementsByTagName(tag);
	for (var i = 0; i < elemList.length; i++) {
		elemList[i].style.visibility = (elemList[i].style.visibility != 'hidden') ? 'hidden' : '';
	}
} // toggleVisibileByTag



// emulate :hover for drop down menu in IE
suckerfish(sfHover, "LI", "dmenu");

