В общем допустим main - это обертка которая на всю высоту экрана, 100hv. Блок messages - это блок который тоже якобы на всю высоту должен быть, но должен уменшаться при появлении смайлов. Так вот - задаешь ему 100%. Потом блок со смайлами (smiles) - задаешь ему допустим 30%. Если он появляется то он автоматически делает высоту блока выше до 70%, никакой джс не нужен.