$( function () {

    $( '.widget-title' ).each( function () {

        /* Maximum line length. */
        var maxLineChars = 25;

        /* Line wrapping content variables. */
        var beforeLineOne = '<span class = "line-one">';
        var afterLineOne = '</span>';
        var beforeLineTwo = '<span class = "line-two">';
        var afterLineTwo = '</span>';

        var length = $( this ).text().length;
        var text = $( this ).text();

        var newText = '';

        /* If text is shorter than maximum line length then just show it. */
        if ( length <= maxLineChars ) {
            newText += beforeLineOne + text + afterLineOne;
        } else {
            newText += beforeLineOne;

            /* Find the breakpoint of the two lines. */
            var breakPoint = maxLineChars;
            for ( var k = maxLineChars - 1; k > 0; k-- ) {
                if ( text.charAt( k ) == ' ' ) {
                    breakPoint = k;
                    break;
                }
            }

            /* Add text up to break point. */
            var index = 0;
            for ( var k = index; k < breakPoint; k++ ) {
                newText += text.charAt( k );
            }

            newText += afterLineOne;

            newText += beforeLineTwo;

            /* Add text from break point and on. */
            index = breakPoint;
            for ( var k = index; k < length; k++ ) {
                newText += text.charAt( k );
            }

            newText += afterLineTwo;
        }

        /* Replace container's html with the newly created two lines. */
        $( this ).html( newText );

    });

});

