<!--<attach event="ondocumentready" handler="parseStylesheets" />-->
/**
 *	Pseudos - V1.30.050121 - hover & active
 *	---------------------------------------------
 *	Peterned - http://www.xs4all.nl/~peterned/
 *	(c) 2005 - Peter Nederlof
 *
 *	Credits  - Arnoud Berendsen 
 *	         - Martin Reurings
 *           - Robert Hanson
 *
 *	howto: body { behavior:url("csshover.htc"); }
 *	---------------------------------------------
 */

var currentSheet, doc = window.document, activators = 
{
	onhover:{on:'onmouseover', off:'onmouseout'},
	onactive:{on:'onmousedown', off:'onmouseup'}
}
function parseStylesheets() 
{
	var sheets = doc.styleSheets, l = sheets.length;
	for(var i=0; i<l; i++) 
		parseStylesheet(sheets[i]);
}
function parseStylesheet(sheet) 
{
	if(sheet.imports) 
	{
		try 
		{
			var imports = sheet.imports, l = imports.length;
			for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
		}
		catch(securityException){}
	}
	try 
	{
		var rules = (currentSheet = sheet).rules, l = rules.length;
		for(var j=0; j<l; j++) parseCSSRule(rules[j]);
	}
	catch(securityException)
	{
	}
}
function parseCSSRule(rule) 
{
	var select = rule.selectorText, style = rule.style.cssText;
	if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).test(select) || !style) return;
	var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
	var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
	var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];
	var affected = select.replace(/:hover.*$/, '');
	var elements = getElementsBySelect(affected);
	currentSheet.addRule(newSelect, style);
	for(var i=0; i<elements.length; i++)
		new HoverElement(elements[i], className, activators[pseudo]);
}
function HoverElement(node, className, events) 
{
	
	if(!node.hovers) node.hovers = {};
	if(node.hovers[className]) return;
	node.hovers[className] = true;
	node.attachEvent(events.on,
		function() 
		{ 
			listeSelect = document.getElementsByTagName('select');
			var elt = Event.findElement(event,'ul'); // Est-ce que l'élément observé (le survol du menu) est sur un <ul>
			
			if (elt != document && elt) // Si c'est bien le cas :
			{
				for (var i = 0; i < listeSelect.length; i++) 
				{
					// disparition de tous les select de la page
					listeSelect[i].style.visibility = 'hidden';
					// Remplacement des select identifies par leur image
					/*
					var listeZoneSelect = document.getElementsByClassName('unSelect');
					for (var j = 0; j < listeZoneSelect.length; j++) 
					{ 
						listeZoneSelect[j].className = 'unSelect unSelectImage';
					}
					*/
				}
			}
			node.className += ' ' + className; 
			
		});
	node.attachEvent(events.off,
		function() 
		{			
			node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); 
			var listeSelect = document.getElementsByTagName('select');
			for (var i = 0; i < listeSelect.length; i++) 
			{ 
				// réapparition de tous les select de la page
				listeSelect[i].style.visibility = 'visible';
				//Suppression des images de fond
				var listeZoneSelect = document.getElementsByClassName('unSelect');
				for (var j = 0; j < listeZoneSelect.length; j++) 
				{ 
					listeZoneSelect[j].className = 'unSelect';
				}
			}
		});
}

function getElementsBySelect(rule) 
{
	var parts, nodes = [doc];
	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 = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
	for(var i=0; i<elements.length; i++) 
	{
		result = tagName? elements[i].all.tags(tagName):elements[i].all; 
		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;
}