(function()
{
    var UA = navigator.userAgent;
    is_gecko = /gecko/i.test(UA);
    is_opera = /opera/i.test(UA);
    is_mac = /mac_powerpc/i.test(UA);
    is_ie = /msie/i.test(UA) && !is_opera && !is_gecko && !is_mac;
    is_ie5 = is_ie && /msie 5\.[^5]/i.test(UA);
    is_nn4 = document.layers ? true : false;
})();

function Community()
{
}

Community.i18n = function(text, arg1, arg2)
{
    if (typeof Community.I18N != "undefined" && typeof Community.I18N[text] != "undefined")
        text = Community.I18N[text];

    if (arg1)
    {
        text = text.replace(/(\(1\))/g, arg1);

        if (arg2)
            text = text.replace(/(\(2\))/g, arg2);
    }

    return text;
};


Community.CE = function(type, parent, props, style)
{
    var el = null,i;

    if (document.createElementNS)
        el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
    else
        el = document.createElement(type);

    if (parent)
        parent.appendChild(el);

    if (props)
        for (i in props)
            el[i] = props[i];

    if (style)
        for (i in style)
            el.style[i] = style[i];

    return el;
};
function Messages()
{
}

var editor = null;

Messages.initEditor=function(textAreaId, lengthCounterId, maxLength, lang, formName)
{
    if (!textAreaId)
        return;

    if (typeof(tinymce)=='undefined')
    {
        setTimeout("Messages.initEditor('"+textAreaId+"','"+lengthCounterId+"','"+maxLength+"','"+lang+"','"+formName+"')", 200);
        return false;
    }

    try {
                tinyMCE.init({
                    theme : "advanced",
                    mode : "exact",
                    elements: textAreaId,
                    language : lang,
                    plugins : "safari,lengthcounter",
                    lengthCounterElementId : lengthCounterId,
                    lengthCounterMax : maxLength,
                    submitFormName : formName,
                        object_resizing : false,
                        force_p_newlines : true,
                convert_fonts_to_spans : false,
                entities : '160,nbsp',
                verify_html : true,
            valid_elements : 'strong/b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],-p[id|style|class|align],br,img[src|border|alt=|title|hspace|vspace|width|height|align],-div[id|class|align|style],-span[style|class|align|color],-pre,-font[face|size|style|id|class|color],-li[class|style],-ol[class|style],-ul[class|style]',
                invalid_elements : "a",
                icons : "icons-x",

                        // Theme options
                        theme_advanced_buttons1 : "fontselect,fontsizeselect",
                        theme_advanced_buttons2 : "bold,italic,underline,strikethrough,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,undo,redo" ,
                        theme_advanced_buttons3 : "",
                        theme_advanced_buttons4 : "",
                        theme_advanced_toolbar_location : "top",
                        theme_advanced_toolbar_align : "left",
                        theme_advanced_statusbar_location : "none",
                        theme_advanced_resizing : false,
                        theme_advanced_fonts : "Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact,chicago;Wingdings=wingdings,zapf dingbats",
                        theme_advanced_font_sizes : "1,2,3,4",
                        theme_advanced_source_editor_width : "700"
                });
        } catch (e)        {}

        return false;
}


Messages.changeTextArea=function(form,ev,limit)
{
    ev||(ev=window.event);
    if(ev && ev.keyCode == 13 && (ev.altKey || ev.ctrlKey))
    {
      form.submit();
      return false;
    }

    var msg = form.msg;
    if (msg.value.length > limit)
      msg.value = msg.value.substring(0,limit);

    document.getElementById("fm_len").innerHTML = limit - msg.value.length;
    return false;
}

// ----------------------
// SMILES FUNCTIONALITY

Messages.changeSmiles=function(tagName)
{
    var i,t,tags=document.getElementsByTagName(tagName);
    for(i=0;i<tags.length;i++)
    {
        t=tags[i];
        if(t.className=='msg-area')
        {
            t.innerHTML=OneSmile.smilize(t.innerHTML, smilesPath);
        }
    }
}

Messages.insertSmilesToInput=function(input, abreviation, src)
{
    if(tinyMCE.activeEditor)
    {
        tinyMCE.activeEditor.contentWindow.focus();
        var sel = tinyMCE.activeEditor.selection.getSel();
        var range = tinymce._createRange(sel);

        image = tinymce.getParentElement();
        if (!image || !/^img$/i.test(image.tagName))
        {
            tinyMCE.activeEditor.execCommand("mceInsertContent",true,'&nbsp;<img src="' + src + '" alt="' + abreviation + '" onresizestart="return false;" onresizeend="return false;" />');
        }
        else
        {
            image.src = src;
            image.alt = abreviation;
        }

        if (is_ie)
        {
            range.collapse(false);
            range.select();
        }
        else
        {
                try {
                    var n = sel.focusNode.nextSibling;
                    if (n && n.nodeType != 1 && n.nextSibling)
                        n = n.nextSibling;

                    if (n)
                    {
                        sel.removeAllRanges();
                        range = document.createRange();
                        range.selectNode(n.nextSibling);
                        range.collapse(true);
                        sel.addRange(range);
                    }
                } catch (e) {}
        }

        tinyMCE.execCommand("mceCountMessageLength");
    }
    else
    {
        if(is_ie)
        {
            if(input.isTextEdit)
            {
                input.focus();
                var sel=document.selection;
                var rng=sel.createRange();
                rng.colapse;
                if((sel.type == "Text" || sel.type == "None") && rng != null)
                {
                    rng.text = abreviation;
                }
            }
            else{
                    input.value += abreviation;
            }
        }
        else
        {
            input.value+=abreviation;
        }

        input.focus();
    }
}

Messages.createSmilesArea=function(parent, input)
{
    if (is_mac)
        return;

        var C=Community,tbody,row,i,str,img,smile,src,firstDiv;
        firstDiv=C.CE("div",parent,{},{position:"relative"});
    tbody=C.CE("tbody",C.CE("table",firstDiv));

        for(i=0;i<51;++i)
        {
        //if (i==47)
        //    continue;

        if(i%17==0 && i<51)
            row=C.CE("tr",tbody);

        smile=OneSmile.smiles[i];
                img=C.CE("img",C.CE("td",row),{src:smilesPath+smile[0],title:smile[1]},{cursor:"pointer"});

        img.onclick=function()
        {
            Messages.insertSmilesToInput(input,this.title,this.src);
        };

                img.onmousedown=function()
                {
                        return false;
                };
        }
}

function OneSmile()
{
}

OneSmile.smiles=[
    ['smile_04_11.gif',':-)',[/(:|=)[-]?\)/gi]],
    ['smile_23_11.gif',':-(',[/(:|=)[-]?\(/gi]],
    ['smile_21_11.gif',';-)',[/;[-]?\)/gi]],
    ['smile_01_11.gif',':-D',[/(:|=)[-]?(D|d)/gi]],
    ['smile_15_11.gif',':-@',[/(:|=)[-]?@/gi]],
    ['smile_20_11.gif','^o)',[/\^o\)/gi]],
    ['smile_13_11.gif',':-S',[/(:|=)[-]?(S|s)/gi]],
    ['smile_09_11.gif','*-)',[/\*-\)/gi]],
    ['smile_22_11.gif',':-|',[/[:=][-]?[|I]/gi]],
    ['smile_24_11.gif','8oI',[/8o(I|\|)/gi]],
    ['smile_12_11.gif',":'(",[/(:|=)(\'|&#39;)\(/gi]],
    ['smile_05_11.gif',':-P',[/(:|=)[-]?(P|p)/gi]],
    ['smile_07_11.gif',':-$',[/(:|=)[-]?\$/gi]],
    ['smile_06_11.gif',':-O',[/(:|=)[-](O|o|0)/gi]],
    ['smile_26_11.gif','|-)',[/\|-\)/gi]],
    ['smile_14_11.gif','(ch)',[/\((C|c)(H|h)\)/gi]],
    ['smile_19_11.gif','(lo)',[/\((L|l)(O|o)\)/gi]],
    ['smile_08_11.gif','(sr)',[/\((S|s)(R|r)\)/gi]],
    ['smile_17_11.gif','|-(',[/\|-\(/gi]],
    ['smile_02_11.gif','(H)',[/\((H|h)\)/gi]],
    ['smile_03_11.gif','(hu)',[/\((H|h)(U|u)\)/gi]],
    ['smile_10_11.gif','(tr)',[/\((T|t)(R|r)\)/gi]],
    ['smile_11_11.gif','(md)',[/\((M|m)(D|d)\)/gi]],
    ['smile_16_11.gif','(fr)',[/\((F|f)(R|r)\)/gi]],
    ['smile_18_11.gif','(dt)',[/\((D|d)(T|t)\)/gi]],
    ['smile_25_11.gif','(Y)',[/\((Y|y)\)/gi]],
    ['1_ico.gif','(stop)',[/\((S|s)(T|t)(O|o)(P|p)\)/gi]],
    ['6_ico.gif','(ball)',[/\((B|b)(A|a)(L|l)(L|l)\)/gi]],
    ['3_ico.gif','(down)',[/\((D|d)(O|o)(W|w)(N|n)\)/gi]],
    ['4_ico.gif','(up)',[/\((U|u)(P|p)\)/gi]],
    ['5_ico.gif','(brheart)',[/\((B|b)(R|r)(H|h)(E|e)(A|a)(R|r)(T|t)\)/gi]],
    ['7_ico.gif','(jewel)',[/\((J|j)(E|e)(W|w)(E|e)(L|l)\)/gi]],
    ['8_ico.gif','(clock)',[/\((C|c)(L|l)(O|o)(C|c)(K|k)\)/gi]],
    ['9_ico.gif','(heart)',[/\((H|h)(E|e)(A|a)(R|r)(T|t)\)/gi]],
    ['10_ico.gif','(bulb)',[/\((B|b)(U|u)(L|l)(B|b)\)/gi]],
    ['11_ico.gif','(rose)',[/\((R|r)(O|o)(S|s)(E|e)\)/gi]],
    ['12_ico.gif','(pizza)',[/\((P|p)(I|i)(Z|z)(Z|z)(A|a)\)/gi]],
    ['13_ico.gif','(bomb)',[/\((B|b)(O|o)(M|m)(B|b)\)/gi]],
    ['14_ico.gif','(gift)',[/\((G|g)(I|i)(F|f)(T|t)\)/gi]],
    ['15_ico.gif','(cake)',[/\((C|c)(A|a)(K|k)(E|e)\)/gi]],
    ['16_ico.gif','(note)',[/\((N|n)(O|o)(T|t)(E|e)\)/gi]],
    ['17_ico.gif','(beer)',[/\((B|b)(E|e)(E|e)(R|r)\)/gi]],
    ['18_ico.gif','(kiss)',[/\((K|k)(I|i)(S|s)(S|s)\)/gi]],
    ['19_ico.gif','(bear)',[/\((B|b)(E|e)(A|a)(R|r)\)/gi]],
    ['20_ico.gif','(sun)',[/\((S|s)(U|u)(N|n)\)/gi]],
    ['21_ico.gif','(rain)',[/\((R|r)(A|a)(I|i)(N|n)\)/gi]],
    ['22_ico.gif','(cup)',[/\((C|c)(U|u)(P|p)\)/gi]],
    ['23_ico.gif','(glass)',[/\((G|g)(L|l)(A|a)(S|s)(S|s)\)/gi]],
    ['24_ico.gif','(tv)',[/\((T|t)(V|v)\)/gi]],
    ['25_ico.gif','(money)',[/\((M|m)(O|o)(N|n)(E|e)(Y|y)\)/gi]],
    ['2_ico.gif','(phne)',[/\((P|p)(H|h)(N|n)(E|e)\)/gi]]

/*    ['15.gif','(N)',[/\((N|n)\)/gi]],
    ['34.gif','(v)',[/\((V|v)\)/gi]],
    ['16.gif','(L)',[/\((L|l)\)/gi]],
    ['17.gif','(U)',[/\((U|u)\)/gi]],
    ['24.gif','(K)',[/\((K|k)\)/gi]],
    ['23.gif','(F)',[/\((F|f)\)/gi]],
    ['32.gif','(*)',[/\(\*\)/gi]],
    ['19.gif','(^)',[/\((\^)\)/gi]],
    ['21.gif','(G)',[/\((G|g)\)/gi]],
    ['25.gif','(B)',[/\((B|b)\)/gi]],
    ['29.gif','(D)',[/\((D|d)\)/gi]],
    ['22.gif','(C)',[/\((C|c)\)/gi]],
    ['30.gif','(pi)',[/\(pi\)/gi]],
    ['33.gif','(pl)',[/\(pl\)/gi]],
    ['36.gif','(ic)',[/\((I|i)(C|c)\)/gi]],
//    ['37.gif','(dc)',[/\((D|d)(C|c)\)/gi]],
    ['baks.gif','($)',[/\(\$\)/gi]],
    ['35.gif','(co)',[/\((C|c)(O|o)\)/gi]],
    ['38.gif','(so)',[/\((S|s)(O|o)\)/gi]],
    ['40.gif','(te)',[/\((T|t)(E|e)\)/gi]],
    ['39.gif','(nt)',[/\((N|n)(T|t)\)/gi]],
    ['18.gif','(I)',[/\((I|i)\)/gi]],
    ['20.gif','(E)',[/\((E|e)\)/gi]],
    ['42.gif','(Z)',[/\((Z|z)\)/gi]],
    ['43.gif','(X)',[/\((X|x)\)/gi]],
    ['31.gif','(S)',[/\((S|s)\)/gi]]     */
];

OneSmile.smilize=function(str,path)
{
        var i,j,v,regs,tag;

        for(i=this.smiles.length-1;i>=0;--i)
        {
                v=this.smiles[i];
                tag='<img align="middle" src="'+path+v[0]+'" />';

        regs=v[2];
                for(j=regs.length;--j>=0;)
                        str=str.replace(regs[j],tag);
        }

    str=str.replace(/&nbsp;<img/gi,'\n<img');

        return str;
};
function addsmile(alt, img)
{
        var s = "<a href=\"javascript:;\" onmousedown=\"tinyMCE.execCommand('mceInsertContent',false,'<img src=\\\'"+img+"\\\' alt=\\\'"+alt+"\\\'>');\">";
    s += '<img style="cursor: pointer;" title="'+alt+'" src="'+img+'"></a>\n';

        return s;
}
function loadsmiles()
{
        var s="";
        s += addsmile(":-(", "http://www.videoklass.ru/user/smiles/smile_04_11.gif");
        s += addsmile(":-(", "http://www.videoklass.ru/user/smiles/smile_23_11.gif");
        s += addsmile(";-)", "http://www.videoklass.ru/user/smiles/smile_21_11.gif");
        s += addsmile(":-D", "http://www.videoklass.ru/user/smiles/smile_01_11.gif");
        s += addsmile(":-@", "http://www.videoklass.ru/user/smiles/smile_15_11.gif");
        s += addsmile("^o)", "http://www.videoklass.ru/user/smiles/smile_20_11.gif");
        s += addsmile(":-S", "http://www.videoklass.ru/user/smiles/smile_13_11.gif");
        s += addsmile("*-)", "http://www.videoklass.ru/user/smiles/smile_09_11.gif");
        s += addsmile(":-|", "http://www.videoklass.ru/user/smiles/smile_22_11.gif");
        s += addsmile("8oI", "http://www.videoklass.ru/user/smiles/smile_24_11.gif");
        s += addsmile(":\\'(", "http://www.videoklass.ru/user/smiles/smile_12_11.gif");
        s += addsmile(":-P", "http://www.videoklass.ru/user/smiles/smile_05_11.gif");
        s += addsmile(":-$", "http://www.videoklass.ru/user/smiles/smile_07_11.gif");
        s += addsmile(":-O", "http://www.videoklass.ru/user/smiles/smile_06_11.gif");
        s += addsmile("|-)", "http://www.videoklass.ru/user/smiles/smile_26_11.gif");
        s += addsmile("(ch)", "http://www.videoklass.ru/user/smiles/smile_14_11.gif");
        s += addsmile("(lo)", "http://www.videoklass.ru/user/smiles/smile_19_11.gif");
        s += addsmile("(sr)", "http://www.videoklass.ru/user/smiles/smile_08_11.gif");
        s += addsmile("|-(", "http://www.videoklass.ru/user/smiles/smile_17_11.gif");
        s += addsmile("(H)", "http://www.videoklass.ru/user/smiles/smile_02_11.gif");
        s += addsmile("(hu)", "http://www.videoklass.ru/user/smiles/smile_03_11.gif");
        s += addsmile("(tr)", "http://www.videoklass.ru/user/smiles/smile_10_11.gif");
        s += addsmile("(md)", "http://www.videoklass.ru/user/smiles/smile_11_11.gif");
        s += addsmile("(fr)", "http://www.videoklass.ru/user/smiles/smile_16_11.gif");
        s += addsmile("(dt)", "http://www.videoklass.ru/user/smiles/smile_18_11.gif");
        s += addsmile("(Y)", "http://www.videoklass.ru/user/smiles/smile_25_11.gif");
        s += addsmile("(stop)", "http://www.videoklass.ru/user/smiles/1_ico.gif");
        s += addsmile("(ball)", "http://www.videoklass.ru/user/smiles/6_ico.gif");
        s += addsmile("(down)", "http://www.videoklass.ru/user/smiles/3_ico.gif");
        s += addsmile("(up)", "http://www.videoklass.ru/user/smiles/4_ico.gif");
        s += addsmile("(brheart)", "http://www.videoklass.ru/user/smiles/5_ico.gif");
        s += addsmile("(jewel)", "http://www.videoklass.ru/user/smiles/7_ico.gif");
        s += addsmile("(clock)", "http://www.videoklass.ru/user/smiles/8_ico.gif");
        s += addsmile("(heart)", "http://www.videoklass.ru/user/smiles/9_ico.gif");
        s += addsmile("(bulb)", "http://www.videoklass.ru/user/smiles/10_ico.gif");
        s += addsmile("(rose)", "http://www.videoklass.ru/user/smiles/11_ico.gif");
        s += addsmile("(pizza)", "http://www.videoklass.ru/user/smiles/12_ico.gif");
        s += addsmile("(bomb)", "http://www.videoklass.ru/user/smiles/13_ico.gif");
        s += addsmile("(gift)", "http://www.videoklass.ru/user/smiles/14_ico.gif");
        s += addsmile("(cake)", "http://www.videoklass.ru/user/smiles/15_ico.gif");
        s += addsmile("(note)", "http://www.videoklass.ru/user/smiles/16_ico.gif");
        s += addsmile("(beer)", "http://www.videoklass.ru/user/smiles/17_ico.gif");
        s += addsmile("(kiss)", "http://www.videoklass.ru/user/smiles/18_ico.gif");
        s += addsmile("(bear)", "http://www.videoklass.ru/user/smiles/19_ico.gif");
        s += addsmile("(sun)", "http://www.videoklass.ru/user/smiles/20_ico.gif");
        s += addsmile("(rain)", "http://www.videoklass.ru/user/smiles/21_ico.gif");
        s += addsmile("(cup)", "http://www.videoklass.ru/user/smiles/22_ico.gif");
        s += addsmile("(glass)", "http://www.videoklass.ru/user/smiles/23_ico.gif");
        s += addsmile("(tv)", "http://www.videoklass.ru/user/smiles/24_ico.gif");
        s += addsmile("(money)", "http://www.videoklass.ru/user/smiles/25_ico.gif");
        s += addsmile("(phne)", "http://www.videoklass.ru/user/smiles/2_ico.gif");
        return s;
}
