var imageTag = false;
var theSelection = false;

var B_open = 0;
var I_open = 0;
var U_open = 0;
var QUOTE_open = 0;
var CODE_open = 0;
var SQL_open = 0;
var HTML_open = 0;

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);

var myVersion = 5;

b_help = "Félkövér";
i_help = "Dőlt";
u_help = "Aláhúzott";
q_help = "";
c_help = "";
l_help = "";
o_help = "";
p_help = "Kép";
w_help = "Link";
a_help = "";
s_help = "Betűtszín";
f_help = "Betűméret";
url_help = "Hivatkozás beillesztése";
img_help = "Kép beillesztése";
email_help = "E-mail cím beillesztése";
quote_help = "Idézett szöveg beillesztése";
code_help = "Monotype, egyforma betűszélességű szöveg beillesztése";
list_help = "Felsorolás létrehozása";

// Szöveg beállítások!
text_enter_email = "Add meg az e-mail címet!";
text_enter_image = "Add meg a Kép URL-t!";
text_enter_url = "Add meg az URL-t!";
text_enter_url_name = "Add meg a hivatkozás nevét!";
error_no_url = "Nincs URL megadva!";
error_no_title = "Nincs link név megadva!";
error_no_email = "Nincs e-mail cím megadva!";

bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[STRIKE]','[/STRIKE]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
imageTag = false;

function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

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 helpline(help) {
	document.post.helpbox.value = eval(help + "_help");
}

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;
}

var marked_row = new Array;

function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;

    currentColor = theCells[0].style.backgroundColor;
    domDetect    = false;

    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                     currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
        }
    }

    if (newColor) {
        var c = null;
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            }
        }
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    }

    return true;
}

function tag_list()
{
	
	doInsert( "[LIST]\n[/LIST]\n", "", false);

}

function insert_quote()
{
	
	doInsert( "[QUOTE]    [/QUOTE]\n", "", false);

}

function tag_url()
{
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_url, "http://");
    var enterTITLE = prompt(text_enter_url_name, "My Webpage");

    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }
    if (!enterTITLE) {
        FoundErrors += " " + error_no_title;
    }

    if (FoundErrors) {
        alert(FoundErrors);
        return;
    }

	doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false);
}

function tag_image()
{
    var FoundErrors = '';
    var enterURL   = prompt(text_enter_image, "http://");

    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }

    if (FoundErrors) {
        alert(FoundErrors);
        return;
    }

	doInsert("[IMG]"+enterURL+"[/IMG]", "", false);
}

function tag_email()
{
    var emailAddress = prompt(text_enter_email, "");
    if (!emailAddress) { 
		alert(error_no_email); 
		return; 
	}

	doInsert("[EMAIL]"+emailAddress+"[/EMAIL]", "", false);
}

function doInsert(ibTag, ibClsTag, isSingle)
{
	var isClose = false;
	var obj_ta = document.post.message;

	if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only
	{
		if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers
			obj_ta.focus();
			var sel = document.selection;
			var rng = sel.createRange();
			rng.colapse;
			if((sel.type == "Text" || sel.type == "None") && rng != null){
				if(ibClsTag != "" && rng.text.length > 0)
					ibTag += rng.text + ibClsTag;
				else if(isSingle)
					isClose = true;
	
				rng.text = ibTag;
			}
		}
		else{
			if(isSingle)
				isClose = true;
	
			obj_ta.value += ibTag;
		}
	}
	else
	{
		if(isSingle)
			isClose = true;

		obj_ta.value += ibTag;
	}

	obj_ta.focus();
	
	// clear multiple blanks
//	obj_ta.value = obj_ta.value.replace(/  /, " ");

	return isClose;
}

function set_font_name(fontname) {
		var txtarea = document.post.message;
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			txtarea.value += '[font='+fontname+'][/font]';
			txtarea.focus();
			return;
		}
		document.selection.createRange().text = '[font='+fontname+']'+ theSelection + '[/font]';
		txtarea.focus();
		for(i=0; i<document.font_settings.fontname.length; i++) {
			document.font_settings.fontname[i].checked = false;
		}
}


function set_font_color(color) {
	var txtarea = document.post.message;
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			txtarea.value += '[color='+color+'][/color]';
			txtarea.focus();
			return;
		}
		document.selection.createRange().text = '[color='+color+']' + theSelection + '[/color]';
}

function emoticon(smile)
{
	document.frames['message'].document.body.innerHTML += '<img src="/images/smile/' + smile + '.gif" style="border: 0" /> ';
	//document.post.message.value += ' ' + smile + ' ';
}

function userinfo(userID) 
{
	window.location = '/users/' +userID;
}

function open_galeri(gID, picID) 
{
	popup = window.open('/gallery/popup/' + gID + '/' + picID,'1','toolbar=no,location=no,directories=no,menubar=no,resizable=yes,status=no,scrollbars=yes,width=400,height=540'); 
}

function torol(pageLink)
{
	var is_confirmed = confirm('Biztos vagy benne!?');
    if (is_confirmed) {
        pageLink.href += '&biztos=1';
    }
    return is_confirmed;
}

function barat_torol(pageLink)
{
	var is_confirmed = confirm('Biztos vagy benne!?');
    return is_confirmed;
}


function comment_post() {
	var targelem = document.getElementById('post_comment');
	targelem.style.display='inline';
	targelem.style.visibility='visible';
}

function open_chat(nick)
{ 
	if (!nick)
	{
		alert('Azé nikket kéne adni, nem?')
		return false;
	}
	popup = window.open('http://chat.veszparty.hu/?nick=' + nick,'1','toolbar=no,location=no,directories=no,menubar=no,resizable=no,status=no,scrollbars=no,width=652,height=545'); 
	return false;
}

function help(what) 
{
	popup = window.open('help.php?what=' + what,'1','toolbar=no,location=no,directories=no,menubar=no,resizable=no,status=yes,scrollbars=yes,width=503,height=500'); 

}

function privmsg_check() 
{
	var message = document.post.message;
	var subject = document.post.targy;
	var cimzett = document.post.cimzett;

	if (!cimzett.value)
	{
		alert('Legalább 1 címzett megadása kötelező!');
		cimzett.focus();
		return false;
	}
	
	if (!subject.value)
	{
		alert('A tárgy megadása kötelező!');
		subject.focus();
		return false;
	}

	if (!message.value)
	{
		alert('Az üzenet megadása kötelező!');
		message.focus();
		return false;
	}
	
	document.post.submit();


}
