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 i=0;i<s.length;i++){
			if(s[i].search(/(\d+)-(\d+)/)>-1){
				t[i]='!('+RegExp.$1+'<='+varname+'&&'+varname+'<='+RegExp.$2+')';
			}else if(s[i].search(/(\d+)-/)>-1){
				t[i]=RegExp.$1+'>'+varname;
			}else if(s[i].search(/-(\d+)/)>-1){
				t[i]=RegExp.$1+'<'+varname;
			}else if(s[i].search(/!(\d+)/)>-1){
				t[i]=RegExp.$1+'=='+varname;
			}else if(s[i].search(/(\d+)/)>-1){
				t[i]=RegExp.$1+'!='+varname;
			}
		}
		return '!('+t.join(' && ')+')';
	}
	if(arg.length==0)return true;
	var t=[],v=['razdel','filenumber','group','work','msgid'];
	for(var i=0;i<arg.length&&i<v.length;i++){
		t[i]=createDirective(arg[i],v[i]);
	}
	return eval(t.join(' && '));
}

function appendButtons(){
/* 
Добавляет кнопки на форму ответа
Принимает сколько угодно аргументов представляющих собой массивы вида
[[razdel,filenumber,group,work,msgid],image,alt,href,target] 
*/
	var test=true;
	if(theForm)if(theForm.message)test=false;
	if(test)return;
	
	var textAr=theForm.message; 
	var par=textAr.parentNode;
	var a, img;
	var relative =textAr.previousSibling; 
	for(var j=0; j<arguments.length; j++){
		if(isDirective(arguments[j][0])){
			if(arguments[j][1]=='br'){
				par.insertBefore(document.createElement('BR'), relative);
			}else{
				a = document.createElement('A'); 
				a.href = arguments[j][3]; 
				a.target=arguments[j][4]; 
				a.title=arguments[j][2];
				
				img=document.createElement('IMG');
				img.src = arguments[j][1]; 
				img.border = 0; 
				img.alt = arguments[j][2]; 
				img.style.height=16;
				img.style.width=16;
				a.appendChild(img); 
				
				par.insertBefore(a, relative); 
				par.insertBefore(document.createTextNode(unescape('%20')), relative);
			}
		}
	}
}

function appendInputButtons(){ 
/* 
Добавляет кнопки Input на форму ответа
Принимает сколько угодно аргументов представляющих собой массивы вида
[[razdel,filenumber,group,work,msgid],text,code] 
*/
	var test=true;
	if(theForm)if(theForm.message)test=false;
	if(test)return;
	
	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')));
			}
		}
	}
}