// multi-language
(function () {
    'use strict';

    function getKey(ele, attr) {
        var key = ele.attr(attr).replace(/[.]/g, '_');
        return key;
    }

    $.fn.applyFleetLanguageText = function (includeTitle) {
        return this.each(function () {
            var es = $(this).find('[data-lgid]');
            var ele, key;
            for (var i = 0; i < es.length; i++) {
                ele = $(es[i]);
                key = getKey(ele, 'data-lgid');
                if (ele.is('input')) {
                    ele.val(GetTextByKey(key, ele.val()));
                } else {
                    ele.text(GetTextByKey(key, ele.text()));
                }
            }
            es = $(this).find('input[data-holder-lgid]');
            for (var i = 0; i < es.length; i++) {
                ele = $(es[i]);
                key = getKey(ele, 'data-holder-lgid');
                ele.attr('placeholder', GetTextByKey(key, ele.attr('placeholder')));
            }
            if (includeTitle) {
                es = $(this).find('[data-title-lgid]');
                for (var j = 0; j < es.length; j++) {
                    ele = $(es[j]);
                    key = getKey(ele, 'data-title-lgid');
                    ele.attr('title', GetTextByKey(key, key));
                }
            }
        });
    };

})();


var langObj = undefined;
function GetTextByKey(key, defaultValue) {
    if (langObj == undefined) {
        loadLanguage();
    }
    try {
        if (langObj && langObj.Values) {
            key = key.toUpperCase();
            var val = langObj.Values[key];
            if (val)
                return val;
        }
    } catch (e) { }
    return defaultValue;
}

function loadLanguage() {
    var lang = _fleet.currentLang;
    if (!lang)
        lang = "en-us";
    var ver = getFileVersion();
    var langversion = window.localStorage[lang + "_v"];
    if (!langversion || langversion == "" || eval(langversion) < ver) {
        langObj = loadLanguageRes(ver);
        window.localStorage[lang + "_v"] = ver;
        window.localStorage[lang + "_res"] = JSON.stringify(langObj);
    }
    else {
        var jsonstr = window.localStorage[lang + "_res"];
        if (jsonstr && jsonstr != "")
            langObj = JSON.parse(jsonstr);
        if (!langObj) {
            langObj = loadLanguageRes(ver);
            window.localStorage[lang + "_res"] = JSON.stringify(langObj);
        }
    }
}

function getFileVersion() {
    var ver = 0;
    _network.commonpagequery(6, "", function (data) {
        ver = data;
    }, function (err) {
    }, true, true);

    return ver;
};

function loadLanguageRes(ver) {
    if (langObj == undefined) {
        var sp;
        if (typeof _network.root === 'string') {
            sp = _network.root;
        } else if (typeof sitePath === 'string') {
            sp = sitePath;
        } else {
            sp = '';
        }
        var lang = _fleet.currentLang;
        if (!lang)
            lang = "en-us";
        try {
            return loadJsonFromServer(sp + "Languages\\" + lang + ".json?s=" + ver);
        }
        catch {
            return loadJsonFromServer(sp + "Languages\\en-us.json?s=" + ver);
        }
    }
}

function loadJsonFromServer(path) {//path 是json文件的地址
    var result = null;
    $.ajax({
        url: path,
        dataType: 'json',
        type: 'GET',
        async: false,
        success: function (data) {
            result = data;
        }
    });
    return result;
};