/*
 * breaks $text into sections with maximum length no bigger than $allowedlength
 * and not allowing the number of sections returned to be bigger than $maxsections
 * if supplied
 *
 * Earendur Ancalimon
 * 16-11-2006
 */

function sectionalizeLongText($text, $allowedlength, $maxsections = 0)
{
        $splitchar = " ";
        $newcomment = array();
       
        // split $text into array of single 'words'
        $text = split($splitchar, $text);
       
        // set section counter
        $c = 0;
        for( $i = 0; $i < count($text); $i++ )
        {
                // temp store current section and new word
                $temp = $newcomment[$c] . $text[$i] . " ";
               
                // check if new word would make section longer than allowed length
                if( strlen($temp) > $allowedlength )
                {
                        // increment counter (next section)
                        $c++;
                       
                        if( $maxsections > 0 && $c >= $maxsections )
                        {
                                $newcomment[$c-1] = substr($newcomment[$c-1], 0, $allowedlength - 3);
                                $newcomment[$c-1] .= "...";
                                return $newcomment;
                        }
                       
                        if( $i < count($text) )
                        {
                                // initialize
                                $newcomment[$c] = "";
                        }                     
                }
               
                // add on the next word
                $newcomment[$c] .= $text[$i] . " ";
        }
       
        return $newcomment;
}