window.ServiceManager={urls:{URL_AVAILABLE:"/services/available.json",URL_USER:"/services.json",URL_CREATE:"/services.json",URL_RENDER:"/answers/postable_service/%service_id",URL_CHECK:"/services/%service_id/check_credentials.json",URL_UPDATE:"/services/%service_id.json"},url_for:function(a){return ServiceManager.urls[a]+"?"+Math.random()},addService:function(c){var a=null,b=null;$.ajax({url:ServiceManager.url_for("URL_USER"),dataType:"json",success:function(e){jQuery.each(e,function(){if(this.id==c){a=this.id}});if(a&&b){ServiceManager.do_add_service(a,b)}}});$.ajax({url:ServiceManager.url_for("URL_RENDER").replace("%service_id",c),dataType:"html",success:function(e){b=$(e);if(a&&b){ServiceManager.do_add_service(a,b)}}})},do_add_service:function(b,a){a[0].user_service=new UserService(a[0],b);a.hide().insertAfter("li.insert_service_after:first").fadeIn("slow",function(){})}};window.UserService=function(b,a){b.receipt_id=$(b).attr("id",a);if(!b.receipt_id){b.receipt_id=a}b.update_status=function(c){$(this).find("dd.activity").show();if($(this).find("dd.activity p:visible").length>0){$(this).find("dd.activity p:visible:not([class*="+c.status+"])").fadeOut("fast",function(){$(this).siblings("p."+c.status).fadeIn("slow")})}else{$(this).find("dd.activity p."+c.status).fadeIn("slow")}if(c.status=="success"){this.update_link(c.link)}};b.cancel_posting=function(){$.ajax({url:ResponseData.receipt_url(this.receipt_id),type:"PUT",dataType:"json",data:{"receipt[action]":"cancel"}})};b.retry_posting=function(){$.ajax({url:ResponseData.receipt_url(this.receipt_id),type:"PUT",dataType:"json",data:{"receipt[action]":"retry"},success:function(){b.update_status({status:"pending"});ResponseData.getReceipts()},error:function(){b.update_status({status:"pending"});ResponseData.getReceipts()}})};b.create_receipt=function(){$.ajax({url:ResponseData.urls.CREATE_RECEIPT,type:"post",dataType:"json",data:{service_id:$(b).find("input.service_id").val()},success:function(c){$(b).attr("id",c.receipt);b.receipt_id=$(b).attr("id");ResponseData.receipt_ids.push($(b).attr("id"));ResponseData.getReceipts()}})};b.update_link=function(c){$(this).find("dd.activity p.success a").attr("href",c)};$(b).find("dd.activity p.failure a.retry,dd.activity p.cancelled a").click(function(c){c.preventDefault();$(this).parents("li.service")[0].retry_posting()}).end().find("dd.activity p.pending a").click(function(c){c.preventDefault();$(this).parents("li.service")[0].cancel_posting()}).end().find("a.post").click(function(c){c.preventDefault();$(this).parents("li.service")[0].create_receipt();$(this).fadeOut("fast")}).end()};window.ResponseData={response_id:null,receipt_ids:[],int_id:null,urls:{RECEIPTS:"/answers/%response_id/receipts?",RECEIPT:"/answers/%response_id/receipts/%d.json",CREATE_RECEIPT:"/answers/%response_id/send_to_blog"},getReceipts:function(){clearInterval(ResponseData.int_id);$.ajax({url:ResponseData.receipts_url(ResponseData.receipt_ids),type:"GET",dataType:"json",success:function(b){var a=$.grep(b,function(c){return c.status=="pending"}).length>0;if(b.length==0){return}$.each(b,function(){$("#"+this.id)[0].update_status(this)});if(a){ResponseData.int_id=setInterval(ResponseData.getReceipts,1000)}else{clearInterval(ResponseData.int_id)}}})},receipts_url:function(a){return ResponseData.urls.RECEIPTS+Math.random()+"&ids[]="+a.join("&ids[]=")},receipt_url:function(a){return ResponseData.urls.RECEIPT.replace("%d",a)+"?"+Math.random()}};$(function(){var b=ModalManager.getInstance();var d=new AddServiceController();var f=new ChooseServiceController();var e=new OauthDeclinedController();var a=new ChangeServiceController();var g=new DeleteServiceController();var h={getNode:function(){return $("ul.delete_response")},canClose:function(){return true},afterClose:function(){}};ResponseData.response_id=$("ul.answer_sharing").attr("id");ResponseData.urls.RECEIPTS=ResponseData.urls.RECEIPTS.replace("%response_id",ResponseData.response_id);ResponseData.urls.RECEIPT=ResponseData.urls.RECEIPT.replace("%response_id",ResponseData.response_id);ResponseData.urls.CREATE_RECEIPT=ResponseData.urls.CREATE_RECEIPT.replace("%response_id",ResponseData.response_id);b.registerModal("add_service",d);b.registerModal("choose_service",f);b.registerModal("oauth_declined",e);b.registerModal("change_service",a);b.registerModal("delete_service",g);b.registerModal("delete_response",h);b.scanTriggers();function c(){$.ajax({url:ServiceManager.url_for("URL_AVAILABLE"),dataType:"json",success:function(i){d.populateServices(i)}})}$("ul.answer_sharing li.service").each(function(){if($(this).attr("id")!=""){ResponseData.receipt_ids.push($(this).attr("id"))}});ResponseData.int_id=setInterval(ResponseData.getReceipts,1000);c();$("ul.answer_sharing li.service").each(function(){new UserService(this)})});
