﻿function ExtractLinesForSmallNewsFrontpage(lines, charsInLine, original, appendEllipsisIfOriginalTooLong)
{
    //alert(lines + " " + charsInLine + " " + original + " " + appendEllipsisIfOriginalTooLong);
    var target = lines * charsInLine;
    
    var total = 0;
    var currentLine = 0;
    var result = "";
   
    
    for(var i = 0; i < original.length;i++)
    {
        var c = original.charAt(i); 
       
        if(c == '<') // We have met a <br>
        {
            currentLine = charsInLine;
            i = i + 3;
            if(total + currentLine < target)
            {
                result = result + '<br>';
            }
        }
        else
        {

            currentLine = currentLine + 1;
            result = result + c;
        }
        
        if(currentLine >= charsInLine)
        {
            total = total + currentLine;
            currentLine = 0;
        }
        if(total >= target)
        {
            i = original.length;
        }
    }
    
    if(result.charAt(result.length -1) == '>')
    {
        result = result.substring(0,result.length -4); 
    }
    
    for (var i = result.length - 1; i >= 0; i = i - 1)
    {
        if (result.charAt(i) == ' ')
        {
            result = result.substring(0, i);
            i = -1;
        }
    }
    
    
    var ellipsis = "(...)";
    return (result + " " + ellipsis);
    
    
}