Есть ряд готовых решений (cms). Возьмите любое из них и изучите. Такой подход даст Вам больше знаний, чем самостоятельное написание проекта.
VitaZheltyakov Решение
Если используете jQuery, то вот так:
//-------------------------- Функция проигрыша звука -------------------------//
function PlaySound(sound){
	// Проверяем настройки выключения звуков
	if (options.sound == 1) {
		if ($.browser.msie) $("#sound_player").html('<embed src="sounds/'+sound+'.wav" autostart="true" loop="0" height="0px" width="0px" type="audio/wav"></embed>');
		else $("#sound_player").html('<audio autoplay autobuffer><source src="sounds/'+sound+'.ogg" /><source src="sounds/'+sound+'.mp3" /></audio>');
	}
}
//----------------------------------------------------------------------------//

options.sound - переменная включения звуков
Если не нужна печать и стили слоёв, то можно работать в Gimp.
Лично моё мнение:
- Такие книги будут полезны только новичкам. Программистам с опытом проще и эффективнее почитать документацию и посмотреть устройство какого-нибудь проекта, где ЯП или фреймворк применяется.
Если данные динамические или нужен поиск по ячейкам (всем), то делаем в базе именно такую таблицу 2400*1800. MySQL должен осилить без тормозов.

Если данные не динамические и поиск по ячейкам не нужен, то лучше использовать файл.
VitaZheltyakov Решение
Инспектор кода говорит, что у Вас страница схлопывается body:height: 0px. Соответственно установите высоту body и научитесь пользоваться инспектором кода.
Либо python, либо node.js. У каждого свои приемущества.

Хотя по моему лучше нормально научиться программировать на php.
Вопрос, конечно, пространственый. Единственное что приходит в голову - это разделёная логика. То есть все стили и весь js-функционал в отдельных файлах, а html содержит только теги с указанием стилей и id. Естествено при этом правильная семантика стилей и ajax
Лично я ненавижу PHP за сообщество. Как бы ты хорошо не писал на ЯП, всегда найдётся какой-нибудь умник, который пишет код слегка по другому. И этот умник поспешит обвинить тебя в написании говнокода. И так постоянно.
Короче получается, что в php-сообществе очень сложно общаться с другими программистами, сложно обмениваться опытом. Единственный источник информации это документация.
Если печатать не собираетесь, то исключительнно word так как лишь он адекватно делает pdf с разделами.
Если будете печатать, то scribus
Тут надо знать не только php, но и работу с СУБД. Если опыт работы с СУБД есть, то можно изучить фреймворк. Если нет, то лучше продолжайте использовать CMS.
Хотите детального погружения? Выберите OpenSource проект на нужном вам языке и присоеденитесь к его разработке. Нет ничего лучше опыта в реальном проекте.
PDF-ки читайте с помощью Adobe Reader, если ваша книга на Android
VitaZheltyakov Решение
Делаете общий класс и устанавливаете его для нужных элементов. Если у элементов есть отличия, то условия пишите отдельно по классу и идентификатору.
А зачем делать несколько ajax-запросов? По моему, у Вас проблемы с организацией передачи данных, а не с порядком callback-ов.
На DA (http://www.deviantart.com) поспрашивай - там с десяток человек делают свои онлайн игры наподобие покемонов.
А зачем база? Если Вам не нужен какой-нибудь хитрый поиск, то лучше использовать файлы.