/* jQuery Meuns.
Author: mg12
Feature: MenuList
Update: 2009/06/11
Tutorial URL: http://www.neoease.com/wordpress-menubar-5/
*/
(function(){
var Class={create:function(){	return function(){this.initialize.apply(this,arguments);	}}}
var GhostlyMenu=Class.create();
GhostlyMenu.prototype={
	initialize:function(target,align,sub){
		this.obj=cleanWhitespace(target);
		this.align=align||'left';
		this.sub=sub||-1;
		this.menu=this.obj.childNodes;
		if(this.menu.length<2){return;}
		this.title=this.menu[0];
		this.body=this.menu[1];
		cleanWhitespace(this.body).lastChild.getElementsByTagName('a')[0].className+=' last';
		setStyle(this.body,'visibility','hidden');
		setStyle(this.body,'display','block');
		addListener(this.obj,'mouseover',bind(this,this.activate),false);
		addListener(this.obj,'mouseout',bind(this,this.deactivate),false);
	},activate:function(){
		if(this.sub==1){
			var pos=currentOffset(this.title);
			var top=pos[1]-1;
			var left=getWidth(this.body)-2;
			if(this.align=='right'){var left=getWidth(this.body)*(-1);	}
		}else{
			var pos=cumulativeOffset(this.title);
			var top=pos[1]+getHeight(this.title);
			var left=pos[0];
			if(this.align=='right'){left+=getWidth(this.title)-getWidth(this.body);}
		}
		if(!/current/.test(this.title.className)){	this.title.className+=' current';}
		setStyle(this.body,'left',left+'px');
		setStyle(this.body,'top',top+'px');
		setStyle(this.body,'visibility','visible');
	},deactivate: function(){
		this.title.className=this.title.className.replace('current','');
		var thismenu=this;
		var tid=setInterval(function(){
			clearInterval(tid);
			if(!/current/.test(thismenu.title.className)){setStyle(thismenu.body,'visibility','hidden');}
			return false;
		},400);
	}
}
$A=function(iterable){
	if(!iterable){return [];	}
	if(iterable.toArray){	return iterable.toArray();}else{
		var results=[];
		for(var i=0;i<iterable.length;i++){results.push(iterable[i]);}
		return results;
	}
}
bind=function(){
	var array=this.$A(arguments);
	var func=array[array.length-1];
	var method=func,args=array,object=args.shift();
	return function(){return method.apply(object,args.concat(array));}
}
getHeight=function(element){return element.offsetHeight;}
getWidth=function(element){return element.offsetWidth;}
setStyle=function(element,key,value){element.style[key]=value;}
cleanWhitespace=function(list){
	var node=list.firstChild;
	while(node){
		var nextNode=node.nextSibling;
		if(node.nodeType==3&&!/\S/.test(node.nodeValue)){list.removeChild(node);}
		node=nextNode;
	}
	return list;
}
currentOffset=function(element){
	var valueT=element.offsetTop||0;
	var valueL=element.offsetLeft||0;
	return [valueL,valueT];
}
cumulativeOffset=function(element){
	var valueT=0,valueL=0;
	do{
		valueT+=element.offsetTop||0;
		valueL+=element.offsetLeft||0;
		element=element.offsetParent;
	}while(element);
	return [valueL,valueT];
}
addListener=function(element,name,observer,useCapture){
	if(element.addEventListener){	element.addEventListener(name,observer,useCapture);
	}else if(element.attachEvent){element.attachEvent('on'+name,observer);	}
}
function loadMenus(){
	var align='left';
	for(var i=0;(a=document.getElementsByTagName('link')[i]);i++){
		if((a.getAttribute('rel')=='stylesheet')&&(a.getAttribute('href').indexOf('rtl.css')!=-1)){align='right';}
	}
	var subscribe=document.getElementById('subscribe');
	if(subscribe){	new GhostlyMenu(subscribe,align);	}
	var menubar=document.getElementById('menus');
	if(menubar){
		var list=menubar.getElementsByTagName('ul');
		for(var i=0;i<list.length;i++){
			var menu=list[i].parentNode;
			if(menu.parentNode===menubar){new GhostlyMenu(menu,align);
			}else{
				new GhostlyMenu(menu,align,1);
				menu.firstChild.className+=' subtitle';
			}
		}
	}
}
if(document.addEventListener){
	document.addEventListener("DOMContentLoaded",loadMenus,false);
}else if(/MSIE/i.test(navigator.userAgent)){
	document.write('<script id="__ie_onload_for_inove" defer src="javascript:void(0)"></script>');
	var script=document.getElementById('__ie_onload_for_inove');
	script.onreadystatechange=function(){if(this.readyState=='complete'){loadMenus();}}
}else if(/WebKit/i.test(navigator.userAgent)){
	var _timer=setInterval( function(){
		if(/loaded|complete/.test(document.readyState)){
			clearInterval(_timer);
			loadMenus();
		}
	},10);
}else{window.onload=function(e){loadMenus();}}
})();
