transmission.torrents={all:null,puased:null,downloading:null,actively:null,searchResult:null,error:null,warning:null,folders:{},status:{},count:0,totalSize:0,loadSimpleInfo:false,activeTorrentCount:0,pausedTorrentCount:0,fields:{base:"id,name,status,hashString,totalSize,percentDone,addedDate,trackerStats,leftUntilDone,rateDownload,rateUpload,recheckProgress,rateDownload,rateUpload,peersGettingFromUs,peersSendingToUs,uploadRatio,uploadedEver,downloadedEver,downloadDir,error,errorString,doneDate,queuePosition,activityDate", status:"id,status,percentDone,trackerStats,leftUntilDone,rateDownload,rateUpload,rateDownload,rateUpload,peersGettingFromUs,peersSendingToUs,uploadRatio,uploadedEver,downloadedEver,error,errorString,doneDate,queuePosition,activityDate",config:"downloadLimit,downloadLimited,peer-limit,seedIdleLimit,seedIdleMode,seedRatioLimit,seedRatioMode,uploadLimit,uploadLimited"},datas:{},recently:null,removed:null,isRecentlyActive:false,newIds:[],btItems:[],getallids:function(b,d,c){var a=this.fields.base;if(this.loadSimpleInfo&& this.all)a=this.fields.status;a=a.split(",");$.isArray(c)&&$.unique($.merge(a,c));c={fields:a};this.isRecentlyActive=false;if(this.all&&d==undefined){c.ids="recently-active";this.isRecentlyActive=true}else if(d)c.ids=d;if(!this.all)this.all={};transmission.exec({method:"torrent-get",arguments:c},function(g){if(g.result=="success"){transmission.torrents.newIds.length=0;transmission.torrents.loadSimpleInfo=true;transmission.torrents.recently=g.arguments.torrents;transmission.torrents.removed=g.arguments.removed; transmission.torrents.splitid();b&&b(g.arguments.torrents)}else{transmission.torrents.datas=null;b&&b(null)}})},splitid:function(){this.downloading=[];this.puased=[];this.actively=[];this.error=[];this.warning=[];this.btItems=[];transmission.downloadDirs=[];var b=transmission._status;this.status={};transmission.trackers={};this.totalSize=0;this.folders={};this.count=0;var d=new Base64,c;for(c in this.recently){var a=this.recently[c];this.datas[a.id]=a}var g=[];for(c in this.removed){a=this.removed[c]; g.push(a)}for(c in this.datas){a=this.datas[c];if(!a)return;if($.inArray(a.id,g)!=-1&&g.length>0){if(this.all[a.id]){this.all[a.id]=null;delete this.all[a.id]}this.datas[c]=null;delete this.datas[c]}else{this.isRecentlyActive&&!this.all[a.id]&&this.newIds.push(a.id);a=$.extend(this.all[a.id],a);if(a.uploadedEver==0&&a.downloadedEver==0)a.uploadRatio="∞";a.infoIsLoading=false;var e=this.status[a.status];this.addTracker(a);if(!e){this.status[a.status]=[];e=this.status[a.status]}this.totalSize+=a.totalSize; a.remainingTime=a.rateDownload>0&&a.leftUntilDone>0?Math.floor(a.leftUntilDone/a.rateDownload*1E3):a.rateDownload==0&&a.leftUntilDone==0&&a.totalSize!=0?0:31536E8;e.push(a);a.error!=0&&this.error.push(a);if(a.rateUpload>0||a.rateDownload>0)this.actively.push(a);switch(a.status){case b.stopped:this.puased.push(a);break;case b.download:this.downloading.push(a)}this.all[a.id]=a;$.inArray(a.downloadDir,transmission.downloadDirs)==-1&&transmission.downloadDirs.push(a.downloadDir);if(transmission.options.getFolders)if(a.downloadDir){e= a.downloadDir.replace(/\\/g,"/").split("/");var j="folders-",h;for(h in e){var f=e[h];if(f!=""){f=d.encode(f);j+=f.replace(/[+|\/|=]/g,"0");(f=this.folders[j])||(f={count:0,torrents:[],size:0,nodeid:j});f.torrents.push(a);f.count++;f.size+=a.totalSize;this.folders[j]=f}}}this.count++}}transmission.downloadDirs=transmission.downloadDirs.sort();this.newIds.length>0&&this.getallids(null,this.newIds)},addTracker:function(b){var d=b.trackerStats,c=[];b.leecherCount=0;b.seederCount=0;if(d.length>0){var a= [],g;for(g in d){var e=d[g],j=e.lastAnnounceResult.toLowerCase(),h=e.host.getHostName().split(".");$.inArray(h[0],"www,tracker".split(","))!=-1&&h.shift();h=h.join(".");var f="tracker-"+h.replace(/\./g,"-"),i=transmission.trackers[f];if(!i){transmission.trackers[f]={count:0,torrents:[],size:0,connected:true,isBT:d.length>5};i=transmission.trackers[f]}i.name=h;i.nodeid=f;i.host=e.host;if(!e.lastAnnounceSucceeded&&e.announceState!=transmission._trackerStatus.inactive){a.push(e.lastAnnounceResult);if(j== "could not connect to tracker")i.connected=false}if(i.torrents.indexOf(b)==-1){i.torrents.push(b);i.count++;i.size+=b.totalSize}b.leecherCount+=e.leecherCount;b.seederCount+=e.seederCount;c.indexOf(h)==-1&&c.push(h)}d.length>5&&this.btItems.push(b);if(a.length==d.length){b.warning=a.join(";");if(b.nextAnnounceTime){if(b.nextAnnounceTime>e.nextAnnounceTime)b.nextAnnounceTime=e.nextAnnounceTime}else b.nextAnnounceTime=e.nextAnnounceTime;this.warning.push(b)}if(b.leecherCount<0)b.leecherCount=0;if(b.seederCount< 0)b.seederCount=0;b.leecher=b.leecherCount+" ("+b.peersGettingFromUs+")";b.seeder=b.seederCount+" ("+b.peersSendingToUs+")";b.trackers=c.join(";")}},getPeers:function(b){transmission.exec({method:"torrent-get",arguments:{fields:"peers,peersFrom".split(","),ids:b}},function(d){console.log("data:",d)})},getMoreInfos:function(b,d,c){transmission.exec({method:"torrent-get",arguments:{fields:b.split(","),ids:d}},function(a){if(a.result=="success")c&&c(a.arguments.torrents);else c&&c(null)})},search:function(b, d){if(!b)return null;if(!d)d=this.all;var c=[];$.each(d,function(a){d[a].name.toLowerCase().indexOf(b.toLowerCase())!=-1&&c.push(d[a])});return this.searchResult=c},getFiles:function(b,d){transmission.exec({method:"torrent-get",arguments:{fields:"files,fileStats".split(","),ids:b}},function(c){if(c.result=="success")d&&d(c.arguments.torrents);else d&&d(null)})},getConfig:function(b,d){this.getMoreInfos(this.fields.config,b,d)},getErrorIds:function(b,d){var c=[],a=new Date;if(d==true)a=a.getTime()/ 1E3;for(var g in this.error){var e=this.error[g];if(!($.inArray(e.id,b)!=-1&&b.length>0)){if(d==true)if(a0)){if(d==true)if(a