
/**
 * File contains JS Library of SA Reunited common functions
 *
 * JavaScript  version 1
 * @category   JavaScript Libraries
 * @author     Igor Y. Filchakov <filchakov@zfort.net>
 * @copyright  (c) 2004-2007 by ZFort Group
 * @version    SVN: $Id: 16$
 * @link       http://www.zfort.net
 * @since      File available since Release 1.0
 */

/**
 * Change background color of the recird with specified id
 *
 * @param   String  id
 */
function markUpdated(id)
{
    document.getElementById(id).name  = id;
    document.getElementById(id).style.backgroundColor = '#FFFF80';
}

function checkLength(object, length, textType, maxWordLength)
{
	wordNow = 0;
    if (strlen(object.value) > length)
    {
        object.value = object.value.substr(0, length);

        if (strlen(object.value) > length)
        {
            object.value = object.value.substr(0, length - (strlen(object.value) - length));

            var i = 1;
            while (strlen(object.value) > length)
            {
                object.value = object.value.substr(0, strlen(object.value) - i);
                i ++;
            } // while
        } // if

        document.getElementById('popupCharacterLimitMessageSymbols').innerHTML = length;
        document.getElementById('popupCharacterLimitMessageTextType').innerHTML = textType;
        showCharacterLimitMessagePopup();
    }
}

function showCharacterLimitMessagePopup()
{
    this.popupCharacterLimit = new ___Popup('popupCharacterLimitMessage', 400, 300);
    this.popupCharacterLimit.setTopPos(250 + popupCharacterLimit_getScrollTop());
    this.popupCharacterLimit.show();
}

function hideCharacterLimitMessagePopup()
{
    this.popupCharacterLimit.hide();
}

function popupCharacterLimit_getScrollTop()
{
    var scrollTop = 0;

    if (typeof( window.pageYOffset ) == 'number')
    {
      // Netscape
      scrollTop = window.pageYOffset;
    } // if
    else if (document.body && (document.body.scrollLeft || document.body.scrollTop))
    {
      // DOM
      scrollTop = document.body.scrollTop;
    } // else if
    else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
    {
      // IE6
      scrollTop = document.documentElement.scrollTop;
    } // else if

    return scrollTop;
}

function strlen(string)
{
    return addRN(addslashes(("" + utf8encode(string)))).length;
}

function addslashes(string)
{
    return string.split('\\').join('\\\\').split('"').join('\\"').split("'").join("\\'");
}

function addRN(string)
{
    return ("" + string).split("\n").join("\n\n");
}

function utf8encode (string)
{
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++)
    {
        var c = string.charCodeAt(n);

        if (c < 128)
        {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048))
        {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else
        {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }

    return utftext;
}

function charLeft(charNow,charMax)
{
	if(charNow>=charMax) return 0;
	else return charMax-charNow;
}