<!-- //Fel fyrir gömlum vöfrum sem ekki skilja javascript
function mergeSort( someArray, compFunction )
{
	return mergeSortRec( someArray, 0, someArray.length - 1, compFunction );
}

function mergeSortRec( someArray, indexFirst, indexLast, compFunction )
{
	var indexMiddle;
	var firstHalf;
	var secondHalf;
	
	if( indexFirst < indexLast )
	{
		indexMiddle = Math.floor( ( indexFirst + indexLast ) / 2 );
		firstHalf = mergeSortRec( someArray, indexFirst, indexMiddle, compFunction );
		secondHalf = mergeSortRec( someArray, indexMiddle + 1, indexLast, compFunction );
		return merge( firstHalf, secondHalf, compFunction );
	}

	var returnArray = new Array();
	returnArray[0] = someArray[indexFirst];
	return returnArray;
}

function merge( firstArray, secondArray, compFunction )
{
	var mergedArray = new Array();
	var firstIndex = 0;
	var secondIndex = 0;
	var mergedIndex = 0;
	
	for( ; firstIndex < firstArray.length && secondIndex < secondArray.length; mergedIndex++ )
	{
		if( compFunction( firstArray[firstIndex], secondArray[secondIndex] ) <= 0 )
		{
			mergedArray[mergedIndex] = firstArray[firstIndex];
			firstIndex++;
		}
		else
		{
			mergedArray[mergedIndex] = secondArray[secondIndex];
			secondIndex++;
		}
	}
	
	for( ; firstIndex < firstArray.length; mergedIndex++ )
	{
		mergedArray[mergedIndex] = firstArray[firstIndex];
		firstIndex++;
	}
		
	for( ; secondIndex < secondArray.length; mergedIndex++ )
	{
		mergedArray[mergedIndex] = secondArray[secondIndex];
		secondIndex++;
	}
		
	return mergedArray;
}
-->