/*Данный файл писан Фоссой <fossa-artem@mail.ru> в 2009 году и распространяется под GPLv3*/
/*Функция get_elements_by_class написана на основе (отличаются только имена переменных и стиль) функции hasClass из книги "JavaScript : Профессиональные приёмы программирования" Джона Рейсинга*/

/*Общий инициализационный файл+библиотека, функция init_main() его запускается после загрузки html кода страницы (не событие body.onload а вызов скрипта в конце файла)*/
/*Функция init_onload() вызывается после загрузки страницы и после её вызова прекращается поиск подключаемых файлов*/

//Инициализируем переменные
var init_page_loaded = false; //Маркер загруженность страницы

var init_browser_type = "NOT_IE"; //Тип браузера, может быть IE или NOT_IE. По-умолчанию - NOT IE

var init_base_url = "http://www.chakonaembassy.ru/"; //Базовый адрес сайта

//Инициализационная функция, запускает поиск подключаемых файлов
function init_main()
{
 //Смотрим, не юзается ли MSIE
 if (window.navigator.appName.indexOf("Microsoft") != -1)
 {
  //Осёл
  init_browser_type = "IE";
 }

 //Вызываем функцию поиска подключенных файлов
 init_search_for_loaded_files();

 //Регистрируем функцию init_onload() в качестве обработчика на onload
 window.onload = init_onload;
}

//Функция осуществляет поиск подключенных файлов, запускает их по мере загрузки в случае и ставит себя на запуск через 0.5 секунды, если страница не загружена доконца
//Устанавливает переменную init_timeout, при помощи которой можно остановить таймер
function init_search_for_loaded_files()
{
 //Смотрим, загружена-ли страница
 if (!init_page_loaded)
 {
  //Ищем файлы
  
  //Смотрим, не подключен-ли файл эффектов для важного текста
  if (typeof(warning_text_script_loaded) != "undefined")
  {
   if (warning_text_script_loaded == "loaded")
   {
    //Созрел скрипт с эффектами, ставим маркер его запущенности
    warning_text_script_loaded = "started";

    warning_text_script_init(); //И запускаем его
   }
  }

  //Смотрим, не подключен-ли файл эффектов навигатора
  if (typeof(navigator_script_loaded) != "undefined")
  {
   if (navigator_script_loaded == "loaded")
   {
    //Созрел скрипт с эффектами навигатора, ставим маркер его запущенности
    navigator_script_loaded = "started";

    navigator_script_init(); //И запускаем его
   }
  }

  //Ставим себя на запуск через полсекунды
  init_timeout = setTimeout("init_search_for_loaded_files()", 500);
 }
}

//Инициализационная фнукция, вызывается по onload и прекращает поиск подключаемых файлов. Эту функцию не надо подключать вручную, она подключается в функции
//init_main() сама
function init_onload()
{
 //Останавливаем таймер
 clearTimeout(init_timeout);

 //Теперь все файлы гарантированно загружены, вызываем init_search_for_loaded_files() в последний раз
 init_search_for_loaded_files();

 //Ставим маркер загруженности страницы
 init_page_loaded = true;
}

//Функция возвращает массив элементов заданного класса и заданного типа тегов
//Для поиска по всем тегам надо просто опустить тип тега
//Функция работает и в том случае, если у элемента несколько классов
function get_elements_by_class(class_name, tag_type)
{
 var elements_of_specified_class = new Array(); //Массив элементов нужного класса

 var search_re = new RegExp("(^|\\s)" + class_name + "(\\s|$)"); //Создаём регулярное выражения для поиска

 //Ищем все элементы заданного класса
 var els = document.getElementsByTagName(tag_type || "*");

 //Перебираем их
 for (var tmp_counter = 0; tmp_counter < els.length; tmp_counter++)
 {
  //Смотрим, принадлежит-ли элемент заданному классу
  if (search_re.test(els[tmp_counter].className))
  {
   elements_of_specified_class.push(els[tmp_counter]);
  }
 }

 //Возвращаем массив элементов
 return(elements_of_specified_class);
}
