
function SetMenuWidth(element)
{	
	var parent = $(element);
	oldMargin = parent.style.marginTop; 
	parent.style.marginTop = '-9999px';
	for(li in parent.childNodes)
	{
		li = parent.childNodes[li];
		if(li.id)
		{
			if($(li.id + '_columns'))
			{
				$(li.id + '_columns').style.display = 'block';
				nav_items = $(li.id + '_items');
				if(nav_items)
				{
					max = 0;
					if(nav_items.childNodes.length>0)
					{
						for(list in nav_items.childNodes)
						{
							list = nav_items.childNodes[list];
							if(list.tagName == "LI")
							{
								for(div in list.childNodes)
								{
									div = list.childNodes[div];
									
									if(div.tagName == "DIV")
									{
										for(link in div.childNodes)
										{
											link = div.childNodes[link];
											if(link.tagName == "A")
											{
												if(link.offsetWidth > max)
													max = link.offsetWidth;
											}
										}
									}
								}
							}
						}
					}
					nav_items.style.width = max+20 + "px";
				}
				$(li.id + '_columns').style.display = 'none';
			}
		}
	}
	parent.style.marginTop = oldMargin;
}

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:'BLINDDOWN',sHideEffect:'BLINDUP',sShowTime:'0.05',sHideTime:'0.2'
			};
			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"SLIDEDOWN":
						new Effect.SlideDown(a,{duration:this.aOptions.sShowTime});break;	
					case"BLINDDOWN":
						new Effect.BlindDown(a,{duration:this.aOptions.sShowTime});break;	
					case"GROW":new Effect.Grow(a,{duration:this.aOptions.sShowTime});break}
				}
				a.style.height = "auto";
			},
			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"SLIDEUP":new Effect.SlideUp(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
					}
					a.style.height = "auto";
					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.1'
			};
			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('header');
				nav.addNavigationHider('content_container');
				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)
			}
		}

function setCreateTooltipsListener()
{
	if (typeof(document.observe) === 'undefined')
	{
		setTimeout("setCreateTooltipsListener()", 200);
		return;
	}

	createTooltips();
	
	Event.observe(window, "load", function() { createTooltips(); });
};

function createTooltips()
{
	$$('img.tooltip').each(function(oEl)
	{
			oEl.observe('mouseover', function(oEvent) { showTooltip(oEvent) });
			oEl.observe('mouseout', function(oEvent) { hideTooltip(oEvent) });
			oEl.observe('mousemove', function(oEvent){ moveTooltip(oEvent) });
	});
} 
setCreateTooltipsListener();

var oActiveStaticTooltipDiv;

function showTooltip(oEvent)
{
	oEl = oEvent.element();
	oPopup = $('hint-' + oEl.id);
	if(oPopup != null && oPopup.className == 'balloon')
	{
		var sVersion = navigator.appVersion;
		if(sVersion.match('MSIE 7'))
		{
			var oUp = oEl.up('div.dwellingItem');
			
			if(oUp)
			{
				var oNext = oUp.next();
				
				if(oNext)
				{
					var oItem = oNext.select('.grayBoxInner');
				
					if(oItem)
					{
						oItem.each(function(oDiv){
							oActiveStaticTooltipDiv = oDiv;
							oDiv.select('div.grayBoxInnerRight').first().hide();
							oDiv.select('div.grayBoxInnerLeft').first().hide();
							oActiveStaticTooltipDiv.style.position = 'static';
							
						});		
					}
				}
			}
				
		}
		
		oEvent.element().src = '/images/info_button_hover.gif';
		oPopup.style.display = 'block';

		var iBoundary = (document.viewport.getWidth() - 945) / 2;
		
		//oPopup.style.left = (Event.pointerX(oEvent)-Math.floor(iBoundary)- 415).toString() + "px";
		//oPopup.style.top = (Event.pointerY(oEvent) - 528).toString() + "px";
	}
} 

function hideTooltip(oEvent)
{
	oPopup = $('hint-' + oEvent.element().id);
	if(oPopup != null && oPopup.className == 'balloon')
	{
		if(oActiveStaticTooltipDiv)
		{
			oActiveStaticTooltipDiv.style.position = 'relative';
			oActiveStaticTooltipDiv.select('div.grayBoxInnerRight').first().show();
			oActiveStaticTooltipDiv.select('div.grayBoxInnerLeft').first().show();
		}
		
		oEvent.element().src = '/images/info_button.gif';
		oPopup.style.display = 'none';
	}
}

function moveTooltip(oEvent)
{
	oEl = oEvent.element();
	oPopup = $('hint-' + oEl.id);
	if(oPopup != null && oPopup.className == 'balloon')
	{
		var iBoundary = (document.viewport.getWidth() - 945) / 2;
		
		//oPopup.style.left = (Event.pointerX(oEvent)-Math.floor(iBoundary)- 415).toString() + "px";
		//oPopup.style.top = (Event.pointerY(oEvent) - 528).toString() + "px";
	}	
}

