var imageTag = false;
var theSelection = false;
var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[stream]','[/stream]','[fade]','[/fade]','[scroll]','[/scroll]','[swf width= height=]','[/swf]','[center]','[/center]','[hide]','[/hide]', '[tex]', '[/tex]');
imageTag = false;

function helpline(help)
{
        document.post.helpbox.value = eval(help + "_help");
}

function getarraysize(thearray)
{
        for (i = 0; i < thearray.length; i++)
        {
                if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
                        return i;
        }
        return thearray.length;
}

function arraypush(thearray,value)
{
        thearray[ getarraysize(thearray) ] = value;
}

function arraypop(thearray)
{
        thearraysize = getarraysize(thearray);
        retval = thearray[thearraysize - 1];
        delete thearray[thearraysize - 1];
        return retval;
}

function bbfontstyle(bbopen, bbclose)
{
        var txtarea = document.post.message;
        if ((clientVer >= 4) && is_ie && is_win)
        {
                theSelection = document.selection.createRange().text;
                if (!theSelection)
                {
                        txtarea.value += bbopen + bbclose;
                        txtarea.focus();
                        return;
                }
                document.selection.createRange().text = bbopen + theSelection + bbclose;
                txtarea.focus();
                return;
        }
        else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
        {
                mozWrap(txtarea, bbopen, bbclose);
                return;
        }
        else
        {
                txtarea.value += bbopen + bbclose;
                txtarea.focus();
        }
        storeCaret(txtarea);
}

function bbstyle(bbnumber)
{
        var txtarea = document.post.message;

        txtarea.focus();
        donotinsert = false;
        theSelection = false;
        bblast = 0;

        if (bbnumber == -1)
        {
                while (bbcode[0])
                {
                        butnumber = arraypop(bbcode) - 1;
                        txtarea.value += bbtags[butnumber + 1];
                        buttext = eval('document.post.addbbcode' + butnumber + '.value');
                        eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
                }
                imageTag = false;
                txtarea.focus();
                return;
        }

        if ((clientVer >= 4) && is_ie && is_win)
        {
                theSelection = document.selection.createRange().text;
                if (theSelection)
                {
                        document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
                        txtarea.focus();
                        theSelection = '';
                        return;
                }
        }
        else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
        {
                mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
                return;
        }

        for (i = 0; i < bbcode.length; i++)
        {
                if (bbcode[i] == bbnumber+1)
                {
                        bblast = i;
                        donotinsert = true;
                }
        }

        if (donotinsert)
        {
                while (bbcode[bblast])
                {
                                butnumber = arraypop(bbcode) - 1;
                                txtarea.value += bbtags[butnumber + 1];
                                buttext = eval('document.post.addbbcode' + butnumber + '.value');
                                eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
                                imageTag = false;
                        }
                        txtarea.focus();
                        return;
        }
        else
        {
                if (imageTag && (bbnumber != 14))
                {
                        txtarea.value += bbtags[15];
                        lastValue = arraypop(bbcode) - 1;
                        document.post.addbbcode14.value = "Img";
                        imageTag = false;
                }

                txtarea.value += bbtags[bbnumber];
                if ((bbnumber == 14) && (imageTag == false)) imageTag = 1;
                arraypush(bbcode,bbnumber+1);
                eval('document.post.addbbcode'+bbnumber+'.value += "*"');
                txtarea.focus();
                return;
        }
        storeCaret(txtarea);
}

function mozWrap(txtarea, open, close)
{
        var selLength = txtarea.textLength;
        var selStart = txtarea.selectionStart;
        var selEnd = txtarea.selectionEnd;
        if (selEnd == 1 || selEnd == 2)
                selEnd = selLength;

        var s1 = (txtarea.value).substring(0,selStart);
        var s2 = (txtarea.value).substring(selStart, selEnd)
        var s3 = (txtarea.value).substring(selEnd, selLength);
        txtarea.value = s1 + open + s2 + close + s3;
        return;
}

function mpFoto(img)
{
        foto1= new Image();
        foto1.src=(img);
        mpControl(img);
}

function mpControl(img)
{
        if ( (foto1.width != 0) && (foto1.height != 0) )
        {
                viewFoto(img);
        }
        else
        {
                mpFunc = "mpControl('"+img+"')";
                intervallo = setTimeout(mpFunc,20);
        }
}

function viewFoto(img)
{
        largh = foto1.width + 20;
        altez = foto1.height + 20;
        string = "width="+largh+",height="+altez;
        finestra = window.open(img, "", string);
}

function setCheckboxes(theForm, elementName, isChecked)
{
        var chkboxes = document.forms[theForm].elements[elementName];
        var count = chkboxes.length;
        if ( count )
        {
                for (var i = 0; i < count; i++)
                {
                        chkboxes[i].checked = isChecked;
                }
        }
        else
        {
                chkboxes.checked = isChecked;
        }
        return true;
}

var selectedText = quoteAuthor = '';

function quoteSelection()
{
        theSelection = false;
        if (selectedText) theSelection = selectedText;
        else if (document.selection && document.selection.createRange) theSelection = document.selection.createRange().text;

        if (theSelection)
        {
                emoticon( (document.post.message.value ? '' : '') + '[quote' + (quoteAuthor ? '="' + quoteAuthor + '"' : '') + ']' + theSelection + '[/quote]');
                document.post.message.focus();
                selectedText = quoteAuthor = theSelection = '';
                return;
        }
        else
        {
                alert(no_text_selected);
        }
}

function displayWindow(url, width, height)
{
        var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=no,menubar=no' );
}

function hideLoadingPage()
{
        if (document.getElementById)
        {
                 document.getElementById('hidepage').style.visibility = 'hidden';
        }
        else
        {
                if (document.layers)
                {
                        document.hidepage.visibility = 'hidden';
                }
                else
                {
                        document.all.hidepage.style.visibility = 'hidden';
                }
        }
}

function Active(what)
{
        what.style.backgroundColor=factive_color;
}

function NotActive(what)
{
        what.style.backgroundColor='';
}

function storeCaret(textEl)
{
        if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

function emoticon(text)
{
        if (document.post.message.createTextRange && document.post.message.caretPos)
        {
                var caretPos = document.post.message.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
                document.post.message.focus();
        }
        else if (document.post.message.selectionStart != undefined)
        {
                document.post.message.value = document.post.message.value.substring(0, document.post.message.selectionStart) + text + document.post.message.value.substring(document.post.message.selectionStart);
                document.post.message.focus();
        }
        else
        {
                document.post.message.value += text;
                document.post.message.focus();
        }
}

function em(text)
{
        return emoticon(text);
}

function checkForm()
{
        formErrors = false;
        if (document.post.message.value.length < 2)
        {
                formErrors = l_empty_message;
        }

        if (formErrors)
        {
                alert(formErrors);
                return false;
        }
        else
        {
                bbstyle(-1);
                //formObj.preview.disabled = true;
                //formObj.submit.disabled = true;
                return true;
        }
}

function wrapSelection(h, strFore, strAft)
{
        h.focus();
        if (h.setSelectionRange)
        {
                var selStart = h.selectionStart, selEnd = h.selectionEnd;
                h.value = h.value.substring(0, selStart) + strFore + h.value.substring(selStart, selEnd) + strAft + h.value.substring(selEnd);
                h.setSelectionRange(selStart + strFore.length, selEnd + strFore.length);
        }
        else if (document.selection)
        {
                var oRange = document.selection.createRange();
                var numLen = oRange.text.length;
                oRange.text = strFore + oRange.text + strAft;
                //moveSelectionRange(oRange, -numLen, -strAft.length);
        }
        else
        {
                h.value += strFore + strAft;
        }
}

function imgcode(theform,imgcode,prompttext)
{
        tag_prompt = img_addr;
        inserttext = prompt(tag_prompt+"\n["+imgcode+"]xxx[/"+imgcode+"]",prompttext);
        if ((inserttext != null) && (inserttext != ""))
        theform.message.value += "["+imgcode+"]"+inserttext+"[/"+imgcode+"] ";
        theform.message.focus();
}

function namedlink(theform,thetype)
{
        linktext = prompt(link_text_prompt,"");
        var prompttext;
        if (thetype == "URL")
        {
                prompt_text = link_url_prompt;
                prompt_contents = "http://";
        }
        else
        {
                prompt_text = link_email_prompt;
                prompt_contents = "";
        }
        linkurl = prompt(prompt_text,prompt_contents);
        if ((linkurl != null) && (linkurl != ""))
        {
                if ((linktext != null) && (linktext != "")) theform.message.value += "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
                else theform.message.value += "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
        }
        theform.message.focus();
}

function filter_freak()
{
        theSelection = document.selection.createRange().text;
        if (theSelection != '')
        {
                var caretPos = document.post.message.caretPos;
                var export_text = '';
                var current_char = '';
                for (i = 0; i <= caretPos.text.length; i++)
                {
                        current_char = caretPos.text.charAt(i);
                        if ( (i % 2) == 0 )
                        {
                                export_text += current_char.toUpperCase();
                        }
                        else
                        {
                                export_text += current_char.toLowerCase();
                        }
                }
                caretPos.text = export_text;document.post.message.focus();
                return;
        }
        alert(no_text_selected);
        return;
}

function filter_l33t()
{
        theSelection = document.selection.createRange().text;
        if (theSelection != '')
        {
                var caretPos = document.post.message.caretPos;
                var export_text = '';
                var current_char = '';
                for (i = 0; i <= caretPos.text.length; i++)
                {
                        current_char = caretPos.text.charAt(i);
                        if ( (current_char == 'a') || (current_char == 'A') )
                        {
                                export_text += '4';
                        }
                        else if ( (current_char == 'e') || (current_char == 'E') )
                        {
                                export_text += '3';
                        }
                        else if ( (current_char == 'i') || (current_char == 'I') )
                        {
                                export_text += '1';
                        }
                        else if ( (current_char == 'o') || (current_char == 'O') )
                        {
                                export_text += '0';
                        }
                        else
                        {
                                export_text += current_char;
                        }
                }
                caretPos.text = export_text;document.post.message.focus();
                return;
        }
        alert(no_text_selected);
        return;
}

function onv(element)
{
        element.style.backgroundColor=faonmouse_color;
}

function onv2(element)
{
        element.style.backgroundColor=faonmouse2_color;
}

function ont(element)
{
        element.style.backgroundColor='';
}

function focus_field(def_field)
{
        if (document.getElementById(def_field))
        {
                document.getElementById(def_field).focus();
        }
}

function show_pagina(e)
{
        var sTop = document.body.scrollTop;
        var sLeft = document.body.scrollLeft;
        document.getElementById('s_pagina').style.display='block';
        document.getElementById('s_pagina').style.left=e.clientX-35+sLeft;
        document.getElementById('s_pagina').style.top=e.clientY+sTop-20;
        return;
}

function qc()
{
        if (document.post && document.post.message)
        {
                quoteSelection();
                return false;
        }
}

function qo()
{
        selectedText = document.selection? document.selection.createRange().text : document.getSelection();
}

function qu(username)
{
        if (window.getSelection && window.getSelection() || document.selection && document.selection.createRange && document.selection.createRange().text)
        {
                return true;
        }
        else
        {
                return false;
        }
}

function cp(what)
{
        what.style.cursor='pointer';
}

var PreloadFlag = false;
var expDays = 90;
var exp = new Date();
var tmp = '';
var tmp_counter = 0;
var tmp_open = 0;

exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function SetCookie(name, value)
{
        var argv = SetCookie.arguments;
        var argc = SetCookie.arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        document.cookie = cname + name + "=" + escape(value) +
                ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
                ((cpath == null) ? "" : ("; path=" + cpath)) +
                ((cdomain == null) ? "" : ("; domain=" + cdomain)) +
                ((csecure == 1) ? "; secure" : "");
}

function getCookieVal(offset)
{
        var endstr = document.cookie.indexOf(";",offset);
        if (endstr == -1)
        {
                endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{
        var arg = cname + name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen)
        {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg)
                        return getCookieVal(j);
                i = document.cookie.indexOf(" ", i) + 1;
                if (i == 0)
                        break;
        }
        return null;
}

function ShowHide(id1, id2, id3)
{
        // System to show/hide page elements, cookie based
        // Take from Morpheus style Created by Vjacheslav Trushkin (aka CyberAlien)
        var res = expMenu(id1);
        if (id2 != '') expMenu(id2);
        if (id3 != '') SetCookie(id3, res, exp);
}

function expMenu(id)
{
        var itm = null;
        if (document.getElementById)
        {
                itm = document.getElementById(id);
        }
        else if (document.all)
        {
                itm = document.all[id];
        }
        else if (document.layers)
        {
                itm = document.layers[id];
        }
        if (!itm)
        {
                // do nothing
        }
        else if (itm.style)
        {
                if (itm.style.display == "none")
                {
                        itm.style.display = "inline";
                        return 1;
                }
                else
                {
                        itm.style.display = "none";
                        return 2;
                }
        }
        else
        {
                itm.visibility = "show";
                return 1;
        }
}

function showMenu(id)
{
        var itm = null;
        if (document.getElementById)
        {
                itm = document.getElementById(id);
        }
        else if (document.all)
        {
                itm = document.all[id];
        }
        else if (document.layers)
        {
                itm = document.layers[id];
        }
        if (!itm)
        {
                // do nothing
        }
        else if (itm.style)
        {
                if (itm.style.display == "none")
                {
                        itm.style.display = "";
                        return true;
                }
                else
                {
//                        itm.style.display = "none";
                        return true;
                }
        }
        else
        {
                itm.visibility = "show";
                return true;
        }
}

function hideMenu(id)
{
        var itm = null;
        if (document.getElementById)
        {
                itm = document.getElementById(id);
        }
        else if (document.all)
        {
                itm = document.all[id];
        }
        else if (document.layers)
        {
                itm = document.layers[id];
        }
        if (!itm)
        {
                // do nothing
        }
        else if (itm.style)
        {
                if (itm.style.display == "none")
                {
//                        itm.style.display = "";
                        return true;
                }
                else
                {
                        itm.style.display = "none";
                        return true;
                }
        }
        else
        {
                itm.visibility = "hide";
                return true;
        }
}

function change_size(area_object, mode)
{
        var msg_cur_size = GetCookie('msg_size');
        var new_size = msg_cur_size;

        if ( mode == 1 )
        {
                new_size++;
                new_size2++;
                if ( new_size > 8 ) new_size = 8;
                if ( new_size2 > 8 ) new_size2 = 8;
                SetCookie('msg_size', new_size);
        }
        else if ( mode == -1 )
        {
                new_size = 0;
                new_size2 = 0;
                if ( new_size < 0 ) new_size = 0;
                if ( new_size2 < 0 ) new_size2 = 0;
                SetCookie('msg_size', new_size);
        }
        if (document.cookie.length) call_size = new_size;
        else call_size = new_size2;

        set_size(area_object, call_size);
}

function set_size(area_object, new_size)
{
        var default_width = 550;
        var default_height = 200;

        if ( new_size == "undefined" ) new_size = 0;

        area_object.style.width = (default_width + (30 * new_size)) + "px";
        area_object.style.height = (default_height + (100 * new_size)) + "px";
}

function chng(val)
{
    var nval = '#' + val.value;
    val.style.color = nval;
}
