var Popup = new Class({
	initialize: function(link, hidden_class) {
		this.link = link;
		this.hidden_class = hidden_class;
		this.wnd = $(link.rel);
		this.visible = false;
		
		this.setActionHandlers();
	}
});

Popup.implement({
	setActionHandlers: function() {
		
		var obj = this;
		
		this.link.addEvent('click', function(e){
			
			new Event(e).stop();
			
			if(obj.visible) {
				obj.hide();
			}
			else {
				obj.show();
			}
		});
		
		window.document.addEvent('click', function(){
			
			obj.hide();
		});
		
		this.wnd.addEvent('click', function(e){
			new Event(e).stop();
		});
	}, 
	
	show: function() {
		
		this.wnd.setStyle('opacity', 0);
		this.wnd.removeClass(this.hidden_class); 
		this.wnd.getFirst('input').addEvent('click', function(e){
			new Event(e).stop();
			this.select();
		});
		new Fx.Morph(this.wnd, {
			duration: 250
		}).start({
			opacity: [0, 1]
		});
		this.visible = true;
	}, 
	
	hide: function() {
		
		this.wnd.addClass(this.hidden_class);
		this.visible = false;
	}
});
