                            if ((gb == 1) || (work == 1) || (work == 34) || (work == 9)){
var tagNameCell = 'DIV'
if (gb ==1) {tagNameCell = 'TD'} 
var cellArray = document.getElementsByTagName (tagNameCell)
var lenCA = cellArray.length
var siz = 2
var nflag = 0
var mflag = 0
var tabflag = 0
var siflag = false
var upflag = false
var dwflag = false
var monflag = false
var sflag = false
var mailflsg = false
var alflag = false
var tabBord
var styleOfTab
var fimg
var re

if (fimg == undefined) fimg = 0
if (re == undefined) re = /[^A-Za-z0-9_/\.:~-]/


if (styleOfTab == undefined) {tabBord = 'STYLE="border:1px solid '+diz[8]+'"'; styleOfTab = 'font1'
}else {tabBord = ''}

function deterTag (fin){									//функция вырезки BB тегов
newtext = textCell.slice(0,fin)
while (fin < lentext){
flag = 1
while (flag){
if (textCell.charAt(fin) == '[') flag = 0
else newtext += textCell.charAt (fin)
if (fin == lentext) flag = 0
fin++
}
var lin = fin-1
flag = 1
while (flag){
if (lin == lentext) flag = 0
lin++
if (textCell.charAt(lin) == '[') {
newtext += textCell.slice(fin-1,lin)
fin = lin+1}
if (textCell.charAt(lin) == ']') flag = 0
}
	if (textCell.charAt(lin) == ']') {
insertText = writeTag(textCell.slice (fin,lin))
newtext += insertText}
fin = lin+1
}
return newtext}

function writeTag (bbTag){									//функция определения тегов
parTag = bbTag.split(':')
switch (parTag[0]){
	case 'size':	//размер шрифта
		if (fsize && !isNaN(parTag[1])){
		if (parTag[1].charAt(0) == '+'){ siz += eval(parTag[1])}
			else { if (parTag[1].charAt(0) == '-'){ siz += eval(parTag[1])}
				else {siz = (parTag[1])}}
		if (siz > 7) siz = 7
		if (siz < 1) siz = 1
		siz = 10+siz*(siz-1)
		siflag = true
		return '<FONT STYLE="font-size:'+siz+'px">';}
		break
	case '/size':
		if (fsize && siflag){
		siz = 2
		siflag = false
		return '</FONT>';}
		break
		
	case 'up':		//Надстрочный индекс
		if (fup){
		displ = 4+0.4*(siz*siz-4)
		upflag = true
		return '<SPAN STYLE="position: relative; top:-'+displ+'px;"><SMALL>';}
		break
	case '/up':
		if (fup && upflag){
		upflag = false
		return '</SMALL></SPAN>';}
		break
		
	case 'dw':		//Подстрочный индекс
		if (fdw){
		displ = 2+0.2*(siz*siz-4)
		dwflag = true
		return '<SPAN STYLE="position: relative; top:'+displ+'px;"><SMALL>';}
		break
	case '/dw':
		if (fdw && dwflag){
		dwflag = false
		return '</SMALL></SPAN>';}
		break

	case 'nlist':	//Нумерованиый список
		if (fnum){
		if (!nflag) {beg = '<OL Type="1">'}else{beg = ''}
		nflag = true
		return beg+'<LI>';}
		break
	case '/nlist':
		if (fnum && nflag){
		nflag = false
		return '</OL>';}
		break

	case 'mlist':	//Маркерованый список
		if (fmark){
		if (!nflag) {beg = '<UL>'}else{beg = ''}
		nflag = true
		return beg+'<LI>';}
		break
	case '/mlist':
		if (fmark && nflag){
		nflag =false
		return '</UL>';}
		break

	case 'mono':	//Моноширный шрифт
		if (fmono){
		monflag = true
		return '<FONT CLASS="font1" STYLE="font-family:Courier New;">';}
		break
	case '/mono':
		if (fmono && monflag){
		monflag = false
		return '</FONT>';}
		break

	case 's':	//Перечеркнутый шрифт
		if (fcross){
		sflag = true
		return '<S>';}
		break
	case '/s':
		if (fcross && sflag){
		sflag = false
		return '</S>';}
		break

	case 'mailto':	//Электронная почта
		if (fmail){
		mailflsg = true
		return '<A HREF=mailto:'+parTag[1]+'><U>';}
		break
	case '/mailto':
		if (fmail && mailflsg){
		mailflsg = false
		return '</U></A>';}
		break

	case 'tb':		//Таблица
		if (ftab){
		tabflag ++
		var insertTableText = '<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=100% ALIGN="CENTER"><TR><TD '+tabBord+' CLASS='+styleOfTab+'>';
		return insertTableText+insertTableText;}
		break
	case '/tb':
		if (ftab && (tabflag != 0)){
		tabflag --
		return '</TD></TR></TABLE></TD></TR></TABLE>';}
		break
	case 'cl':
		if (fcell && ftab && (tabflag != 0)){
		return '</TD><TD '+tabBord+' CLASS='+styleOfTab+'>';}
		break
	case 'st':
		if (fcell && ftab && (tabflag != 0)){
		return '</TD></TR><TR><TD '+tabBord+' CLASS='+styleOfTab+'>';}
		break

		
	case 'align':	//Выравнивание
		if (falign && (parTag[1] == 'left' || parTag[1] == 'center' || parTag[1] == 'right')){
		alflag = true
		return '<P ALIGN='+parTag[1]+'>';}
		break
	case '/align':
		if (falign && alflag){
		alflag = false
		return '</P>';}
		break

	case 'hr': //Горизонтальная линия
		return '<HR SIZE=1>';
		break

	case 'imglnk': //Ссылка через картинку
		if (fimg){
		if (parTag[1] != 'http' && parTag[1] != 'ftp' && parTag[3] != 'http') break
		if (re.test(parTag[4])) break
		return '<A HREF='+parTag[1]+':'+parTag[2]+' TARGET="_blank"><IMG SRC='+parTag[3]+':'+parTag[4]+' BORDER=0></A>';}
		break

		
	default:
		retsrt ='[' + bbTag + ']';
		return retsrt
}
retsrt ='[' + bbTag + ']';
return retsrt
}}

for (n=0; n<lenCA; n++){
textCell = cellArray[n].innerHTML						  //HTML внутри тега DIV
lentext = cellArray[n].innerHTML.length					  //длина HTML строчки
inNum = textCell.indexOf ('[')							  //первое вхождение [
if ((inNum != -1)&&(textCell.charAt(inNum+1) != '<')){    //есть ли вхождение [ и текст не форматирован
cellArray[n].innerHTML = deterTag (inNum, textCell, lentext)
}}
