Изотопная grid + угловая печать, удаление пустых пространств, логика сортировки

Этот вопрос связан с этим более старым: макет изотопной сетки использует пустое пространство

Вот скрипка, с которой я работаю: http://jsfiddle.net/zewkG/4/

Проблема заключается в том, что когда логика сортировки, которая работает в ответе на предыдущий вопрос, терпит неудачу, как только будет добавлена ​​угловая клавиша кладки [, закодированная создателем изотопа]. Я пытался понять логику этого, но, к сожалению, безрезультатно и с большим количеством времени потратил впустую без прорыва. [Когда вы нажимаете на пятый элемент, не должно быть недостающих ящиков, а также не должно быть двух строк вниз, всего один. Первые три элемента должны брать первую строку вместо того, чтобы спускаться по одной линии.]

Вышеупомянутая скрипка содержит логику сортировки предыдущего вопроса только с четвертым столбцом и добавлением углового шага.

Любить любую помощь, которую я могу получить!

См. http://jsfiddle.net/zewkG/6/ , надеюсь, я хорошо понял, что вы хотите

Изменить :

Если вы хотите 21 коробку, см. http://jsfiddle.net/zewkG/8/

Изменить 2 :

http://jsfiddle.net/zewkG/8/ имеет ошибку: ящики с номером 13,17,21 (в конце строки), при нажатии они переходят к следующей строке вместо начала строки. Исправлено в http://jsfiddle.net/zewkG/9/