var PSource=Class.create({initialize:function(a){this.url=a;this.data=new Array();this.transport=false;this._id=Math.random()},initTransport:function(){var b=false;if(window.XMLHttpRequest){b=new XMLHttpRequest()}else{if(window.ActiveXObject){try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(a){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(a){b=false}}}}this.transport=b},query:function(b){this.data.clear();this.initTransport();if(!this.transport){return}var a=this.prepareQuery(b);this.transport.open("GET",a,true);this.transport.onreadystatechange=(function(c){return function(){c.prepareEvent()}})(this);this.transport.send(null)},prepareQuery:function(d){var a=this.url;if(typeof(d)=="string"){a+="&keywords="+encodeURIComponent(d)}else{var c=Object.keys(d);keysCount=c.length;for(var b=0;b<keysCount;b++){a+="&"+encodeURIComponent(c[b])+"="+encodeURIComponent(d[c[b]])}}return a},prepareEvent:function(){var a=this.transport;if(a.readyState!=4){return}if(a.status!=200){this.fire("PSource:requestFinished",{code:"failed",message:pi18n("Unable to get XML!")});return}this.parseResult()},parseResult:function(){},result:function(){return this.data},observe:function(b,a){document.observe(this._id+b,a)},stopObserving:function(b,a){document.stopObserving(this._id+b,a)},fire:function(a,b){document.fire(this._id+a,b)}});var POmdbSource=Class.create(PSource,{initialize:function($super){$super("/connectors/xml.php?c=OMDB_SEARCH")},parseResult:function(){var d=this.transport;var e=d.responseXML.getElementsByTagName("movie");var f=e.length;for(var c=0;c<f;c++){var b=e[c].attributes;var a=new Object();a.omdbId=b.getNamedItem("id").nodeValue;a.title=e[c].firstChild.nodeValue;a.type=b.getNamedItem("tip").nodeValue;this.data.push(a)}this.fire("PSource:requestFinished",{code:"successful",data:this.data})}});var PUserSource=Class.create(PSource,{initialize:function($super){$super("/connectors/xml.php?c=USER_SEARCH")},parseResult:function(){var d=this.transport;var e=d.responseXML.getElementsByTagName("user");var f=e.length;for(var c=0;c<f;c++){var b=e[c].attributes;var a=new Object();a.uid=b.getNamedItem("id").nodeValue;a.username=e[c].firstChild.nodeValue;this.data.push(a)}this.fire("PSource:requestFinished",{code:"successful",data:this.data})}});var PSuggestionsSource=Class.create(PSource,{initialize:function($super,a){$super("/ppodnapisi/suggestions/keywords/$search/output/xml/type/"+a)},prepareQuery:function(b){if(typeof(b)!="string"){return}var a=this.url;a=a.replace("$search",b);return a},parseResult:function(){var c=this.transport;var d=c.responseXML.getElementsByTagName("Item");var b=d.length;for(var e=0;e<b;e++){var j=d[e].getElementsByTagName("Text")[0].firstChild.nodeValue;var l=d[e].getElementsByTagName("Description")[0].firstChild.nodeValue;var k=d[e].getElementsByTagName("Image")[0].attributes.getNamedItem("source").nodeValue;var f=d[e].getElementsByTagName("Image")[0].attributes.getNamedItem("height").nodeValue;var h=d[e].getElementsByTagName("Image")[0].attributes.getNamedItem("width").nodeValue;var a=d[e].getElementsByTagName("Url")[0].firstChild.nodeValue;var g=d[e].getElementsByTagName("OmdbId")[0].firstChild.nodeValue;var m=new Object();m.title=j;m.description=l;m.image=new Object();m.image.source=k;m.image.height=f;m.image.width=h;m.url=a;m.omdb=g;this.data.push(m)}this.fire("PSource:requestFinished",{code:"successful",data:this.data})}});
