Перенос option между двумя select?
Нужно option писать и в правом селекте и в левом.
Только в одном селекте они style=«display:none».
При переносе пункта в одном селекте делаем jQuery('').hide(), а в другом jQuery('').show().
И работать оно будет гораздо быстрее, так как не нужно будет DOM насиловать.
Оптионы еще и сортируются по имени, а value — это циферки. То есть, value идут не по порядку. Я об этом забыл.

А index записывать не получается, так как запоминается только последний index и если я перекину налево 5 элементов и начну вставлять их по этому индексу — они будут друг за другом.

Сделал циклом вот так (в option добавлен параметр data-num='номер по порядку в списке'):
	$('#select1 option').live('click', function() {
		var html = this.outerHTML;
		$(this).remove();

		$('#select2').append(html);
	})
	$('#select2 option').live('click', function() {
		var html = this.outerHTML;
		var index = $(this).data('num');
		$(this).remove();
		
		inserted = 0; // Задаем индикатор вставки оптиона
		$('#select1 option').each(function() {
			var ind = $(this).data('num');
			if (index < ind) {
				$(html).insertBefore(this);
				inserted = 1; // Оптион был вставлен на место
				return false;
			}
		})
		if (inserted == 0) {$('#select1').append(html);} // Если не был вставлен - значит он 
                               // последний в текущем списке, засовываем его в конец
	})


Лучше пока ничего не придумал, и эта конструкция работает отлично. Спасибо за помощь!