(function( $ ){
$.hyhmessagebox = function(message, a_options, a_exposeOptions) {

	var options = {
		className: 'hyhmessagebox',
		expose: true,
		position: 'absolute',
		closeOnClick: true
		};
	for (k in a_options) {
		options[k] = a_options[k];
	}

	if (a_exposeOptions == undefined) {
		a_exposeOptions = {};
	}

	var API = {
		options: options,
		exposeOptions: a_exposeOptions,
		element: null,
		exposeAPI: null,
		close: function(){if(this.options.expose) { this.exposeAPI.closeExpose(); } else this.element.remove();}
	};

	API.element = $(document.createElement('div'));
	if (API.options.className) {
		API.element.addClass(API.options.className);
	}
	API.element.css({visibility:'hidden', position:'absolute'});
	API.element.html(message);
	$('body').prepend(API.element);
	var elemWidth = API.element.outerWidth(true);
	var elemHeight = API.element.outerHeight(true);
	API.element.css('visibility', 'visible');
	API.element.css({left: ($(window).width() - elemWidth) / 2, top: ($(window).height() - elemHeight) / 2, position: API.options.position, zIndex: 800});
	if (API.options.expose) {
		API.exposeOptions.beforeClose = function(){API.element.fadeOut(API.exposeOptions.fadeSpeed, function(){API.element.remove()})};
		API.exposeAPI = API.element.hyhexpose(API.exposeOptions);
	}
	if (API.options.closeOnClick) {
		API.element.click(function(){API.close()});
	}
	return API;
}
})( jQuery );

