Ext.namespace("DreamOne.hades");DreamOne.hades.Toy=function(a){DreamOne.hades.Toy.superclass.constructor.call(this,a)};Ext.extend(DreamOne.hades.Toy,Object,{isDebug:true,adminName:null,adminUser:function(){return this.twitter?this.twitter.User.find(this.adminName):null},loggedUser:function(){return this.twitter?this.twitter.currentUser:null},twitter:null,onInit:null,onReadyForDM:null,loginBtn:null,followBtn:null,isLoggedInUserFollowed:false,goodsList:[],appCtx:"/Hades",appExt:".do",log:function(a){if(this.isDebug){alert(a)}},action:function(a){return String.format("{0}{1}{2}",this.appCtx,a,this.appExt)},followTo:function(d,c,b){try{Ext.Ajax.request({url:this.action("/data/json"),params:{what:"twitterhandler","var(of)":"follow","var(on)":d},success:c,failure:b})}catch(a){this.log(a)}},followMe:function(){try{this.adminUser().follow()}catch(a){this.log(a)}},registerTo:function(c,b,e,h,d){try{var g="";if(c&&0<c.length){for(var f=0;f<c.length;f++){if(-1==this.goodsList.indexOf(c[f])){g+=String.format("{0},",c[f])}}}if(g.length<=0){h(false,[String.format("すでに問い合わせ済みの物件です")]);return}if(!this.loggedUser()){h(false,[String.format("ログインしていません")])}Ext.getBody().mask();Ext.Ajax.request({url:this.action("/inquiry/register/goods/twitter"),method:"POST",params:{ids:g,autoLogin:false,moveInMonth:"---",title:"twitterでのお問い合わせ",byWhat:"twitter",name:((!b||b=="")?this.loggedUser().name:this.loggedUser().screenName),bodyMain:String.escape(e),quiet:true,json:true,twitter:this.loggedUser().screenName},failure:function(j,i){Ext.getBody().unmask();this.log("登録に失敗しました。");if(d){d(j,i)}}.createDelegate(this),success:function(n,i){Ext.getBody().unmask();if(n){this.log("response:"+n.responseText);try{var k=Ext.util.JSON.decode(n.responseText);if(k){var l=null;if(k.success&&k.inquiry){l=k.inquiry;for(var j=0;j<l.goods_idsArray.length;j++){this.goodsList.push(l.goods_idsArray[j])}if(h){h(true,l);return}}if(k.messages){if(h){h(false,k.messages);return}}}if(d){d(n,i)}}catch(m){this.log(m)}}}.createDelegate(this)})}catch(a){this.log(a)}},tweet:function(c,b,a){if(this.twitter&&this.loggedUser()){this.twitter.Status.update(c,{success:b,error:a})}},makeSureAdminFollowsTo:function(){try{var b=this.loggedUser();if(b&&this.adminUser()){b.isFollowing(this.adminName,function(c){if(!c){this.followMe()}}.createDelegate(this));if(!this.isLoggedInUserFollowed){this.followTo(this.loggedUser().screenName,this.onFollowStatusChanged.createDelegate(this),this.onGeneralFailure.createDelegate(this))}else{this.onReadyForDM(this)}}}catch(a){this.log(a)}},onGeneralFailure:function(b,a){this.log("error:"+a)},onSignOut:function(){this.log("signout");this.onGoOffline(this)},onAuthCompleted:function(b){try{this.log("authComp");if(this.loggedUser()){this.makeSureAdminFollowsTo()}}catch(a){this.log(a)}},onFollowStatusChanged:function(b,c){try{if(b.responseText){var d=Ext.util.JSON.decode(b.responseText);this.isLoggedInUserFollowed=d.followed}this.onReadyForDM(this)}catch(a){this.log(a)}},onInitAnywhere:function(b){try{this.twitter=b;b.bind("authComplete",function(d,c){this.onAuthCompleted(c)}.createDelegate(this));b.bind("signOut",function(c){this.onSignOut()}.createDelegate(this));this.twitter(this.loginBtn).connectButton({size:"large"});if(this.loggedUser()){this.makeSureAdminFollowsTo()}this.onInit(this)}catch(a){this.log(a)}},init:function(b){try{this.isDebug=b.isDebug?true:false;this.adminName=b.adminName;if(!this.adminName){throw"give me an admin name!"}this.onInit=b.onInit;if(!this.onInit){throw"give me an onInit function!"}this.loginBtn=b.loginBtn;if(!this.loginBtn){throw"give me an loginBtn!"}this.followBtn=b.followBtn;if(!this.followBtn){throw"give me an followBtn!"}this.onReadyForDM=b.onReadyForDM;if(!this.onReadyForDM){throw"give me an onReadyForDM!"}this.onGoOffline=b.onGoOffline;if(!this.onGoOffline){throw"give me an onGoOffline!"}twttr.anywhere(this.onInitAnywhere.createDelegate(this))}catch(a){this.log(a)}}});
