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() }) }
},
По тому что я увидел, делается запрос на сервер и он возвращает список серверов. Дальше ты сам разбирайся