(function(c,b,d){var a; b.Granite=b.Granite||{}; b.Granite.$=b.Granite.$||c; b._g=b._g||{}; b._g.$=b._g.$||c; a=Granite.HTTP; c.ajaxSetup({externalize:true,encodePath:true,hook:true,beforeSend:function(f,e){if(typeof G_IS_HOOKED=="undefined"||!G_IS_HOOKED(e.url)){if(e.externalize){e.url=a.externalize(e.url) }if(e.encodePath){e.url=a.encodePathOfURI(e.url) }}if(e.hook){var g=a.getXhrHook(e.url,e.type,e.data); if(g){e.url=g.url; if(g.params){if(e.type.toUpperCase()=="GET"){e.url+="?"+c.param(g.params) }else{e.data=c.param(g.params) }}}}},statusCode:{403:function(e){if(e.getResponseHeader("X-Reason")==="Authentication Failed"){a.handleLoginRedirect() }}}}); c.ajaxSettings.traditional=true }(jQuery,this)); (function(e,b){e.Granite=e.Granite||{}; if(e.Granite.csrf){return }e.Granite.csrf={initialised:false,refreshToken:l}; function h(){this._handler=[] }h.prototype={then:function(r,q){this._handler.push({resolve:r,reject:q}) },resolve:function(){this._execute("resolve",arguments) },reject:function(){this._execute("reject",arguments) },_execute:function(q,r){if(this._handler===null){throw new Error("Promise already completed.") }for(var s=0,t=this._handler.length; s