Не знаю, какой из вариантов лучше. По любому на текущий момент я больше ничего из этого не выжму. Так что это финальная версия - по крайней мере пока. Может потом у меня появится жажда усовершенстований и я попытаюсь еще что-то улучшить в ней


и второй вариант
читать дальше