function refreshcaptcha() {
  makeRequest("/prov/captcha?m=GETNEW", 
    function(httpRequest) {
        try {
            if (httpRequest.readyState == 4) {
                if (httpRequest.status == 200) {
//                    alert(httpRequest.responseText);
                    var xmldoc = httpRequest.responseXML;
                    var root_node = xmldoc.getElementsByTagName('captcha').item(0);
                    if (root_node != null) {
			newid = root_node.firstChild.data;
//			alert(newid);
			if (newid != null) {
			  get("captcha").value = "";
                          get("captcha_code").value = newid;
			  get("captcha_image").src = "/prov/captcha/"+newid;
			}
		    }
                } else {
                    alert('С запросом возникла проблема.');
                }
            }
        }
        catch( e ) {
            alert('Произошло исключение: ' + e.description);
        }
    }
  );
}

    function makeRequest(url, loadfunction) {
        var httpRequest = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // Так надо для Firefox
            }
        } else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!httpRequest) {
            alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP ');
            return false;
        }
        httpRequest.onreadystatechange = function() { loadfunction(httpRequest); };
        httpRequest.open('GET', url, true);
        httpRequest.send(null);
    }

    function alertContents(httpRequest) {

        if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {
                alert(httpRequest.responseText);
            } else {
                alert('С запросом возникла проблема.');
            }
        }

    }

var Cache = new Object();
function get(id)
{
return (Cache[id]) ? Cache[id] : Cache[id] = document.getElementById(id);
}

function PopupInfoDiv(field, url, method, title){
   var d=document;
   var b=d.getElementsByTagName('body')[0];
   var dv=d.createElement('div');
   dv.body = "<DIV class='popup' id='nameFieldPopup' align='center'>"+
    "<strong>"+title+"</strong>"+
    "<form action='' method='post' name='newforum'>"+
    "<input name='m' type='hidden' value='"+method+"'>"+
    "<input name='name' type='text' size='40' maxlength='250'>"+
    "<br>"+
     "[<a class=closeLink href='#' onclick='hideCurrentPopup(); return false;'>Отмена</a>]"+
      "[<a href='#' onClick='newforum.submit();'>Добавить </a>]"+
    "</form>"+
  "</div>"+
"</DIV>";
   b.appendChild(dv);
   dvs.style.position='absolute';
   dvs.style.top='50%';
   dvs.style.left='50%';
   dvs.style.width='300px';
   dvs.style.height='60px';
   dvs.style.opacity='0.95';
   dvs.style.backgroundColor='#CCC';
   
    var inp=d.createElement('table');
    inp.onkeypress=function(e){
    }
}
//метод запрашивает у пользователя строку и посылает её в метод. Метод должен вернуть json объект с ответом и полями zrowid и zname
//результат добавляется в поле field. Поле должно быть полем выбора <select>
function popupInputAjax(field, title, default_value, ajaxurl, ajaxmethod) {
	var answer = prompt (title, default_value);
//	alert ("popupInputAjax="+answer);
	if (answer != null) {
    rq = new Ajax.Request(ajaxurl, { method:'get',
              parameters: {"zname": answer, "m": ajaxmethod},
             onSuccess: function(transport, json){
//				 alert(transport.headerJSON);
//				 alert("Content-type:"+transport.getResponseHeader("Content-type"));
				 
//				 alert("tr.status="+transport.status+";statusText="+transport.statusText+";responseText="+transport.responseText+";responseJSON="+transport.responseJSON);
//				 alert(transport.responseJSON ? Object.inspect(transport.responseJSON) : "no JSON object transport"); 
				 var tmp_json = json;
				 if (tmp_json == null) {
					 json = transport.responseText.evalJSON();
				 }
//                          alert(json ? Object.inspect(json) : "no JSON object");
//						  alert("new id="+json.zrowid+"; name="+json.zname);
						  nopt = new Option(json.zname, json.zrowid);
//						  alert(field);
						  nopt.selected = true;
						  field.options[field.options.length] = nopt;
                        }
          });
	}
}
