var initPopups=function(){
	$$('img.dropdown').each(function(image){
		var popupID='dropdown-'+image.name.match(/\d+/);
		var popup=$(popupID);
		
		if (popup){			
			popup.shouldHide=true;
			var imageHandler={
				popup:popup,
				popupID:popupID,
				button:image,
				mouseover:function(e){
				
					var d=this.button.getDimensions();
					var d1=this.popup.getDimensions();
					var p=this.button.cumulativeOffset();					
					var p1=$('container').cumulativeOffset()
					var w=document.viewport.getWidth();
					
					x=p[0]-p1[0]-6;
					y=d.height+p[1]+(Prototype.Browser.IE?12:11);
					
					if (x+d1.width>w)
						x=w-d1.width-5;
					
					this.popup.shouldHide=false;
					if (!this.popup.visible())
					{
						if (document.lastPopup && document.lastPopup!=this.popup)
							document.lastPopup.fade({duration:0.1});
							
						this.popup.style.left=x+'px';
						this.popup.style.top=y+'px';
						this.popup.appear({duration:0.4});
						document.lastPopup=this.popup;
					}
				},
				mouseout:function(e){
					this.popup.shouldHide=true;
					var pe=new PeriodicalExecuter(function(pe){
							if (this.popup.shouldHide){
								this.popup.fade({duration:0.1});
								pe.stop();
								if (document.lastPopup && document.lastPopup==this.popup)
									document.lastPopup=null;
							}
						},
						.5
					);
					pe.popup=this.popup;
				}
			};
			
			var popupHandler={
				popup:popup,
				popupID:popupID,
				button:image,
				mouseover:function(e){
					this.popup.shouldHide=false;					
				},
				mouseout:function(e){
					e.target.shouldHide=true;
					var pe=new PeriodicalExecuter(function(pe){
							if (this.popup.shouldHide){
								this.popup.fade({duration:0.1});
								pe.stop();
								if (document.lastPopup && document.lastPopup==this.popup)
									document.lastPopup=null;
							}
						},
						.5
					);
					pe.popup=this.popup;
				}
			};
				
			Event.observe(image, 'mouseover', imageHandler.mouseover.bindAsEventListener(imageHandler));
			Event.observe(image, 'mouseout', imageHandler.mouseout.bindAsEventListener(imageHandler));			
			Event.observe(popup, 'mouseover', popupHandler.mouseover.bindAsEventListener(popupHandler));
			Event.observe(popup, 'mouseout', popupHandler.mouseout.bindAsEventListener(popupHandler));			
		}
	});		
};

Event.observe(window, 'load', initPopups, false);
