var MSGBOX;

MSGBOX = function() {
	var _count = 1,
	_sticky = Array(),
	_wrapper = {},
	_popup = Array(),
	_handle = Array(),
	_position = Array(),
	_opacity = Array(),
	_time = Array();

	return {
		
		show: function(msg, options) {
			if(options == null) {
				options = {};
			}
			if(options["position"] != null) {
				_position[_count] = options["position"];
			}
			_sticky[_count] = options["sticky"] != null ? options["sticky"] : false;
			_time[_count] = options["timeout"] != null ? parseInt(options["timeout"]) : 7500;
			_position[_count] = options["position"] != null ? options["position"] : 'bottom-right';
			if(_wrapper[_position[_count]] == null) {
				_wrapper[_position[_count]] = document.createElement("div");
				_wrapper[_position[_count]].className = "popwrap "+_position[_count];
				document.body.appendChild(_wrapper[_position[_count]]);
			}
			_popup[_count] = document.createElement("div");
			_popup[_count].innerHTML = "<span class='close' id='close"+_count+"'>x</span>";
			_popup[_count].innerHTML += "<div class='poptext'>"+msg+"</div>";
			_popup[_count].className = "popup";
			_popup[_count].id = "popup"+_count;
			_popup[_count].style.opacity = "0";
			_popup[_count].style.filter = "alpha(opacity = 0)";
			_opacity[_count] = 0;
			_wrapper[_position[_count]].appendChild(_popup[_count]);
			document.getElementById("close"+_count).onclick = new Function('MSGBOX.close('+_count+')');
			MSGBOX.fadein(_count++);
		},
	
		fadein: function(id) {
			_opacity[id] += 10;
			_popup[id].style.opacity = _opacity[id]/100;
			_popup[id].style.filter = "alpha(opacity = "+(_opacity[id])+")";
			if(_opacity[id] != 90) {
				_handle[id] = setTimeout("MSGBOX.fadein('"+id+"')", 50);
			}
			else {
				clearTimeout(_handle[id]);
				if(!_sticky[id]) {
					setTimeout("MSGBOX.fadeout('"+id+"')", _time[id]);
				}
			}
		},

		close: function(id) {
			if(document.getElementById("popup"+id)) {
				MSGBOX.fadeout(id);
			}
		},

		fadeout: function(id) {
			_opacity[id] -= 10;
			_popup[id].style.opacity = _opacity[id]/100;
			_popup[id].style.filter = "alpha(opacity = "+(_opacity[id])+")";
			if(_opacity[id] != 0) {
				_handle[id] = setTimeout("MSGBOX.fadeout('"+id+"')", 50);
			}
			else {
				clearTimeout(_handle[id]);
				_wrapper[_position[id]].removeChild(_popup[id]);
			}
		}
	};
}();
