﻿/*
BBComplex - Javascript модуль для сайтов системы UcoZ
Copyright © VACion, 2008

Автор скрипта - VACion, ICQ#: 6-343-207, e-mail: vacion(at)li.ru.
При улучшении скрипта принимали участие Grey, FENIX, BRP, AThLoN и некоторые другие участники форумов Лаборатории Ватсона.

Подробная информация: http://vacionlib.org.ru/forum/18-49-1
-------

BBComplex - это комплекс скриптов для сайтов, созданных в системе UcoZ, позволяющий использовать новые BB-Коды и альтернативную панель BB-Кодов в форме добавления сообщений. BBComplex имеет возможность тонкой настройки для каждого своего компонента. 

В этот скрипт входят:

    * Спойлер
    * Оффтопик
    * Бегущая строка
    * Таблицы
    * FLV-Плеер
	* Статус ICQ
	* Всплывающий текст
    * Расширенная новая панель добавления сообщений
	* BB-Коды подчеркивания
	* Дополнительные теги оформления текста
	* Ваши BB-Коды?
*/

//Переменные скрипта
//Массив BB-Кодов
 /*
   Внимание! Обрабатываются только те коды, которые содержатся в этом массиве!
   Если вам не нужны некоторые BB-Коды, то их следует удалять из этого массива.
   
   Вы можете создавать свои BB-Коды. Для этого вы должны определить функцию вида:

var _tag_array_XXX=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","YYY"),
 _tag_set("Code",new Array("AAA","BBB"))
));}

   Где XXX - индентификатор BB-Кода, YYY - его BB-Тег, AAA - начало кода вашего BB-Кода, BBB - конец кода вашего BB-Кода.
   AAA(начало кода вашего BB-Кода) может содержать коды вида {$n:...}. Эти коды будут заменяться на значения n'ного параметра в теге BB-Кода. Если BB-Код вызывается без параметра, то будет использоваться значение, которое стоит после ':'. К примеру:

var _tag_array_TEST=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","бНОПНЯ"),
 _tag_set("Code",new Array("бНОПНЯ1: '{$0:ПРЕВЕД МЕДВЕД}'",""))
));}

   будет преобразовывать [бНОПНЯ][/бНОПНЯ] в бНОПНЯ1: 'ПРЕВЕД МЕДВЕД', а [бНОПНЯ=DDDD][/бНОПНЯ] - в бНОПНЯ1: 'DDDD'.

   После этого вы должны дописать вызов этой функции в массив _tag_array, к примеру:

_tag_array_XXX(),

   Учтите, что после последнего элемента массива не нужно ставить запятую.
*/
var _tag_array=function(){return(new Array(
_tag_array_cut(),
_tag_array_tbl(),
_tag_array_flv(),
_tag_array_off(),
_tag_array_icq(),
_tag_array_stext(),
_tag_array_dottedu(),
_tag_array_doubleu(),
_tag_array_wavy_green_u(),
_tag_array_wavy_red_u(),
_tag_array_highlight(),
_tag_array_move()
));}

//Переменные настроек(пользовательские)
//Настройка
 //Дополнительные теги оформления текста
  //Подчеркивание пунктиром
var _tag_array_dottedu=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","dotted"),
 _tag_set("Code",new Array('<span style="line-height: 1.5;border-bottom: 1px dotted;">','</span>'))
));}
  //Двойное подчеркивание
var _tag_array_doubleu=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","double"),
 _tag_set("Code",new Array('<span style="line-height: 1.5;border-bottom: 3px double;">','</span>'))
));}
  //Волнистое подчеркивание
   //Зеленое
var _tag_array_wavy_green_u=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","wavygreen"),
 _tag_set("Code",new Array('<span style="line-height: 1.5;background: url(\''+DefMsgIconUrl+'wave_green.gif\') repeat-x 100% 100%;white-space: nowrap;padding-bottom: 2px;">','</span>'))
));}
   //Красное
var _tag_array_wavy_red_u=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","wavyred"),
 _tag_set("Code",new Array('<span style="line-height: 1.5;background: url(\''+DefMsgIconUrl+'wave_red.gif\') repeat-x 100% 100%;white-space: nowrap;padding-bottom: 2px;">','</span>'))
));}
  //Подсветка
var _tag_array_highlight=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value","highlight"),
 _tag_set("Code",new Array('<span style="background-color:{$0:transparent}">','</span>'))
));}


 //ICQ
  //Тег BB-Кода ICQ
var defICQ = 'icq';
  //Заголовок
var defICQTitle = 'ICQ: ';
  //Вариант картинки
var defICQPictVariant = 5;
  //HTML-Код ICQ
var defICQCode='<span style="font-weight: bold;">';
var defICQEndCode='</span>';
var _tag_array_icq=function(){return(new Array(
 _tag_set("Type",6)
));}


 //Вспывающий текст
  //Тег BB-Кода на всплывающий текст
var defSText = 'show';
  //Заголовок по-умолчанию
var defSTextTitle = 'Наведите указатель мыши для просмотра';
  //HTML-Код всплывающего текста
   //Начало кода
var defSTextPreCode='<span style="font-weight: bold;" title="';
   //Середина кода
var defSTextCode='">[';
   //Конец кода
var defSTextPostCode=']</span>';
var _tag_array_stext=function(){return(new Array(
 _tag_set("Type",5)
));}


 //Оффтопик
  //Тег BB-Кода на оффтопик
var defOff = 'off';
  //Заголовок оффтопика
var defOffMsgTitle = 'Оффтопик';
  //HTML-Код оффтопика
var defOffTitleCode = '<div class="bbOffBlock"><div class="bbOffName" style="padding-left:5px;font-weight:bold;font-size:7pt">';
var defOffCode = '</div><div class="offtopicMessage" style="color: gray;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight>230?\'200px\':\'auto\');  ">';
var defOffEndCode = '</div></div>';
  //Определение обработки оффтопика
var _tag_array_off=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value",defOff),
 _tag_set("Code",new Array(defOffTitleCode+defOffMsgTitle+defOffCode,defOffEndCode))
));}


 //Бегущая строка
  //Тег BB-Кода на бегущую строку
var defMove = 'move';
  //HTML-Код бегущей строки
var defMoveStartCode = '<marquee behavior="scroll">';
var defMoveEndCode = '</marquee>';
  //Определение обработки бегущих строк
var _tag_array_move=function(){return(new Array(
 _tag_set("Type",4),
 _tag_set("Value",defMove),
 _tag_set("Code",new Array(defMoveStartCode,defMoveEndCode))
));}


 //Таблицы
  //HTML-Код BB-Тега [table]
var defTableStartCode = '<table width="100%" cellspacing="1" cellpadding="1" style="border: 2px ridge; border-collapse: collapse;">';
  //HTML-Код BB-Тега [/table]
var defTableEndCode = '</table>';
  //HTML-Код BB-Тега [tr]
var defTRStartCode = '<tr>';
  //HTML-Код BB-Тега [/tr]
var defTREndCode = '</tr>';
  //HTML-Код BB-Тега [td]
   //Начало кода
var defPRETDStartCode = '<td';
   //Конец кода
var defPOSTTDStartCode = ' style="border: 2px ridge; border-collapse: collapse;">';
  //HTML-Код BB-Тега [/td]
var defTDEndCode = '</td>';
  //Определение обработки таблиц
var _tag_array_tbl=function(){return(new Array(
_tag_set("Type",2)
));}


 //Спойлер
  //Тег BB-Кода спойлера
var defCut = "cut";
  //Тег BB-Кода скрытого от гостей спойлера
var defCutNG = "cut noguest";
  //Всегда ли скрывать спойлер от гостей? (true|false)
var AlwaysHideSpoilersFromGuests = false;
  //Текст на спойлере без параметра "=текст на спойлере"
var DefaultSpoilerText = "Читать далее";
  //Текст который будет виден гостям на месте скрытого от гостей спойлера
var DefaultHiddenTextWarning = "Этот текст скрыт от гостей"; 
  //Расширенная кнопка добавления спойлера
var eXtendedSpoilerButton = false;
  //Значок для нераскрытого спойлера(поставьте URL картинки в кавычках(' или ") вместо false, если желаете включить опцию)
var x_imageSpoilerIcon_cl = false; //"spoiler/plus.gif";
  //Значок для раскрытого спойлера(поставьте URL картинки в кавычках(' или ") вместо false, если желаете включить опцию)
var x_imageSpoilerIcon_op = false; //"spoiler/minus.gif";
  //HTML-Код спойлера
   //Эти знаки будут добавлены перед и после "Читать далее" или заданного текста соответственно.
var defPreSPNSymbol = '[ ';
var defPostSPNSymbol = ' ]';
   //Начало кода названия скрытого спойлера для гостей
var defPreHTWSPMsgTitle = ('<div><b><span class="spMsgTitle">'+defPreSPNSymbol+'<a href="javascript://" onClick="openLayerB(\'LF\',0,\'/index/40\',\'Login\',250,130,1);return false;">');
   //Конец кода названия скрытого спойлера для гостей
var defPostHTWSPMsgTitle = ('</a>'+defPostSPNSymbol+'</span></b><span style="display: none;">');
   //Начало кода названия скрытого спойлера со своим названием для гостей
var defPreHTW2SPMsgTitle = ('<div><b><span class="spMsgTitle">'+defPreSPNSymbol);
   //Середина кода названия скрытого спойлера со своим названием для гостей
var defPostHTW2SPMsgTitle = (' <a href="javascript://" onClick="openLayerB(\'LF\',0,\'/index/40\',\'Login\',250,130,1);return false;">(');
   //Конец кода названия скрытого спойлера со своим названием для гостей
var defPost2HTW2SPMsgTitle = (')</a>'+defPostSPNSymbol+'</span></b><span style="display: none;">');
   //Начало кода названия спойлера
var f_defPreSPMsgTitle1a=function(rval){return('<div><b><a href="javascript://" onClick="try{toggle_sppmingsrc(\'sppmimg_'+rval+'\');toggle_show(\'spMsgEntry$ID$');}
   //Середина кода названия спойлера
var f_defPreSPMsgTitle1b = ( '\');return false;}catch(e){alert(e);}"><span class="spMsgTitle">'+defPreSPNSymbol );
   //Начало кода иконки спойлера в сообщении(используется для иконок плюса и минуса)
var f_defPreSPMsgSPICON_x_imageSp = function(){return('<img border="0" align="absmiddle" src="'+DefMsgIconUrl+x_imageSpoilerIcon_cl+'" id="sppmimg_');}
   //Конец кода иконки спойлера в сообщении(используется для иконок плюса и минуса)
var f_defPostSPMsgSPICON_x_imageSp = '">&nbsp;';
   //Конец кода названия спойлера
var f_defPostSPMsgTitle1a = (defPostSPNSymbol+'</span></a></b><span class="spMsgText" id="spMsgEntry$ID$');
   //Начало кода блока спойлера
var f_defPostSPMsgTitle1b = ('" style="display: none;">');
   //Конец кода блока спойлера
var defPostSPMsg = ('</span></div>');
   //Определение обработки спойлеров
var _tag_array_cut=function(){return(new Array(
_tag_set("Type",1)
));}


 //FLV-Плеер
  //Тег BB-Кода FLV-Плеера
var defPlayer = "player";
  //Фоновый рисунок(путь)
var defFLVbackpict = false; //Пример - "http://mysite.ru/flvplayer.png"
  //Цвета
   //backcolor
var defFLVbackcolor = "447136";
   //frontcolor
var defFLVfrontcolor = "1e9a17";
  //Логотип
var defFLVtitlepict = false; //Пример - "http://mysite.ru/flvplogo.png"
  //HTML-Код FLV-Плеера
var defFLVStartCode = '<embed src="http://vacionlib.org.ru/player/player.swf" allowscriptaccess="always" allowfullscreen="true" flashvars="height=375&width=500&file=';
var defFLVEndCode = 'height="375" width="500">';
  //Определение обработки FLV-Плеера
var _tag_array_flv=function(){return(new Array(
_tag_set("Type",3)
));}


 //Форма добавления сообщений
  //При иконках по-умолчанию можно задать фон кнопок из форумов SMF - smfdarkgreen(стандартный Лаборатории Ватсона) и smfblue(стандартный SMF)
   //Путь к папке с иконками(Имена можно посмотреть в коде)
var DefMsgIconUrl = "http://gamesmir.com/bbicons/";
   //Тема фона кнопок bb-панели(по-умолчанию, smfdarkgreen|smfgrey|smfblue. Каждая тема - в одноименной папке.)
var _bb_PanelButtonTheme = "smfdarkgreen";
   //Фоновый рисунок под кнопками в форме добавления сообщений
var DefMsgIconBackgroundImageDefault = "/bbc_bg.gif";
   //Фоновый рисунок под кнопками в форме добавления сообщений при наведенном курсоре мыши
var DefMsgIconBackgroundImageOver = "/bbc_hoverbg.gif";
   //Фоновый рисунок под кнопками в форме добавления сообщений при незакрытом теге
var DefMsgIconBackgroundImageMarked = "/bbc_markedbg.gif";
   //Фон под кнопками в форме добавления сообщений
var DefMsgIconBackground = "url('"+DefMsgIconUrl+_bb_PanelButtonTheme+DefMsgIconBackgroundImageDefault+"')";
  //Подсвечивание кнопок при наведении мыши
var HighLightButtons = true;
  //Подсвечивание кнопок с незакрытыми тегами
var HighLightUnclosedTagButtons = true;
  //Сообщение в запросе адреса ссылки
var text_enter_url = "URL-Адрес ссылки";
  //Сообщение в запросе названия ссылки
var text_enter_url_name = "Название ссылки";
  //Сообщение в запросе адреса изображения
var text_enter_image = "URL-Адрес изображения";
  //Сообщение в запросе e-mail адреса
var text_enter_email = "E-mail адрес";
  //Сообщение в запросе пункта списка
var list_prompt = "Пункт списка";
  //Элементы панели bb-кодов
   //Массив элементов bb-панели. Отсюда можно убирать кнопки, добавлять разделители и разрывы строк.
   //После каждого элемента, кроме последнего должна стоять запятая.
var panel_array=function(){return(new Array(
bb_bold(),
bb_italicize(),
bb_underline(),
bb_defmove(),
new_bb_Block(bb_customblock1()),
bb_divider(),
bb_left(),
bb_center(),
bb_right(),
bb_pre(),
bb_divider(),
bb_sub(),
bb_sup(),
bb_divider(),
bb_list(),
bb_hide(),
bb_divider(),
bb_smls(),
bb_keybrd(),
bb_translit(),
bb_doubledivider(),
bb_closeall(),
bb_breakspace(),
bb_url(),
bb_email(),
bb_icq(),
bb_img(),
bb_divider(),
bb_code(),
bb_offtop(),
bb_quote(),
bb_defcut(),
bb_divider(),
bb_hr(),
bb_divider(),
bb_video(),
bb_flv(),
bb_snd(),
bb_divider(),
bb_graffiti(),
bb_space(),
bb_imgupllink(),
bb_breakspace(),
bb_fsize(),
bb_space(),
bb_font(),
bb_space(),
bb_fcolor(),
bb_space(),
bb_special()
));}

var bb_customblock1=function(){return(new Array(
bb_strike(),
bb_over(),
bb_doubleunderline(),
bb_dottedunderline(),
bb_wavygreen(),
bb_wavyred(),
bb_stext(),
bb_highlight()
));}
   
   //Назначение кнопок BB-Панели
    //Для назначения кнопок используется функция _bb_Button
	//Синтаксис - _bb_set(параметр,значение)[, _bb_set(параметр,значение)[ , _bb_set(параметр,значение) [...]]]
	//Параметры - "Flags", "Type", "Value", "Where", "Title", "GIFImage", "Special"
	//"Flags" - 0 - обычный, 1 - добавить '=' после начального тега.
    //"Type" - Тип кнопки. Тип кнопки может быть:
     //0-"special" - позволяет указать параметр "Special"(с помощью _bb_set) в котором можно прописать свой код.
	 //Использование типа 0 без параметра "Special" дает тот же эффект, что и с типом 13
     //1-"simple" - стандартная кнопка BB-Кода.
	 //2-"once" - BB-Код, без закрывающего тега.
	 //3-"url", 4-"email", 5-"img", 6-"cut", 7-"list", 8-"video", 9-"audio", 10-"sml", 11-"keybrd", 12-"translit"
	 //13-"none" - при использовании "Type" >= 13 рисуется только изображение кнопки, без действий при нажатии.
	//"Value" - Значение тега BB-Кода
	//"Where" - Применяется к форме с заданным ID. По-умолчанию, "message".
	//"Title" - Заголовок кнопки
	//"GIFImage" - Изображение в формате GIF. Внимание, указывать нужно только имя изображения и, если нужно, подкатолог, в котором оно лежит
	 //относительно переменной DefMsgIconUrl, без расширения .gif
	//"Special" - Дополнительные функции кнопки в формате javascript. Прописываются в onClick="..." Работают со типами кнопок < 13
var bb_bold=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","b"),
 _bb_set("Where","message"),
 _bb_set("Title","Жирный"),
 _bb_set("GIFImage","bold") 
)));}
var bb_icq=function(){return(_bb_Button(new Array(
 _bb_set("Type",2),
 _bb_set("Value","icq"),
 _bb_set("Where","message"),
 _bb_set("Title","ICQ номер и его статус"),
 _bb_set("GIFImage","icq") 
)));}
var bb_doubleunderline=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","double"),
 _bb_set("Where","message"),
 _bb_set("Title","Двойное подчеркивание"),
 _bb_set("GIFImage","double") 
)));}
var bb_stext=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","show"),
 _bb_set("Where","message"),
 _bb_set("Title","Всплывающий текст"),
 _bb_set("GIFImage","stext")
)));}
var bb_dottedunderline=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","dotted"),
 _bb_set("Where","message"),
 _bb_set("Title","Пунктирное подчеркивание"),
 _bb_set("GIFImage","dotted") 
)));}
var bb_wavygreen=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","wavygreen"),
 _bb_set("Where","message"),
 _bb_set("Title","Подчеркивание зеленой волнистой линией"),
 _bb_set("GIFImage","wavygreen") 
)));}
var bb_wavyred=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","wavyred"),
 _bb_set("Where","message"),
 _bb_set("Title","Подчеркивание красной волнистой линией"),
 _bb_set("GIFImage","wavyred") 
)));}
var bb_highlight=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Flags",1),
 _bb_set("Value","highlight"),
 _bb_set("Where","message"),
 _bb_set("Title","Подсветка(задание цвета фона)"),
 _bb_set("GIFImage","highlight") 
)));}
var bb_italicize=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","i"),
 _bb_set("Where","message"),
 _bb_set("Title","Курсив"),
 _bb_set("GIFImage","italicize") 
)));}
var bb_underline=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","u"),
 _bb_set("Where","message"),
 _bb_set("Title","Подчеркивание"),
 _bb_set("GIFImage","underline") 
)));}
var bb_defmove=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value", defMove),
 _bb_set("Where","message"),
 _bb_set("Title","Бегущая строка"),
 _bb_set("GIFImage","move") 
)));}
var bb_strike=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","s"),
 _bb_set("Where","message"),
 _bb_set("Title","Зачеркивание"),
 _bb_set("GIFImage","strike") 
)));}
var bb_over=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","o"),
 _bb_set("Where","message"),
 _bb_set("Title","Надчеркивание"),
 _bb_set("GIFImage","over") 
)));}
var bb_url=function(){return(_bb_Button(new Array(
 _bb_set("Type",3),
 _bb_set("Where","message"),
 _bb_set("Title","Гиперссылка"),
 _bb_set("GIFImage","url") 
)));}
var bb_email=function(){return(_bb_Button(new Array(
 _bb_set("Type",4),
 _bb_set("Where","message"),
 _bb_set("Title","E-mail"),
 _bb_set("GIFImage","email") 
)));}
var bb_img=function(){return(_bb_Button(new Array(
 _bb_set("Type",5),
 _bb_set("Where","message"),
 _bb_set("Title","Изображение"),
 _bb_set("GIFImage","img") 
)));}
var bb_defcut=function(){return(_bb_Button(new Array(
 _bb_set("Type",6),
 _bb_set("Title", "Читать далее"),
 _bb_set("Value", defCut),
 _bb_set("GIFImage", "cut") 
)));}
var bb_quote=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","quote"),
 _bb_set("Where","message"),
 _bb_set("Title","Цитата"),
 _bb_set("GIFImage","quote") 
)));}
var bb_offtop=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value", defOff),
 _bb_set("Where","message"),
 _bb_set("Title","Оффтопик"),
 _bb_set("GIFImage","offtop") 
)));}
var bb_hide=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","hide"),
 _bb_set("Where","message"),
 _bb_set("Title","Скрытие от гостей"),
 _bb_set("GIFImage","hide") 
)));}
var bb_code=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","code"),
 _bb_set("Where","message"),
 _bb_set("Title","Код"),
 _bb_set("GIFImage","code") 
)));}
var bb_list=function(){return(_bb_Button(new Array(
 _bb_set("Type",7),
 _bb_set("Where","message"),
 _bb_set("Title","Список"),
 _bb_set("GIFImage","list") 
)));}
var bb_left=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","l"),
 _bb_set("Where","message"),
 _bb_set("Title","По левому краю"),
 _bb_set("GIFImage","left") 
)));}
var bb_center=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","c"),
 _bb_set("Where","message"),
 _bb_set("Title","По центру"),
 _bb_set("GIFImage","center") 
)));}
var bb_right=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","r"),
 _bb_set("Where","message"),
 _bb_set("Title","По правому краю"),
 _bb_set("GIFImage","right") 
)));}
var bb_pre=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","j"),
 _bb_set("Where","message"),
 _bb_set("Title","По ширине"),
 _bb_set("GIFImage","pre") 
)));}
var bb_sub=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","sub"),
 _bb_set("Where","message"),
 _bb_set("Title","Нижний индекс"),
 _bb_set("GIFImage","sub") 
)));}
var bb_sup=function(){return(_bb_Button(new Array(
 _bb_set("Type",1),
 _bb_set("Value","sup"),
 _bb_set("Where","message"),
 _bb_set("Title","Верхний индекс"),
 _bb_set("GIFImage","sup") 
)));}
var bb_video=function(){return(_bb_Button(new Array(
 _bb_set("Type",8),
 _bb_set("Where","message"),
 _bb_set("Title","Видео"),
 _bb_set("GIFImage","video") 
)));}
var bb_flv=function(){return(_bb_Button(new Array(
 _bb_set("Type",0),
 _bb_set("Where","message"),
 _bb_set("Title","FLV-Player"),
 _bb_set("Special","tag_flv('message');"),
 _bb_set("GIFImage","player") 
)));}
var bb_snd=function(){return(_bb_Button(new Array(
 _bb_set("Type",9),
 _bb_set("Where","message"),
 _bb_set("Title","Аудио"),
 _bb_set("GIFImage","snd") 
)));}
var bb_hr=function(){return(_bb_Button(new Array(
 _bb_set("Type",2),
 _bb_set("Value","hr"),
 _bb_set("Where","message"),
 _bb_set("Title","Линия"),
 _bb_set("GIFImage","hr") 
)));}
var bb_smls=function(){return(_bb_Button(new Array(
 _bb_set("Type",10),
 _bb_set("Where","message"),
 _bb_set("Title","Все смайлы"),
 _bb_set("GIFImage","smls") 
)));}
var bb_keybrd=function(){return(_bb_Button(new Array(
 _bb_set("Type",11),
 _bb_set("Where","message"),
 _bb_set("Title","Виртуальная клавиатура"),
 _bb_set("GIFImage","keyboard") 
)));}
var bb_translit=function(){return(_bb_Button(new Array(
 _bb_set("Type",12),
 _bb_set("Title","Транслитератор латиницы"),
 _bb_set("GIFImage","translit") 
)));}
var bb_graffiti=function(){return(_bb_Button(new Array(
 _bb_set("Type",0),
 _bb_set("Special","window.open('/media/?t=draw;h=1','grafwind','width=800,height=600,top=0,left=0');"),
 _bb_set("Title","Граффити"),
 _bb_set("GIFImage","graffiti") 
)));}
var bb_closeall=function(){return(_bb_Button(new Array(
 _bb_set("Type",0),
 _bb_set("Special","closeall('message','');"),
 _bb_set("Title","Закрыть все незакрытые теги"),
 _bb_set("GIFImage","closeall")
)));}


   //Стиль разделителей(HTML-код)
var bb_divider=function(){return('<img align="middle" border=0 src="' + DefMsgIconUrl + _bb_PanelButtonTheme + '/divider.gif" alt="|" style="margin: 0 2px 0 3px;" />');}
var bb_doubledivider=function(){return('<img align="middle" border=0 src="' + DefMsgIconUrl + _bb_PanelButtonTheme + '/divider.gif" alt="|" style="margin: 0 0px 0 3px;" /><img align="middle" border=0 src="' + DefMsgIconUrl + _bb_PanelButtonTheme + '/divider.gif" alt="|" style="margin: 0 2px 0 0px;" />');}

   //Стиль кнопок встроенных блоков
    //Кнопка(отжатая)
var x_imageBlockIcon_op="block/op1.gif";
    //Кнопка(нажатая)
var x_imageBlockIcon_cl="block/op2.gif";
    //Начало
var bb_inblock_st=function(){return('<a href="javascript://" onclick="toggle_show_inline(\'newBBlockSpan'+_bb_blockcount+'\');_bb_userblock_togglepict(document.getElementById(\'newBBlockImage'+_bb_blockcount+'\'));return false;"><img alt=">" id="newBBlockImage'+_bb_blockcount+'" title="Показать/скрыть блок" align="middle" border="0" src="' + DefMsgIconUrl+x_imageBlockIcon_cl + '" style="margin-left: 3px; margin-right: 2px;"/></a><span id="newBBlockSpan'+_bb_blockcount+'" style="display: none">');}
    //Конец
var bb_inblock_post_st=function(){return('</span>');}

   //Перенос строки
var bb_breakspace=function(){return('<br>');}

   //Пробел
var bb_space=function(){return(' ');}

   //Размер шрифта
var bb_fsize=function(){return('<select name="fsize" class="codeButtons" onchange="alterfont(this.options[this.selectedIndex].value,\'size\',\'message\',\'\');this.selectedIndex=0;"><option value="0">Размер</option><option value="8">8 pt</option><option value="9">9 pt</option><option value="10">10 pt</option><option value="11">11 pt</option><option value="12">12 pt</option><option value="13">13 pt</option><option value="14">14 pt</option><option value="15">15 pt</option><option value="16">16 pt</option><option value="17">17 pt</option><option value="18">18 pt</option></select>');}

   //Цвет шрифта
var bb_fcolor=function(){return('<select name="fcolor" class="codeButtons" onchange="alterfont(this.options[this.selectedIndex].value, \'color\',\'message\',\'\');this.selectedIndex=0;"><option value="0">Цвет</option><option value="blue" style="color:blue">Blue</option><option value="red" style="color:red">Red</option><option value="purple" style="color:purple">Purple</option><option value="orange" style="color:orange">Orange</option><option value="yellow" style="color:yellow">Yellow</option><option value="gray" style="color:gray">Gray</option><option value="green" style="color:green">Green</option></select>');}

   //Шрифт
var bb_font=function(){return('<select name="ffont" class="codeButtons" onchange="alterfont(this.options[this.selectedIndex].value,\'font\',\'message\',\'\');this.selectedIndex=0;"><option value="0">Шрифт</option><option value="Arial">Arial</option><option value="Times">Times</option><option value="Courier">Courier</option><option value="Impact">Impact</option><option value="Geneva">Geneva</option><option value="Optima">Optima</option></select>');}

   //Специальные символы
var bb_special=function(){return('<select name="newsymbols" class="codeButtons" onchange="symbolinssert(this.options[this.selectedIndex].value,\'message\');this.selectedIndex=0;"><option value="0">Специальные символы</option><option value="^">^</option><option value="¤">¤</option><option value="Ґ">Ґ</option><option value="¦">¦</option><option value="§">§</option><option value="©">©</option><option value="Є">Є</option><option value="«">«</option><option value="¬">¬</option><option value="®">®</option><option value="Ї">Ї</option><option value="°">°</option><option value="±">±</option><option value="ґ">ґ</option><option value="µ">µ</option><option value="¶">¶</option><option value="·">·</option><option value="»">»</option><option value="•">•</option><option value="…">…</option><option value="′">′</option><option value="″">″</option><option value="‾">‾</option><option value="⁄">⁄</option><option value="™">™</option><option value="∂">∂</option><option value="∏">∏</option><option value="∑">∑</option><option value="−">−</option><option value="√">√</option><option value="∞">∞</option><option value="∫">∫</option><option value="≈">≈</option><option value="≠">≠</option><option value="≤">≤</option><option value="≥">≥</option><option value="◊">◊</option><option value="¡">¡</option><option value="¢">¢</option><option value="£">£</option><option value="¥">¥</option><option value="¨">¨</option><option value="°">°</option><option value="²">²</option><option value="³">³</option><option value="´">´</option><option value="µ">µ</option><option value="¸">¸</option><option value="¹">¹</option><option value="¼">¼</option><option value="½">½</option><option value="¾">¾</option><option value="¿">¿</option></select>');}

   //Ссылка загрузки изображений
var bb_imgupllink=function(){return('<a class="noun" href="javascript://" onClick="openLayerB(\'UploaderBody\',0,\'/imguploader.xml\',\'Загрузить картинку\',380,300,1,0,0);return false;">Загрузить картинку?</a>');}

//Собственно, сам скрипт
//--------------------------Начало  скрипта--------------------------//
var UZCSCut;
var UnUZCSC;
var BaseCutR;
var BaseCut2R;
var StartCutR;
var StartCut2R;
var EndCutR;
var EndCut2R;
var PreCutR;
var PreCut2R;
var CheckCutR;
var CheckCut2R;
var StringCutR = "undefined";
var StringCut2R = "undefined";
var BoolCutR = false;
var BoolCut2R = false;
var BaseTabR;
var StartTabR;
var EndTabR;
var PreTabR;
var CheckTabR;
var StringTabR = "undefined";
var BoolTabR = false;
var BaseSTR;
var StartSTR;
var EndSTR;
var PreSTR;
var CheckSTR;
var StringSTR = "undefined";
var BoolSTR = false;
var Random = new Array();
Random[0] = 1.0000;
var _bb_flags=0;
var _bb_flagarray=new Array("","siDpE");
var _bb_type=0;
var _bb_typearray=new Array("special","simple","once","url","email","img","cut","list","video","audio","sml","keybrd","translit","none");
var _bb_value=null;
var _bb_where="message";
var _bb_title="Кнопка";
var _bb_GIFImage="empty";
var _bb_special=null;
var _bb_boolsimple_r=false;
var _bb_boolsimplecut_r=false;
var _bb_simplecodes_array=new Array();
var _bb_hihglight_array=new Array();
var _tag_type=0;
var _tag_typearray=new Array("","spoiler","tables","flv","special");
var _tag_value=null;
var _tag_special=null;
var _bb_blockcount=0;

function getInnerHTML(id)
{
	return(document.getElementById(id).innerHTML);
}

function toggle_show(id)
{
	document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'block' : 'none';
}

function toggle_show_inline(id)
{
	document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'inline' : 'none';
}

function pause(millis)
{
setTimeout(";", millis);
}

function toggle_sppmingsrc(id)
{
	if(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op)
	{
		if(document.getElementById(id).src==DefMsgIconUrl+x_imageSpoilerIcon_cl)
		{
			document.getElementById(id).src=DefMsgIconUrl+x_imageSpoilerIcon_op;
		}
		else
		{
			document.getElementById(id).src=DefMsgIconUrl+x_imageSpoilerIcon_cl;
		}
		return true;
	}
	else
	{
		return false;
	}
}

function _tag_set(value1,value2)
{
	return(new Array(value1,value2));
}

function GetRandomChance(startchance,endchance)
{
	var randomvalue = new Array;
	randomvalue[0]=(Math.random()*(startchance/endchance));
	randomvalue[1]=(Math.random()*(endchance/startchance));
	randomvalue[2]=(Math.random()*(48375427/54277435));
	randomvalue[3]=(randomvalue[0]/randomvalue[1]);
	randomvalue[4]=(randomvalue[3]/randomvalue[2]);
	randomvalue[5]=(randomvalue[4]*(startchance/endchance));
	randomvalue[6]=(randomvalue[5]*Math.random()*182473646646*134636463*randomvalue[0]*randomvalue[3]*randomvalue[5]);
	return(randomvalue[6]);
}

function GetSSIODC(siteSpoiler)
{
	BaseCutR=siteSpoiler.indexOf("["+defCut+"=");
	StartCutR=(BaseCutR+("["+defCut+"=").length);
	PreCutR=(siteSpoiler.slice(StartCutR).indexOf("]"));
	EndCutR=(StartCutR+PreCutR);
	CheckCutR=(EndCutR+siteSpoiler.slice(StartCutR).indexOf('['+defCut));
	if(CheckCutR==EndCutR-1||EndCutR<CheckCutR){BoolCutR=true;}
	if(BoolCutR==true){StringCutR=siteSpoiler.slice(StartCutR,EndCutR);}
}

function GetSSIODCNG(siteSpoiler)
{
	BaseCut2R=siteSpoiler.indexOf("["+defCutNG+"=");
	StartCut2R=(BaseCut2R+("["+defCutNG+"=").length);
	PreCut2R=(siteSpoiler.slice(StartCut2R).indexOf("]"));
	EndCut2R=(StartCut2R+PreCut2R);
	CheckCut2R=(EndCut2R+siteSpoiler.slice(StartCut2R).indexOf('['+defCutNG));
	if(CheckCut2R==EndCut2R-1||EndCut2R<CheckCut2R)
	{
		BoolCut2R=true;
	}
	if(BoolCut2R==true)
	{
		StringCut2R=siteSpoiler.slice(StartCut2R, EndCut2R);
	}
}

function RetAHSFGSHS(siteSpoiler)
{
	Random[1]=GetRandomChance(1000000000,100000);
	Random[2]=GetRandomChance(1000000,100);
	siteSpoiler=siteSpoiler.replace('['+defCutNG+']',f_defPreSPMsgTitle1a(""+Random[1]+i)+Random[1]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[1]+i+f_defPostSPMsgSPICON_x_imageSp):"")+DefaultSpoilerText+f_defPostSPMsgTitle1a+Random[1]+i+f_defPostSPMsgTitle1b).replace('['+defCutNG+'=',f_defPreSPMsgTitle1a(""+Random[2]+i)+Random[2]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[2]+i+f_defPostSPMsgSPICON_x_imageSp):"")+StringCut2R+f_defPostSPMsgTitle1a+Random[2]+i+f_defPostSPMsgTitle1b).replace((StringCut2R+']'),'');
	return(siteSpoiler);
}

function RetAHSFGNOSHS(siteSpoiler)
{
	siteSpoiler=siteSpoiler.replace('['+defCutNG+']',defPreHTWSPMsgTitle+DefaultHiddenTextWarning+defPostHTWSPMsgTitle).replace('['+defCutNG+'=',defPreHTW2SPMsgTitle+StringCut2R+defPostHTW2SPMsgTitle+DefaultHiddenTextWarning+defPost2HTW2SPMsgTitle).replace((StringCut2R+']'),'');
	return(siteSpoiler);
}

function RetSTDAHSFG(siteSpoiler)
{
	Random[3]=GetRandomChance(1000000000,100000);
	Random[4]=GetRandomChance(1000000,100);
	siteSpoiler=siteSpoiler.replace('['+defCut+']',f_defPreSPMsgTitle1a(""+Random[3]+i)+Random[3]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[3]+i+f_defPostSPMsgSPICON_x_imageSp):"")+DefaultSpoilerText+f_defPostSPMsgTitle1a+Random[3]+i+f_defPostSPMsgTitle1b).replace('['+defCut+'=',f_defPreSPMsgTitle1a(""+Random[4]+i)+Random[4]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[4]+i+f_defPostSPMsgSPICON_x_imageSp):"")+StringCutR+f_defPostSPMsgTitle1a+Random[4]+i+f_defPostSPMsgTitle1b).replace((StringCutR+']'), '');
	return(siteSpoiler);
}

function RetNOAHSFGSHS(siteSpoiler)
{
	Random[5]=GetRandomChance(1000000000,100000);
	Random[6]=GetRandomChance(1000000,100);
	Random[7]=GetRandomChance(1000000000000,100000);
	Random[8]=GetRandomChance(1000000,100000);
	siteSpoiler=siteSpoiler.replace('['+defCutNG+']',f_defPreSPMsgTitle1a(""+Random[5]+i)+Random[5]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[5]+i+f_defPostSPMsgSPICON_x_imageSp):"")+DefaultSpoilerText+f_defPostSPMsgTitle1a+Random[5]+i+f_defPostSPMsgTitle1b).replace('['+defCutNG+'=',f_defPreSPMsgTitle1a(""+Random[6]+i)+Random[6]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[6]+i+f_defPostSPMsgSPICON_x_imageSp):"")+StringCut2R+f_defPostSPMsgTitle1a+Random[6]+i+f_defPostSPMsgTitle1b).replace((StringCut2R+']'),'');
	siteSpoiler=siteSpoiler.replace('['+defCut+']',f_defPreSPMsgTitle1a(""+Random[7]+i)+Random[7]+i+f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[7]+i+f_defPostSPMsgSPICON_x_imageSp):"")+DefaultSpoilerText+f_defPostSPMsgTitle1a+Random[7]+i+f_defPostSPMsgTitle1b).replace('['+defCut+'=',f_defPreSPMsgTitle1a(""+Random[8]+i)+Random[8]+i+ f_defPreSPMsgTitle1b+(x_imageSpoilerIcon_cl&&x_imageSpoilerIcon_op?(f_defPreSPMsgSPICON_x_imageSp()+Random[8]+i+f_defPostSPMsgSPICON_x_imageSp):"")+StringCutR+f_defPostSPMsgTitle1a+Random[8]+i+f_defPostSPMsgTitle1b).replace((StringCutR+']'),'');
	return(siteSpoiler);
}

function RetNOAHSFGNOSHS(siteSpoiler)
{
	siteSpoiler=siteSpoiler.replace('['+defCutNG+']',defPreHTWSPMsgTitle+DefaultHiddenTextWarning+defPostHTWSPMsgTitle).replace('['+defCutNG +'=',defPreHTW2SPMsgTitle+StringCut2R+defPostHTW2SPMsgTitle+DefaultHiddenTextWarning+defPost2HTW2SPMsgTitle).replace((StringCut2R+']'),'');
	siteSpoiler=siteSpoiler.replace('['+defCut+']',defPreHTWSPMsgTitle+DefaultHiddenTextWarning+defPostHTWSPMsgTitle).replace('['+defCut+'=',defPreHTW2SPMsgTitle+StringCutR+defPostHTW2SPMsgTitle+DefaultHiddenTextWarning+defPost2HTW2SPMsgTitle).replace((StringCutR+']'),'');
	return(siteSpoiler);
}

function RetSpoiler(siteMessage)
{
	if(siteMessage.indexOf("[" + defCut + "=")>-1)
	{
		GetSSIODC(siteMessage);
	}
	if(siteMessage.indexOf("[" + defCutNG + "=")>-1)
	{
		GetSSIODCNG(siteMessage);
	}
	if(AlwaysHideSpoilersFromGuests==false)
	{
		if(ShowHiddenSpoiler==true)
		{
			siteMessage=RetAHSFGSHS(siteMessage);
		}
		else
		{
			siteMessage=RetAHSFGNOSHS(siteMessage);
		}
		siteMessage=RetSTDAHSFG(siteMessage);
	}
	else
	{
		if(ShowHiddenSpoiler==true)
		{
			siteMessage=RetNOAHSFGSHS(siteMessage);
		}
		else
		{
			siteMessage=RetNOAHSFGNOSHS(siteMessage);
		}
	}
	if(siteMessage.indexOf('[/'+defCut+']')>-1)
	{
		siteMessage=siteMessage.replace('[/'+defCut+']',defPostSPMsg);
	}
	return(siteMessage);
}

function RetGenericBB(siteGenericBB,GenericBB,GenericCodes)
{
	if(GenericBB==null||GenericCodes==null)
	{
		return(siteGenericBB);
	}
	else
	{
		if(siteGenericBB.indexOf('['+GenericBB+']')>-1)
		{
			siteGenericBB=siteGenericBB.replace('['+GenericBB+']',GenericCodes[0])
		}
		if(siteGenericBB.indexOf('[/'+GenericBB+']')>-1)
		{
			siteGenericBB=siteGenericBB.replace('[/'+GenericBB+']',GenericCodes[1]);
		}
		return(siteGenericBB);
	}
}

function RetGenericOptBB(siteGenericOptBB,GenericOptBB,GenericExplictCodes)
{
	if(GenericOptBB==null||GenericExplictCodes==null)
	{
		return(siteGenericOptBB);
	}
	else
	{
		GenericOptCodesStart=GenericExplictCodes[0];
		GenericOptCodesEnd=GenericExplictCodes[1];
		GenericCodesStart=GenericExplictCodes[0];
		GenericCodesEnd=GenericExplictCodes[1];
		if(siteGenericOptBB.indexOf('['+GenericOptBB+'=')>-1)
		{
			BoolGbbR=false;
			BaseGbbR=siteGenericOptBB.indexOf("["+GenericOptBB+"=");
			StartGbbR=(BaseGbbR+("["+GenericOptBB+"=").length);
			PreGbbR=(siteGenericOptBB.slice(StartGbbR).indexOf("]"));
			EndGbbR=(StartGbbR+PreGbbR);
			CheckGbbR=(EndGbbR+siteGenericOptBB.slice(StartGbbR).indexOf("["+GenericOptBB));
			if(CheckGbbR==EndGbbR-1||EndGbbR<CheckGbbR){BoolGbbR=true;}
			if(BoolGbbR==true){StringGbbR=siteGenericOptBB.slice(StartGbbR,EndGbbR);}
			while((StringGbbR.indexOf("'")>-1)||(StringGbbR.indexOf('"')>-1)||(StringGbbR.indexOf("<")>-1)||(StringGbbR.indexOf(">")>-1))
			{
				StringGbbR=StringGbbR.replace("'","").replace('"','').replace('<',"&lt;").replace('>',"&gt;");
			}
			ArrayGbbR=StringGbbR.split(',');
			for(GenericCodesI=0;GenericCodesI<ArrayGbbR.length;GenericCodesI++)
			{
				sGbbSearch='{$'+GenericCodesI+':';
				if(GenericOptCodesStart.indexOf(sGbbSearch)>-1)
				{
					sBaseGbbR=GenericOptCodesStart.indexOf(sGbbSearch);
					sStartGbbR=(sBaseGbbR+sGbbSearch.length);
					sPreGbbR=(GenericOptCodesStart.slice(sStartGbbR).indexOf("}"));
					sEndGbbR=(sStartGbbR+sPreGbbR);
					sStringGbbR=GenericOptCodesStart.slice(sStartGbbR,sEndGbbR);
					while(GenericOptCodesStart.indexOf(sGbbSearch+sStringGbbR+"}")>-1)
					{
						GenericOptCodesStart=GenericOptCodesStart.replace(sGbbSearch+sStringGbbR+"}",ArrayGbbR[GenericCodesI]);
					}
				}
				sBaseGbbR=null;
				sStartGbbR=null;
				sPreGbbR=null;
				sEndGbbR=null;
				sStringGbbR=null;
			}

			siteGenericOptBB=siteGenericOptBB.replace("["+GenericOptBB+"="+StringGbbR+"]",GenericOptCodesStart);

			BoolGbbR=false;
			BaseGbbR=null;
			StartGbbR=null;
			PreGbbR=null;
			EndGbbR=null;
			CheckGbbR=null;
			StringGbbR=null;
			ArrayGbbR=null;
		}
		if((siteGenericOptBB.indexOf('['+GenericOptBB+']')>-1)||(siteGenericOptBB.indexOf('[/'+GenericOptBB+']')>-1))
		{
			if(GenericCodesStart.indexOf('{$0:')>-1)
			{
				GenericCodesI=0;
				sGbbSearch='{$0:';
				while(GenericCodesStart.indexOf(sGbbSearch)>-1)
				{
					sBaseGbbR=GenericCodesStart.indexOf(sGbbSearch);
					sStartGbbR=(sBaseGbbR+sGbbSearch.length);
					sPreGbbR=(GenericCodesStart.slice(sStartGbbR).indexOf("}"));
					sEndGbbR=(sStartGbbR+sPreGbbR);
					sStringGbbR=GenericCodesStart.slice(sStartGbbR,sEndGbbR);
					while(GenericCodesStart.indexOf(sGbbSearch+sStringGbbR+"}")>-1)
					{
						GenericCodesStart=GenericCodesStart.replace(sGbbSearch+sStringGbbR+"}",sStringGbbR);
					}
					sBaseGbbR=null;
					sStartGbbR=null;
					sPreGbbR=null;
					sEndGbbR=null;
					sStringGbbR=null;
					sGbbSearch='{$'+GenericCodesI+':';
					GenericCodesI++;
				}
			}
			GenericExceptCodes=new Array(GenericCodesStart,GenericCodesEnd);
			siteGenericOptBB=RetGenericBB(siteGenericOptBB,GenericOptBB,GenericExceptCodes);
		}
	}
	return(siteGenericOptBB);
}

function RetFLV(siteFLV)
{
	if(siteFLV.indexOf("["+defPlayer+"]")>-1&&siteFLV.indexOf("[/"+defPlayer+"]")>-1)
	{
		BoolFLVR=false;
		BaseFLVR=siteFLV.indexOf("["+defPlayer+"]");
		StartFLVR=(BaseFLVR+("["+defPlayer+"]").length);
		PreFLVR=(siteFLV.slice(StartFLVR).indexOf("[/"+defPlayer+"]"));
		EndFLVR=(StartFLVR+PreFLVR);
		CheckFLVR=(EndFLVR+siteFLV.slice(StartFLVR).indexOf("["+defPlayer));
		if(CheckFLVR==EndFLVR-1||EndFLVR<CheckFLVR){BoolFLVR=true;}
		if(BoolFLVR==true){StringFLVR=siteFLV.slice(StartFLVR,EndFLVR);}
		while((StringFLVR.indexOf("'")>-1)||(StringFLVR.indexOf('"')>-1)||(StringFLVR.indexOf("<")>-1)||(StringFLVR.indexOf(">")>-1))
		{
			StringFLVR=StringFLVR.replace("'","").replace('"','').replace('<',"&lt;").replace('>',"&gt;");
		}
		siteFLV=siteFLV.replace("["+defPlayer+"]"+StringFLVR+"[/"+defPlayer+"]",defFLVStartCode+StringFLVR+((defFLVbackpict!=false?('&image='+defFLVbackpict):'')+'&backcolor=0x'+(defFLVbackcolor!=false?defFLVbackcolor:'ff8300')+'&frontcolor='+(defFLVfrontcolor?defFLVfrontcolor:'a5de1e')+'"'+(defFLVtitlepict?('&logo='+defFLVtitlepict+' '):' ')+defFLVEndCode));
	}
	return(siteFLV);
}

function RetICQ(siteICQ)
{
	if(siteICQ.indexOf("["+defICQ+"]")>-1&&siteICQ.indexOf("[/"+defICQ+"]")>-1)
	{
		BoolICQR=false;
		BaseICQR=siteICQ.indexOf("["+defICQ+"]");
		StartICQR=(BaseICQR+("["+defICQ+"]").length);
		PreICQR=(siteICQ.slice(StartICQR).indexOf("[/"+defICQ+"]"));
		EndICQR=(StartICQR+PreICQR);
		CheckICQR=(EndICQR+siteICQ.slice(StartICQR).indexOf("["+defICQ));
		if(CheckICQR==EndICQR-1||EndICQR<CheckICQR){BoolICQR=true;}
		if(BoolICQR==true){StringICQR=siteICQ.slice(StartICQR,EndICQR);}
		while((StringICQR.indexOf("'")>-1)||(StringICQR.indexOf('"')>-1)||(StringICQR.indexOf("<")>-1)||(StringICQR.indexOf(">")>-1))
		{
			StringICQR=StringICQR.replace("'","").replace('"','').replace('<',"&lt;").replace('>',"&gt;");
		}
		siteICQ=siteICQ.replace("["+defICQ+"]"+StringICQR+"[/"+defICQ+"]",defICQTitle+defICQCode+'<img src="http://wwp.icq.com/scripts/online.dll?icq='+StringICQR+'&img='+defICQPictVariant+'" border="0" alt="status"> '+StringICQR+defICQEndCode);
	}
	return(siteICQ);
}

function RetSTEXT(siteSTEXT)
{
	if(siteSTEXT.indexOf("["+defSText+"=")>-1&&siteSTEXT.indexOf("[/"+defSText+"]")>-1)
	{
		BoolSTR=false;
		BaseSTR=siteSTEXT.indexOf("["+defSText+"=");
		StartSTR=(BaseSTR+("["+defSText+"=").length);
		PreSTR=(siteSTEXT.slice(StartSTR).indexOf("[/"+defSText+"]"));
		EndSTR=(StartSTR+PreSTR);
		CheckSTR=(EndSTR+siteSTEXT.slice(StartSTR).indexOf("["+defSText));
		if(CheckSTR==EndSTR-1||EndSTR<CheckSTR){BoolSTR=true;}
		if(BoolSTR==true){StringSTR=siteSTEXT.slice(StartSTR,EndSTR);}
		StringSTRA=StringSTR.split(']');
		StringSTR2=StringSTRA[0];
		StringSTR3=StringSTRA[1];
		StringSTR4=StringSTR3;
		while((StringSTR4.indexOf("'")>-1)||(StringSTR4.indexOf('"')>-1)||(StringSTR4.indexOf("<")>-1)||(StringSTR4.indexOf(">")>-1))
		{
			StringSTR4=StringSTR4.replace("'","").replace('"','').replace('<',"&lt;").replace('>',"&gt;");
		}
		siteSTEXT=siteSTEXT.replace("["+defSText+"="+StringSTR2+"]"+StringSTR3+"[/"+defSText+"]",defSTextPreCode+StringSTR4+defSTextCode+StringSTR2+defSTextPostCode);
	}
	if(siteSTEXT.indexOf("["+defSText+"]")>-1&&siteSTEXT.indexOf("[/"+defSText+"]")>-1)
	{
		BoolSTR=false;
		BaseSTR=siteSTEXT.indexOf("["+defSText+"]");
		StartSTR=(BaseSTR+("["+defSText+"]").length);
		PreSTR=(siteSTEXT.slice(StartSTR).indexOf("[/"+defSText+"]"));
		EndSTR=(StartSTR+PreSTR);
		CheckSTR=(EndSTR+siteSTEXT.slice(StartSTR).indexOf("["+defSText));
		if(CheckSTR==EndSTR-1||EndSTR<CheckSTR){BoolSTR=true;}
		if(BoolSTR==true){StringSTR=siteSTEXT.slice(StartSTR,EndSTR);}
		StringSTR2=StringSTR;
		while((StringSTR2.indexOf("'")>-1)||(StringSTR2.indexOf('"')>-1)||(StringSTR2.indexOf("<")>-1)||(StringSTR2.indexOf(">")>-1))
		{
			StringSTR2=StringSTR2.replace("'","").replace('"','').replace('<',"&lt;").replace('>',"&gt;");
		}
		siteSTEXT=siteSTEXT.replace("["+defSText+"]"+StringSTR+"[/"+defSText+"]",defSTextPreCode+StringSTR2+defSTextCode+defSTextTitle+defSTextPostCode);
	}
	return(siteSTEXT);
}

function RetTABLES(siteTableContents)
{
	BaseTDR='';
	StartTDR='';
	PreTDR='';
	EndTDR='';
	CheckTDR='';
	BoolTDR=false;
	StringTDR='';
	siteTableContents=siteTableContents.replace("[table]",defTableStartCode).replace("[/table]",defTableEndCode);
	siteTableContents=siteTableContents.replace("[tr]",defTRStartCode).replace("[/tr]",defTREndCode);
	if(siteTableContents.indexOf("[td colspan=")>-1)
	{
		BaseTDR=siteTableContents.indexOf("[td colspan=");
		StartTDR=(BaseTDR+("[td colspan=").length);
		PreTDR=(siteTableContents.slice(StartTDR).indexOf("]"));
		EndTDR=(StartTDR+PreTDR);
		CheckTDR=(EndTDR+siteTableContents.slice(StartTDR).indexOf("[td"));
		if(CheckTDR==EndTDR-1||EndTDR<CheckTDR){BoolTDR=true;}
		if(BoolTDR==true){StringTDR=siteTableContents.slice(StartTDR,EndTDR);}
		siteTableContents=siteTableContents.replace("[td colspan="+StringTDR+"]",defPRETDStartCode+" colspan="+StringTDR+defPOSTTDStartCode).replace("[/td]",defTDEndCode);
	}
	siteTableContents=siteTableContents.replace("[td]",defPRETDStartCode+defPOSTTDStartCode).replace("[/td]",defTDEndCode);
	return(siteTableContents);
}

function HasBBTag(str,strtyp,typ)
{
	if(!strtyp||strtyp==null||strtyp=='')
	{
		return false;
	}
	if(!typ||typ=='')
	{
		if(strtyp==1)
		{
			if((str.lastIndexOf('[' + defCut + ']')>-1)
				||
				(str.lastIndexOf('[' + defCut + '=')>-1)
				||
				(str.lastIndexOf('[/' + defCut + ']')>-1)
			)
			{
				return true;
			}
		}
		else if(strtyp==2)
		{
			if((str.lastIndexOf('[table]')>-1)
				||
				(str.lastIndexOf('[tr]')>-1)
				||
				(str.lastIndexOf('[td]')>-1)
				||
				(str.lastIndexOf('[td colspan')>-1)
				||
				(str.lastIndexOf('[/table]')>-1)
				||
				(str.lastIndexOf('[/tr]')>-1)
				||
				(str.lastIndexOf('[/td]')>-1)
			)
			{
				return true;
			}
		}
		else if(strtyp==3)
		{
			if((str.lastIndexOf('[' + defPlayer + ']')>-1)
				||
				(str.lastIndexOf('[/' + defPlayer + ']')>-1)
			)
			{
				return true;
			}
		}
		else if(strtyp==5)
		{
			if(((str.lastIndexOf('[' + defSText + ']')>-1)
				||
				(str.lastIndexOf('[' + defSText + '=')>-1))
				&&
				(str.lastIndexOf('[/' + defSText + ']')>-1)
			)
			{
				return true;
			}
		}
		else if(strtyp==6)
		{
			if((str.lastIndexOf('[' + defICQ + ']')>-1)
				&&
				(str.lastIndexOf('[/' + defICQ + ']')>-1)
			)
			{
				return true;
			}
		}
		
	}
	else
	{
		if((str.lastIndexOf('['+strtyp+']')>-1)||(str.lastIndexOf('[/'+strtyp+']')>-1)||(str.lastIndexOf('['+strtyp+'=')>-1))
		{
			return true;
		}
	}
	return false;
}

function ParseSiteMessage(siteMessage,strSiteMessage,i)
{
	currSiteMessage=siteMessage;
	parsesm_array=_tag_array();
	for(d=0;d<parsesm_array.length;d++)
	{
		parsesm_array_cur=parsesm_array[d];
		for(qw=0;qw<parsesm_array_cur.length;qw++)
		{
			parsesm_array_cur_acts=parsesm_array_cur[qw];
			if(parsesm_array_cur_acts[0]=="Type")
			{
				_tag_type=parsesm_array_cur_acts[1];
			}
			if(parsesm_array_cur_acts[0]=="Value")
			{
				_tag_value=parsesm_array_cur_acts[1];
			}
			if(parsesm_array_cur_acts[0]=="Code")
			{
				_tag_special=parsesm_array_cur_acts[1];
			}
		}
		if(_tag_type===4)
		{
			while(HasBBTag(siteMessage,_tag_value,_tag_type))
			{
				siteMessage=RetGenericOptBB(siteMessage,_tag_value,_tag_special);
			}
		}
		else if(_tag_type===1)
		{
			while(HasBBTag(siteMessage,_tag_type,''))
			{
				siteMessage=RetSpoiler(siteMessage);
			}
		}
		else if(_tag_type===2)
		{
			while(HasBBTag(siteMessage,_tag_type,''))
			{
				siteMessage=RetTABLES(siteMessage);
			}
		}
		else if(_tag_type===3)
		{
			while(HasBBTag(siteMessage,_tag_type,''))
			{
				siteMessage=RetFLV(siteMessage);
			}
		}
		else if(_tag_type===5)
		{
			while(HasBBTag(siteMessage,_tag_type,''))
			{
				siteMessage=RetSTEXT(siteMessage);
			}
		}
		else if(_tag_type===6)
		{
			while(HasBBTag(siteMessage,_tag_type,''))
			{
				siteMessage=RetICQ(siteMessage);
			}
		}
		_tag_type=0;
		_tag_value=null;
		_tag_special=null;
	}
	if(currSiteMessage!=siteMessage)
	{
		strSiteMessage=strSiteMessage.replace(currSiteMessage,siteMessage);
	}
	return(strSiteMessage);
}

function PleaseTakeEffect(strSiteMessage)
{
	arrSiteRE=new RegExp("<DIV class=['\"]?bbCodeBlock['\"]?.*?>","ig");
	arrSiteRE2=new RegExp("<DIV class=['\"]?bbCodeName['\"]?.*?>","i");
	arrSiteRE3=new RegExp("<\/DIV><\/DIV>","i");
	arrSiteMessage=strSiteMessage.split(arrSiteRE);
	for(i=0;i<arrSiteMessage.length;i++)
	{
		currentSM=arrSiteMessage[i];
		if(arrSiteRE2.test(currentSM)==true)
		{
			arrSiteRE4=arrSiteRE3.exec(currentSM)[0];
			currentSM=currentSM.slice(currentSM.indexOf(arrSiteRE4)+arrSiteRE4.length);
		}
		strSiteMessage=ParseSiteMessage(currentSM,strSiteMessage,i);
	}
	return(strSiteMessage);
}

function bbComplete(ID)
{
	var siteMessage=getInnerHTML("msg" + ID);
	siteMessage=PleaseTakeEffect(siteMessage);
	document.getElementById("msg" + ID).innerHTML=siteMessage;
}

function oncetag(tag,wh)
{
	doInsert("["+tag+"]","",false,wh);
}

function tag_cut(wh)
{
	if(eXtendedSpoilerButton)
	{
		var x1="";
		var enterTITLE=prompt("Введите заголовок спойлера","Читать далее");
		if(AlwaysHideSpoilersFromGuests==false)
		{
			var isNoguest=confirm("Скрывать спойлер от гостей?");
		}
		else
		{
			var isNoguest=false;
		}
		if(isNoguest==true)
		{
			x1=" noguest";
		}
		var enterCODE=isSelected(wh);
		if(!enterTITLE)
		{
			enterTITLE="Читать далее";
		}
		if(enterTITLE=="Читать далее")
		{
			doInsert("["+defCut+x1+"]"+enterCODE+"[/"+defCut+"]","",false,wh);
		}
		else
		{
			doInsert("["+defCut+x1+"="+enterTITLE+"]"+enterCODE+"[/"+defCut+"]","",false,wh);
		}
	}
	else
	{
		simpletag(defCut,'','','message','');
	}
}

function tag_video(wh)
{
	var enterURL=prompt("Введите URL-адрес","http://youtube.com/watch?v=");
	if(!enterURL||enterURL=='http://youtube.com/watch?v=')
	{
		return;
	}
	doInsert("[video]"+enterURL+"[/video]","",false,wh);
}

function tag_flv(wh)
{
	var enterURL=prompt("Введите URL-адрес","http://mysite.ru/video.flv");
	if(!enterURL||enterURL=='http://mysite.ru/video.flv')
	{
		return;
	}
	doInsert("["+defPlayer+"]"+enterURL+"[/"+defPlayer+"]","",false,wh);
}

function tag_audio(wh)
{
	var enterURL=prompt("Введите URL-адрес","http://any_site.com/music.mp3");
	if(!enterURL||enterURL=='http://any_site.com/music.mp3')
	{
		return;
	}
	doInsert("[audio]"+enterURL+"[/audio]","",false,wh);
}

function symbolinssert(symbol,wh)
{
	doInsert(symbol,"",false,wh);
}

function DrawBBCodesPanel()
{
	document.write('<style type="text/css">.bbc1 {padding-right:1px;}</style><span class="bbc1">'+panel_array().join("")+'<input type="hidden" name="tagcount" value="0"></span><br>');
}

function bbc_highlight(something, mode, marked)
{
	if(marked)
	{
		_bb_hihglight_array.push(something);
		something.style.backgroundImage=("url("+DefMsgIconUrl+(mode?(_bb_PanelButtonTheme+DefMsgIconBackgroundImageOver):(_bb_PanelButtonTheme+DefMsgIconBackgroundImageMarked))+")");
	}
	else
	{
		something.style.backgroundImage=("url("+DefMsgIconUrl+(mode?(_bb_PanelButtonTheme+DefMsgIconBackgroundImageOver):(_bb_PanelButtonTheme+DefMsgIconBackgroundImageDefault))+")");
	}
}

function _bb_clearmarkedhighlightfromall()
{
	while(_bb_hihglight_array.length>0)
	{
		bbc_highlight(_bb_hihglight_array.pop(), false, false);
	}
}

function _bb_highlightmarkedremove(what)
{
	var temparray=new Array();
	var tempvar=null;
	while(_bb_hihglight_array.length>0)
	{
		tempvar=_bb_hihglight_array.pop();
		if(tempvar!=what)
		{
			temparray.push(tempvar);
		}
		tempvar=null;
	}
	_bb_hihglight_array=temparray;
	bbc_highlight(what, false, false);
}

function _bb_set(value1,value2)
{
	return(new Array(value1,value2));
}

function _bb_Button(param)
{
	var _button_build_result=null;
	for(i=0;i<param.length;i++)
	{
		if(param[i][0]=="Flags")
		{
			_bb_flags=param[i][1];
		}
		if(param[i][0]=="Type")
		{
			_bb_type=param[i][1];
		}
		if(param[i][0]=="Value")
		{
			_bb_value=param[i][1];
		}
		if(param[i][0]=="Where")
		{
			_bb_where=param[i][1];
		}
		if(param[i][0]=="Title")
		{
			_bb_title=param[i][1];
		}
		if(param[i][0]=="GIFImage")
		{
			_bb_GIFImage=param[i][1];
		}
		if(param[i][0]=="Special")
		{
			_bb_special=param[i][1];
		}
	}
	_button_build_result=_bb_Button_build();
	_bb_reset();
	return(_button_build_result);
}

function _bb_reset()
{
	_bb_flags=0;
	_bb_type=0;
	_bb_value=null;
	_bb_where="message";
	_bb_name="Кнопка";
	_bb_title="Кнопка";
	_bb_GIFImage="empty";
	_bb_special=null;
	_bb_boolsimple_r=false;
	_bb_boolsimplecut_r=false;
}

function _bb_userblock_togglepict(tpelement)
{
	if(tpelement.src==DefMsgIconUrl+x_imageBlockIcon_cl)
	{
		tpelement.src=DefMsgIconUrl+x_imageBlockIcon_op;
	}
	else
	{
		tpelement.src=DefMsgIconUrl+x_imageBlockIcon_cl;
	}
}

function new_bb_Block(blockArray)
{
	retBlock=bb_inblock_st();
	retBlock+=blockArray.join("");
	retBlock+=bb_inblock_post_st();
	_bb_blockcount++;
	return(retBlock);
}

function _bb_Button_build()
{
	_bb_button_build_code='<img '+(_bb_value?('id="xbb_button_'+_bb_value+'"'):'')+' align="middle"';
	if(HighLightButtons)
	{
		_bb_button_build_code+='onmouseover="bbc_highlight(this, true, false);" ';
		if((_bb_typearray[_bb_type]=="simple"||(_bb_typearray[_bb_type]=="cut"&&eXtendedSpoilerButton==false))&&_bb_value&&HighLightUnclosedTagButtons)
		{
			_bb_button_build_code+='onmouseout="if(window.bbc_highlight){bbc_highlight(this, false, (document.addform.'+(_bb_value=="code"?"codes":_bb_value)+'.value.indexOf(\'*\'))>-1?true:false);}" ';
		}
		else
		{
			_bb_button_build_code+='onmouseout="if(window.bbc_highlight){bbc_highlight(this, false, false);}" ';
		}
	}
	_bb_button_build_code+='style="background:'+DefMsgIconBackground+';" border=0 src="'+DefMsgIconUrl+_bb_GIFImage+'.gif" alt="'+_bb_title+'" title="'+_bb_title+'"';
	if(_bb_type<=_bb_typearray.length)
	{
		_bb_button_build_code+='onclick="';
		if(_bb_typearray[_bb_type]=="simple"&&_bb_value)
		{
			if(_bb_flagarray[_bb_flags]=="siDpE")
			{
				_bb_button_build_code+="simpletag_a('"+_bb_value+"','','','"+_bb_where+"','','transparent');";
			}
			else
			{
				_bb_button_build_code+="simpletag('"+_bb_value+"','','','"+_bb_where+"','');";
			}
			_bb_simplecodes_array.push(_bb_value);
			_bb_boolsimple_r=true;
		}
		if(_bb_typearray[_bb_type]=="once"&&_bb_value)
		{
			_bb_button_build_code+="oncetag('"+_bb_value+"','"+_bb_where+"');";
		}
		if(_bb_typearray[_bb_type]=="url")
		{
			_bb_button_build_code+="tag_url('"+_bb_where+"','');";
		}
		if(_bb_typearray[_bb_type]=="email")
		{
			_bb_button_build_code+="tag_email('"+_bb_where+"','');";
		}
		if(_bb_typearray[_bb_type]=="img")
		{
			_bb_button_build_code+="tag_image('"+_bb_where+"','');";
		}
		if(_bb_typearray[_bb_type]=="cut")
		{
			_bb_button_build_code+="tag_cut('"+_bb_where+"');";
			_bb_boolsimplecut_r=true;
		}
		if(_bb_typearray[_bb_type]=="list")
		{
			_bb_button_build_code+="tag_list('"+_bb_where+"','');";
		}
		if(_bb_typearray[_bb_type]=="video")
		{
			_bb_button_build_code+="tag_video('"+_bb_where+"');";
		}
		if(_bb_typearray[_bb_type]=="audio")
		{
			_bb_button_build_code+="tag_audio('"+_bb_where+"');";
		}
		if(_bb_typearray[_bb_type]=="sml")
		{
			_bb_button_build_code+="openLayerB('Sml',0,'/index/35-23-0','Полный список смайлов',250,350);return false;";
		}
		if(_bb_typearray[_bb_type]=="keybrd")
		{
			_bb_button_build_code+="window.open('/forum/0-0-0-31','virtKB','width=300,height=120,top=0,left=0');";
		}
		if(_bb_typearray[_bb_type]=="translit")
		{
			_bb_button_build_code+="openLayerB('TranslitBody',0,'/translit/translit.xml','Транслитертор латиницы',460,320,1,0,0);";
		}
		if(_bb_special&&_bb_typearray[_bb_type]!="none")
		{
			_bb_button_build_code+=_bb_special;
		}
		_bb_button_build_code+='"';
	}
	_bb_button_build_code+='>';
	if(_bb_boolsimple_r||_bb_boolsimplecut_r)
	{
		_bb_button_build_code+=('<input type="hidden" value="'+_bb_value+'" id="'+(_bb_value=="code"?"codes":_bb_value)+'">');
	}
	_bb_reset();
	return(_bb_button_build_code);
}
//---------------------------Конец скрипта---------------------------//

//Далее следует измененный bbcodes.js(http://src.ucoz.net/src/bbcodes.js)
var opens=[];
var isSel=0;
var bbtags   = new Array();
var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);

var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
&& (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
&& (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);

function hstat(msg){try {document.addform.helpbox.value = eval( "help_" + msg );} catch(e){}}

function cstat(fi){
if (!fi){fi='';}
var c = stacksize(bbtags);

if ( (c < 1) || (c == null) ) {
c = 0;
}

if ( ! bbtags[0] ) {
c = 0;
}
eval('document.addform.tagcount'+fi+'.value='+c);
}

function stacksize(thearray){
for (i = 0 ; i < thearray.length; i++ ) {
if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) {
return i;
}
}

return thearray.length;
}

function pushstack(thearray,newval,fi){
arraysize = stacksize(thearray);
thearray[arraysize] = newval;
}

function popstack(thearray){
arraysize = stacksize(thearray);
theval = thearray[arraysize - 1];
delete thearray[arraysize - 1];
return theval;
}

function closeall(wh,fi){
if (!fi){fi='';}
if (!wh){wh='message';}
_bb_clearmarkedhighlightfromall();
if (bbtags[0]) {
try {
while (bbtags[0]) {
tagRemove = popstack(bbtags)
document.getElementById(wh).value += "[/" + tagRemove + "]";
if ( (tagRemove != 'font') && (tagRemove != 'size') && (tagRemove != 'color') ){
if (tagRemove=='code'){
eval("document.addform.codes"+fi+".value = ' " + tagRemove + " '");
}
else {
eval("document.addform."+tagRemove+fi+".value = ' " + tagRemove + " '");
}
opens[tagRemove+fi]=0;
}
}
} catch(e){}
}

eval('document.addform.tagcount'+fi+'.value=0');
bbtags = new Array();
document.getElementById(wh).focus();
}


function emoticon(theSmilie,wh){
doInsert(" " + theSmilie + " ","",false,wh);
}

function add_code(NewCode,wh){
if (!wh){wh='message';}
document.getElementById(wh).value += NewCode;
document.getElementById(wh).focus();
}

function alterfont(theval,thetag,wh,fi){
if (!fi){fi='';}
if (theval == 0)
return;

if(doInsert("[" + thetag + "=" + theval + "]", "[/" + thetag + "]",true,wh))
pushstack(bbtags,thetag);

cstat(fi);
}

function simpletag(thetag,fid,chtxt,wh,fi){
if(!fi){fi='';}
var tagOpen;
tagOpen = opens[thetag+fid];

if (!tagOpen){
	if(doInsert("[" + thetag + "]", "[/" + thetag + "]",true,wh)){
		opens[thetag+fid]=1;	
		if (fid){
			document.getElementById(fid).value=chtxt+'*';
		}
		else {
			if (thetag=='code'){
				eval("document.addform.codes"+fi+".value += '*'");
			}
			else {                        
				eval("document.addform."+thetag+fi+".value += '*'");
			}
		}
		pushstack(bbtags,thetag,fi);
		cstat(fi);
		hstat('click_close');
	}
}
else {
	lastindex = 0;
	for (i = 0 ; i < bbtags.length; i++ ){
		if ( bbtags[i] == thetag ){
			lastindex = i;
		}
	}

	while (bbtags[lastindex]){
		tagRemove = popstack(bbtags);
		doInsert("[/" + tagRemove + "]", "",false,wh)
		if ( (tagRemove != 'font') && (tagRemove != 'size') && (tagRemove != 'color') ){
			_bb_highlightmarkedremove(document.getElementById("xbb_button_"+tagRemove));
			if (fid){
				document.getElementById(fid).value=chtxt;
			}
			else {
				if (thetag=='code'){
					eval("document.addform.codes"+fi+".value = '"+tagRemove+"'");
				}
				else {
					eval("document.addform."+tagRemove+fi+".value = '"+tagRemove+"'");
				}
			}
			opens[tagRemove+fid]=0;
		}
	}

	cstat(fi);
}
}

function simpletag_a(thetag,fid,chtxt,wh,fi,di){
if(!fi){fi='';}
if(!di){di='';}
var tagOpen;
tagOpen = opens[thetag+fid];

if (!tagOpen){
	if(doInsert("[" + thetag + "="+di+"]", "[/" + thetag + "]",true,wh)){
		opens[thetag+fid]=1;	
		if (fid){
			document.getElementById(fid).value=chtxt+'*';
		}
		else {
			if (thetag=='code'){
				eval("document.addform.codes"+fi+".value += '*'");
			}
			else {                        
				eval("document.addform."+thetag+fi+".value += '*'");
			}
		}
		pushstack(bbtags,thetag,fi);
		cstat(fi);
		hstat('click_close');
	}
}
else {
	lastindex = 0;
	for (i = 0 ; i < bbtags.length; i++ ){
		if ( bbtags[i] == thetag ){
			lastindex = i;
		}
	}

	while (bbtags[lastindex]){
		tagRemove = popstack(bbtags);
		doInsert("[/" + tagRemove + "]", "",false,wh)
		if ( (tagRemove != 'font') && (tagRemove != 'size') && (tagRemove != 'color') ){
			_bb_highlightmarkedremove(document.getElementById("xbb_button_"+tagRemove));
			if (fid){
				document.getElementById(fid).value=chtxt;
			}
			else {
				if (thetag=='code'){
					eval("document.addform.codes"+fi+".value = '"+tagRemove+"'");
				}
				else {
					eval("document.addform."+tagRemove+fi+".value = '"+tagRemove+"'");
				}
			}
			opens[tagRemove+fid]=0;
		}
	}

	cstat(fi);
}
}

function tag_list(wh){
var listvalue = "init";
var thelist = "";

while ( (listvalue != "") && (listvalue != null) )
{
listvalue = prompt(list_prompt, "");
if ( (listvalue != "") && (listvalue != null) )
{
thelist = thelist+"[*]"+listvalue+"\n";
}
}

if ( thelist != "" )
{
doInsert( "[list]\n" + thelist + "[/list]\n", "",false,wh);
}
}

function tag_url(wh){
var enterURL  = prompt(text_enter_url, "http://");
var enterTITLE=isSelected(wh);
if (enterTITLE.length==0){
	enterTITLE = prompt(text_enter_url_name,"My WebPage"); 		
}
if (!enterURL || enterURL=='http://'){
	return;
}
else if (!enterTITLE) {
	return;
}

doInsert("[url="+enterURL+"]"+enterTITLE+"[/url]","",false,wh);	
}

function tag_image(wh){
var FoundErrors = '';
var enterURL   = prompt(text_enter_image, "http://");

if (!enterURL || enterURL=='http://' || enterURL.length<20) {
return;
}

doInsert("[img]"+enterURL+"[/img]","",false,wh);
}

function tag_email(wh) {
var emailAddress = prompt(text_enter_email, "");

if (!emailAddress) {return;}
var enterTITLE=isSelected(wh);
if (enterTITLE.length>0){
	doInsert("[email="+emailAddress+"]"+enterTITLE+"[/email]","",false,wh);	
}
else {
	doInsert("[email]"+emailAddress+"[/email]","",false,wh);	
}

}

function doInsert(ibTag,ibClsTag,isSingle,wh){
if (!wh){wh='message';}
var isClose = false;
var obj_ta = document.getElementById(wh);

if ( (myVersion >= 4) && is_ie && is_win)
{
if(obj_ta.isTextEdit){
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 try {

var txtStart = obj_ta.selectionStart;
if(!(txtStart >= 0)) throw 1;
var txtEnd   = obj_ta.selectionEnd;
if(ibClsTag != "" && obj_ta.value.substring(txtStart,txtEnd).length>0) {
obj_ta.value = obj_ta.value.substring(0,txtStart) + ibTag +
obj_ta.value.substring(txtStart,txtEnd)+
ibClsTag+
obj_ta.value.substring(txtEnd,obj_ta.value.length);
} else {
if(isSingle) isClose = true;  
if (isSel==1){obj_ta.value = obj_ta.value.substring(0,txtStart) + ibTag + obj_ta.value.substring(txtEnd,obj_ta.value.length);}
else {obj_ta.value = obj_ta.value.substring(0,txtStart) + ibTag + obj_ta.value.substring(txtStart,obj_ta.value.length);}
}

} catch(e) {
if(isSingle)
isClose = true;
obj_ta.value += ibTag;
}

obj_ta.focus();
return isClose;
}



function isSelected(wh){
if (!wh){wh='message';}
var obj_ta = document.getElementById(wh);

if ( (myVersion >= 4) && is_ie && is_win){
	if(obj_ta.isTextEdit){
		obj_ta.focus();
		var sel = document.selection;
		var rng = sel.createRange();
		rng.colapse;
		if((sel.type == "Text" || sel.type == "None") && rng != null){
			if(rng.text.length > 0){
				isSel=1;
				return rng.text;		
			}
		}
	}
	return '';
}
try {

	var txtStart = obj_ta.selectionStart;
	if(!(txtStart >= 0)) throw 1;
	var txtEnd   = obj_ta.selectionEnd;
	if(obj_ta.value.substring(txtStart,txtEnd).length>0) {
		isSel=1;
		return obj_ta.value.substring(txtStart,txtEnd);
	}
} catch(e) {}
return '';
}
