/*!
 * jQuery-подсказка
 * Позволяет:
 * 1) Показывать подсказку по щелчку
 * Опции:
 * - width: ширина подсказки
 * - text: текст подсказки
 * Методы:
 * - hide: скрыть подсказку
 */

jQuery.fn.tooltip = function (options) {
    
    $(this).each(function(){
        
        if($(this).attr('haveToolTip') != "true") {
           PrepareToolTip(this);
        }
        else {
            if(options == "hide" )
                $(".tooltip", this).hide();
        }
    })

    //подготовка подсказки
    function PrepareToolTip(target) {

        $(target).css('cursor','pointer');

        var tooltip = $("<div></div>")
                      .addClass("tooltip")
                      .css('position',"absolute")
                      .css('width',options.width+"px")
                      .text(options.text)
                      .hide();
        $(target).append(tooltip);


        $(target).attr('haveToolTip','true');
        //сохраняем опции
        $(target).data('options',options);

        //клие по элементу
        $(target).click(function(){
                var tooltip = $(".tooltip",this);
                var visible =  ($(".tooltip:visible",this).size() > 0) ? true : false;
                if(visible)
                    tooltip.hide(300);
                else {

                    if($(target).data('options').useAutoPos == true) {
                        var left = $(target).offset().left;
                        var top = $(target).offset().top + $(target).height();
                        $(tooltip).css('left',left +'px').css('top',top + 'px');
                    }
                    tooltip.show(300);


                }
                return false;
        })

        $(document).unbind('click');
        $(document).click(function(e) {
            if (e.target) {
                var elem = e.target;
                //если элемент не с подсказкой, то закрываем все подсказки
                if( $(elem).attr('haveToolTip') != 'true') {
                     $(".tooltip").each(function() {
                           $(this).hide(300,function(){},"backout");
                     });
                }
            }
        });
    }

}
