    var mess_hist = new Array();  
    var addingmes = false;
    var guestpage = 1;

    function show_mess(messid, messtext, oldmessid, uname, back) {
	var container = document.getElementById(contid);
	if (!container){
		container = document.createElement('div');
		container.align = 'center';
		container.padding = '0px';
		container.margin = '0px';
		container.id = contid;
	}
	if (!container){alert('не найден контейнер');}	
	
        while (container.firstChild) {
        	container.removeChild(container.firstChild);
	}
	
	if (back==true){mess_hist.pop();}
	else{mess_hist.push(messid);}

	if (mess_hist.length==1) {var addback = false;}
	else {var addback = true;}

	mess_title = document.createElement('div');
	mess_title.id = 'mess_title';
	mess_title.innerHTML = '';
	container.appendChild(mess_title);
  
	brEl = document.createElement('br');
	container.appendChild(brEl);

	mess_body = document.createElement('div');
	mess_body.id = 'mess_body';
	body_table = document.createElement('table');
	body_table.style.width = '100%';
        body_table.cellPadding = 0;
        body_table.cellSpacing = 0;

        var topRow = body_table.insertRow(-1);
        newCell = topRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.style.width = '10px';
	newCell.align = 'right';
	newCell.vAlign = 'bottom';
	newCell.className = 'news_lt';
	newCell.innerHTML = '&nbsp;';

        newCell = topRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.align = 'center';
	newCell.vAlign = 'bottom';
	newCell.className = 'news_top';
	newCell.innerHTML = '&nbsp;';

        newCell = topRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.style.width = '10px';
	newCell.align = 'left';
	newCell.vAlign = 'bottom';
	newCell.className = 'news_rt';
	newCell.innerHTML = '&nbsp;';

        var bodyRow = body_table.insertRow(-1);
        newCell = bodyRow.insertCell(-1);
	newCell.style.width = '10px';
	newCell.align = 'right';
	newCell.className = 'news_lft';
	newCell.innerHTML = '&nbsp;';

        bodyCell = bodyRow.insertCell(-1);
	bodyCell.align = 'left';
	bodyCell.border = '1px solid blue';
	bodyCell.className = 'news_body';

	body_div = document.createElement('div');
	body_div.innerHTML = messtext;
	bodyCell.appendChild(body_div);

	brEl = document.createElement('br');
	bodyCell.appendChild(brEl);

	btn_div = document.createElement('div');
	btn_div.align = 'center';


	commands_div = document.createElement('div');
	commands_table = document.createElement('table');
	commands_table.style.width = '100%';

        var commands_Row = commands_table.insertRow(-1);
       	newCell = commands_Row.insertCell(-1);
	newCell.align = 'left';
	newCell.style.width = '50px';
	if (addback==true){
		newCell.innerHTML = '<a href="" onclick="arcmess(' + mess_hist[mess_hist.length-2] + ', true); return false;">назад</a>';
	}else{
		newCell.innerHTML = '&nbsp;';
	}

       	newCell = commands_Row.insertCell(-1);
	newCell.align = 'center';
	mess_btn = document.createElement('input');
	mess_btn.id = 'mess_btn';
	mess_btn.type = "button";
	mess_btn.value = 'закрыть';
	mess_btn.className = 'bbcodes_poll';
	mess_btn.align = 'center';
	newCell.appendChild(mess_btn);

       	newCell = commands_Row.insertCell(-1);
	newCell.align = 'right';
	newCell.style.width = '50px';
	newCell.innerHTML = '<a href="" onmouseover="dle_copy_quote(\'' + uname + '\');" onClick="quote_ins(\'' + uname + '\'); return false;">цитировать</a>';

	commands_div.appendChild(commands_table);
	bodyCell.appendChild(commands_div);

        newCell = bodyRow.insertCell(-1);
	newCell.style.width = '10px';
	newCell.align = 'left';
	newCell.className = 'news_rgt';
	newCell.innerHTML = '&nbsp;';


        var bottomRow = body_table.insertRow(-1);
        newCell = bottomRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.style.width = '10px';
	newCell.align = 'right';
	newCell.vAlign = 'top';
	newCell.className = 'news_lb';
	newCell.innerHTML = '&nbsp;';

        newCell = bottomRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.align = 'center';
	newCell.vAlign = 'top';
	newCell.className = 'news_btm';
	newCell.innerHTML = '&nbsp;';

        newCell = bottomRow.insertCell(-1);
	newCell.style.height = '10px';
	newCell.style.width = '10px';
	newCell.align = 'left';
	newCell.vAlign = 'top';
	newCell.className = 'news_rb';
	newCell.innerHTML = '&nbsp;';

	mess_body.appendChild(body_table);
	container.appendChild(mess_body);

	container.style.width = '450px';

	positionMessage(container);

	mess_btn.onclick = function() {
	    container.parentNode.removeChild(container);
	    mess_hist.length = 0;
	}
	
	document.body.insertBefore(container, document.body.firstChild);
//	document.body.appendChild(container);
    }


function arcmess(messid, back){
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {
    var url = "/engine/modules/ajax/mess.php?mess="+messid; 
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       

    req.open("GET", url, true); 
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
		if (messcont){
                    while (messcont.firstChild) {
                        messcont.removeChild(messcont.firstChild)
		    }
                }
		var s = req.responseText;
		var s = s.replace(/[\r\n]/g, ' ');
                var darray = eval(s);
  		show_mess(messid, darray[1], -1, darray[0], back);
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById(contid);       
	    	if (messcont){messcont.parentNode.removeChild(messcont);}
                alert("Ошибка: "+req.statusText);
            }
        }else{
	    if (messcont){
                while (messcont.firstChild) {
                    messcont.removeChild(messcont.firstChild);
		}
            }
	    loading_progress();
        }
    }
    req.send(null); //отправка запроса без параметров, т.к. они установлены в url
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    

function outputguestmessages(guesttable, messarray){
	if ( !guesttable || !messarray || (messarray.length==0) ) return;
	for (var i = 1; i < messarray.length; i++) {
        	var messRow = guesttable.insertRow(-1);
        	var messCell = messRow.insertCell(-1);
		var gclass = 'guest_msg';
		var tdclass = 'news_body';
		if (messarray[i][4]==0) {
			gclass = 'guest_msg_closed';
			tdclass = 'guest_msg_closed';
		}
		messCell.style.width = '100%';
		messCell.className = tdclass;
		messCell.id = 'mess' + messarray[i][0];
		var messtable = document.createElement('table');
        		messtable.cellPadding = 0;
        		messtable.cellSpacing = 0;
			messtable.style.width = '100%';
			var captionRow = messtable.insertRow(-1);

			var captionCell = captionRow.insertCell(-1);
			captionCell.className = gclass;
			captionCell.align = 'left';
			captionCell.style.align = 'left';
			captionCell.innerHTML = messarray[i][1]
			
			var commandsCell = captionRow.insertCell(-1);
			commandsCell.className = gclass;
			commandsCell.align = 'right';
			commandsCell.style.align = 'right';
			commandsCell.innerHTML = messarray[i][2]
				
			var bodyRow = messtable.insertRow(-1);
			var bodyCell = bodyRow.insertCell(-1);
			bodyCell.className = gclass;
			bodyCell.colSpan = 2;
			bodyCell.innerHTML = messarray[i][3];

		messCell.appendChild(messtable);
	}
}

function rebuildguestnav(navid, pageid, messcount, hrefpref){
    var navcont = document.getElementById(navid);
    if (!navcont) return;
    
    pages_per_section = 10;

    if ( (!pageid) || (pageid < 1) ) return;
    if (!hrefpref) hrefpref = '';
    if (!messcount) messcount = 0;
    pagecount = parseInt(messcount/40);
    if ( (pagecount*40) < messcount) pagecount++;
//    alert(pagecount);
    firstpage = pageid - pages_per_section;
    if (firstpage <= 1) firstpage = 2;
    if (pageid==1) s = 'Назад <span>1</span>';
    else s = '<a href="' + hrefpref + (pageid-1) + '" onClick="rebuildguest(' + (pageid-1) + '); return false;">Назад</a>  <a href="' + hrefpref + '1" onClick="rebuildguest(1); return false;">1</a>';
    
    if (pageid > 11) {
	s += ' <span class="nav_ext">...</span>';
	firstpage = pageid - 9;
    }else{
	firstpage = 2;
    }

    for (var i = firstpage; i < pageid; i++) {
	s += ' <a href="' + hrefpref + i + '" onClick="rebuildguest(' + i + '); return false;">' + i + '</a>'
    }
    
    if ( (pageid!=1) && (pageid!=pagecount) ) s += ' <span>' + pageid + '</span>';
    
    if (pageid < (pagecount - 11) ) {
	lastpage = pageid + 9;
    }else{
	lastpage = pagecount - 1;
    }

    for (var i = (pageid + 1); i <= lastpage; i++) {
	s += ' <a href="' + hrefpref + i + '" onClick="rebuildguest(' + i + '); return false;">' + i + '</a>'
    }

//    if (pageid < (pagecount - 9) ) s += ' <span class="nav_ext">...</span>';
    if (pageid < (pagecount - 9) ) s += ' ...';

    if (pageid==pagecount) s += ' <span>' + pagecount + '</span> Далее';
    else s += ' <a href="' + hrefpref + pagecount + '" onClick="rebuildguest(' + pagecount + '); return false;">' + pagecount + '</a>  <a href="' + hrefpref + (pageid+1) + '" onClick="rebuildguest(' + (pageid+1) + '); return false;">Далее</a>';

    while (navcont.firstChild) {
        navcont.removeChild(navcont.firstChild)
    }
    navcont.innerHTML = s;
//    alert(s);
    return false;
}

function rebuildguest(pageid){
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {
    if (pageid=='-1') {pageid = guestpage;}
    else {guestpage = pageid;}
    var url = "/engine/modules/ajax/guestpage.php?page=" + pageid;
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guesttable = (document.all) ? document.all.guesttable : document.getElementById("guesttable");       

    req.open("GET", url, true); 
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont){messcont.parentNode.removeChild(messcont);}
		if (guesttable){
                    while (guesttable.firstChild) {
                        guesttable.removeChild(guesttable.firstChild)
		    }
                }
//		if (!guesttable) alert('не нашли таблицу!');
//		alert(req.responseText);
//		guesttable.innerHTML = '<tr><td>тест</td></tr>';
		
		var s = req.responseText;
		var s = s.replace(/[\r\n]/g, ' ');
                var darray = eval(s);
		outputguestmessages(guesttable, darray);
		rebuildguestnav('topnav', pageid, darray[0], 'page/');
		rebuildguestnav('bottomnav', pageid, darray[0], 'page/');
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont){messcont.parentNode.removeChild(messcont);}
                alert("Ошибка: "+req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Обновление страницы...');
        }
    }
    req.send(null); //отправка запроса без параметров, т.к. они установлены в url
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    


function show_preview(messtext) {
    var container = document.getElementById(contid);
    if (!container){
	container = document.createElement('div');
	container.align = 'center';
	container.padding = '0px';
	container.margin = '0px';
	container.id = contid;
    }
    if (!container){alert('не найден контейнер');}	
	
    while (container.firstChild) {
       	container.removeChild(container.firstChild);
    }
	
    mess_body = document.createElement('div');
    mess_body.id = 'mess_body';
    body_table = document.createElement('table');
    body_table.style.width = '100%';
    body_table.cellPadding = 0;
    body_table.cellSpacing = 0;

    var topRow = body_table.insertRow(-1);
    newCell = topRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.style.width = '10px';
    newCell.align = 'right';
    newCell.vAlign = 'bottom';
    newCell.className = 'news_lt';
    newCell.innerHTML = '&nbsp;';

    newCell = topRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.align = 'center';
    newCell.vAlign = 'bottom';
    newCell.className = 'news_top';
    newCell.innerHTML = '&nbsp;';

    newCell = topRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.style.width = '10px';
    newCell.align = 'left';
    newCell.vAlign = 'bottom';
    newCell.className = 'news_rt';
    newCell.innerHTML = '&nbsp;';

    var bodyRow = body_table.insertRow(-1);
    newCell = bodyRow.insertCell(-1);
    newCell.style.width = '10px';
    newCell.align = 'right';
    newCell.className = 'news_lft';
    newCell.innerHTML = '&nbsp;';

    bodyCell = bodyRow.insertCell(-1);
    bodyCell.align = 'left';
    bodyCell.border = '1px solid blue';
    bodyCell.className = 'news_body';

    body_div = document.createElement('div');
    body_div.innerHTML = '<center>Предварительный просмотр</center><br />' + messtext;
    bodyCell.appendChild(body_div);

    brEl = document.createElement('br');
    bodyCell.appendChild(brEl);

    btn_div = document.createElement('div');
    btn_div.align = 'center';
    mess_btn = document.createElement('input');
    mess_btn.id = 'mess_btn';
    mess_btn.type = "button";
    mess_btn.value = 'закрыть';
    mess_btn.className = 'bbcodes_poll';
    mess_btn.align = 'center';
    btn_div.appendChild(mess_btn);
    bodyCell.appendChild(btn_div);

    newCell = bodyRow.insertCell(-1);
    newCell.style.width = '10px';
    newCell.align = 'left';
    newCell.className = 'news_rgt';
    newCell.innerHTML = '&nbsp;';

    var bottomRow = body_table.insertRow(-1);
    newCell = bottomRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.style.width = '10px';
    newCell.align = 'right';
    newCell.vAlign = 'top';
    newCell.className = 'news_lb';
    newCell.innerHTML = '&nbsp;';

    newCell = bottomRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.align = 'center';
    newCell.vAlign = 'top';
    newCell.className = 'news_btm';
    newCell.innerHTML = '&nbsp;';

    newCell = bottomRow.insertCell(-1);
    newCell.style.height = '10px';
    newCell.style.width = '10px';
    newCell.align = 'left';
    newCell.vAlign = 'top';
    newCell.className = 'news_rb';
    newCell.innerHTML = '&nbsp;';

    mess_body.appendChild(body_table);
    container.appendChild(mess_body);

    container.style.width = '550px';

    positionMessage(container);

    mess_btn.onclick = function() {
	container.parentNode.removeChild(container);
	mess_hist.length = 0;
    }

    document.body.appendChild(container);
}


function preview_mess(uname, mesid){

if (mesid){
    var text_area = document.getElementById('tarea' + mesid);
}else{
    var add_form = document.getElementById('dle-comments-form');
    if (!add_form) {return;}
    var text_area = add_form.comments;
}

if (!text_area) {return}
var text_val = text_area.value;
if (text_val.length==0) {
    alert('Пустое сообщение!');
    return false;
}

if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var url = "/engine/modules/ajax/preview_mess.php";

    req.open("POST", url, true); 

    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont){messcont.parentNode.removeChild(messcont);}

		show_preview(req.responseText);
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont) messcont.parentNode.removeChild(messcont);
	    loading_progress('Подготовка к просмотру...');
        }
    }
//alert(text_val);
if (mesid) req.send('text=' + encodeURIComponent(text_val) + '&uname=' + uname + '&mesid=' + mesid); 
else req.send('text=' + encodeURIComponent(text_val) + '&uname=' + uname); 
}
else 
    {alert("Браузер не поддерживает AJAX");}

	return false;
}


function edit_guestmessage(messid){
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/prepeditmess.php?mess=" + messid;
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guestmess = document.getElementById("mess" + messid);       

    req.open("GET", url, true); 
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
	        var s = req.responseText;
		if (s.indexOf('Ошибка')==0) show_message(s);
		else {
    		    messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	    if (messcont) messcont.parentNode.removeChild(messcont);
		    if (guestmess){
                        while (guestmess.firstChild) {
                            guestmess.removeChild(guestmess.firstChild)
		        }
		        guestmess.innerHTML = s;
                    }else alert('не нашли ячейку...');
		}
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Подготовка к редактированию...');
        }
    }
    req.send(null); //отправка запроса без параметров, т.к. они установлены в url
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    

function updatemes(messid){
var text_area = document.getElementById('tarea' + messid);
if (!text_area) {return}
var text_val = text_area.value;
if (trim(text_val).length==0) {
    return deletemess(messid);
//	alert('Пустое сообщение!');
//	return false;
}

if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/updatemess.php";
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guestmess = document.getElementById("mess" + messid);       
//    var guestmess = guestmess.parentNode;

    req.open("POST", url, true); 

    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
		var s = req.responseText;
		if (guestmess){
                    while (guestmess.firstChild) {
                        guestmess.removeChild(guestmess.firstChild)
		    }
//		    alert(guestmess.tagName);
		    guestmess.innerHTML = s;
                }
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Обновление сообщения...');
        }
    }
//    req.send(null); //отправка запроса без параметров, т.к. они установлены в url
    req.send('text=' + encodeURIComponent(text_val) + '&mesid=' + messid); 

}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    


function refreshmes(messid){
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/refreshmess.php?mesid=" + messid; 
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guestmess = document.getElementById("mess" + messid);
    if (!guestmess) {
	alert('не нашли ячейку сообщения!');
	return;
    }
    req.open("GET", url, true); 

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
		var s = req.responseText;
		if (guestmess){
                    while (guestmess.firstChild) {
                        guestmess.removeChild(guestmess.firstChild)
		    }
//		    alert(s);
		    guestmess.innerHTML = s;
                }
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Восстановление сообщения...');
        }
    }
    req.send(null); //отправка запроса без параметров, т.к. они установлены в url
//    req.send('text=' + encodeURIComponent(text_val) + '&mesid=' + messid); 

}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    


function add_guestmes(){
if (addingmes) {return;}
addingmes = true;
var add_form = document.getElementById('dle-comments-form');
if (!add_form) {return;}
var text_area = add_form.comments;
if (!text_area) {return}
var text_val = text_area.value;
if (text_val.length==0) {
	alert('Пустое сообщение!');
	return false;
}

if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/addmess.php";
//    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       

    req.open("POST", url, true); 

    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);

    		var guesttable = (document.all) ? document.all.guesttable : document.getElementById("guesttable");       
		if (guesttable){
                    while (guesttable.firstChild) {
                        guesttable.removeChild(guesttable.firstChild)
		    }
                }
		var s = req.responseText;
//                alert(s);
		var s = s.replace(/[\r\n]/g, ' ');
                var darray = eval(s);
		outputguestmessages(guesttable, darray);
		text_area.value = "";
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
            addingmes = false;
        }else{
    	    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Добавление сообщения...');
        }
    }
    req.send('text=' + encodeURIComponent(text_val)); 
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    


function addtofav(messid){
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/addtofav.php?id=" + messid;
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       

    req.open("GET", url, true); 

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
		var s = req.responseText;
		show_message(s);
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Добавление в избранное...');
        }
    }
    req.send(null); 
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    

function closeopenmess(messid, openmes){
if (openmes) agreestr = 'Вы уверены, что хотите вновь открыть для просмотра это сообщение?'
else agreestr = 'Вы уверены, что хотите закрыть для просмотра это сообщение?';
var agree = confirm(agreestr);
if (!agree) return;
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/closeopenmess.php?id=" + messid;
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guestmess = document.getElementById("mess" + messid);
    if (!guestmess) {
	alert('не нашли ячейку сообщения!');
	return;
    }

    req.open("GET", url, true); 

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
		var s = req.responseText;
		if (s.indexOf('Ошибка')==0) show_message(s);
    		else {
		    if (guestmess) {
//			guestmess.className = 'news_body';
		        if (openmes) guestmess.className = 'news_body';
		        else guestmess.className = 'guest_msg_closed';
		        guestmess.innerHTML = s;
		    }else alert('не нашли ячейку сообщения!');
		}
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Обработка сообщения...');
        }
    }
    req.send(null); 
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    

function deletemess(messid){
var agree = confirm('Вы уверены, что хотите удалить это сообщение?');
if (!agree) return;
if (window.XMLHttpRequest) req = new XMLHttpRequest();  
else if (window.ActiveXObject) {    
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");    
    } catch (e){}
    try {     
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){} 
}  
if (req) {    
    var url = "/engine/modules/ajax/deletemess.php?id=" + messid;
    var messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
    var guestmess = document.getElementById("mess" + messid);
    if (!guestmess) {
	alert('не нашли ячейку сообщения!');
	return;
    }

    req.open("GET", url, true); 

    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200){
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
		var s = req.responseText;
		show_message(s);
		if ( (guestmess) && (guestmess.parentNode) && (s.indexOf('Ошибка')==-1) ){
		    guestmess.parentNode.parentNode.removeChild(guestmess.parentNode);
		}
            }else{
    		messcont = (document.all) ? document.all.mess_cont : document.getElementById("mess_cont");       
	    	if (messcont) messcont.parentNode.removeChild(messcont);
                alert("Ошибка: " + req.statusText);
            }
        }else{
     	    if (messcont){messcont.parentNode.removeChild(messcont);}
	    loading_progress('Удаление сообщения...');
        }
    }
    req.send(null); 
}
else 
    {alert("Браузер не поддерживает AJAX");}
return false;
}    

