/**
 * @file Управляет ссылками на сайте
 *
 * @params
 * responceURL - url страницы. на которую посылается ajax запрос
 * id - id страницы, на которую щелкнули
 * mode - щелкнули на текстовую (short), или флеш (full) страницу
 * emulateMenu - если функция вызвана не флешкой, а напрямую.
 * hashIsAllreadyChanged - якорь уже изменен и его менять не нужно
 * atr1 и atr2 - опциональные атрибуты - id фильтра и фотографии.
 */
function linkHandler(responceURL, id, mode, emulateMenu, hashIsAllreadyChanged, atr1, atr2) {
    
    // Текстовая страница
    if (mode == "short") {
        
        // Показываем текстовый блок
        document.getElementById("root").style.visibility = "visible";
        
        // Загружаем и выводим заголовок
        var request = new Request({url: responceURL + "?mode=pagetitle&id=" + id, method: "get", onSuccess: function(responseText, responseXML) {
            document.getElementById("container_html_pagetitle").innerHTML = responseText;
        }});
        request.send();
        
        // Загружаем и выводим контент
        var request = new Request({url: responceURL + "?mode=content&id=" + id, method: "get", onSuccess: function(responseText, responseXML) {
            document.getElementById("scroll_area").innerHTML = responseText;
            
            // Обрабатываем все ссылки в загруженном контенте
            $$("#scroll_area a").addEvent('click', function(event){
                
                // Отключаем стандартную обработку ссылок браузером
                event = new Event(event);
                event.preventDefault();
                
                // Url ссылки
                var url = this.get("href");
                
                // Если это якорь - дописываем его в урл
                if (url.indexOf("#") == 0) {
                    location.hash = url.substr(1);
                }
                
                // Если это не якорь - проверяем куда она ведет
                else {
                    
                    // Посылаем запрос обработчику и отменяем стандартную обработку щелчка по ссылке
                    var request = new Request({url: "link.html?url=" + url + "&lang=" + global_lang, method: "get", onSuccess: function(responseText, responseXML) {
                        
                        // Если ссылка внутренняя - проверяем язык
                        if (responseText.match(/[0-9]+,.+,.+/)) {
                            var result = responseText.split(",");
                            
                            // Получаем ID страницы для перехода, или несколько ID для перехода на фотографии
                            if (typeof(result[3]) == "undefined") {
                                // Запускаем обработку ссылки
                                linkHandler(responceURL, result[0], result[1], true, true);
                                    
                            } else if (typeof(result[4]) == "undefined") {
                                // Запускаем обработку ссылки
                                linkHandler(responceURL, result[0], result[1], true, true, result[3]);
                            } else {
                                // Запускаем обработку ссылки
                                linkHandler(responceURL, result[0], result[1], true, true, result[3], result[4]);
                            }
                        }
                        
                        // Если ссылка внешняя - переадресуем
                        else {
                            location.href = url;
                        }
                    }});
                    request.send();
                }
            });
            
            // Обновляем скролбар
            document.getElementById("scroll_layer").style.visibility = "hidden";
            ieMinFix();
            FBScrolling();
        }});
        request.send();
        
    // Флешовая страница
    } else if (mode == "full") {
        
        // Скрываем контент
        document.getElementById("root").style.visibility = "hidden";
        document.getElementById("scroll_layer").style.visibility = "hidden";
        document.getElementById("scroll_area").innerHTML = "";
        
    }
    
    // Если функция запустилась не флешкой, то говорим флешке, что мы запустили функцию
    if (emulateMenu) {
        var gotoId = id;
        if (typeof(atr1) != "undefined") {
            gotoId += "," + atr1;
        }
        if (typeof(atr2) != "undefined") {
            gotoId += "," + atr2;
        }
        document["goryushina"].SetVariable("gotoId", gotoId);
    }
    // Если якорь еще не поменялся, то меняем его
    if (!hashIsAllreadyChanged) {
        var request = new Request({url: responceURL + "?mode=path&id=" + id, method: "get", onSuccess: function(responseText, responseXML) {
            if (navigator.userAgent.indexOf("MSIE 6") == -1) {
                globalCurrentHash = "#" + responseText;
                location.hash = responseText;
            }
        }});
        request.send();
    }
}
