// BBCode form functions. (based on main.js from http://onetwo.tomsk.ru/).
function bbcode_TagIns(open, close, def_value, id){
	var def = (def_value) ? def_value : '';
	var pa = document.getElementById(id);
	if (pa.setSelectionRange) {
		// Mozilla
		var s1 = pa.selectionStart, s2 = pa.selectionEnd;
		var txt = pa.value.substr(s1, s2-s1);
		txt = txt ? txt : def;
		pa.value = pa.value.substr(0, s1) + open + txt + close + pa.value.substr(s2);
		
		if(def) {
			pa.setSelectionRange(s2 + open.length + txt.length + close.length, s2 + open.length + txt.length + close.length);
		} else {
			pa.setSelectionRange(s1 + open.length, s2 + open.length);
		}
		pa.focus();
	} else if (document.selection) {
		// IE
		if (document.selection.type != 'Control') {
			sel  = document.selection.createRange();
			if (sel.parentElement().id == pa.id) {
				var t = open + (sel.text ? sel.text : def) + close;
				sel.text = t;
				sel.moveStart('character', -t.length+open.length);
				sel.moveEnd('character', -close.length);
				pa.focus();
				sel.select();
			}
		}
	}
}

function bbcode_Tag(id, tag){
	bbcode_TagIns('[' + tag + ']', '[/' + tag + ']', '', id);
}

function bbcode_smile(id, tag){
	bbcode_TagIns(tag, '', '', id);
}

function bbcode_TagSp(id, tag1, tag2){
	bbcode_TagIns(tag1, tag2, '', id);
}


function bbcode_preview(el)
{
	var win1;
	win1 = window.open("", "", "");
	win1.document.open();
	win1.document.writeln("<body><form method='post' enctype='multipart/form-data' action='?p=bbcode_preview'><textarea id='preview' name='preview'>"+document.getElementById(el).value+"</textarea><input type=submit></form>"+"<SCRIPT LANGUAGE='JavaScript'>document.forms[0].submit();<"+"/script>");
	win1.focus();
}

function bbcode_spoilertoggle (tag)
{
	var el = document.getElementById('spoiler'+tag);
	el.className = (el.className == 'spoiler_off') ? 'spoiler_on' : 'spoiler_off';
	var el1 = document.getElementById('spoiler_in'+tag);
	el1.style.display = (el1.style.display == 'none') ? '' : 'none';
}

function bbcode_spoilergettag ()
{
	return Math.floor( Math.random() * 10000 );
}