
var Navigation=Class.create();
Navigation.prototype={
		
		Version:"1.0",sId:null,anh:new Array(),
		initialize:function(a,b)
		{
			this.sId=a;
			this.setOptions(b);
			Event.observe(window,'load',this.iM.bind(this))
			
		},
		
		setOptions:function(a){
			this.aOptions=
			{
				sSubmenuSuffix:'columns',sShowEffect:'APPEAR',sHideEffect:'FADE',sShowTime:'0.2',sHideTime:'0.0'
			};
			Object.extend(this.aOptions,a||{})
		},
		iM:function(){

				$(this.sId).childElements().each(this.iA.bind(this));
			
			this.anh.each(this.iNH.bind(this))
		},
		
		iA:function(a)
		{
			var b=this;
			var c=$(a.id+'_'+this.aOptions.sSubmenuSuffix);
			if(c)
			{
				var tSub = new Snavigation('sub_'+a.id);
				tSub.addNavigationHider('nav_item');
				c.style.display='none';
				a.onmouseover=function()
				{
					b.showMenu(c)
				}
			}
			else{
				a.onmouseover=function()
				{
					b.hideMenu(b.getActiveMenu())
				};
				a.onmouseout=function()
				{
					b.hideMenu(c)
				}
			}
		},
		
		iNH:function(a)
		{
			var b=this;
			if($(a))
			{
				$(a).onmouseover=function()
				{
					b.hideMenu(b.getActiveMenu())
				}
			}
		},
		
		showMenu:function(a){
			if(!this.isActiveMenu(a))
			{
				if(this.hasActiveMenu())
				{
					this.hideMenu(this.getActiveMenu())
				}
				this.setActiveMenu(a);
				var b=this.aOptions.sShowEffect;
				switch(b.toUpperCase())
				{
					case"APPEAR":
						new Effect.Appear(a,{duration:this.aOptions.sShowTime});break;
					case"SLIDEUP":
						new Effect.SlideUp(a,{duration:this.aOptions.sShowTime});break;
					case"GROW":new Effect.Grow(a,{duration:this.aOptions.sShowTime});break}
				}
			},
			hideMenu:function(a)
			{
				if(a)
				{
					var b=this.aOptions.sHideEffect;
					switch(b.toUpperCase())
					{
						case"FADE":new Effect.Fade(a,{duration:this.aOptions.sHideTime});break;
						case"BLINDUP":new Effect.BlindUp(a,{duration:this.aOptions.sHideTime});break;
						case"FOLD":new Effect.Fold(a,{duration:this.aOptions.sHideTime});break;
						case"SLIDEDOWN":new Effect.SlideDown(a,{duration:this.aOptions.sHideTime});break;
						case"SHRINK":new Effect.Shrink(a,{duration:this.aOptions.sHideTime});break;
						case"SWITCHOFF":new Effect.SwitchOff(a,{duration:this.aOptions.sHideTime});break;
						case"PUFF":new Effect.Puff(a,{duration:this.aOptions.sHideTime});break;
						case"DROPOUT":new Effect.DropOut(a,{duration:this.aOptions.sHideTime});break
					}
					this.setActiveMenu()
				}
			},
			isActiveMenu:function(a)
			{
				return a==this.getActiveMenu()
			},
			hasActiveMenu:function()
			{
				if(this.oActiveSubmenu)
				{
					return true
				}
				return false
			},
			
			getActiveMenu:function()
			{
				if(this.hasActiveMenu())
				{
					return this.oActiveSubmenu
				}
				else
				{
					return false
				}
			},
			
			setActiveMenu:function(a)
			{
				this.oActiveSubmenu=a
			},
			
			addNavigationHider:function(a)
			{
				this.anh.push(a)
			}
		}

var Snavigation=Class.create();
Snavigation.prototype={
		Version:"1.0",sId:null,anh:new Array(),
		initialize:function(a,b)
		{
			this.sId=a;
			this.setOptions(b);
			Event.observe(window,'load',this.iM.bind(this))
			this.iM(this);
			
		},
		
		setOptions:function(a){
			this.aOptions=
			{
				sSubmenuSuffix:'columns',sShowEffect:'APPEAR',sHideEffect:'FADE',sShowTime:'0.1',sHideTime:'0.0'
			};
			Object.extend(this.aOptions,a||{})
		},
		iM:function(a)
		{
			if(a.sId && $(a.sId))
			{
				$(a.sId).childElements().each(this.iA.bind(a));
			}
			this.anh.each(this.iNH.bind(this))
		},
		
		iA:function(a)
		{
			var b=this;
			var c=$(a.id+'_'+this.aOptions.sSubmenuSuffix);
			if(c)
			{
				var nav = new Navigation('sub_'+a.id);
				nav.addNavigationHider('content_container');
				nav.addNavigationHider('content');
				c.style.display='none';
				a.onmouseover=function()
				{
					b.showMenu(c)
				}
			}
			else{
				a.onmouseover=function()
				{
					b.hideMenu(b.getActiveMenu())
				};
				a.onmouseout=function()
				{
					b.hideMenu(c)
				}
			}
		},
		
		iNH:function(a)
		{
			var b=this;
			if($(a))
			{
				$(a).onmouseover=function()
				{
					b.hideMenu(b.getActiveMenu())
				}
			}
		},
		
		showMenu:function(a){
			if(!this.isActiveMenu(a))
			{
				if(this.hasActiveMenu())
				{
					this.hideMenu(this.getActiveMenu())
				}
				this.setActiveMenu(a);
				var b=this.aOptions.sShowEffect;
				switch(b.toUpperCase())
				{
					case"APPEAR":
						new Effect.Appear(a,{duration:this.aOptions.sShowTime});break;
					case"SLIDEUP":
						new Effect.SlideUp(a,{duration:this.aOptions.sShowTime});break;
					case"GROW":new Effect.Grow(a,{duration:this.aOptions.sShowTime});break}
				}
			},
			hideMenu:function(a)
			{
				if(a)
				{
					var b=this.aOptions.sHideEffect;
					switch(b.toUpperCase())
					{
						case"FADE":new Effect.Fade(a,{duration:this.aOptions.sHideTime});break;
						case"BLINDUP":new Effect.BlindUp(a,{duration:this.aOptions.sHideTime});break;
						case"FOLD":new Effect.Fold(a,{duration:this.aOptions.sHideTime});break;
						case"SLIDEDOWN":new Effect.SlideDown(a,{duration:this.aOptions.sHideTime});break;
						case"SHRINK":new Effect.Shrink(a,{duration:this.aOptions.sHideTime});break;
						case"SWITCHOFF":new Effect.SwitchOff(a,{duration:this.aOptions.sHideTime});break;
						case"PUFF":new Effect.Puff(a,{duration:this.aOptions.sHideTime});break;
						case"DROPOUT":new Effect.DropOut(a,{duration:this.aOptions.sHideTime});break
					}
					this.setActiveMenu()
				}
			},
			isActiveMenu:function(a)
			{
				return a==this.getActiveMenu()
			},
			hasActiveMenu:function()
			{
				if(this.oActiveSubmenu)
				{
					return true
				}
				return false
			},
			
			getActiveMenu:function()
			{
				if(this.hasActiveMenu())
				{
					return this.oActiveSubmenu
				}
				else
				{
					return false
				}
			},
			
			setActiveMenu:function(a)
			{
				this.oActiveSubmenu=a
			},
			
			addNavigationHider:function(a)
			{
				this.anh.push(a)
			}
		}


