/**
 * JsHttpRequest: JavaScript "AJAX" data loader (Minimized version)
 * @license LGPL
 * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/
 * @version 5.x $Id$
 */
function JsHttpRequest(){
var t=this;
t.onreadystatechange=null;
t.readyState=0;
t.responseText=null;
t.responseXML=null;
t.status=200;
t.statusText="OK";
t.responseJS=null;
t.caching=false;
t.loader=null;
t.session_name="PHPSESSID";
t._ldObj=null;
t._reqHeaders=[];
t._openArgs=null;
t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%",no_headers:"Method setRequestHeader() cannot work together with the % loader."};
t.abort=function(){
with(this){
if(_ldObj&&_ldObj.abort){
_ldObj.abort();
}
_cleanup();
if(readyState==0){
return;
}
if(readyState==1&&!_ldObj){
readyState=0;
return;
}
_changeReadyState(4,true);
}
};
t.open=function(_2,_3,_4,_5,_6){
with(this){
try{
if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){
_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);
}
}
catch(e){
}
_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};
_ldObj=null;
_changeReadyState(1,true);
return true;
}
};
t.send=function(_7){
if(!this.readyState){
return;
}
this._changeReadyState(1,true);
this._ldObj=null;
var _8=[];
var _9=[];
if(!this._hash2query(_7,null,_8,_9)){
return;
}
var _a=null;
if(this.caching&&!_9.length){
_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;
var _b=JsHttpRequest.CACHE[_a];
if(_b){
this._dataReady(_b[0],_b[1]);
return false;
}
}
var _c=(this.loader||"").toLowerCase();
if(_c&&!JsHttpRequest.LOADERS[_c]){
return this._error("unk_loader",_c);
}
var _d=[];
var _e=JsHttpRequest.LOADERS;
for(var _f in _e){
var ldr=_e[_f].loader;
if(!ldr){
continue;
}
if(_c&&_f!=_c){
continue;
}
var _11=new ldr(this);
JsHttpRequest.extend(_11,this._openArgs);
JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null});
var _12=_11.load();
if(!_12){
this._ldObj=_11;
JsHttpRequest.PENDING[_11.id]=this;
return true;
}
if(!_c){
_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);
}else{
return this._error(_12);
}
}
return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");
};
t.getAllResponseHeaders=function(){
with(this){
return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];
}
};
t.getResponseHeader=function(_13){
with(this){
return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader():[];
}
};
t.setRequestHeader=function(_14,_15){
with(this){
_reqHeaders[_reqHeaders.length]=[_14,_15];
}
};
t._dataReady=function(_16,js){
with(this){
if(caching&&_ldObj){
JsHttpRequest.CACHE[_ldObj.hash]=[_16,js];
}
if(_16!==null||js!==null){
status=4;
responseText=responseXML=_16;
responseJS=js;
}else{
status=500;
responseText=responseXML=responseJS=null;
}
_changeReadyState(2);
_changeReadyState(3);
_changeReadyState(4);
_cleanup();
}
};
t._l=function(_18){
var i=0,p=0,msg=this._errors[_18[0]];
while((p=msg.indexOf("%",p))>=0){
var a=_18[++i]+"";
msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);
p+=1+a.length;
}
return msg;
};
t._error=function(msg){
msg=this._l(typeof (msg)=="string"?arguments:msg);
msg="JsHttpRequest: "+msg;
if(!window.Error){
throw msg;
}else{
if((new Error(1,"test")).description=="test"){
throw new Error(1,msg);
}else{
throw new Error(msg);
}
}
};
t._hash2query=function(_1e,_1f,_20,_21){
if(_1f==null){
_1f="";
}
if((""+typeof (_1e)).toLowerCase()=="object"){
var _22=false;
if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){
_1e={form:_1e};
}
for(var k in _1e){
var v=_1e[k];
if(v instanceof Function){
continue;
}
var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);
var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;
if(_26){
var tn=v.tagName.toUpperCase();
if(tn=="FORM"){
_22=true;
}else{
if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){
}else{
return this._error("inv_form_el",(v.name||""),v.tagName);
}
}
_21[_21.length]={name:_25,e:v};
}else{
if(v instanceof Object){
this._hash2query(v,_25,_20,_21);
}else{
if(v===null){
continue;
}
_20[_20.length]=_25+"="+this.escape(""+v);
}
}
if(_22&&_21.length>1){
return this._error("must_be_single_el");
}
}
}else{
_20[_20.length]=_1e;
}
return true;
};
t._cleanup=function(){
var _28=this._ldObj;
if(!_28){
return;
}
JsHttpRequest.PENDING[_28.id]=false;
var _29=_28.span;
if(!_29){
return;
}
_28.span=null;
var _2a=function(){
_29.parentNode.removeChild(_29);
};
JsHttpRequest.setTimeout(_2a,50);
};
t._changeReadyState=function(s,_2c){
with(this){
if(_2c){
status=statusText=responseJS=null;
responseText="";
}
readyState=s;
if(onreadystatechange){
onreadystatechange();
}
}
};
t.escape=function(s){
return escape(s).replace(new RegExp("\\+","g"),"%2B");
};
}
JsHttpRequest.COUNT=0;
JsHttpRequest.MAX_URL_LEN=2000;
JsHttpRequest.CACHE={};
JsHttpRequest.PENDING={};
JsHttpRequest.LOADERS={};
JsHttpRequest._dummy=function(){
};
JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};
JsHttpRequest.setTimeout=function(_2e,dt){
window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s;
if(typeof (_2e)=="string"){
id=window.JsHttpRequest_tmp(_2e,dt);
}else{
var id=null;
var _31=function(){
_2e();
delete JsHttpRequest.TIMEOUTS[id];
};
id=window.JsHttpRequest_tmp(_31,dt);
JsHttpRequest.TIMEOUTS[id]=_31;
}
window.JsHttpRequest_tmp=null;
return id;
};
JsHttpRequest.clearTimeout=function(id){
window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c;
delete JsHttpRequest.TIMEOUTS[id];
var r=window.JsHttpRequest_tmp(id);
window.JsHttpRequest_tmp=null;
return r;
};
JsHttpRequest.query=function(url,_35,_36,_37){
var req=new this();
req.caching=!_37;
req.onreadystatechange=function(){
if(req.readyState==4){
_36(req.responseJS,req.responseText);
}
};
var _39=null;
if(url.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){
req.loader=RegExp.$2?RegExp.$2:null;
_39=RegExp.$3;
url=RegExp.$4;
}
req.open(_39,url,true);
req.send(_35);
};
JsHttpRequest.dataReady=function(d){
var th=this.PENDING[d.id];
delete this.PENDING[d.id];
if(th){
th._dataReady(d.text,d.js);
}else{
if(th!==false){
throw "dataReady(): unknown pending id: "+d.id;
}
}
};
JsHttpRequest.extend=function(_3c,src){
for(var k in src){
_3c[k]=src[k];
}
};
JsHttpRequest.LOADERS.form={loader:function(req){
JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});
this.load=function(){
var th=this;
if(!th.method){
th.method="POST";
}
th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form";
if(req._reqHeaders.length){
return ["no_headers","FORM"];
}
if(th.method=="GET"){
if(th.queryText){
th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;
}
if(th.url.length>JsHttpRequest.MAX_URL_LEN){
return ["url_too_long",JsHttpRequest.MAX_URL_LEN];
}
var p=th.url.split("?",2);
th.url=p[0];
th.queryText=p[1]||"";
}
var _42=null;
var _43=false;
if(th.queryElem.length){
if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){
_42=th.queryElem[0].e;
_43=true;
th.queryElem=[];
}else{
_42=th.queryElem[0].e.form;
for(var i=0;i<th.queryElem.length;i++){
var e=th.queryElem[i].e;
if(!e.form){
return ["form_el_not_belong",e.name];
}
if(e.form!=_42){
return ["form_el_belong_diff",e.name];
}
}
}
if(th.method=="POST"){
var _46="multipart/form-data";
var _47=(_42.attributes.encType&&_42.attributes.encType.nodeValue)||(_42.attributes.enctype&&_42.attributes.enctype.value)||_42.enctype;
if(_47!=_46){
return ["form_el_inv_enctype",_46,_47];
}
}
}
var d=_42&&(_42.ownerDocument||_42.document)||document;
var _49="jshr_i_"+th.id;
var s=th.span=d.createElement("DIV");
s.style.position="absolute";
s.style.display="none";
s.style.visibility="hidden";
s.innerHTML=(_42?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_49+"\" id=\""+_49+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";
if(!_42){
_42=th.span.firstChild;
}
d.body.insertBefore(s,d.body.lastChild);
var _4b=function(e,_4d){
var sv=[];
var _4f=e;
if(e.mergeAttributes){
var _4f=d.createElement("form");
_4f.mergeAttributes(e,false);
}
for(var i=0;i<_4d.length;i++){
var k=_4d[i][0],v=_4d[i][1];
sv[sv.length]=[k,_4f.getAttribute(k)];
_4f.setAttribute(k,v);
}
if(e.mergeAttributes){
e.mergeAttributes(_4f,false);
}
return sv;
};
var _53=function(){
top.JsHttpRequestGlobal=JsHttpRequest;
var _54=[];
if(!_43){
for(var i=0,n=_42.elements.length;i<n;i++){
_54[i]=_42.elements[i].name;
_42.elements[i].name="";
}
}
var qt=th.queryText.split("&");
for(var i=qt.length-1;i>=0;i--){
var _58=qt[i].split("=",2);
var e=d.createElement("INPUT");
e.type="hidden";
e.name=unescape(_58[0]);
e.value=_58[1]!=null?unescape(_58[1]):"";
_42.appendChild(e);
}
for(var i=0;i<th.queryElem.length;i++){
th.queryElem[i].e.name=th.queryElem[i].name;
}
var sv=_4b(_42,[["action",th.url],["method",th.method],["onsubmit",null],["target",_49]]);
_42.submit();
_4b(_42,sv);
for(var i=0;i<qt.length;i++){
_42.lastChild.parentNode.removeChild(_42.lastChild);
}
if(!_43){
for(var i=0,n=_42.elements.length;i<n;i++){
_42.elements[i].name=_54[i];
}
}
};
JsHttpRequest.setTimeout(_53,100);
return null;
};
}};

function dl(r,p,n) {
  if (n.length==0) { alert("Пожалуйста, введите свое название"); return false; }
  else {
    f.sub.disabled=true;
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            document.getElementById('write_name').innerHTML = req.responseJS.q;
        }
    }
    req.open(null, '/dk/imagenames.php', true);
    req.send( { razd: r, pic: p, nazv: n } );
  }
}

function try_mail(mail,name) {
    f.sub.disabled=true;
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	if (req.responseJS.status=='ok') { document.getElementById('maillist_div').innerHTML='<div class=title style=width:125px;font-size:8pt;><br><br><b style=font-size:9pt;>Спасибо.</b><br><br>На Ваш адрес выслано письмо для подтверждения подписки.<br><br></div>'; }
        	else { document.getElementById('mailpodr_div').innerHTML='<div style=width:130px;padding:2px;><b><span style=text-decoration:blink;>!!!</span> '+req.responseJS.q+'</b></div>'; }
        	f.sub.disabled=false;
        }
    }
    req.open(null, '/dk/maillist.php', true);
    req.send( { m: mail, n: name, rnd: Math.random() } );
}

function it_is(cat, pic) {
document.getElementById('write_name').innerHTML = '<form name="f" style="margin:0px;" onsubmit="return false"><input type="hidden" name="r" value="'+cat+'"><input type="hidden" name="p" value="'+pic+'">Это <input type="text" name="n" style="padding-left:3px;" size=33 maxlength=90>, <input type="button" style="width:100px;margin-bottom:-1px;" name="sub" value="я так думаю" onclick="dl(f.r.value,f.p.value,f.n.value);"></form>';
document.f.n.focus();
}

function mailpodr(a) {
	document.getElementById('mailpodr_div').innerHTML ='<div style=width:125px;text-align:left;><b>Подробности:</b><br>Рассылка выходит один раз в неделю, по воскресеньям. Включает в себя прямые ссылки на 8 самых популярных обоев для рабочего стола, которые были добавлены в коллекцию сайта в течение последней недели.</div>';
}

function check_ml_input(mail,name) {
	if (mail.length<6 || mail.indexOf('\@',1)==-1) { 
		alert('Пожалуйста, заполните e-mail адрес'); 
	} else { 
		try_mail(mail,name); 
	}
}

function get_subscribe_block() {
	document.write('<center><div class=rb id=ml><div class=cr><div class=t><div class=r><div class=b><div class=l><div id=maillist_div><div class=h>Новые обои<br>на e-mail<br><img src=http://img.desktopwallpapers.ru/i/maillist.gif width=92 height=66 border=0 style=margin-top:8px;></div><form name=f onsubmit="return false"><b>E-mail</b> (обязательно)<br><input type=text name=m maxlength=50 value=""><br><b>Имя</b> (желательно)<br><input type=text name=n maxlength=50 value=""><br><input type=submit name=sub value=Подписаться onclick=check_ml_input(f.m.value,f.n.value); class=msub></form><div id=mailpodr_div><a class=hand onclick=mailpodr();>Узнать подробности</a></div></div><div class=null></div></div></div></div></div></div></div></div></center>');
}

function av(cat,pic,mark) {
	document.getElementById('vt').innerHTML='<div style=text-align:right;>пожалуйста, ждите</div>';
	JsHttpRequest.query('/dk/vote.php',
	{
		'cat': cat,
		'pic': pic,
		'mark': mark,
		'rnd': Math.random()
	},
	function(result,errors) { 
		if (result) {
			if (result['status']=='ok') {
				document.getElementById('vt').innerHTML=result['resp'];
			}
		}
	},
	false  // do not disable caching
	);
 }
