/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by ----- filename.js -----
 */

/* ----- csshover.htc ----- */
<attach event="ondocumentready" handler="parseStylesheets" />
<script language="JScript">
/**
 *	HOVER - V1.11.040203 - whatever:hover in IE
 *	---------------------------------------------
 *	Peterned - http://www.xs4all.nl/~peterned/
 *	(c) 2004 - Peter Nederlof
 *
 *	Credits  - Arnoud Berendsen 
 *		for finding some really -sick- bugs
 *
 *	howto: body { behavior:url("csshover.htc"); }
 *	---------------------------------------------
 */

var currentSheet, doc = window.document;
//	keeps the dropdown menu IDs
var ddMenuIDs = new Array();

function findDdMenus() {
        var aTmp = getElementsByClassName("csshover", element.document, "div", function(oM) {
                ddMenuAdd(oM.id);
        } );
};

function ddMenuAdd(ddMenuID) {
        if ( typeof(ddMenuID) == "undefined") return;
        ddMenuIDs[ddMenuIDs.length] = ddMenuID.replace(/List/, "");
};

function parseStylesheets() {
        findDdMenus();
	var sheets = doc.styleSheets, l = sheets.length;
	for(var i=0; i<l; i++) 
		parseStylesheet(sheets[i]);
}
	function parseStylesheet(sheet) {
		var l, rules, imports;
		if(sheet.imports) {
			imports = sheet.imports, l = imports.length;
			for(var i=0; i<l; i++) 
				parseStylesheet(sheet.imports[i]);
		}

		rules = (currentSheet = sheet).rules, l = rules.length;
		for(var j=0; j<l; j++) parseCSSRule(rules[j]);
	}

	function parseCSSRule(rule) {
		var select = rule.selectorText, style = rule.style.cssText;

                if ( style.replace(/ /, "") == "" ) return;

                var ddMenuID, Found = 0;
                for (var t=0; t<ddMenuIDs.length; t++) {
                        if (select.indexOf(ddMenuIDs[t]) != -1) {
                        Found = 1;
                        ddMenuID = ddMenuIDs[t];
                        break;
                        }
                }
                if (!Found) return;

		if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):hover/i).test(select)) return;
		
		var newSelect = select.replace(/(\.([a-z0-9_-]+):hover)|(:hover)/g, '.$2onHover');
		var hasClass = (/(\.([a-z0-9_-]+):hover)/g).exec(select);
		var className = (hasClass? hasClass[2]:'') + 'onHover';

		var affected = select.replace(/:hover.*$/g, '');           
                eval('affected = affected.replace(/#' + ddMenuID + '([ ]+)/i, "")');               

		var elements = getElementsBySelect(affected, ddMenuID);
		
		currentSheet.addRule(newSelect, style);
		for(var i=0; i<elements.length; i++)
			new HoverElement(elements[i], className);
	}

function HoverElement(node, className) {
	if(!node.hovers) node.hovers = {};
	if(node.hovers[className]) return;
	node.hovers[className] = true;
	node.attachEvent('onmouseover',
		function() { node.className += ' ' + className; });
	node.attachEvent('onmouseout',
		function() { node.className = 
			node.className.replace((new RegExp('\\s+'+className)),''); });
}

function getElementsBySelect(rule, ddMenuID) {
	var parts, nodes = [doc.getElementById(ddMenuID)];
	parts = rule.split(' ');
	for(var i=0; i<parts.length; i++) {
		nodes = getSelectedNodes(parts[i], nodes);
	}	return nodes;
}
	function getSelectedNodes(select, elements) {
		var result, node, nodes = [];
		var classname = (/\.([a-z0-9_-]+)/i).exec(select);
		var identify = (/\#([a-z0-9_-]+)/i).exec(select);
		var tagName = (/^[a-z0-9]+/i).exec(select.toUpperCase()) || '*';
		for(var i=0; i<elements.length; i++) {
			result = elements[i].getElementsByTagName(tagName);
			for(var j=0; j<result.length; j++) {
				node = result[j];
				if((identify && node.id != identify[1]) || (classname && !(new RegExp('\\b' +
					classname[1] + '\\b').exec(node.className)))) continue;
				nodes[nodes.length] = node;
			}
		}	return nodes;
	}

function getElementsByClassName(clsName, parentEle, tagName, fn) {
	var found = new Array();
	var re = new RegExp('\\b'+clsName+'\\b', 'i');
	var list = parentEle.getElementsByTagName(tagName);
	for (var i = 0; i < list.length; ++i) {
		if (list[i].className.search(re) != -1) {
			found[found.length] = list[i];
			if (fn) fn(list[i]);
		}
	}
	return found;
}

</script>

/* ----- p7exp.js ----- */
/* 
  ------------------------------------
  PVII Menu CSS Express Drop-Down Menu
  by Project Seven Development
  www.projectseven.com
  ------------------------------------
*/
function P7_ExpMenu(){ //v1.1.0.2 by PVII-www.projectseven.com
 if(navigator.appVersion.indexOf("MSIE")==-1){return;}
 var i,k,g,lg,r=/\s*p7hvr/,nn='',c,cs='p7hvr',bv='p7menubar';
 for(i=0;i<10;i++){g=document.getElementById(bv+nn);if(g){
 lg=g.getElementsByTagName("LI");if(lg){for(k=0;k<lg.length;k++){
 lg[k].onmouseover=function(){c=this.className;cl=(c)?c+' '+cs:cs;
 this.className=cl;};lg[k].onmouseout=function(){c=this.className;
 this.className=(c)?c.replace(r,''):'';};}}}nn=i+1;}
}

