1. Вопрос по Javascript с тэгами HTML и PHP, которые не относятся к делу, а второй вообще не при делах.
2. Почему вы не выкладываете код на jsfiddle.net
Откуда такое неуважение к времени других? Вы не можете потратить 5-10 минут на грамотный вопрос, и отвечать на эту портянку не хочется. Совсем.
Про кнопки — не нужно экономить на спичках. Пишем тип явно, что облегчает жизнь и при работе с кнопками (реакция, оформление).
Про z-index уже и говорить не хочется. Ну поставим мы 1000, а потом какой-нибудь говнокодер у своего влепит 2000 в конкурирующий контекст. Да и не гарантирует большое значение ничего. Я могу с помощью z-index:1 перебить что угодно, если знаю, где это находится.
DarthJS: Не, ну это — совсем начальное:)
Конечное же, !!'O' вернёт true. Пустая строка, 0 — это при проверке преобразуется в false. Остальное — в true. Даже NaN.
Не нужно заполнять пустыми строками массив. При обращении к несуществующему свойству объекта вы получите undefined. Что для проверки && монопенисуально.
Я привёл вам ссылку на реальный пример, как человек нарвался на захват контекста инлайн-обработчике. Меня бы крайне сильно смутил тот факт, что любой атрибут из элемента (и даже не указанный) может пересекаться с именами свойств глобального объекта.
Однако, вы продолжаете говорить, что дело лишь в именовании вызываемой функции. Я не понимаю, чем вызвано это упрямство. Если учесть необходимость одновременной работы в приложении многих модулей, прослушивающих одни и те же события, то такое поведение, на мой взгляд, или граничит с фанатизмом, или вызвано негативом по отношению к собеседнику.
Если очевидные доводы против практики использования инлайн-атрибутов для регистрации слушателя не работают, лучше признать этот фанатизм и не пытаться убеждать. Если же верно второе предположение, то смысла в аргументации ещё меньше.