    function changeSubmitButton(className, caption) {
        o('commentsSubmitButton').setAttribute('class', className);
        o('commentsSubmitButton').setAttribute('className', className);
        o('commentsSubmitButton').value=caption+o('commentsSubmitButton').getAttribute('originalValue');
    };

    function checkGuestAuth() {
        o('authWorkIframe').src='/cgi-bin/kernel.pl?lib=users&method=_jsRegisterCheckLogin&registerLogin='+
        o('guestLogin').value+'&checkNick=1&rand='+Math.random();
    };

    function showCodeInput() {
        o('registerForm').style.display='none';
        o('authForm').style.display='none';
        o('commentsCodeInput').style.display=o('commentsCodeInput').getAttribute('requiredDisplay');
    };

    function showAuthForm() {
        o('registerForm').style.display='none';
        o('authForm').style.display=o('authForm').getAttribute('requiredDisplay');
        o('commentsCodeInput').style.display='none';
        o('authLogin').focus();
    };

    function showRegisterForm() {
        o('authForm').style.display='none';
        o('registerForm').style.display=o('registerForm').getAttribute('requiredDisplay');
        o('commentsCodeInput').style.display=o('commentsCodeInput').getAttribute('requiredDisplay');
        o('registerLogin').focus();
    };

    function checkAuth() {
        if ( o('authLogin').value.length > 0 && o('authPassword').value.length > 0 ) {
            o('authWorkIframe').src='/cgi-bin/kernel.pl?lib=users&method=_jsCheckAuth&login='+
            o('authLogin').value+'&passw='+o('authPassword').value+'&rand='+Math.random();
        };
    };

    function inlineHelp (obj) {
        o('inlineHelpContainer').innerHTML=obj.getAttribute('help');
    };

    function checkRegisterLogin () {
        if (o('registerLogin').value.length > 0 ) {
            o('authWorkIframe').src='/cgi-bin/kernel.pl?lib=users&method=_jsRegisterCheckLogin&registerLogin='+
            o('registerLogin').value+'&rand='+Math.random();
        };
    };

    function openPasswords(obj) {
        var email=obj.value;
        if(/^[a-zA-Z0-9](([a-z0-9\-_\+\&\.]?)+[a-z0-9])?\@((\w([a-zA-Z0-9\-_]+\w)?\.[a-z]{2,4})|(([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d |2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5]))|(localhost))$/i.test(obj.value)) {
            o('registerPasswordStep').style.display=o('registerPasswordStep').getAttribute('requiredDisplay');
            return 'ok';
        } else {
            o('registerPasswordStep').style.display='none';
        };
        return '';
    };

    function checkPasswEqual (flag) {
        if ( o('regPassword').value.length > 0 && o('regPasswordConfirmation').value.length > 0 ) {           
            var p1=o('regPassword').value;
            var p2=o('regPasswordConfirmation').value;
    
            if (p1.length<6 && p2.length>0) {
                alert('Слишком короткий пароль');
                o('regPasswordConfirmation').value='';
                o('regPassword').focus();
            };
            if ( flag==0 ) {
                p1=p1.substr(0, p2.length);
            };

            if ( p1 == p2) {
                o('passwordsEqualMessage').setAttribute('class', 'grayWarning');
                o('passwordsEqualMessage').innerHTML='пароли '+(flag==0 ? 'пока':'')+' совпадают';
                if ( flag==1 || o('regPassword').value==o('regPasswordConfirmation').value ) {
                    o('passwordsEqualMessage').innerHTML='пароли совпадают';
                };
            } else {
                o('passwordsEqualMessage').setAttribute('class', 'redWarning');
                o('passwordsEqualMessage').innerHTML='пароль и его подтверждение не совпадают';
            };
        };
    };

//---------
isDOM = document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera = isOpera5=window.opera && isDOM //Opera 5+
isOpera6 = isOpera && window.print //Opera 6+
isOpera7 = isOpera && document.readyState //Opera 7+
isMSIE = document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+
isMSIE5 = isDOM && isMSIE //MSIE 5+
isNetscape4 = document.layers //Netscape 4.*
isMozilla = isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.*
//--------
function forumQuote(msgID) {
        var loginObj=o('divForLogin'+msgID);
        var timeObj=o('divForTime'+msgID);
        var msgObj=o('divForContent'+msgID);
        var where='msg';
        var textValue='[quote="'+loginObj.innerHTML+', '+timeObj.innerHTML+'"]'+msgObj.innerHTML+'[/quote]';
        if( (isMSIE || isMSIE5 ) && !isOpera7 && !isMozilla) {
                var obj_ta=o(where);
                obj_ta.focus();
                var sel=document.selection;
                var rng=sel.createRange();
                rng.colapse;
                rng.text=textValue;
        } else if(isMozilla || isOpera || isOpera6 || isOpera7) {
                var obj_ta=o(where);
                var ss = obj_ta.selectionStart;
                var st = obj_ta.scrollTop;
                var es = obj_ta.selectionEnd;
                if (es <= 2) {
                        es = obj_ta.textLength;
                }
                var start = (obj_ta.value).substring(0, ss);
                var middle = (obj_ta.value).substring(ss, es);
                var end = (obj_ta.value).substring(es, obj_ta.textLength);
                obj_ta.value = start + textValue + end;
        }
};

function _ChangeDisplay(branch, visibleDisplay) {
	if (visibleDisplay==null || visibleDisplay=='' ) {
		visibleDisplay='block';
	};
    var obj=o(branch);
    if (obj) {
        if (obj.style.display=='none') {
        	obj.style.display=((isMozilla || opera) && obj.tagName=='TR' ? 'table-row':visibleDisplay );
        } else {
            obj.style.display='none';
        };
    };
};

function _SetDisplay(branch, display) {
    var obj=o(branch);
    if (obj) {
        if (display=='block' && obj.tagName=='TR' && (isMozilla || opera) ) { 
        	obj.style.display='table-row' ;
        } else {
            obj.style.display=display;
        };
    };
};

function _ChangeDisplayAndTitle(branchControl, open, closed, targetBranch) {
        var obj=o(targetBranch);
        var controlObj=o(branchControl);
        _ChangeDisplay(targetBranch);
        if ( controlObj ) {
                if (obj.style.display=='none') {
                        controlObj.innerHTML=open;
                } else {
                        controlObj.innerHTML=closed;
                };
        };
};

function _SetFocus(branch) {
        o(branch);
        if (branch) {
                branch.focus()
        };
};

