function ifEmbeddedMinimalize() {
	if(window != window.top) {
		$('body').addClass('minimalist');
	}
}

        function UpdateTableHeaders() {
            $("div.divTableWithFloatingHeader").each(function() {
                var originalHeaderRow = $(".tableFloatingHeaderOriginal", this);
                var floatingHeaderRow = $(".tableFloatingHeader", this);
                var offset = $(this).offset();
                var scrollTop = $(window).scrollTop();
                if ((scrollTop > offset.top) && (scrollTop < offset.top + $(this).height())) {
                    floatingHeaderRow.css("visibility", "visible");
                    floatingHeaderRow.css("top", Math.min(scrollTop - offset.top, $(this).height() - floatingHeaderRow.height()) + "px");

                    // Copy cell widths from original header
                    $("th", floatingHeaderRow).each(function(index) {
                        var cellWidth = $("th", originalHeaderRow).eq(index).css('width');
                        $(this).css('width', cellWidth);
                    });

                    // Copy row width from whole table
                    floatingHeaderRow.css("width", $(this).css("width"));
                }
                else {
                    floatingHeaderRow.css("visibility", "hidden");
                    floatingHeaderRow.css("top", "0px");
                }
            });
        }
        
        $(document).ready(function() {
            $("table.tableWithFloatingHeader").each(function() {
                $(this).wrap("<div class=\"divTableWithFloatingHeader\" style=\"position:relative\"></div>");

                var originalHeaderRow = $("tr:first", this)
                originalHeaderRow.before(originalHeaderRow.clone());
                var clonedHeaderRow = $("tr:first", this)

                clonedHeaderRow.addClass("tableFloatingHeader");
                clonedHeaderRow.css("position", "absolute");
                clonedHeaderRow.css("top", "0px");
                clonedHeaderRow.css("left", $(this).css("margin-left"));
                clonedHeaderRow.css("visibility", "hidden");

                originalHeaderRow.addClass("tableFloatingHeaderOriginal");
            });
            UpdateTableHeaders();
            $(window).scroll(UpdateTableHeaders);
            $(window).resize(UpdateTableHeaders);
        });

// From http://javascript.about.com/library/bldom08.htm
document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

function toggleLayerByClassName(className) {
	$('.' + className).toggle('slow');
}

// Toggle By ID
function toggleLayer(layerId) {
	$('#' + layerId).toggle('slow');
}

function toggleExternalEvents(o) {
	$('.cat49').toggle();
	o.innerHTML = o.innerHTML.search('Display') < 0 ? o.innerHTML.replace('Hide', 'Display') : o.innerHTML.replace('Display', 'Hide');
}

// Helper function: Gets the target on an event for all browsers
function getTarget(event) {
	var event = event || window.event; // IE doesnt pass event as argument.
	var tgt = event.target || event.srcElement; // IE doesnt use .target
	if(tgt.nodeType == 3) tgt = tgt.parentNode; // defeat Safari bug
	return tgt;
}

function getMouseX(event) {
	var root = document.documentElement || document.body;
	return !event ? window.event.clientX + root.scrollLeft : event.pageX;
}

function getMouseY(event) {
	var root = document.documentElement || document.body;
	return !event ? window.event.clientY + root.scrollTop : event.pageY;
}

var initialContent = null;

function replaceContentWithMyText(event) {
	var tgt = getTarget(event);
	
	var listLinks = document.getElementsByName("rolloverchangecontent");
	for(i = 0; i < listLinks.length; i++) {
		listLinks[i].parentNode.parentNode.className = null;
	}
	tgt.parentNode.parentNode.className = "current";
	tgt = tgt.parentNode.nextSibling;
	while(tgt != null && tgt.nodeType == 3) tgt = tgt.nextSibling;
	var replace = document.getElementById("replacecontent");
	replace.innerHTML = tgt.innerHTML;
}

function revertToInitialContent(event) {
	var replace = document.getElementById("replacecontent");
	if(replace != null) {
		var mouseX = getMouseX(event);
		var mouseY = getMouseY(event);
		if(!(replace.offsetLeft <= mouseX && mouseX <= (replace.offsetLeft + replace.offsetWidth) &&
			 replace.offsetTop - 20  <= mouseY && mouseY <= (replace.offsetTop + replace.offsetHeight))) {
			replace.innerHTML = initialContent;
			var listLinks = document.getElementsByName("rolloverchangecontent");
			for(i = 0; i < listLinks.length; i++) {
				listLinks[i].parentNode.parentNode.className = null;
			}
		}
	}
}
exponentJSregister(
	function() {
		var replace = document.getElementById("replacecontent");
		if(replace != null) initialContent = replace.innerHTML;
		
		var listLinks = document.getElementsByName("rolloverchangecontent");
		
		var revert = false;
		if(listLinks.length > 0) {
			revert = listLinks[0].parentNode.parentNode.parentNode.className.indexOf('revertToInitialContent') >= 0;
		}
		var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
		for(i = 0; i < listLinks.length; i++) {
			if(isIE6) {
				listLinks[i].onmouseover = replaceContentWithMyText;
			} else {
				listLinks[i].onclick = replaceContentWithMyText;
			}
		}
		if(replace != null && revert) document.body.onclick = revertToInitialContent;
	}
);

function getInputFilterButton() {
	var inputs = document.getElementsByTagName("input");
	for(i = 0; i < inputs.length; i++) {
		if(inputs[i].value == "Filter") return inputs[i];
	}
	return null;
}
function hideFilterCriteria() {
	var node = getInputFilterButton();
	if(node != null) {
		var previousNode = node.previousSibling;
		var numButtons = 0;
		while(numButtons < 2 && previousNode != null) {
			if(previousNode.type == "radio") {
				numButtons++;
				previousNode.checked = true; // necessary for IE
			}
			var isText = previousNode.style == undefined;
			if(!isText) previousNode.style.display = 'none';
			var isBR = previousNode.nodeName.toLowerCase() == "br";
			previousNode = previousNode.previousSibling;
			if(isBR || isText) previousNode.parentNode.removeChild(previousNode.nextSibling);
		}
	}
}

