jQuery.extend(
{
	drawLoading: function(){
		var loading = jQuery('<div id=loading></div>');
		var coords = jQuery.getCoords(loading);
		loading.css({
			'left': coords.left,
			'top': coords.top,
			position: 'absolute',
			zIndex: 30000
		}).appendTo('body');
	},
	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: 50,
		fadeInSpeed: 0,
		finish: {
			top: 'center',
			left: 'center',
			absolute: false
		}
	});
	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: 50,
		fadeInSpeed: 0,
		finish: {
			top: 'center',
			left: 'center',
			absolute: false
		}
	});
	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: 50,
		fadeInSpeed: 0,
		finish: {
			top: 'center',
			left: 'center',
			absolute: false
		},
		expose: {
			color: '#ccc',
			loadSpeed: 100
		}
	});	
	return window.overlay_api_ajaxstd;
}
