var AdaptedSoftPhone=new Class({lastUrl:"",onCallStateChanged:null,onRegStateChanged:null,init:function(b,a){if(!$("TalkPadAdapter")){throw"Adapter element is not found"}this.onCallStateChanged=a;this.onRegStateChanged=b;window.addEventListener("TalkPadEvent",this.processEvent.create({bind:this,event:true}),false)},deinit:function(){},processEvent:function(a){var f=$(a.target);var g=f.getProperty("topic");var e=f.getProperty("data");if(g=="callState"){var h=e.split("|");var b=h[1];var d=h[0];var c=h[2];var j=-1;var i=-1;if(h.length>3){j=h[3];i=h[4]}this.lastUrl=b;if(this.onCallStateChanged){this.onCallStateChanged(d,b,c,j,i)}}else{if(g=="regState"){if(this.onRegStateChanged){this.onRegStateChanged(e)}}}},getLastUrl:function(){return this.lastUrl},invoke:function(c,a){$("TalkPadAdapter").setAttribute("method",c);for(arg in a){$("TalkPadAdapter").setAttribute(arg,a[arg])}$("TalkPadAdapter").setAttribute("retval","");var b=document.createEvent("Events");b.initEvent("TalkPadInvoke",true,false);$("TalkPadAdapter").dispatchEvent(b);return $("TalkPadAdapter").getAttribute("retval")},register:function(b,a){this.invoke("register",{username:b,siteid:a})},unregister:function(){this.invoke("unregister",{})},call:function(a){this.invoke("call",{url:a})},answer:function(a){this.invoke("answer",{url:a})},cancel:function(a){this.invoke("terminate",{url:a})},refer:function(a,b){this.invoke("refer",{url:a,urlTo:b})},dial:function(a,b){this.invoke("dial",{url:a,digits:b})},requestRegState:function(){this.invoke("getRegState",{})},requestCallState:function(a){this.invoke("getCallState",{url:a})},enumCalls:function(){var a=this.invoke("enumCalls",{});if(!a||a==""){return new Array()}return a.split("|")},getVersion:function(){return $("TalkPadAdapter").getProperty("version")},getCompInfo:function(){return $("TalkPadAdapter").getProperty("compinfo")}});var MozillaSoftPhone=new Class({Extends:AdaptedSoftPhone,latestVersion:function(){return latestXPIVersion},isOutOfDate:function(){return this.getVersion()<this.latestVersion()},updateLink:function(){return"/getsoftphone/"},installFunction:function(){return function(a){var b={"TalkPad Browser Plugin":{URL:a.target.href,IconURL:"/static/img/callstart.png",toString:function(){return this.URL}}};InstallTrigger.install(b);return false}},prefetchLog:function(){},getLog:function(){return this.invoke("getLog",{})}});var ChromeSoftPhone=new Class({Extends:AdaptedSoftPhone,latestVersion:function(){return latestCRXVersion},isOutOfDate:function(){return this.getVersion()<this.latestVersion()},updateLink:function(){return"/softphone.crx"},installFunction:function(){return null},prefetchLog:function(){return this.invoke("getLog",{})},getLog:function(){return decodeURI($("TalkPadAdapter").getAttribute("debuglog"))}});var mozillaSoftPhone=new MozillaSoftPhone();var chromeSoftPhone=new ChromeSoftPhone();

