function addEvent(obj, evType, fn, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(evType,fn,useCapture);
		return true;
	}
	else if(obj.attachEvent){
		return obj.attachEvent('on'+evType,fn);
	}
	return false;
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if (node == null) node = document;
	if (tag == null) tag = '*';
	var elems = node.getElementsByTagName(tag);
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	var i = 0;
	for (var j = 0; j < elems.length; j++) {
		if ( pattern.test(elems[j].className) ) {
			classElements[i++] = elems[j];
		}
	}
	return classElements;
}

function getposition(o) {
	var curleft = curtop = 0;
	if (o.offsetParent) {
		curleft = o.offsetLeft
		curtop = o.offsetTop
		while (o = o.offsetParent) {
			curleft += o.offsetLeft
			curtop += o.offsetTop
		}
	}
	return [curleft,curtop];
}

function setposition(o,p) {
	o.style.top = p[1]+'px';
	o.style.left = p[0]+'px';
}

function $(x){
	return document.getElementById(x);
}

function fmover(e) {
	var _this=(e.srcElement)?e.srcElement:this;
	var t = _this.id.split('_');
	var d = $('div_felsomenu_'+t[2]);
	tos[t[2]] = 0;
	var p = [getposition(_this.parentNode)[0], getposition(_this.parentNode)[1]+31];
	setposition(d, p);
	d.style.visibility = 'visible';
}

function fmout(e) {
	var _this=(e.srcElement)?e.srcElement:this;
	var t = _this.id.split('_');
	tos[t[2]] = setTimeout(hideall, 500);
}

function fmo(x) {
	tos[x] = setTimeout(hideall, 500);
}

function keepopen(e) {
	var _this=(e.srcElement)?e.srcElement:this;
	var t = _this.id.split('_');
	tos[t[2]] = 0;
}

function keepo(x) {
	tos[x] = 0;
}

function hideall() {
	var fmes = getElementsByClass('a_felsomenu');
	for (var i = 0; i < fmes.length; i++) {
		var t = fmes[i].id.split('_');
		if ($('div_felsomenu_'+t[2])) {
			if (tos[t[2]] !== 0) {
				$('div_felsomenu_'+t[2]).style.visibility = 'hidden';
			}
		}
	}	
}

function init() {
	var fmes = getElementsByClass('a_felsomenu');
	for (var i = 0; i < fmes.length; i++) {
		var fme = $(fmes[i].id);
		var t = fmes[i].id.split('_');
		var fmd = $('div_felsomenu_'+t[2]);
		if (fmd) {
			addEvent(fme, 'mouseover', fmover);
			addEvent(fme, 'mouseout', fmout);
//			addEvent(fmd, 'mouseover', keepopen);
//			addEvent(fmd, 'mouseout', fmout);
		}
	}
}

var tos = Array();
addEvent(window, 'load', init);
