
function get_smiles()
{
	var smiles_array = new Array(20);

	smiles_array[0] = new Array("*DONT_KNOW*", "dntknw.gif");
	smiles_array[1] = new Array("*DIABLO*", "diablo.gif");
	smiles_array[2] = new Array(":-X", "secret.gif");
	smiles_array[3] = new Array(":*(", "cray.gif");
	smiles_array[4] = new Array(":-!", "bad.gif");
	smiles_array[5] = new Array("8-)", "dirol.gif");

	smiles_array[6] = new Array("=-O", "shok.gif");
	smiles_array[7] = new Array(":-)", "smile.gif");
	smiles_array[8] = new Array("%)", "wacko.gif");
	smiles_array[9] = new Array("*HELP*", "help.gif");
	smiles_array[10] = new Array("*WALL*", "dash1.gif");
	smiles_array[11] = new Array("*SCRATCH*", "scratch_one-s_head.gif");

	smiles_array[12] = new Array("*PARDON*", "pardon.gif");
	smiles_array[13] = new Array("*TIRED*", "boredom.gif");
	smiles_array[14] = new Array("*THUMBS_UP*", "good.gif");
	smiles_array[15] = new Array("*BRAVO*", "clapping.gif");
	smiles_array[16] = new Array("*CRAZY*", "crazy.gif");
	smiles_array[17] = new Array("*WRITE*", "mail1.gif");

	smiles_array[18] = new Array(":(", "sad.gif");
	smiles_array[19] = new Array(":-[", "blush2.gif");
	smiles_array[20] = new Array("*mad*", "mad.gif");
	smiles_array[21] = new Array("*topor*", "topor.gif");
	smiles_array[22] = new Array(":-P", "blum2.gif");
	smiles_array[23] = new Array(":-D", "biggrin2.gif");
	smiles_array[24] = new Array(";)", "wink2.gif");


	return smiles_array;
}

function img2smiles(txt, forum_img_path)
{
	var smiles_array = get_smiles();
	for (i=0; i<smiles_array.length; i++)
	{

		txt = txt.replace(new RegExp('<IMG src="'+forum_img_path+'/smiles/'+smiles_array[i][1]+'" border="0">', 'gi'), smiles_array[i][0]);
	}
	return txt;
}

function br2nl(txt)
{
	var re = /<br\s*\/?>/gi;
	var s = txt.replace(re, "");
	return s;
}


function bold(txt)
{
	txt = txt.replace(new RegExp('<B>', 'gi'), '[b]');
	txt = txt.replace(new RegExp('</B>', 'gi'), '[/b]');
	return txt;
}

function italic(txt)
{
	txt = txt.replace(new RegExp('<I>', 'gi'), '[i]');
	txt = txt.replace(new RegExp('</I>', 'gi'), '[/i]');
	return txt;
}

function underline(txt)
{
	txt = txt.replace(new RegExp('<U>', 'gi'), '[u]');
	txt = txt.replace(new RegExp('</U>', 'gi'), '[/u]');
	return txt;
}

function striped(txt)
{
	txt = txt.replace(new RegExp('<S>', 'gi'), '[s]');
	txt = txt.replace(new RegExp('</S>', 'gi'), '[/s]');
	return txt;
}


function div2quote(post)
{
	post = post.replace(new RegExp('<DIV class="quote"><DIV class="auth">', 'gi'),'[quote="');
	post = post.replace(new RegExp('</DIV><DIV class="bg"><DIV class="text">', 'gi'),'"]');
	post = post.replace(new RegExp('<DIV class="quote"><DIV class="bg"><DIV class="text">', 'gi'),'[quote]');
	post = post.replace(new RegExp('<SPAN id="text"></SPAN></DIV></DIV></DIV>', 'gi'),'[/quote]');
	return post;
}

function size(txt)
{
	txt = txt.replace(new RegExp('</SPAN></FONT>', 'gi'),'[/size]');
	txt = txt.replace(new RegExp('<FONT id="size" size="', 'gi'),'[size=');
	txt = txt.replace(new RegExp('"><SPAN>', 'gi'),']');
	return txt;
}

function color(txt)
{
	txt = txt.replace(/\<font\ id=\"color\" color=\"([\#0-9a-z]+)\"\>/, '[color=$1]');	
	txt = txt.replace(new RegExp('</font>', 'gi'),'[/color]');		
	return txt;
}

function url(txt)
{
	txt = txt.replace(/\<a[\ ]+href=\"([^"]+)\"[\ ]+target=\"blank\"\>([^\<]+)\<\/a\>/gi, '[url=$1]$2[/url]');	
	return txt;
}

function img(txt)
{
	txt = txt.replace(new RegExp('<div class="prew"><center><a href="', 'gi'),'[img]');
	txt = txt.replace(/\" target=\"blank\"><img src=\"[^\"]+\" width=\"400\"><\/a><\/center><\/div>/gi,'[/img]');	
	return txt;
}

function parse_text(txt, forum_img_path)
{
	txt = br2nl(txt);
	if (txt.indexOf('<div class="quote">') != -1)
	{
		txt = div2quote(txt);
	}
	txt = img2smiles(txt, forum_img_path);
	txt = bold(txt);
	txt = italic(txt);
	txt = underline(txt);
	txt = striped(txt);

	// сначала size потом color
	if (txt.indexOf('<font id="size"') != -1)
	{
		txt = size(txt);
	}
	if (txt.indexOf('<font id="color"') != -1)
	{
		txt = color(txt);
	}
	if (txt.indexOf('<div class="prew"') != -1)
	{
		txt = img(txt);
	}
	if (txt.indexOf('<a href="') != -1)
	{
		txt = url(txt);
	}
	return txt; 
}

function nl2br(txt) {
   txt = txt.replace(/([^>])\n/g, '$1<br />\n');
    return txt;
}

function quote2div(txt)
{	
	var quote_array = txt.split('[');
	var temp_txt = '';
	for (i=0; i<quote_array.length; i++)
	{
		if (quote_array[i].substr(0, 6)=='quote=')
		{
			var begin  = quote_array[i].indexOf('quote="')+7;
			var end = quote_array[i].indexOf('"]');
			var auth = quote_array[i].substring(begin, end);	
			if (auth)
			{
				txt = txt.replace('[quote="'+auth+'"][/quote]', '');
				txt = txt.replace('[quote="'+auth+'"]', '<DIV class="quote"><DIV class="auth">'+auth+'</DIV><DIV class="bg"><DIV class="text">');
			}
		}		
	}
	txt = txt.replace(/\[quote\]/g, '<DIV class="quote"><DIV class="bg"><DIV class="text">');
	txt = txt.replace(/\[\/quote\]/g, '<SPAN id="text"></SPAN></DIV></DIV></DIV>');
	
	return txt;
}
function smiles2img(txt)
{
	forum_img_path = '/forum/img';
	var smiles_array = get_smiles();
		
	for (i=0; i<smiles_array.length; i++)
	{
		smile = smiles_array[i][0];		
		smile = smile.replace(/\%/g, '\\%');
		smile = smile.replace(/\[/g, '\\[');
		smile = smile.replace(/\]/g, '\\]');
		smile = smile.replace(/\(/g, '\\(');
		smile = smile.replace(/\)/g, '\\)');
		smile = smile.replace(/\{/g, '\\{');		
		smile = smile.replace(/\}/g, '\\}');
		smile = smile.replace(/\*/g, '\\*');
		smile = smile.replace(/\-/g, '\\-');
		smile = smile.replace(/\+/g, '\\+');
		smile = smile.replace(/\=/g, '\\=');
		smile = smile.replace(/\?/g, '\\?');		
		smile = smile.replace(/\!/g, '\\!');		
		smile = smile.replace(/\:/g, '\\:');
		smile = smile.replace(/\./g, '\\.');			
		smile = smile.replace(/\^/g, '\\^');
		smile = smile.replace(/\$/g, '\\$');
		smile = smile.replace(/\0/g, '\\0');
		smile = smile.replace(/\b/gi, '\\b');
		smile = smile.replace(/\n/gi, '\\n');		
		smile = smile.replace(/\f/gi, '\\f');
		smile = smile.replace(/\r/gi, '\\r');		
		smile = smile.replace(/\t/gi, '\\t');
		smile = smile.replace(/\v/gi, '\\v');
		smile = smile.replace(/\d/gi, '\\d');		
		//smile = smile.replace(/\w/gi, '\\w');
		smile = smile.replace(/\s/gi, '\\s');		
		smile = smile.replace(/\o/gi, '\\o');	
		
		smile_exp = new RegExp(smile, 'gi');
		txt = txt.replace(smile_exp, '<IMG src="'+forum_img_path+'/smiles/'+smiles_array[i][1]+'" border="0">');
	}
	return txt;
}
function b2bold(txt)
{
	txt = txt.replace(/\[b\]/g, '<b>');
	txt = txt.replace(/\[\/b\]/g, '</b>');
	return txt;
}
function i2italic(txt)
{
	txt = txt.replace(/\[i\]/g, '<i>');
	txt = txt.replace(/\[\/i\]/g, '</i>');
	return txt;
}

function u2underline(txt)
{
	txt = txt.replace(/\[u\]/g, '<u>');
	txt = txt.replace(/\[\/u\]/g, '</u>');
	return txt;
}

function s2striped(txt)
{
	txt = txt.replace(/\[s\]/g, '<s>');
	txt = txt.replace(/\[\/s\]/g, '</s>');
	return txt;
}

function size2font(txt)
{
	txt = txt.replace(/\[size=([0-9]+)\]/gi, '<font size="$1"><span>');
	txt = txt.replace(/\[\/size\]/gi, '</span></font>');	
	return txt;	
}

function color2font(txt)
{
	txt = txt.replace(/\[color=([\#a-z0-9]+)\]/gi, '<font color="$1">');
	txt = txt.replace(/\[\/color\]/gi, '</font>');
	return txt;	
}


function url2href(txt)
{
	txt = txt.replace(/\[url=([^\"]+)\]([^\]]+)\[\/url\]/gi, '<a href="$1" target="blank">$2</a>');
	return txt;
}

function img2image(txt)
{
	txt = txt.replace(/\[img\]([^\]]+)\[\/img\]/gi, '<div class="prew"><a href="$1" target="blank"><img src="$1" width="400"></a></div>');
	return txt;
}