// Crea un elemento div con estilo "clear: both;" para aquellos que continen
// la clase "auto-clear".

function fixAutoClear() {
  $$(".auto-clear").each(function(e) {
    var div = $(document.createElement("div"));
    div.setStyle("clear", "both");
    div.injectInside(e);
  });
}


// Arregla las listas que se presentan en columnas.

function fixColumns() {
  layoutColumns("#search-engine ul.split", 2);
  layoutColumns("#type-04 #main .class ul", 2);
}

// Distribuye hijos de un selector en "n" columnas.

function layoutColumns(selector, number) {
  $$(selector).each(function(element) {
    var columns = [];
    
    number.times(function() {
      columns.push($(document.createElement("ul")));
    });
      
    columns.each(function(e, index) {
      e.addClass("column");
      
      if (index == 0)
        e.addClass("first");
      else if (index == (number - 1))
        e.addClass("last");
    });
  
    var items = element.getChildren();
  
    var length1  = items.length, length2 = columns.length;
    var division = Math.floor(length1 / length2);
    var modulo   = length1 % length2;

    for (var i = 0, j = 0; i < length2; i++) {
      for (var k = 0; k < division; k++)
      columns[i].appendChild(items[j++]);
      if (modulo > i)
      columns[i].appendChild(items[j++]);
    }
  
    columns.each(function(e) {
      element.appendChild(e);
    });
  

  });
}

// Aplica los cambios una vez que el DOM esté listo.

window.addEvent("domready", function() {
  fixColumns();
  fixAutoClear();
});

// TODO: aplicar los cambios condicionalmente por tipo de página.

// TODO: implementar la lógica del navegador por tipo de página.
