
var Popup = new Class({
     Implements: [Events, Options],
     options: {
     },
     initialize: function (){
         var params = Array.link(arguments, {options: Object.type, elements: $defined});
         this.setOptions(params.options || null);
		 this.html();
		 return this;
     },

	html: function(){
		this.form = $('popup_form');
		this.title = $('form_title');
		this.content = $('popup_content');
		this.closeButton = $('callback_close');
		this.black = $('callback_black');
		
		$$('.call-back').addEvent('click', function() {
			$$('.black, .popup-form').setStyle('display','block');
			return false;
		});
		$$('.close, .black').addEvent('click', function() {
			$$('.black, .popup-form').setStyle('display','none');
			return false;
		});
	
	},
	getPopup: function(){
		return this.form;
	},
	show: function(e){
		this.black.setStyle('display','block');
		this.form.setStyle('display','block');
	},	
	close: function(){
		this.closeButton.fireEvent('click');
	},
	setContent: function(text){
		this.content.set('html',text);
	},
	setTitle: function(text){
		this.title.set('html',text);
	},
	getForm: function(){
		var form = this.form.getElement('form');
		if(form) return form; else return false;
	}
	

});

function ajaxlogin(){
	$$('.ajaxload').each(function(item){
		item.removeEvent('click');
		var coords = {};
		var callback = function(result){
			var pops = singlton.getInstance('Popup');
			
			pops.setContent(result);
			pops.show();
			pops.setTitle(item.get('text'));
			pops.getPopup().getElement('.error').set('html', $('errors').get('html'));
			
			var form = pops.getForm();
			var id = form.id;
			if(id){
				Cookie.write('activeform', 'form='+item.id+'&path='+location.pathname);
				form.addEvent('submit', function(e){
					if(checkForm(form)){
						new umiSaveFormData(form);	
						return true;
					}
					return false;
				});
			}						
		}
		item.addEvent('click', function(e){
			if(e) e.stop();		
			coords = e;
			var url = this.getProperty('href');
			var request = new umiRequest({
				url: '/users/ajaxload'+url,
				callback: callback
			});
			request.setValue('from_page', location.pathname);
			request.setValue('tpl', this.getProperty('data:tpl'));
			request.commit();
		});
	});
	
	
	var activeform = Cookie.read('activeform');

	var errors = $('errors').get('text');
	if(activeform && errors) {
		var cookdata = activeform.parseQueryString();
		var form = cookdata.form;
		var path = cookdata.path;
		if(form && (path == location.pathname)) $(form).fireEvent('click');
		else Cookie.dispose('activeform');
	}
	else Cookie.dispose('activeform');
}
