window.uniquenoncenumber=1;window.uniquenonce=function(){window.uniquenoncenumber=window.uniquenoncenumber+1;var b=new Date();var a=b.getSeconds()+window.uniquenoncenumber;return Math.floor(Math.random(a)*1000000000000)+1};var ApiClient=new Class({options:{apibaseurl:document.location.protocol+"//"+document.location.host,apipath:"/.api/api.svc/",headers:{Accept:"application/json"},apimethod:null,queryparams:null,postdata:null,method:"post",evalScripts:true,onRequest:function(){},onSuccess:function(){},onFailure:function(){},sessionKey:Cookie.read("iglooauth").replace("{","").replace("}",""),secretKey:Cookie.read("igloojs").replace("{","").replace("}",""),sendimmediately:true,debug:false},initialize:function(b){var a=this;this.setOptions(b);this.apiurl=this.options.apibaseurl;this.apiurl+=this.options.apipath;this.apiurl+=this.options.apimethod;var c=new Hash({apisecure:"on"});if(this.options.queryparams){c.combine(this.options.queryparams)}this.apiurl+="?"+Hash.toQueryString(c);this.apiurl=this.apiurl.replace("~","%7e");if(this.options.method=="post"){if(this.options.postdata==null){this.options.postdata={post:"empty"}}}this.myRequest=b.onRequest;this.mySuccess=b.onSuccess;this.myFailure=b.onFailure;if(this.options.sendimmediately==true){this.send()}if(this.options.debug){alert("### debug mode is on\n\napiurl = "+this.apiurl+"\n\npostdata = "+Hash.toQueryString(this.options.postdata))}},send:function(){var g=this;var c=window.uniquenonce();var e=this.options.method.toUpperCase();e+=":";e+=this.apiurl;e+=this.options.sessionKey;e+=c;e+=this.options.postdata?Hash.toQueryString(this.options.postdata):"";var a=Utils.Utf8.encode(e);var f=Utils.Utf8.encode(this.options.secretKey);if(this.options.debug){alert("secret\n\n"+f)}var i=new Crypt.Sha1.Hmac({b64pad:"=",output:"b64"});var h=i.encrypt(f,a);if(this.options.debug){alert("utf8str\n\n"+a)}if(this.options.debug){alert("sig\n\n"+h)}var d=this.apiurl;d+=(d.indexOf("?")==-1)?"?":"&";d+="sessionKey="+this.options.sessionKey;d+="&nonce="+c;d+="&signature="+encodeURIComponent(h);if(this.options.debug){alert("### debug mode is on\n\nrequesturl = "+d+"\n\npostdata = "+Hash.toQueryString(this.options.postdata))}this.apirequest=new Request({url:d,method:this.options.method,headers:this.options.headers,evalScripts:this.options.evalScripts,data:this.options.postdata,onRequest:g.myRequest,onSuccess:g.mySuccess,onFailure:g.myFailure});try{this.apirequest.send()}catch(b){}},cancel:function(){if(this.apirequest){this.apirequest.cancel()}},internalRequest:function(){var a=this;if(a.myRequest){a.myRequest()}},internalSuccess:function(c,b){var a=this;if(a.mySuccess){a.mySuccess(c,b)}},internalFailure:function(b){var a=this;if(a.myFailure){a.myFailure(b)}}});ApiClient.implement(new Events,new Options);