/*
* @name         DropDowns Tool
* @description  Un-obtrusive JavaScript tool for building drop downs from ULs
* @author       Scott Lewis
* @date         October 10, 2008
* @version      0.0.1
*/

/*
* The DropDowns can be achieved using pure CSS in all Mozilla and Gecko browsers. 
* However, IE does not allow the :hover pseudo-class on arbitrary elements (only A elements), 
* so we need a bit of JavaScript to help out IE. The document.all property is only recognized 
* by IE so we can targe the JavaScript to only execute by IE.
*/ 

if (document.compatMode && document.all) {

	Helper.bind(window, "load", function(e) {
	
	    // Prevents IE6 background image flicker
	
		try {
		  document.execCommand("BackgroundImageCache", false, true);
		} catch(err) {/* faily silently */}

		var tabs = Helper.get(
		    ".tab", 
		    Helper.get(".topnav")[0]
		);
		
		for (var i=0; i<tabs.length; i++) {
			var tab = tabs[i];
			Helper.bind(tab, "mousemove", function(e) {
				var node = e.target || e.srcElement;
			    node = Helper.findParentByNodeName(node, 'LI');
				Helper.add_class(node, "hover");
			});
			Helper.bind(tab, "mouseout", function(e) {
				var node = e.target || e.srcElement;
			    node = Helper.findParentByNodeName(node, 'LI');
				Helper.remove_class(node, "hover");
			});
	
			var strong = Helper.get("strong", tab)[0];
			Helper.bind(strong, "mousemove", function(e) {
			    var node = e.target || e.srcElement;
			    node = Helper.findParentByNodeName(node, 'LI');
				Helper.add_class(node, "hover");
			});
			
			Helper.bind(strong, "mouseout", function(e) {
				var node = e.target || e.srcElement;
			    node = Helper.findParentByNodeName(node, 'LI');
				Helper.remove_class(node, "hover");
			});
			
			var subnavs = Helper.get(".subnav", tab);
			for (var x=0; x<subnavs.length; x++) {
			    Helper.style(
			    	subnavs[x],
			    	"height",
			    	(Helper.get("li", subnavs[x]).length * 27) + "px"
			    );
			    Helper.style(
			    	subnavs[x],
			    	"overflow",
			    	"hidden"
			    );
			    Helper.bind(subnavs[x], "mousemove", function(e) {
					Helper.add_class(e.data, "hover");
				}, tab);
				Helper.bind(subnavs[x], "mouseout", function(e) {
				    Helper.remove_class(e.data, "hover");
				}, tab);
			}
		}
	});
}