var flbox = {

	options: {
		closeOnClick: false,
	},

	header_height: 23,
	
	template: '<div id="flbox-overlay"></div><div id="flbox-outer"><div id="flbox"><div id="flbox-header"><img id="flbox-close" src="/js/flbox/close.png" style="float:right; cursor: pointer;" />&nbsp;&nbsp;<span id="flbox-header-text"></span></div><div id="flbox-body"></div></div></div>',
	
	loading: 'Loading...',
	
	not_loaded: 'Произошла ошибка при загрузке',
	
	ie6_error: 'Действие невозможно. Вы испульзуете устаревший браузер.',
	
	fix: function() {
		
		
		if (this.options.title) {
			this.header_text.text(this.options.title);
			this.header.show();
		}
			
		if (this.body.width() >= 0.8 * $(window).width()) {
			this.body.width(0.8 * $(window).width());
		}
		if (this.options.top) {
			this.wrapper.css('marginTop', this.options.top+'px');			
		} else {
			if (this.wrapper.height() > $(window).height() * 0.8) {
				this.wrapper.css('marginTop', '50px');
			} else {
				this.wrapper.css('marginTop', ($(window).height() - this.wrapper.height()) / 2 + 'px');
			}
		}
		
		
		this.wrapper.css('visibility', 'visible');
		
		this.header.width(this.wrapper.width()); // вытягивает хедер для IE
	},
	
	close: function () {
		this.overlay.remove();
		this.outer.remove();
		this.options = {};
		$('#wrapper').css('height', 'auto');
	},
	
	
	loadContent: function(url, data) {
		data = data || {};
		this.body.load(url, data, function(responseText, textStatus) {
			if (textStatus == 'error' || responseText == '') {
				$(this).html(this.not_loaded);
			}
			flbox.fix();
		});
	},
	
	setContent: function(content) {
		if (content) {
			this.body.html(content);
			this.fix();
		}
	},

	open: function(options) {

		this.options = $.extend(this.options, options);
		
		if ($('#flbox').size() == 0) {
		
			var isIE6 = !$.support.opacity && !window.XMLHttpRequest;
			if (isIE6) {
				alert(this.ie6_error);
				return false;
			}
			
			$('#wrapper').height($(window).height()).css('overflow', 'hidden');	
		
			$('body').append(this.template);
			
			this.overlay = $('#flbox-overlay');
			this.outer = $('#flbox-outer');
			this.wrapper = $('#flbox');
			this.header = $('#flbox-header');
			this.header_text = $('#flbox-header-text');
			this.body = $('#flbox-body');
			this.close_button = $('#flbox-close');
			
			
			if (this.options.width) {
				this.wrapper.css('width', this.options.width + 'px');
			}
			
			this.close_button.live('click', function() {
				flbox.close();
			});
			
			// this.body.click(function(event) {
				// event.cancelBubble = true;
				// if (event.stopPropagation) {
					// event.stopPropagation();
				// }
			// });
			
			// this.outer.bind('click', function() {
				// flbox.close();
			// });
			
			this.overlay.show();
			this.outer.show();
			
			$(document).bind('keyup', function(e) {
				if (e.keyCode == 27) {
					flbox.close();
				}
			});
		}
		
		if (this.options.url) {
			this.loadContent(this.options.url, this.options.data);
		} else {
			this.setContent(this.options.content);
		}
		
	}
	
	
	
}


