$L.add('descriptionDisclosure', new (function () {
    
    var obj = $L.object(this);

    obj._state = 0;

    obj.toggle = function ( ) {
        obj._$toggleMoreBtn();
        if (obj._state == 0) {
            obj._$showDescription();
            obj._$hideEllipsis();
            obj._state = 1;
        } else {
            obj._$hideDescription();
            obj._$showEllipsis();
            obj._state = 0;
        }
    };

    obj._$hideEllipsis = function ( ) {
        $jq('#contentDescriptionEllipsis').fadeOut();
    };

    obj._$showEllipsis = function ( ) {
        $jq('#contentDescriptionEllipsis').fadeIn();
    };

    obj._$hideDescription = function ( ) {
        $jq('#continuedContentDescription')
            .fadeOut('fast');
    };

    obj._$showDescription = function ( ) {
        $jq('#continuedContentDescription')
            .css({ display: "inline", opacity: "0" })
            .animate({ opacity: "1" }, 300);
    };

    obj._$toggleMoreBtn = function ( ) {
        if (obj._state == 0) {
            $jq('#continuedContentDescriptionButtonMore').fadeOut('fast', function() {
                $jq('#continuedContentDescriptionButtonLess').fadeIn();
                });
        } else {
            $jq('#continuedContentDescriptionButtonLess').fadeOut('fast', function() {
                $jq('#continuedContentDescriptionButtonMore').fadeIn();
                });
        }
    };

    return obj;
})());