var lid;
function bb_code(id,c1,c2)
{
	if(!id)
		id=lid;
    var obj=document.getElementById(id);
    if(!obj)
        return false;
	if(!c2) c2='';
	var res='';
	var txt='';
	if (document.selection)
	{
		obj.focus();
		var cr=document.selection.createRange();
		txt=cr.text;
		cr.text=c1+txt+c2;
		cr.select();
	} else if (typeof(obj.selectionStart)!="undefined")
	{
		var p1=obj.selectionStart;
		var p2=obj.selectionEnd;
		txt=obj.value;
		obj.value=txt.substr(0,p1)+c1+txt.substr(p1,p2-p1)+c2+txt.substr(p2,txt.length-1);
		obj.selectionStart=p1;
		obj.selectionEnd=c1.length+ ((c2.length)?p2+c2.length: p1);
		obj.focus();
		window.focus();
	}
}

function bb_img(id){
	var win=window.open('/my/gallery/navigator','priview_gal','width=624,height=580,scrollbars=yes,resizable');
	win.focus();
	lid=id;
}

function bb_list(id,ord){
	var str='';
/*	var p='';
	do {
		p=window.prompt("Введите значение",'');
		if(p!='' && p!=null)
			str+='[li]'+p+'[/li]';
	} while(p!='' && p!=null);
	if(!str)
		return false;*/
	if(ord)
		bb_code(id,"[list=]\n","\n[/list=]");
	else
		bb_code(id,"[list]\n","\n[/list]");
	return true;
}

function preview_msg(id)
{
    var obj=document.getElementById(id);
	if(!obj || !obj.value.length)
		return false;
	var src=obj.value;
	var patterns=new Array();
	var repl=new Array();

	patterns[0]=/\[b\]([^\000]*?)\[\/b\]/img;
	patterns[1]=/\[i\]([^\000]*?)\[\/i\]/img;
	patterns[2]=/\[quote\]([^\000]*?)\[\/quote\]/gim;
	patterns[3]=/\[u\]([^\000]*?)\[\/u\]/img;
	patterns[4]=/\[list\]([^\000]*?)\[\/list\]/img;
	patterns[5]=/\[list=\]([^\000]*?)\[\/list=\]/img;
	patterns[6]=/\[img\](.*?)\[\/img\]/ig;
	patterns[7]=/\[url\](.*?)\[\/url\]/ig;
	patterns[8]=/\[url=(.*?)\](.*?)\[\/url\]/ig;
	patterns[9]=/\[img_gal(?:\s(left|right))?\](\/img\/show\/(\d+)\/\d+\/\d+.jpg)\[\/img_gal\]/ig;
	patterns[10]=/\n/ig;

	repl[0]="<span class=\"bbcode_b\">$1</span>";
	repl[1]="<span class=\"bbcode_i\">$1</span>";
	repl[2]="<div style=\"padding:20px;\"><div class=\"bbcode_quote\">$1</div></div>";
	repl[3]="<span class=\"bbcode_u\">$1</span>";
	//~ repl[4]="<ul class=\"bbcode_ul\">$1</ul>";
	repl[4]=bb_parse_list;
	//~ repl[5]="<ol class=\"bbcode_ul\">$1</ol>";
	repl[5]=bb_parse_list_ol;
	repl[6]="<img src=\"$1\" class=\"bbcode_img\">";
	repl[7]="<a href=\"$1\" class=\"bbcode_a\" target=\"_BLANK\">$1</a>";
	repl[8]="<a href=\"$1\" class=\"bbcode_a\" target=\"_BLANK\">$2</a>";
	repl[9]="<a href=\"\/img\/show\/$3\/400\/$3.jpg\" onclick=\"window.open(this.href,'_blank','width=400,height=310,resizable');return false;\"><img src=\"$2\" align=\"$1\" class=\"bbcode_img_gal\"></a>";
	repl[10]="<br>";

	for(i=0;i < repl.length;i++)
		src =src.replace(patterns[i],repl[i]);

	var win=window.open('','priview_msg','width=634,height=400,scrollbars=yes,resizable');
	var res='<html>\
<head><title>Предварительный просмотр - GoSurf.ru</title>\
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />\
<link rel="stylesheet" type="text/css" href="/css/screen.css">\
<body class="lite"><div id="content" class="defbg defdata" style="height:100%;">';
res +=src;
res +='</div></body></html>';
	win.focus();
	win.document.open();
	win.document.write(res);
	win.document.close();
}

function bb_parse_list(x,str){
	return "<ul class=\"bbcode_ul\">"+bb_parse_lists(str)+"</ul>";
}
function bb_parse_list_ol(x,str){
	return "<ol class=\"bbcode_ol\">"+bb_parse_lists(str)+"</ol>";
}
function bb_parse_lists(str){
	var l=str.split("\n");
	l.pop();
	return l.join("<li>");
}