/* @ >>>>> Общие функции */
Lib.Common = {
    //* @@ >>>>> кодирование для отправки в урле и Ajax */
    Escape: function(text){
        return encodeURI(text).replace(/\+/g, '%2B').replace(/\&/g, '%26');
    },
    //* @@ >>>>> подстановки текста в нужном падеже */
    TextAfterNum: function(num, text){
        var d1 = num % 10;
        var d2 = num % 100;
        if (d2 >= 10 && d2 <= 14) {
            text += 2;
        }
        else {
            if (d1 == 1) {
                text += 1;
            }
            else {
                if (d1 >= 2 && d1 <= 4) {
                    text += 3;
                }
                else {
                    text += 2;
                }
            }
        }
        eval('var TextPart=' + text);
        return num + ' ' + TextPart;
    },
    //* @@ >>>>> устанавливает cookie */
    SetCookie: function(name, value, expires, path, domain, secure){
        document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
    },
    /* @@ >>>>> для определения паремтров страницы и окна */
    WindowW: function(){
        var b = (document.compatMode == "CSS1Compat") ? document.documentElement : document.body;
        return (Lib.Browser.IE) ? (b.clientWidth) : window.innerWidth;
    },
    WindowH: function(){
        var b = (document.compatMode == "CSS1Compat") ? document.documentElement : document.body;
        return (Lib.Browser.IE) ? (b.clientHeight) : window.innerHeight;
    },
    _ScrollBody: function(){
        return (Lib.Browser.CH || Lib.Browser.SF || Lib.Browser.IE) ? document.body : document.documentElement;
    },
    ScrollW: function(){
        return Lib.Common._ScrollBody().scrollWidth;
    },
    ScrollH: function(){
        return Lib.Common._ScrollBody().scrollHeight;
    },
    ScrollX: function(){
        return Lib.Common._ScrollBody().scrollLeft;
    },
    ScrollY: function(){
        return Lib.Common._ScrollBody().scrollTop;
    },
    DocumentW: function(){
        return document.body.offsetWidth;
    },
    DocumentH: function(){
        return document.body.offsetHeight;
    },
    TmpScrollTop: 0,
    /* @@ <<<<< для определения паремтров страницы и окна */
    //* @@ >>>>> переключалка для поля пароля "текст-звездочки" */
    PasswordTypeSet: function(id){
        if ($(id + 'Show').checked) {
            $(id).type = 'text';
        }
        else {
            $(id).type = 'password';
        }
    },
    /* проверяет наличие слова в строке */
    StringContainWord: function(str, wrd){
        if (wrd.length == 0) {
            return true;
        }
        var k = 0;
        var s = 0;
        var flag = false;
        while (!flag && (k = str.indexOf(wrd, s)) != -1) {
            flag = ((k == 0 && (str.length == wrd.length || str[wrd.length] == ' ')) ||
            (k > 0 && str[k - 1] == ' ' && (str[k + wrd.length] == ' ' || str.length == k + wrd.length))) ? true : false;
            s = k + 1;
        }
        return flag;
    },
    /* добавляет слово в строку */
    StringAppendWord: function(str, wrd){
        if (!Lib.Common.StringContainWord(str, wrd)) {
            str += ((str.length > 0) ? ' ' : '') + wrd;
        }
        return str;
    },
    /* убирает слово из строки */
    StringRemoveWord: function(str, wrd){
        if (wrd.length == 0 || str.length == 0) {
            return str;
        }
        var k = 0;
        var ks = 0
        var s = 0;
        var flag = false;
        while (!flag && (k = str.indexOf(wrd, s)) != -1) {
            flag = ((k == 0 && (str.length == wrd.length || str[wrd.length] == ' ')) ||
            (k > 0 && str[k - 1] == ' ' && (str[k + wrd.length] == ' ' || str.length == k + wrd.length))) ? true : false;
            s = k + 1;
            ks = k;
        }
        var ke = ks + wrd.length;
        var res = '';
        if (ks == 0) {
            if (ke < str.length) {
                res = str.substring(ke + 1, str.length);
            }
            else {
                res = str.substring(ke, str.length);
            }
        }
        else {
            if (ke == str.length) {
                res = str.substring(0, ks - 1);
            }
            else {
                res = str.substring(0, ks - 1) + str.substring(ke, str.length);
            }
        }
        return res;
    }
};
/* @ <<<<< Общие функции */

