Показать сообщение отдельно
  #2 (permalink)  
Старый 06.10.2012, 21:34
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

greenwar,

Скрипт ничем не закодирован, просто сделана минификация (удалены все пробелы и табуляция, названия переменных в методах заменены на короткие). Но код в целом читаем и понятен.

Сам скрипт содержит в себе 2 части:
1) MooTools (библиотека на js), её исходники можно свободно скачать

это видно из начала файла:
(function(){this.MooTools={version:"1.4.4",

2) Собственно код для сайта травиана, начинается со строчки:
window.Travian = { applicationId: "travian", emptyFunction: function () { }

Копируешь начиная с этой строки в любой редактор (например: idea, webstorm) и форматируешь.

Вот для наглядности фрагмент кода:
showPopup: function ()
{
    var url = new URI(this.options.url);
    var anchor = url.get("fragment");
    if (this.anchorsMapping[anchor]) { anchor = this.anchorsMapping[anchor] }
    var target = anchor + ".php";
    if (url.get("query").length > 0) { target += "?" + url.get("query") }
    if (this.allowedAnchors.indexOf(anchor) == -1)
    { if (this.options.anchorcheck == false) { target = this.options.url } else { return } }
    var self = this; var prevwindow = $$(this.options.pop_bg); var prevcontainer = $$(this.options.pop_container);
    var windowWidth = document.documentElement.clientWidth; prevcontainer[0].setStyles({ display: "block", visibility: "hidden" });
    prevcontainer[0].className = anchor; var popupWidth = prevcontainer[0].getStyle("width").toInt();
    var left = windowWidth / 2 - popupWidth / 2; prevwindow[0].setStyles({ opacity: "0.7", display: "block", height: $(document).getScrollSize().y });
    var scroll = $(document.body).getScroll(); prevcontainer[0].setStyles({ left: windowWidth / 2 - popupWidth / 2, top: scroll.y + 100, visibility: "visible", display: "block" });
    self.popcontent().set("html", '<div class="loading"></div>');
    var req = new Request.HTML({ url: target, evalScripts: false, onSuccess: function (html, responseElements, responseHTML, responseJavaScript)
    {
        self.popcontent().set("text", "");
        self.popcontent().adopt(html);
        if (anchor == "tutorial") { self.startTour() }
        if (self.options.insupport) { self.startSupport() }
        if (responseJavaScript) { eval(responseJavaScript) }
    }, 
    onFailure: function () { self.popcontent().set("text", "The request failed.") } 
    });
    req.send();
    var close = $$(this.options.close);
    close.addEvent("click", function ()
    {
        self.options.pop_container[0].setStyle("display", "none");
        self.options.pop_bg.setStyle("display", "none"); this.removeEvents()
    });
    var bg = $$(this.options.pop_bg); 
    if (this.options.closeOnClickBackground) { bg.addEvent("click", function () { self.options.pop_container[0].setStyle("display", "none"); self.options.pop_bg.setStyle("display", "none"); this.removeEvents() }) }
},


По тому что я увидел, делается запрос на сервер и он возвращает список серверов. Дальше ты сам разбирайся
Ответить с цитированием