/*******************************************************************************\
This script is based upon jtruncate.js but is customized for site granitifiandre
\*******************************************************************************/
(function($)
{
    $.fn.jTruncateGFCustom = function(options)
    {

        var defaults = {
            length: 300,
            minTrail: 20,
            moreText: "more",
            lessText: "less",
            ellipsisText: "...",
            moreAni: "",
            lessAni: ""
        };

        var options = $.extend(defaults, options);

        return this.each(function()
        {
            obj = $(this);
            var body = obj.html();

            if (body.length > options.length + options.minTrail)
            {
                var splitLocation = body.indexOf(' ', options.length);
                if (splitLocation != -1)
                {
                    // truncate tip
                    var splitLocation = body.indexOf(' ', options.length);
                    var str1 = body.substring(0, splitLocation);
                    var str2 = body.substring(splitLocation, body.length - 1);
                    obj.html(str1 + '<span class="truncate_ellipsis">' + options.ellipsisText + '</span>' + '<span class="truncate_more">' + str2 + '</span>');
                    obj.find('.truncate_more').css("display", "none");
                    obj.append('&nbsp;&nbsp;<a href="#" class="truncate_more_link"></a>');
                    var moreLink = $('.truncate_more_link', obj);
                    moreLink.html(options.moreText);
                    var moreContent = $('.truncate_more', obj);
                    var ellipsis = $('.truncate_ellipsis', obj);
                    moreLink.click(function()
                    {
                        if (!moreLink.hasClass("truncate_more_close"))
                        {
                            moreContent.show(options.moreAni);
                            moreLink.html(options.lessText);
                            moreLink.addClass("truncate_more_close");
                            ellipsis.css("display", "none");
                        }
                        else
                        {
                            moreContent.hide(options.lessAni);
                            moreLink.html(options.moreText);
                            moreLink.removeClass("truncate_more_close");
                            ellipsis.css("display", "inline");
                        }
                        return false;
                    });
                    obj.parent().find("h2").wrapInner('<a href="#1"></a>').click(function() { moreLink.click(); return false; });

                }
            } // end if

        });
    };
})(jQuery);
