var softPhone=null;var webInterface={regMessage:null,numberBox:null,callButton:null,adminMessage:null,installDiv:null,installLink:null,installOptions:null,init:function(){this.regMessage=$("regMessage");this.numberBox=$("numberBox");this.callButton=$("callButton");this.adminMessage=$("adminMessage");this.grantMessage=$("grantMessage");this.installDiv=$("installDiv");this.installLink=$("installLink");this.installOptions=$("installOptions");window.onbeforeunload=this.onBeforeUnload},onBeforeUnload:function(a){var b=gettext("cancel_call_confirmation");a=a||window.event;if(stateManager.currentCallState==callInProgress){if(a){a.returnValue=b}return b}},drawRegState:function(a){if(this.regMessage){if(a.regMessageText){this.regMessage.innerHTML=a.regMessageText+" | "}else{this.regMessage.innerHTML=""}}},drawCallState:function(b,a){if(this.callButton){this.callButton.disabled=b.showCallButton?false:true}},getVerticalBar:function(){return new Element("span",{html:Browser.Engine.trident?"&nbsp;|&nbsp;":" | "})},showAdminMessage:function(d,c,b,a){if(this.adminMessage){this.adminMessage.innerHTML="";if(a){new Element("span",{html:a,styles:{color:"red"}}).inject(this.adminMessage);this.getVerticalBar().inject(this.adminMessage)}if(!c){new Element("span",{html:d}).inject(this.adminMessage)}else{var c=new Element("a",{href:c,html:d});c.onclick=b?b:null;c.inject(this.adminMessage)}this.getVerticalBar().inject(this.adminMessage)}},clearAdminMessage:function(){if(this.adminMessage){this.adminMessage.empty()}},showInstallDiv:function(b,c,a,d){if(this.installDiv){this.installDiv.style.display="block";if(this.installLink){this.installLink.href=c;if(a){this.installLink.onclick=a}}if(this.installOptions){if(d){this.installOptions.innerHTML=gettext("for_firefox_and_ie")}else{this.installOptions.innerHTML=gettext("for_firefox")}}}},hideInstallDiv:function(){if(this.installDiv){this.installDiv.style.display="none"}},htmlEntityEncode:function(a){return a.replace(/</g,"").replace(/>/g,"")},setFocus:function(){if(this.numberBox&&!this.numberBox.disabled){this.numberBox.focus()}},devastate:function(){if(this.numberBox&&!this.numberBox.disabled){this.numberBox.value=""}this.grantMessage.innerHTML=help_message},getUrl:function(){var a=$("numberBox").value;if(/^\s*$/.test(a)){return null}if(!a.match("@")){a=a+"@talkpad.ru"}if(!a.match("sip:")){a="sip:"+a}return a},register:function(){var a=Cookie.read("userid");var b=Cookie.read("siteid");if(a&&b){softPhone.register(a,b)}else{this.showAdminMessage(gettext("please login"));softPhone.unregister()}},unregister:function(){if(softPhone){softPhone.unregister()}},makeCall:function(){var a=this.getUrl();if(a){softPhone.call(a);add_entry(a)}else{this.setFocus()}}};var callResults={callTable:null,init:function(){this.callTable=$("callTable")},setDuration:function(){for(var j=0;j<this.callTable.rows.length;j++){var o=this.callTable.rows[j];if(o.getProperty("state")=="callInProgress"){var g=$(o);var k=g.getProperty("date");var d=(new Date()).getTime();var f=d-k;var c=o.getElements("span[name=durationHolder]")[0];c.innerHTML="";var n=o.getElements("span[name=chargeHolder]")[0];n.innerHTML="";var b=g.getProperty("callUrl");if(b){var l=priceHash[b]}var e=formatTime(f/1000);if(e!=""){new Element("span",{styles:{color:"#666666"},html:"&nbsp;-&nbsp;"+e}).inject(c)}if(l&&e){var a=Math.floor(f/1000);var m=(l/60)*(a);if(balance){var h=balance-m;display_balance(h.toFixed(2))}m=m.toFixed(2);new Element("span",{styles:{color:"#666666"},html:"&nbsp;(~"+m+" "+gettext("rur")+")"}).inject(n)}}}},findRow:function(b){var d;for(var c=0;c<this.callTable.rows.length;c++){var d=this.callTable.rows[c];var a=$(d);if(a.getProperty("callUrl")==b){return d}}return null},newRow:function(b){if(this.callTable.rows.length==3){row=this.callTable.deleteRow(2)}$("bbg").style.display="block";row=$(this.callTable.insertRow(0));row.setProperty("callUrl",b.url);var a=row.insertCell(0);return row},makeHtml:function(p,n){var k=webInterface.htmlEntityEncode(p.url);var m=k;if(colored.has(m)){m=colored[m]}else{m=m.replace("sip:","")}m=m.replace(/\@talkpad\.ru$/,"");var o=new Element("table",{"class":"callTable"});var i=new Element("tbody").inject(o);var j=new Element("tr").inject(i);var g=new Element("td",{styles:{"font-size":"1em"}}).inject(j);new Element("td",{align:"right",styles:{"vertical-align":"top"},name:"controlHolder"}).inject(j);var a=new Element("span",{styles:{color:"blue"},html:m,name:"contactHolder"}).inject(g);new Element("span",{styles:{color:"#000000"},name:"stateHolder"}).inject(g);var l=directionHash[k];var b=new Element("div",{styles:{color:"#000000"},name:"directionHolder"}).inject(g);if(l){l.inject(b)}else{var f={method:"POST",url:"/users/",data:"first=1&q="+k,onSuccess:function(u,s){if(u){var r=u[0];var q=new Hash(r);colored[q.num_post_n]=q.num_colorized;priceHash[k]=q.price;var t=callResults.findRow(k);l=get_descr(q,0);l.inject(t.getElements("div[name=directionHolder]")[0]);t.getElements("span[name=contactHolder]")[0].innerHTML=q.num_colorized}}};requestProcessor.push(f)}new Element("br").inject(g);var e=new Date();var h=p.totalDuration!=-1?p.totalDuration:0;var d=e-h;var c=formatDate(d);new Element("span",{styles:{color:"#666666"},html:gettext("begin")+": "+c}).inject(g);new Element("span",{name:"durationHolder"}).inject(g);new Element("span",{name:"chargeHolder"}).inject(g);new Element("br").inject(g);new Element("span",{styles:{color:"green","font-style":"normal"},html:k}).inject(g);return o},drawControls:function(b,a){a.innerHTML="";if(b.state.showAnswerButton){new Element("span",{html:"[&nbsp;"}).inject(a);var d=new Element("a",{html:gettext("answer_call"),href:'javascript:softPhone.answer("'+b.url.replace(/\"/g,'\\"')+'")'}).inject(a);new Element("span",{html:"&nbsp;]&nbsp;"}).inject(a)}if(b.state.showCancelButton){new Element("span",{html:"[&nbsp;"}).inject(a);var c=new Element("a",{html:gettext("drop_call"),href:'javascript:softPhone.cancel("'+b.url.replace(/\"/g,'\\"')+'")'}).inject(a);new Element("span",{html:"&nbsp;]"}).inject(a)}if(b.state.showAnswerButton){d.focus()}else{if(b.state.showCancelButton){c.focus()}}},drawState:function(b,a){a.innerHTML="";new Element("span",{html:"&nbsp;-&nbsp;"+b}).inject(a)},drawCall:function(c){var d=this.findRow(c.url);if(!d){d=this.newRow(c);this.makeHtml(c).inject(d.cells[0])}var b="";if(c.state==readyToCall){if(d.getProperty("state")=="incomingCall"){b=gettext("lost_call")}if(d.getProperty("state")=="callInProgress"){b=gettext("call_ended");setTimeout(check_balance,1000)}if(d.getProperty("state")=="outgoingCall"){if(c.info=="Busy Here"){b=gettext("busy_here")}else{if(c.info.indexOf("Unresolvable destination")==0){b=gettext("unresolvable_destination")}else{b=gettext("no_answer")}}}d.setProperty("state","readyToCall");d.setProperty("callUrl","")}if(c.state==outgoingCall){d.setProperty("state","outgoingCall");b=gettext("outgoing_call")+"..."}if(c.state==incomingCall){d.setProperty("state","incomingCall");b=gettext("incoming_call")+"..."}if(c.state==callInProgress){d.setProperty("state","callInProgress");var a=(new Date()).getTime();if(c.connectDurarion!=-1){a-=Math.floor(c.connectDuration)}d.setProperty("date",a);b=gettext("connected")}this.drawControls(c,d.getElements("td[name=controlHolder]")[0]);this.drawState(b,d.getElements("span[name=stateHolder]")[0])}};var isFirefox=Browser.Engine.gecko&&parseInt(Browser.Engine.version,10)>=19&&!Browser.Platform.linux;var isChrome=Browser.Engine.webkit&&navigator.userAgent.indexOf("Chrome")!=-1&&Browser.Platform.win;var isIE=Browser.Engine.trident&&parseInt(Browser.Engine.version,10)>=4;var isOpera=Browser.Engine.presto&&Browser.Platform.win;function createSoftPhone(){var a=null;if(isFirefox){a=new MozillaSoftPhone()}else{if(isIE){a=new ActiveXSoftPhone()}else{if(isChrome){a=new ChromeSoftPhone()}else{if(isOpera){a=new NPAPISoftPhone()}}}}return a}var initTries=0;function init(){if(isChrome&&$("TalkPadAdapter")&&!$("TalkPadAdapter").getAttribute("version")&&initTries<20){setTimeout(init,50);initTries=initTries+1;return}var e=Cookie.read("login_panel");if(e){Cookie.dispose("login_panel");loginPanel.setUser(e)}initReport();loadFlags();webInterface.init();callResults.init();var b=Cookie.read("userid");var d=Cookie.read("siteid");xmppInit(b,d);softPhone=createSoftPhone();if(!softPhone){webInterface.showAdminMessage(gettext("softphone_not_installed"));var g=function(){alert(gettext("unsupported_browser"))};webInterface.showInstallDiv(false,"",g,Browser.Platform.win);return}try{softPhone.init(onRegStateChanged,onCallStateChanged);webInterface.clearAdminMessage();webInterface.hideInstallDiv();if(softPhone.isOutOfDate()){webInterface.showAdminMessage(gettext("update_extension")+" "+softPhone.latestVersion(),softPhone.updateLink(),softPhone.installFunction())}}catch(c){if(c=="not_installed"){webInterface.showAdminMessage(gettext("softphone_not_installed"));webInterface.showInstallDiv(true,softPhone.updateLink(),softPhone.installFunction(),Browser.Platform.win)}else{if(b&&d){if(/^[0-9]/.test(c)){c="Unknown error: "+c}var f=c;if(/\(/.test(c)){c=c.split("(")[0]}webInterface.showAdminMessage(gettext("reinstall_softphone"),softPhone.updateLink(),softPhone.installFunction(),c);softphone_debug(f)}}softPhone=null;return}var a=softPhone.getCompInfo();if(a){softphone_data(a)}stateManager.init();webInterface.register();if(!e){webInterface.setFocus()}if(b){callResults.setDuration();setInterval("callResults.setDuration()",500)}requestProcessor.init()}function loadFlags(){new Asset.images(["/static/img/flags.png"])}var deinitialized=false;function deinit(){if(deinitialized){return}deinitialized=true;xmppDestroy()};

