function MakeSmallBoxSeriesIdentical()
{    
    var controlsArray = document.getElementsByClassName('boxSmallMarker'); 
 
    if(controlsArray.length <= 0) {return}
    
    var offsetTopArray = new Array(controlsArray.length);
    var indexArray = new Array(controlsArray.length);
    var length = controlsArray.length;
    var devide = length/3;

    for (var i=0; i < length; i++)
    {
        offsetTopArray[i] = controlsArray[i].offsetTop;
        indexArray[i] = i;
    }

    var sortedTopsIndexArray = GetSortedIndexes(offsetTopArray, indexArray);
    var k = 0;
    idsSmallBoxTextArea = new Array(3);    
    idsSmallBox = new Array(3);
    
    for (var i = 0; i < length; i++)
    {
        idsSmallBox[k] = controlsArray[sortedTopsIndexArray[i]].id;
        idsSmallBoxTextArea[k] = GetTextAreaIdFromSmallBox(controlsArray[sortedTopsIndexArray[i]]);
        k++;
        
        if((i+1) %3 == 0)
        {
            MakeHeightOfDivsIdentical(idsSmallBox);
            MakeHeightOfDivsIdentical(idsSmallBoxTextArea);
            k = 0;   
        }
    }
}

function GetTextAreaIdFromSmallBox(smallBoxMainDivControl)
{
    var mainDivControl = smallBoxMainDivControl;
    var mainChildNods = mainDivControl.childNodes;

    var node = GetNodeByClassName(mainChildNods,'boxSmallTextareaMarker');
    var nodeControlId = GetValueFromAttribut(node.attributes,'ID');
    
    return nodeControlId;
}

function GetNodeByClassName(nods, className)
{
    for (var i = 0; i < nods.length; i++)
    {
        var nodeName = nods[i].name;
        if(nods[i].attributes != null)
        {
             for (var j = 0; j < nods[i].attributes.length; j++)
             {
                var attributes = nods[i].attributes;
                if(IsClassInNode(attributes, className))
                {
                    var retNode =  nods[i];
                    return retNode;
                }
             }       
        } 
    }
    
    return null;
}

function IsClassInNode(attributes, className)
{
    var att = attributes.getNamedItem("class");
    if(att)
    {
        var value = att.value;
        if(value.indexOf(className) != -1)
        {
            return true;
         }
         else
         {
            return false;
         }
    }
}


function GetValueFromAttribut(attributes, attributeName)
{
    var att = attributes.getNamedItem(attributeName);
    
    if(att)
    {
        return att.value;
    }
    else
    {
        return -1;
    }
}

function GetSortedIndexes(array1, indexArray)
{
    var sorted = false;
    
    while (!sorted)
    {
      sorted = true;
      for (var i=0; i<array1.length-1; i++)
      {
         if (array1[i]>array1[i+1])
         {
            sorted = false;
            //array1
            tmp1 = array1[i];
            array1[i]=array1[i+1];
            array1[i+1] = tmp1;

            tmp2 = indexArray[i];
            indexArray[i]=indexArray[i+1];
            indexArray[i+1] = tmp2;
         }
      }
    }
    
    return indexArray;
}


function MakeHeightOfDivsIdentical(controlsIdsArray)
{
    try
    {
        var controlsArray = new Array(controlsIdsArray.length);
        var heights = new Array(controlsIdsArray.length);
        var greatHeight;

        for(var i=0; i < controlsArray.length; i++)
        {
            controlsArray[i] = document.getElementById(controlsIdsArray[i]);
            heights[i] = controlsArray[i].offsetHeight; 
        }

        greatHeight = GetGreatHeight(heights);
        
        for(var i=0;i<controlsArray.length;i++)
        {
            controlsArray[i].style.height = greatHeight + 'px';
        }
    }
    catch (e)
    {
         if (debug)
         {
            alert("Fehler aufgetreten: " + e);
         }
    }
}

function GetGreatHeight(heights)
{
    var temp;
    for(var i=0;i<heights.length;i++)
    {
        for(var j=i;j<heights.length;j++)
        {
            if(heights[i]<heights[j])
            {
                temp = heights[i];
                heights[i] = heights[j];
                heights[j] = temp;
            }
        }             
    }

    return heights[0];
}