jQuery.extend(
{
	drawLoading: function(obj){
		var loading = jQuery('<div id=loading></div>');
		var coords = null;
		if(obj == null) coords = jQuery.getCoords(loading);
		loading.css({
			display: 'none',
			position: 'absolute',
			zIndex: 30000
		}).appendTo('body');
		if(!coords)
		{
			var offset = obj.offset();
			var left_coord = offset.left + obj.width() - loading.width();
			var top_coord = offset.top + (obj.height() - loading.height() + 4) / 2;
			var coords = {left: left_coord,top: top_coord};
		};
		loading.css({'left': coords.left,'top': coords.top}).show();
	},
	removeLoading: function(){
		jQuery('#loading').remove();
	},
	getCoords: function(obj){
		var left_coord = jQuery(document).scrollLeft() + (jQuery(window).width() - obj.width()) / 2;
		var top_coord = jQuery(document).scrollTop() + (jQuery(window).height() - obj.height()) / 2;
		return {
			'left': left_coord,
			'top': top_coord
		}
	}
});

$(document).ready(function(){
	create_overlay_dialog_box();
	create_overlay_alert();
	create_overlay_ajax_standard();
})

function get_overlay_buttons()
{
	return  '<div class=overlaybuttons><input type=button id="overlayok" value="OK" id=overlayok>'
	+ '<input type=button id="overlaycancel" value="Отмена" id=overlaycancel></div>';
}

function open_dialog_box(text,ok_handler)
{
	api = create_overlay_dialog_box();
	var cont = api.getContent().find('.cont').html(text);
	if(ok_handler)
	{
		var buttons = $('.overlaybuttons',cont);
		if(!buttons.size())
		{
			buttons = $(get_overlay_buttons()).appendTo(cont);
			buttons.find('#overlaycancel').click(function(){api.close()});
		}
		buttons.find('#overlayok').unbind('click').click(function(){
			ok_handler(cont);
		});
	}
	api.load();
	return api;
}

function show_alert(str,opts)
{
	api = create_overlay_alert();
	api.getContent().html(str);
	api.load();
	if(!opts) opts = {};
	if(!opts.delay) opts.delay = 1000;
	setTimeout(function(){api.close()},opts.delay);
	if(opts.onLoad) opts.onLoad(api.getContent());
	return false;
}

function create_overlay_alert()
{
	if(window.overlay_api_alert) return window.overlay_api_alert;
	window.overlay_api_alert = $('<div class="overlay overlayalert"></div>')
	.appendTo('body').overlay({
		api:true,
		speed: 0,
		fadeInSpeed: 0,
		closeSpeed: 0,
		top: 'center'
	});
	return window.overlay_api_alert;
}

function create_overlay_dialog_box()
{
	if(window.overlay_api_dialog_box) return window.overlay_api_dialog_box;
	window.overlay_api_dialog_box = $('<div class="overlay overlaydialogbox"><div class="cont overlaydialogboxcontent"></div></div>')
	.appendTo('body').overlay({
		api: true,
		speed: 0,
		fadeInSpeed: 0,
		closeSpeed: 0,
		top: 'center'
	});
	return window.overlay_api_dialog_box;
}

function create_overlay_ajax_standard()
{
	if(window.overlay_api_ajaxstd) return window.overlay_api_ajaxstd;
	window.overlay_api_ajaxstd = $('<div class="overlay overlayajaxstandard"><div class="cont overlayajaxstandardcontainer"></div></div>')
	.appendTo('body').overlay({
		api: true,
		speed: 0,
		fadeInSpeed: 0,
		closeSpeed: 0,
		top: 'center',
		expose: {
			color: '#ccc',
			loadSpeed: 100
		}
	});	
	return window.overlay_api_ajaxstd;
}
