/**
*
* @author Sven Kummer
* @company rapidsoft GmbH
*
*/

(function($){
 $.fn.helpLayer = function(headline, text, hideSelects) {

    var options = {headline: headline, text: text, hideSelects: hideSelects};

    return this.each(function() {

        var me = $(this);

        me.bind('mouseover', {me: me}, function(e) {

            var me = e.data.me;

            if ($('#' + me.attr('id') + '_help').length == 0) {

                var div = $('<div class="helpLayer"></div>');
                    div.attr('id', me.attr('id') + '_help');

                var spanLT = $('<span class="cornerLeftTop"></span>');
                var spanRT = $('<span class="cornerRightTop"></span>');
                var spanPt = $('<span class="pointer"></span>');
                var spanLB = $('<span class="cornerLeftBottom"></span>');
                var spanRB = $('<span class="cornerRightBottom"></span>');

                var content = $('<p class="content"></p>');
                    content.html('<strong>' + options.headline + '</strong><br /><br />' + text);

                    spanRT.append(spanPt);
                    spanLT.append(spanRT);

                    div.append(spanLT);
                    div.append(content);
                    div.append(spanLB);
                    div.append(spanRB);

                var pos = me.position();

                $('body').append(div);

                var topAdd = 0;
                var leftAdd = 0;

                if ($.browser.msie) {
                    topAdd = 60;
                    leftAdd = 52;
                } else {
                    topAdd = 45;
                    leftAdd = 42;
                }

                div.css('left', (pos.left - div.width() + leftAdd) + 'px');
                div.css('top', (pos.top + topAdd) + 'px');

            }

            if (options.hideSelects != undefined) {

                for (var i = 0; i < options.hideSelects.length; ++i) {
                    options.hideSelects[i].css('visibility', 'hidden');
                }

            }

            $('#' + me.attr('id') + '_help').show();

        });

        me.bind('mouseout', {me: me}, function(e) {

            if (options.hideSelects != undefined) {

                for (var i = 0; i < options.hideSelects.length; ++i) {
                    options.hideSelects[i].css('visibility', 'visible');
                }

            }

            $('#' + me.attr('id') + '_help').hide();

        });

    });

 };

})($);
