(function($) {
	var defaults = {
		windowTitle	: '',
		content		: '',
		width		: 500,
		cssClass	: 'modal-window'
	}, oWindow = null;

	$.modalWindow = function(options){


		var options = $.extend(defaults, options);
		var cWindow = function(options) {
			var scroll = $.modalWindow.getPageScroll();
			$.modalWindow.close();
			oWindow = $('<div class="' + defaults.cssClass + '"></div>')
				.css('width', options.width + 'px')
				.css('position', 'fixed').css('left', '50%').css('top', '200px').css('z-index','1000')
				.css('margin-left', - options.width / 2 + 'px')
				.css('border', '1px outset #C3CCC4').css('background-color', 'white');
			if ($.browser.msie && $.browser.version == '6.0') {
			    oWindow.css('position', 'absolute')
					.css('top', (document.getElementsByTagName((document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0].scrollTop + 200) + 'px');
			}
			if (options.windowTitle) {
				var oTitle = $('<div>' + options.windowTitle + '</div>')
					.css('background-color', '#E4EEE6')
					.css('font-size', '1.4em').css('padding', '0.3em 1em')
					.css('font-weight', 'bold')
					;
				oWindow.append(oTitle);
			}
			var oContent = $('<div></div>').css('padding', '1em')
				.append($(options.content));
			oWindow.append(oContent);
			$('body').append(oWindow);
			
			return this;
		};
		
		return new cWindow(options);
	};
	
	$.modalWindow.close = function() {
		$('body .' + defaults.cssClass).remove();
	};

	$.modalWindow.getPageScroll = function(){
		var xScroll, yScroll;

		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){  // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;
		}

		var arrayPageScroll = new Array(xScroll,yScroll);
		return arrayPageScroll;
	};
})(jQuery);
