Js.widget.notice = {
	callback: null,
	object: null,
	href: "",
	overlay: function(){
		var i = new Js.widget.activity("#overlay-notice");
		i.init();
		i.box = jQuery("<div/>").appendTo(i.object).css({
			"position": "absolute",
			"width": "550px"
		});

		i.boxWidth = 550;
		i.boxHeight = 0;
		i.opacity = 0.9;

		return i;
	},
	closeNotice: function() {
		if(Jrun.isfunction(this.callback)) {
			this.callback();
		}
		if(this.href !== '') {
			try {
				Jrun.href(this.href);
			} catch(e) {
			}
		}
		Js.widget.notice.object.deactivate();
	},
	success: function(note, callback) {
		var that = this;

		Js.widget.notice.object.box.html("");
		Js.widget.notice.object.activate();

		var title = "Success";
		var msg = "";
		this.callback = Jrun.pick(callback, null);
		var opt = false;

		if(Jrun.typeOf(note) != "object") {
			title = note;
		} else {
			title = Jrun.pick(note.title, "");
			msg = Jrun.pick(note.message, "");
			this.href = Jrun.pick(note.href, "");
			var opt = Jrun.pick(note.sticky, false);
		}


		Js.widget.notice.object.box.removeClass().addClass("message-success");
		jQuery("<h3/>").text(title).appendTo(Js.widget.notice.object.box);

		if(msg != "") {
			var p = jQuery("<p/>").html("" + msg).appendTo(Js.widget.notice.object.box);
		}
		var span = jQuery("<em/>").text("").appendTo(Js.widget.notice.object.box);
		setTimeout((function() {
			Js.widget.notice.object.object.click(function() {
				Js.widget.notice.closeNotice();
			});
		}), 1000);

		if(opt == false) {
			setTimeout(function() {
				Js.widget.notice.closeNotice();
			}, 5000);
		}
	},
	note: function(note, callback) {
		var that = this;

		Js.widget.notice.object.box.html("");
		Js.widget.notice.object.activate();

		var title = "Notes";
		var msg = "";
		this.callback = Jrun.pick(callback, null);
		var opt = false;

		if(Jrun.typeOf(note) !== "object") {
			title = note;
		} else {
			title = Jrun.pick(note.title, "");
			msg = Jrun.pick(note.message, "");
			this.href = Jrun.pick(note.href, "");
			var opt = Jrun.pick(note.sticky, false);
		}

		Js.widget.notice.object.box.removeClass().addClass("message-note");
		jQuery("<h3/>").text(title).appendTo(Js.widget.notice.object.box);

		if(msg != "") {
			var p = jQuery("<p/>").html("" + msg).appendTo(Js.widget.notice.object.box);
		}
		var span = jQuery("<em/>").text("").appendTo(Js.widget.notice.object.box);

		setTimeout((function() {
			Js.widget.notice.object.object.click(function() {
				Js.widget.notice.closeNotice();
			});
		}), 1000);

		if(opt == false) {
			setTimeout(function() {
				Js.widget.notice.closeNotice();
			}, 5000);
		}
	},
	error: function(note, callback) {
		var that = this;

		Js.widget.notice.object.box.html("");
		Js.widget.notice.object.activate();

		var title = "Fail";
		var msg = "";
		this.callback = Jrun.pick(callback, null);
		var opt = false;

		if(Jrun.typeOf(note) == "string") {
			title = note;
		} else {
			title = Jrun.pick(note.title, "");
			msg = Jrun.pick(note.message, "");
			this.href = Jrun.pick(note.href, "");
			var opt = Jrun.pick(note.sticky, false);
		}

		Js.widget.notice.object.box.removeClass().addClass("message-error");
		jQuery("<h3/>").text(title).appendTo(Js.widget.notice.object.box);

		if(msg != "") {
			var p = jQuery("<p/>").html("" + msg).appendTo(Js.widget.notice.object.box);
		}
		var span = jQuery("<em/>").text("").appendTo(Js.widget.notice.object.box);

		setTimeout((function() {
			Js.widget.notice.object.object.click(function() {
				Js.widget.notice.closeNotice();
			});
		}), 1000);

		if(opt == false) {
			setTimeout(function() {
				Js.widget.notice.closeNotice();
			}, 5000);
		}
	}
};
Js.widget.notice.object = Js.widget.notice.overlay();