function isDirective(arg){
 /*
 	Проверяет директиву на истинность
 	arg - массив списков номеров вида [razdel,filenumber,group,work,msgid]
 	Пропускать элементы нельзя, но можно опустить последние.
 */
 	function createDirective(code, varname){
 		if(code=='*')return 'true';
 		var s=code.split(','), s1;
 		var t=[];
 		for(var j=0;j<s.length;j++){
 			if(s[j].search(/(\d+)-(\d+)/)>-1){
 				t[j]='!('+RegExp.$1+'<='+varname+'&&'+varname+'<='+RegExp.$2+')';
 			}else if(s[j].search(/(\d+)-/)>-1){
 				t[j]=RegExp.$1+'>'+varname;
 			}else if(s[j].search(/-(\d+)/)>-1){
 				t[j]=RegExp.$1+'<'+varname;
 			}else if(s[j].search(/!(\d+)/)>-1){
 				t[j]=RegExp.$1+'=='+varname;
 			}else if(s[j].search(/(\d+)/)>-1){
 				t[j]=RegExp.$1+'!='+varname;
 			}
 		}
 		return '!('+t.join(' && ')+')';
 	}
 	if(arg.length==0)return true;
 	var t=[],v=['razdel','filenumber','group','work','msgid'];
 	for(var j=0;j<arg.length&&j<v.length;j++){
 		t[j]=createDirective(arg[j],v[j]);
 	}
 	return eval(t.join(' && '));
 }

 function appendButtons(){
 /*
 Добавляет кнопки на форму ответа
 Принимает сколько угодно аргументов представляющих собой массивы вида
 [[razdel,filenumber,group,work,msgid],image,alt,href,target]
 */
 	var textAr=theForm.message;
 	var par=textAr.parentNode;
 	var a, img;
 	var n = par.childNodes.length-9;
 	var URL_img =par.childNodes[n];
 	for(var j=0; j<arguments.length; j++){
 		if(isDirective(arguments[j][0])){
 			if(arguments[j][1]=='br'){
 				par.insertBefore(document.createElement('BR'), URL_img);
 			}else{
 				a = document.createElement('A');
 				a.href = arguments[j][3];
 				a.target=arguments[j][4];

 				img=document.createElement('IMG');
 				img.src = arguments[j][1];
 				img.border = 0;
 				img.alt = arguments[j][2];
                img.title = arguments[j][2];
 				img.style.height=16;
 				img.style.width=16;
 				a.appendChild(img);

 				par.insertBefore(a, URL_img);
 				par.insertBefore(document.createTextNode(unescape('%20')), URL_img);
 			}
 		}
 	}
 }

 function appendInputButtons(){
 /*
 Добавляет кнопки Input на форму ответа
 Принимает сколько угодно аргументов представляющих собой массивы вида
 [[razdel,filenumber,group,work,msgid],text,code]
 */
 	var input;
 	var par=theForm.message.parentNode.parentNode.nextSibling.childNodes[1];
 	for(var j=0; j<arguments.length; j++){
 		if(isDirective(arguments[j][0])){
 			if(arguments[j][1]=='br'){
 				par.appendChild(document.createElement('BR'));
 			}else{
 				input = document.createElement('input');
 				input.className = 'sender';
 				input.type = 'button';
 				input.value = arguments[j][1];
 				input.onclick = new Function(arguments[j][2]);
 				par.appendChild(input);
 				par.appendChild(document.createTextNode(unescape('%20')));
 			}
 		}
 	}
 }
