var Message = Class.create();

/*
A bit specific for this page only :/
*/

Message.prototype = {
	
	title: "",
	message: "",
	messageType: 1,
	placeIn: null,
	options: {},
	
	initialize: function (title, message, messagetype, placeIn, options) {
		this.title = title;
		this.message = message;
		this.messageType = messagetype;
		this.placeIn = placeIn;
		this.setOptions(options);
		
		this.build();
	},
	
	setOptions: function(options) {
		switch(this.messageType) {
			case 4:
				this.options = {
					className: 	"notify",
					blink:   	true
				}
				break;
				
			case 3:
				this.options = {
					className: 	"alert",
					blink:		true
				}
				break;
				
			case 2:
				this.options = {
					className: 	"error",
					blink:   	true
				}
				break;
			
			case 1:
			default:
				this.options = {
					className: 	"success"
				}
				break;	
		}
		
		if(this.placeIn && document.getElementById(this.placeIn)) {
			this.options.messageHolder = document.getElementById(this.placeIn);
		} else {
			if(document.getElementById("messageHolder")) {
				this.options.messageHolder = document.getElementById("messageHolder");
			} else {
				this.options.messageHolder = document.body;
			}
		}
		this.options.store = false;
		Object.extend(this.options, options || {});
	},
	
	build: function() {
		if(this.options.store) {
			new Ajax.Request("/admin/message/store/", {
				method: "post",
				parameters: "title="+this.title+"&messageType="+this.messageType+"&message="+this.message
			  	});
		} else {
			if(this.options.overlay) {
				var overlay = document.createElement("div");
				Element.addClassName(overlay, "messageOverlay");
				overlay.hide();
				this.options.messageHolder.appendChild(overlay);
			}
			
			var message = document.createElement("div");
			Element.addClassName(message, "message");
			Element.addClassName(message, this.options.className);
			if(this.options.overlay && overlay) {
				overlay.appendChild(message);
			} else {
				message.hide();
				this.options.messageHolder.appendChild(message);			
			}
			
			var messageTitle = document.createElement("div");
			Element.addClassName(messageTitle, "title");
			messageTitle.appendChild(document.createTextNode(this.title));
			message.appendChild(messageTitle);
			
			var messageContent = document.createElement("div");
			Element.addClassName(messageContent, "content");
			messageContent.appendChild(document.createTextNode(this.message));
			message.appendChild(messageContent);
			
			message.onclick = function () {
				new Effect.Fade(this, {duration: .5});
			}
			
			message.show();
			if(this.options.blink)
				new Effect.Pulsate(message, {from:.5, duration:1, pulses:3});
		}
	}
	
}