﻿// центрирование дива (absolute или fixed)
// Парметры:
// id_block - контейнер, относительно которого происходит центрирование, по умолчанию - document
(function($) {
    $.extend($.fn,
	{
	    CenterBlock: function(settings) {
	        settings = $.extend({ id_block: null }, settings);

	        var h_d = (settings.id_block != null) ?
	            $(settings.id_block).height() : $(document).height();
	        var w_d = (settings.id_block != null) ?
	            $(settings.id_block).width() : $(document).width();

	        this.css('position', 'absolute');

	        var o_d = Math.max(this.outerHeight(), this.height());

	        if (this.height() == 0 || h_d < o_d) o_d = h_d;

	        this.css({ left: (w_d - this.outerWidth()) / 2, top: (h_d - o_d) / 2 });

	        return this;
	    } //end CenterBlock
	}); //end $.extend($.fn,
})(jQuery);

///--------------------------------------------------------------------------
///--------------------------------------------------------------------------

// Показ всплывающего окна при наведении ссылки на определенный объект
// требует включение баблиотеки jquery.timers
// Параметры:
// delay - задержка на скрытие блока
// id_block - ИД показываемого/скрываемого блока
(function($) {
    $.extend($.fn,
	{
	    ShowHideBlock: function(settings) {
	        settings = $.extend({ id_block: null, delay: 100 }, settings);

	        // если отображаемый контейнер не указан, то выходим
	        if (settings.id_block == null) return this;
	        var block_content = $(settings.id_block);
	        var obj_this = this;

	        obj_this.hover(
		        function() { obj_this.stopTime("hide"); block_content.show(); },
		        function() {
		            obj_this.oneTime(settings.delay, "hide", function() { block_content.hide(); });
		        });
	        block_content.hover(
	            function() { obj_this.stopTime("hide"); },
	            function() {
	                obj_this.oneTime(settings.delay, "hide",
	                function() { block_content.hide(); });
	            });

	        return this;
	    } //end ShowHideBlock
	}); //end $.extend($.fn,
})(jQuery);

// Класс диалогового окна (без ифрейма)
// Параметры:
// delay - задержка на скрытие блока
// id_block - ИД показываемого/скрываемого блока
(function($) {
    $.extend($.fn,
	{
	    General80PortDialog: function(settings) {
	        settings = $.extend({ title: '' }, settings);

	        // если отображаемый контейнер не указан, то выходим
	        var obj_this = this;
	        var obj_id = obj_this.attr("id");
	        if (obj_id == null || obj_id == '') return;

	        obj_this.prepend("<div class=\"block_head\"><span style=\"float:left;\">" + settings.title + "</span><a href=\"#\" onclick=\"$('#" + obj_id + "').hide(); return false;\" title=\"Закрыть\"><img src=\"/i/ic_close.gif\" width=\"16\" height=\"16\" border=\"0\" alt=\"\"></a></div>");

	        
	        //obj_this.live({ "change": function() { alert('1'); $('*').addClass('z_index_hide'); obj_this.removeClass('z_index_hide'); }, "hide": function() { alert('2'); $('*').removeClass('z_index_hide'); } });

	        return this;
	    } //end ShowHideBlock
	}); //end $.extend($.fn,
})(jQuery);


