/* (C) 2008-2009 MarkitModules.com - XMenu */
/* Copy or Redistribution is not permitted */


/*  base    */
var XMenuBase={matchDivHeight:function(selector,divBorder,minWidth){var maxHeight=0;var matchDivs=[];var selectors=selector.split(" ");var elements=selectors.shift();var script="";selectors.each(function(el,i){script+='.getElement("'+el+'")'});MK111.$ES(elements).each(function(element,i){eval("matchDivs.push(element"+script+");")});matchDivs.each(function(div,i){if(!MK111.$chk(div)){return}var divHeight,divPadding;if(div.offsetHeight){divHeight=div.offsetHeight;divPadding=0;divPadding+=div.getStyle("padding-top").toInt();divPadding+=div.getStyle("padding-bottom").toInt();divHeight-=divPadding;if(divBorder!=undefined){divHeight-=divBorder}}else{if(div.style.pixelHeight){divHeight=div.style.pixelHeight}}maxHeight=Math.max(maxHeight,divHeight)});if(minWidth!=undefined){maxHeight=Math.max(maxHeight,minWidth)}matchDivs.each(function(div,i){if(!MK111.$chk(div)){return}if(window.ie6){div.setStyle("height",maxHeight+"px")}else{div.setStyle("min-height",maxHeight+"px")}})}};var XMenuStyleSwitcher=new MK111.Class({initialize:function(f,i){this.setOptions({widthDefault:"width-wide",widthThinPx:780,widthWidePx:940,widthFluidPx:0.9,transition:MK111.Fx.Transitions.quadOut,duration:500,afterSwitch:MK111.Class.empty},i);this.fontSmall="font-small",this.fontMedium="font-medium",this.fontLarge="font-large",this.widthThin="width-thin";this.widthWide="width-wide";this.widthFluid="width-fluid";this.wrappers=MK111.$$(f);this.htmlbody=new MK111.Element(document.body);this.addEvent("afterSwitch",this.options.afterSwitch);this.widthStyle="";var e=this;var g=MK111.$E("#switchwidththin");var d=MK111.$E("#switchwidthwide");var b=MK111.$E("#switchwidthfluid");var h=MK111.$E("#switchfontsmall");var a=MK111.$E("#switchfontmedium");var c=MK111.$E("#switchfontlarge");if(g){g.addEvent("click",function(){e.widthSwitch(e.widthThin)})}if(d){d.addEvent("click",function(){e.widthSwitch(e.widthWide)})}if(b){b.addEvent("click",function(){e.widthSwitch(e.widthFluid)})}if(h){h.addEvent("click",function(){e.fontSwitch(e.fontSmall)})}if(a){a.addEvent("click",function(){e.fontSwitch(e.fontMedium)})}if(c){c.addEvent("click",function(){e.fontSwitch(e.fontLarge)})}},fontSwitch:function(a){var b=this;var c=[this.fontSmall,this.fontMedium,this.fontLarge];c.each(function(d,e){if(d==a){b.htmlbody.addClass(a)}else{b.htmlbody.removeClass(d)}});Cookie.set("ytstylefont",a,{path:"/"});this.fireEvent("afterSwitch")},widthSwitch:function(a){var d=this;var c=this.getWidthPx(Cookie.get("ytstylewidth")||this.options.widthDefault);var b=this.getWidthPx(a);Cookie.set("ytstylewidth",a,{path:"/"});this.wrappers.each(function(g,e){var f=g.effect("width",d.options);f.addEvent("onComplete",d.widthSwitchComplete).addEvent("onComplete",d.options.afterSwitch);f.start(c,b)})},widthSwitchComplete:function(){var b=this;var a=Cookie.get("ytstylewidth")||this.options.widthDefault;if(a==this.widthFluid){this.wrappers.each(function(d,c){d.setStyle("width",(b.options.widthFluidPx*100)+"%")})}},getWidthPx:function(a){if(a==this.widthThin){return this.options.widthThinPx}if(a==this.widthFluid){return parseInt((Window.getWidth())*this.options.widthFluidPx)}return this.options.widthWidePx}});XMenuStyleSwitcher.implement(new MK111.Events);XMenuStyleSwitcher.implement(new MK111.Options);var XMenuMorph=new MK111.Class({initialize:function(d,g,c,a,e,f){this.setOptions({duration:500,transition:MK111.Fx.Transitions.expoOut,wait:false,ignoreClass:""},a);var b=this.options;MK111.$$(d).each(function(j,h){var l=j;if(f&&j.getElement(f)){l=j.getElement(f)}var k=new MK111.Fx.Styles(l,b);if(!(MK111.$chk(b.ignoreClass)&&j.hasClass(b.ignoreClass))){j.addEvent("mouseenter",function(i){k.setOptions(b,a).start(g)});j.addEvent("mouseleave",function(i){k.setOptions(b,e).start(c)})}})}});XMenuMorph.implement(new MK111.Options);var XMenuBackgroundFx=new MK111.Class({initialize:function(e){this.setOptions({transition:MK111.Fx.Transitions.linear,duration:9000,wait:false,colors:["#FFFFFF","#999999"]},e);var a=new MK111.Element(document.body);var f=a.effects(this.options);var d=0;var b=this.options.colors;var g=c.periodical(this.options.duration*2);c();function c(){f.start({"background-color":b[d]});if(d+1>=b.length){d=0}else{d++}}}});XMenuBackgroundFx.implement(new MK111.Options);

/*  accordion    */
var XMenuAccordionMenu=new MK111.Class({initialize:function(b,c,a){this.setOptions({accordion:"default"},a);this.togs=b;this.elms=c;switch(this.options.accordion){case"slide":this.createSlide();break;default:this.createDefault()}},createDefault:function(){var a={};if(!$defined(this.options.display)&&!$defined(this.options.show)){a={show:-1}}MK111.$ES(this.togs).each(function(d,c){if(d.hasClass("active")){a={show:c}}}.bind(this));var b=new MK111.Fx.Accordion(this.togs,this.elms,$extend(this.options,a))},createSlide:function(){MK111.$ES(this.togs).each(function(e,b){var c=e.getElement("span");var a=e.getElement(this.elms);var d=new MK111.Fx.Slide(a,{transition:MK111.Fx.Transitions.linear,duration:250});if(!(e.hasClass("active")||this.options.display=="all"||this.options.display==b)){d.hide()}c.addEvent("click",function(){d.toggle()})}.bind(this))}});XMenuAccordionMenu.implement(new MK111.Options);

/*  fancymenu    */
var XMenuFancyMenu=new MK111.Class({initialize:function(c,a){this.setOptions({transition:MK111.Fx.Transitions.sineInOut,duration:500,wait:false,onClick:MK111.Class.empty,opacity:1,mode:"move",slideOffset:30,colorSelector:["red","pink","blue","green","orange","yellow","lilac","turquoise"],itemSelector:"li.level1",activeSelector:"li.active"},a);this.menu=MK111.$(c),this.current=this.menu.getElement(this.options.activeSelector);this.li=[];this.div=[];this.menu.getElements(this.options.itemSelector).each(function(e,d){this.createBackground(e,d);e.addEvent("click",function(f){this.clickItem(f,e)}.bind(this));e.addEvent("mouseenter",function(){this.mouseenterItem(e,d)}.bind(this));if(this.options.mode=="move"){e.addEvent("mouseleave",function(){this.mouseleaveItem(this.current,d)}.bind(this))}else{e.addEvent("mouseleave",function(){this.mouseleaveItem(e,d)}.bind(this))}}.bind(this));if(this.options.mode=="move"){if(this.current){this.setCurrent(this.current)}else{var b=this.menu.getElement("li");b.addClass("active");b.addClass("current");this.setCurrent(b)}}},createBackground:function(c,b){if(this.options.mode=="move"&&b!=0){return}var a="fancy bg"+(b+1);this.options.colorSelector.each(function(d,e){if(c.hasClass(d)){a+=" bg-"+d}});this.div[b]=new MK111.Element("div",{"class":"fancy-container"}).adopt(new MK111.Element("div",{"class":"fancy-l"}),new MK111.Element("div",{"class":"fancy-m"}),new MK111.Element("div",{"class":"fancy-r"}));this.div[b].fx=this.div[b].effects(this.options);this.li[b]=new MK111.Element("li",{"class":a}).adopt(this.div[b]).injectInside(this.menu);this.li[b].fx=this.li[b].effects(this.options)},setCurrent:function(a){this.li[0].setStyles({left:a.offsetLeft,width:a.offsetWidth,visibility:"visible",opacity:this.options.opacity});this.current=a},clickItem:function(b,a){if(!this.current){this.setCurrent(a)}this.current=a;this.options.onClick(new MK111.Event(b),a)},mouseenterItem:function(b,a){switch(this.options.mode){case"fade":this.fadeFx(b,a,true);break;case"slide":this.slideFx(b,a,true);break;default:this.moveFx(b,0)}},mouseleaveItem:function(b,a){switch(this.options.mode){case"fade":this.fadeFx(b,a,false);break;case"slide":this.slideFx(b,a,false);break;default:this.moveFx(b,0)}},moveFx:function(b,a){if(!this.current){return}this.li[a].fx.custom({left:[this.li[a].offsetLeft,b.offsetLeft],width:[this.li[a].offsetWidth,b.offsetWidth]})},fadeFx:function(d,b,a){if(a){this.li[b].fx.setOptions(this.options);this.li[b].fx.set({left:d.offsetLeft,width:d.offsetWidth});this.li[b].fx.custom({opacity:[0,1]})}else{var c=this.options.duration*2;this.li[b].fx.setOptions({duration:c});this.li[b].fx.custom({opacity:[1,0]})}},slideFx:function(c,b,a){var d=this.options.slideOffset;if(a){this.li[b].fx.set({opacity:1,left:c.offsetLeft,width:c.offsetWidth});this.div[b].fx.set({"margin-top":d});this.div[b].fx.custom({"margin-top":[d,0]})}else{this.div[b].fx.set({"margin-top":0});this.div[b].fx.custom({"margin-top":[0,d]})}}});XMenuFancyMenu.implement(new MK111.Options);

/*  dropdownmenu    */
var XMenuDropdownMenu=new MK111.Class({initialize:function(b,a){this.setOptions({mode:"default",duration:600,transition:MK111.Fx.Transitions.linear,wait:false},a);var c={width:0,height:0,opacity:0};switch(this.options.mode){case"width":c={width:0,opacity:0};break;case"height":c={height:0,opacity:0};break}MK111.$$(b).each(function(d){var e=d.getElement("ul");if(e){var g=new MK111.Fx.Styles(e,this.options);var f=e.getStyles("width","height","opacity");e.setStyles(c);d.addEvents({mouseenter:function(){var h=d.getParent();if(h.getStyle("overflow")=="hidden"){h.setStyle("overflow","visible")}g.element.setStyle("overflow","hidden");g.start(f)},mouseleave:function(){g.stop();e.setStyles(c)}})}}.bind(this))}});XMenuDropdownMenu.implement(new MK111.Options);

/*  multiXMenu    */
var XMenuSettings={};var multiXMenuTools={make:function(a){XMenuSettings[a.menuId]={};XMenuSettings[a.menuId].enableRootMenuBackground=a.enableRootMenuBackground;XMenuSettings[a.menuId].enableSubMenuBackground=a.enableSubMenuBackground;XMenuSettings[a.menuId].rootMenuTitleEnterColor=a.rootMenuTitleEnterColor;XMenuSettings[a.menuId].rootMenuTitleLeaveColor=a.rootMenuTitleLeaveColor;XMenuSettings[a.menuId].rootMenuSubTitleEnterColor=a.rootMenuSubTitleEnterColor;XMenuSettings[a.menuId].rootMenuSubTitleLeaveColor=a.rootMenuSubTitleLeaveColor;XMenuSettings[a.menuId].rootMenuBackgroundEnterColor=a.rootMenuBackgroundEnterColor;XMenuSettings[a.menuId].rootMenuBackgroundLeaveColor=a.rootMenuBackgroundLeaveColor;XMenuSettings[a.menuId].subMenuTitleEnterColor=a.subMenuTitleEnterColor;XMenuSettings[a.menuId].subMenuTitleLeaveColor=a.subMenuTitleLeaveColor;XMenuSettings[a.menuId].subMenuBackgroundEnterColor=a.subMenuBackgroundEnterColor;XMenuSettings[a.menuId].subMenuBackgroundLeaveColor=a.subMenuBackgroundLeaveColor}};




var XMenuTools = {
		
	start: function() {
		
		/* Match height of div tags */
		XMenuTools.setDivHeight();

		/* Accordion menu */
		new XMenuAccordionMenu('div#middle ul.menu li.toggler', 'ul.accordion', { accordion: 'slide' });

		/* Fancy menu */
		if(XMenuSettings){
			for(var $i in XMenuSettings){
				new XMenuFancyMenu(MK111.$E('ul', $i), { mode: 'move', transition: MK111.Fx.Transitions.Expo.easeOut, duration: 700 });
			}//end for
		}else{
			new XMenuFancyMenu(MK111.$E('ul', 'menu'), { mode: 'move', transition: MK111.Fx.Transitions.Expo.easeOut, duration: 700 });
		}//end if

        for(var $i in XMenuSettings){
			/* Dropdown menu */
			new XMenuDropdownMenu('div#'+ $i +'  li.parent', { mode: 'height', transition: MK111.Fx.Transitions.Expo.easeOut });
			
			
	///////* Morph: main menu (Title) *////////////////////////////////////////////////////////////////
			
		var enterColor = XMenuSettings[$i].rootMenuTitleEnterColor;
		var leaveColor = XMenuSettings[$i].rootMenuTitleLeaveColor;
                
		var menuEnter = { 'color': enterColor };
		var menuLeave = { 'color': leaveColor };

		new XMenuMorph('div#'+ $i +' li.level1', menuEnter, menuLeave,
			{ transition: MK111.Fx.Transitions.linear, duration: 300, ignoreClass: 'active'},
			{ transition: MK111.Fx.Transitions.sineIn, duration: 700 }, '.level1');
			
		///////* Morph: main menu (SubTitle) *////////////////////////////////////////////////////////////////
        
        var enterColor = XMenuSettings[$i].rootMenuSubTitleEnterColor;
		var leaveColor = XMenuSettings[$i].rootMenuSubTitleLeaveColor;
               
		var menuEnter = { 'color': enterColor };
		var menuLeave = { 'color': leaveColor };

		new XMenuMorph('div#'+ $i +' li.level1', menuEnter, menuLeave,
			{ transition: MK111.Fx.Transitions.linear, duration: 300, ignoreClass: 'active'},
			{ transition: MK111.Fx.Transitions.sineIn, duration: 700 }, 'span.sub');
			
		///////* Morph: main menu (BackGround Color) *////////////////////////////////////////////////////////////////
		if (XMenuSettings[$i].enableRootMenuBackground==true) {
		
		var enterColor = XMenuSettings[$i].rootMenuBackgroundEnterColor;
		var leaveColor = XMenuSettings[$i].rootMenuBackgroundLeaveColor;
                
		var menuEnter = { 'background-color': enterColor };
		var menuLeave = { 'background-color': leaveColor };

		new XMenuMorph('div#'+ $i +' li.level1', menuEnter, menuLeave,
			{ transition: MK111.Fx.Transitions.linear, duration: 0, ignoreClass: 'active'},
			{ transition: MK111.Fx.Transitions.sineIn, duration: 700 });
		}
		
		///////* Morph: Sub menu (BackGround Color) *////////////////////////////////////////////////////////////////
		if (XMenuSettings[$i].enableSubMenuBackground==true) {
		var enterColor = XMenuSettings[$i].subMenuBackgroundEnterColor;
		var leaveColor = XMenuSettings[$i].subMenuBackgroundLeaveColor;
                
		var menuEnter = { 'background-color': enterColor };
		var menuLeave = { 'background-color': leaveColor };

		new XMenuMorph('div#'+ $i +' li.level2 a, div#menu li.level2 span.separator', menuEnter, menuLeave,
			{ transition: MK111.Fx.Transitions.linear, duration: 0/*, ignoreClass: 'active'*/},
			{ transition: MK111.Fx.Transitions.sineIn, duration: 700 });
		}
        
		///////* Morph: Sub Menu (Title) *////////////////////////////////////////////////////////////////	
		var enterColor = XMenuSettings[$i].subMenuTitleEnterColor;
		var leaveColor = XMenuSettings[$i].subMenuTitleLeaveColor;
       
		var menuEnter = { 'color': enterColor };
		var menuLeave = { 'color': leaveColor };
				
		new XMenuMorph('div#'+ $i +' li.level2 a, div#menu li.level2 span.separator', menuEnter, menuLeave,
			{ transition: MK111.Fx.Transitions.linear, duration: 0, ignoreClass: 'active'},
			{ transition: MK111.Fx.Transitions.sineIn, duration: 700 });
		}//end for
			
		
        

					
		/* Smoothscroll */
		new MK111.SmoothScroll({ duration: 500, transition: MK111.Fx.Transitions.Expo.easeOut });
	},

	
	/* Match height of div tags */
	setDivHeight: function() {
		XMenuBase.matchDivHeight('div.topbox div.deepest', 0, 40);
		XMenuBase.matchDivHeight('div.bottombox div.deepest', 0, 40);
		XMenuBase.matchDivHeight('div.maintopbox div.deepest', 0, 40);
		XMenuBase.matchDivHeight('div.mainbottombox div.deepest', 0, 40);
		XMenuBase.matchDivHeight('div.contenttopbox div.deepest', 0, 40);
		XMenuBase.matchDivHeight('div.contentbottombox div.deepest', 0, 40);
	}

};

/* Add functions on window load */
window.addEvent('domready', XMenuTools.start);

/* Load IE6 fix */
if (window.ie6) {
	
	function loadIE6Fix() {
	sfHover('.menu span.separator');
	sfHover('.menu li');	
}

/* Add functions on window load */
window.addEvent('domready', loadIE6Fix);
window.addEvent('load', correctPngInline);
	
}