/* Автор: Бурый Дмитрий Николаевич */

document.write("<style>");
document.write(".messages_block {font-family:Tahoma; width:260px; top:5px; right:5px; position:fixed; float:right; font-size:14px;} ");
document.write(".message {width:240px; padding:6px; margin-bottom:5px; }");
document.write(".message .title {margin-bottom:7px; font-size:12px;}");
document.write(".message .text {border-left:2px solid; padding-left:5px;}");
document.write(".message.error {background:#9D0000; color:white; border-color: white;}");
document.write(".message.success {background-color:#1DA731; color:white; border-color: white;}");
document.write(".message .close {font-weight:bold; cursor:pointer; float:right; width:16px; height:16px; position:relative; left:6px; bottom:5px}");
document.write("</style>");

window.Messager = {
	
	conteiner: null,
	items:[],
	counter:0,
	isinit:false,
	
	init:function(){
		if (!this.isinit){
			this.isinit = true;
			this.conteiner = new Element('div', { 'class':'messages_block' });
			$(document.body).adopt(this.conteiner);
		}
	},
	
	showSuccess:function(message,delay){
		var delay = delay ? delay*1000 : 3000;
		var msg = this.show('Выполненно',message,'success').fade('1');
		window.setTimeout('Messager.close('+msg.n+')', delay);
	},
	
	showError:function(message,delay){
		var delay = delay ? delay*1000 : 10000;
		var msg = this.show('Ошибка',message,'error').fade('1');
		window.setTimeout('Messager.close('+msg.n+')', delay);
	},
	
	close:function(n){
		Messager.items.each(function(item, index){
			if (item.n == n) {
				item.close();
				Messager.items.erase(item);
			}
		});
	},
	
	show:function(title,message,type){
		this.init()
		var type = type ? type : 'success';
		var title = title ? title : '';
		var dontRemove = false;
		
		if (!title)
		switch(type){
			case 'success': title = 'Выполнено'; break;
			case 'error': 	title = 'Ошибка'; break;
		}
	
		var partClose = new Element('div', { 'class':'close', 'html':'x'});
		var partTitle = new Element('div', { 'class':'title', 'html':title});
		var partText = new Element('div', { 'class':'text', 'html':message});
		var objMessage = new Element('div', { 'class':'message '+type});
		
		partClose.addEvents({
			'click':function(){
				objMessage.dontRemove = false;
				objMessage.close();
			}
		});
		
		objMessage.addEvents({
			'mouseover':function(){
				this.fade('1');
				this.dontRemove = true;
			},
			'mouseout':function(){
				this.fade('0.8');
			}
		});
		
		$extend(objMessage, {
			'n':++Messager.counter,
			'close':function(){
				if (!objMessage.dontRemove){
					objMessage.destroy('slow');
				}
			}			
		});
		
		objMessage.adopt([partClose,partTitle,partText]);
		$(this.conteiner).adopt(objMessage);
		
		Messager.items.include(objMessage);
		return objMessage;
	}
}

