/**
 *	HOVER - V1.00.031224 - whatever:hover in IE
 *	---------------------------------------------
 *	Peterned - http://www.xs4all.nl/~peterned/
 *	(c) 2003 - Peter Nederlof
 *
 *	howto: body { behavior:url("csshover.htc"); }
 *	---------------------------------------------
 */

var CSSBuffer;
var doc = window.document;


function makeCSSMenuForIE(){
	var classnames = new Array('submenu');
	var elements = getElementsByClasses(classnames);
	for(var i=0;i<elements.length; i++){
	    HoverElement(elements[i]);
	}
}


/**
 *	HoverElement
 *	-------------------------
 *	applies the hover
 */
function HoverElement(element) {
	if(element.isHoverElement) return;
	element.isHoverElement = true;
	if(element.attachEvent){
		element.attachEvent('onmouseover', 
			function() { 
				element.className += '_onHover'; 
				element.style.zIndex = 7;
				// alert(element.style.zIndex);
			}
		);
	
		element.attachEvent('onmouseout', 
			function() { 
				element.className = element.className.replace(/_onHover/g, ''); 
				element.style.zIndex = 0;
			}
		);
	}
}



/**
 *	domFinder
 *	-----------------------------------
 *	returns list of elements based on css selector
 */
function findInArray(arr,val){
	for(var i=0;i<arr.length;i++){
		if(arr[i] == val){return i;}
	}
	return -1;
}

function getElementsByClasses(classnames){
//alert("Classes :" + classnames);
	var a = getElementsByTagsClasses(null,classnames);
//alert("El :" + a.join(','));
	return a;	
}


function getElementsByTagsClasses(tags,classnames){
	var classelements = new Array();
	if((tags!=null) && tags.length > 0){
	    var taggedelements = new Array();
	    for(var j=0;j<tags.length;j++){
		taggedelements = taggedelements.concat(doc.getElementsByTagName(tag));
	    }
	    var cidx=0;
	    for(var i=0;i<taggedelements.length; i++){
		if(findInArray(classnames,taggedelements[i].className) >= 0){
		    classelements[cidx]=taggedelements[i];
		    cidx++;
		}
	    }
	} else {
	    classelements = getElementsByTagsClassesInElement(doc.getElementsByTagName("body")[0],tags,classnames);
	}
	return classelements;
}


function getElementsByTagsClassesInElement(element,tags,classnames){
if(element.className != null && element.className != ""){
//alert("tags :" + tags + 
//      "\nclasses :" + classnames + 
//      "\n3 : " + element + " : " + element.tagName + " : " + element.className);
}
	var classedelements = new Array();
	if((tags==null || tags.length==0 || (findInArray(tags,element.tagName) >= 0)) && 
	   (findInArray(classnames,element.className) >= 0) ){
	    classedelements.push(element);
//alert("4 : " + element + " : " + element.tagName + " : " + element.className);
	}
	var children = element.childNodes;
	for(var i=0;i < children.length; i++){
		if(!children[i].tagName){ continue; }
	    var childarr = getElementsByTagsClassesInElement(children[i],tags,classnames);
	    if(childarr.length > 0){
		classedelements = classedelements.concat(childarr);
	    }
	}
//if(classedelements.length > 0){
//alert("classedelements (length : "+ classedelements.length +") : " + classedelements.join(','));
//}
	return classedelements;
}
