﻿

String.prototype.summarize = function (count) {
    if (this.length <= count)
        return this;
    else
        return this.substring(0, count) + "...";
}

function summarizeElementText(elements) {

    elements.each(function (idx, el) {

        var item = $(el);

        if (item != null) {
            summarizeTextOf(item);
        }

    });

}

function summarizeTextOf(element) {

    
    var actualText = getTextOf(element).trim();
    
    if (actualText.lenght == 0)
        return;

    var words = actualText.split(" ");

    var replacementPairs = getSummarizedPairs(words);

    var elementText = element.html();

    $(replacementPairs).each(function (idx, el) {
        elementText = elementText.replace(el.Word, el.ReplaceWith);
    });

    element.html(elementText);

}

var maxWordTextLengthInGrids = 15;
function getSummarizedPairs(words) {

    var result = new Array();

    $(words).each(function (idx, el) {

        result[idx] = { Word: el, ReplaceWith: el.summarize(maxWordTextLengthInGrids) };

    });

    return result;

}


function getTextOf(element) {

    var tmp = element.clone();
    tmp.children().remove();
    return tmp.text();


}

function fixLongTextInGrids() {

    
    var cells = $(".list .grid td");
    
    summarizeElementText(cells);

    cells.each(function (idx, el) {

        var cell = $(el);
        var links = $("> a", cell);


        summarizeElementText(links);
    });

}

