UI = {};
UICONFIG = {
	UIDISABLERZINDEX: 1000,
	UIMODALDIALOGZINDEX: 1001,
	UITIPSZINDEX: 1002,
	UISPINNERZINDEX: 1003
};
UI.Disabler = new Class({
	Implements: [Events],
	initialize: function(){
		this.isActive = false;
		this.top_el = $$('body')[0];
		this.el = new Element('div', {
			'id': 'disabler',
			'styles': {
				'top':0,
				'left':0,
				'overflow':'hidden',
				'z-index': UICONFIG.UIDISABLERZINDEX,
				'width': '100%',
				'height':'100%',
				'position':'absolute',
				'background': '#000',
				'opacity': 0.6
			}
		});
	},
	show: function(){
		if (!this.isActive) {
			this.top_el.setStyle('overflow','hidden');
			this.top_el.grab(this.el);
			this.isActive = true;
		}
	},
	hide: function(){
		if (this.isActive){
			this.el.dispose();
			this.top_el.setStyle('overflow','');
			this.isActive = false;
		}
	}
});
UI.userImageGetter = new Class({
	known_ids: [],
	images:[],
	initialize: function(fn) {	
		this.callback = fn;
	},
	load: function(jid) {
		if (this.known_ids.indexOf(jid)!=-1) {
			if (typeOf($(OPTIMIZER.jid_id_converter(jid, 'userimage')))!='null' && 
					$(OPTIMIZER.jid_id_converter(jid, 'userimage')).get('tag') == 'img'){
				this.callback($( OPTIMIZER.jid_id_converter(jid, 'userimage') ));
			}
			else {
				this.callback(new Element('img',{
					'id': OPTIMIZER.jid_id_converter(jid, 'userimage'),
					'title':'User image'
				}));
			}
		}
		var mysrc = '/cgi-bin/lg.cgi?run=photodnl&jid='+jid;
		this.images[this.images.length] = new Asset.image(mysrc, {
			'id': OPTIMIZER.jid_id_converter(jid, 'userimage'),
			'onLoad': function() {
				this.doneImage();
			}.bind(this),
			'onError': function() {
				this.defaultImage();
			}.bind(this)
		});
	},
	defaultImage: function(){
		var lost = this.images.shift();
		lost = new Element('img', {
			id: lost.get('id'),
			src: "/imgs/defaultPic.jpg"
		});
		this.known_ids.push(OPTIMIZER.jid_id_converter(lost.get('id')));
		this.callback(lost);
	},
	doneImage: function() {
		var i = this.images.shift();
		this.known_ids.push(OPTIMIZER.jid_id_converter(i.id));
		this.callback(i);
	}		
});

