
var xmlHttp=false;var oAjax=new ajax_sender();xmlHttp=oAjax.createXmlHttpRequestObject();function xmlHttp_handle_ServerResponse()
{if(xmlHttp.readyState==4)
{if(xmlHttp.status==200)
{oAjax.responseText=xmlHttp.responseText;oAjax.responseXML=xmlHttp.responseXML;try{oAjax.responser();}
catch(e){alert(oAjax.msg_ResponseProcessError);return false;}}
else
{alert(oAjax.msg_GrantError+xmlHttp.status+"\n"+xmlHttp.statusText);return false;}}
return true;}
function ajax_sender()
{this.xmlHTTP=null;this.method='POST';this.responser=null;this.responseText='';this.responseXML='';this.XmlHttpVersions=new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");this.msg_CantMakeXmlHTTP='Ошибка создания объекта XMLHttpRequest!\nЗапросы к серверу невозможны.';this.msg_UseOpera='\nПопробуйте включить в своем браузере JavaScript или смените свой браузер на более новый (например Opera 9 - www.opera.com)';this.msg_CantConnect='Загрузить данные невозможно, т.к. отсутствует возможность связаться с сервером\n';this.msg_GrantError="Ошибка при доступе к серверу:\n";this.msg_ResponseProcessError='Ошибка при обработке ответа сервера';this.start=function(tcUrl,tfFunction,taFields)
{if(xmlHttp.readyState==4||xmlHttp.readyState==0)
{var lcPOSTFields='';if((typeof(taFields)=='string')&&(!document.getElementById(taFields)))lcPOSTFields=taFields;else lcPOSTFields=this.makePost(taFields);try
{this.responser=tfFunction;xmlHttp.open(this.method,tcUrl,true);xmlHttp.onreadystatechange=xmlHttp_handle_ServerResponse;xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send(lcPOSTFields);}
catch(e){alert(this.msg_CantConnect+e.toString());}}}
this.createXmlHttpRequestObject=function()
{var xmlHttp=null;try{xmlHttp=new XMLHttpRequest();}
catch(e)
{for(var i=0;i<this.XmlHttpVersions.length&&!xmlHttp;i++)
{try{xmlHttp=new ActiveXObject(this.XmlHttpVersions[i]);}
catch(e){};}}
if(!xmlHttp)
{alert(this.msg_CantMakeXmlHTTP+this.msg_UseOpera);this.xmlHTTP=false;}
else this.xmlHTTP=xmlHttp;return this.xmlHTTP;}
this.makePost=function(taFields)
{var laFields=null;var laSend=new Array();var lcType=typeof(taFields);var lcVal='';if(taFields instanceof Array)
{for(var i=0;i<taFields.length;i++)
{var lcName=taFields[i];var loObj=document.getElementById(lcName);if(!loObj)alert(lcName);if(loObj.tagName=='input'&&toObj.type=='checkbox')lcVal=(toObj.checked==true)?"1":"0";else lcVal=loObj.value;laSend[i]=lcName+'='+this.escape1251(lcVal);}}
if(taFields instanceof String)
{var loObj=document.getElementById(taFields);if(loObj.tagName=='form')
{var loElements=loObj.elements;for(var i=0;i<loElements.length;i++)
{var lcName=loElements[i].name;var lcVal=loElements[i].value;laSend[i]=lcName+'='+this.escape1251(lcVal);}}
else
{var lcVal=document.getElementById(taFields).value;laSend[0]=taFields+'='+this.escape1251(lcVal);}}
return laSend.join('&');}
this.escape1251=function(str)
{var trans=new Array();for(var i=0x410;i<=0x44F;i++)trans[i]=i-0x350;trans[0x401]=0xA8;trans[0x451]=0xB8;var ret=[];for(var i=0;i<str.length;i++)
{var n=str.charCodeAt(i);if(typeof trans[n]!='undefined')n=trans[n];if(n<=0xFF)ret.push(n);}
return escape(String.fromCharCode.apply(null,ret));}}