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}},showAdminMessage:function(c,b,a){if(this.adminMessage){this.adminMessage.innerHTML="";if(!b){new Element("span",{html:c}).inject(this.adminMessage)}else{var b=new Element("a",{href:b,html:c});b.onclick=a?a:null;b.inject(this.adminMessage)}new Element("span",{html:Browser.Engine.trident?"&nbsp;|&nbsp;":" | "}).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(!a.match("@")){a=a+"@talkpad.ru"}if(!a.match("sip:")){a="sip:"+a}try{if(normalized){return normalized}else{return a}}catch(b){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);this.devastate()}else{this.setFocus()}}};var SearchResult=new Class({initialize:function(c,b,a){this.title=c;this.action=b;this.urlString=a}});var CallSearchResult=new Class({Extends:SearchResult,initialize:function(a){}});var requests=new Array();function processRequests(){while(requests.length>0){var a=requests.pop();new Request.JSON(a).send()}}var callResults={callTable:null,init:function(){this.callTable=$("callTable")},setDuration:function(){for(var j=0;j<this.callTable.rows.length;j++){var p=this.callTable.rows[j];if(p.getProperty("state")=="callInProgress"){var g=$(p);var k=g.getProperty("date");var d=(new Date()).getTime();var f=d-k;var c=p.getElements("span[name=durationHolder]")[0];c.innerHTML="";var o=p.getElements("span[name=chargeHolder]")[0];o.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(o)}}}},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(r,p){var l=webInterface.htmlEntityEncode(r.url);var o=l;if(colored.has(o)){var o=colored[o]}else{var o=o.replace("sip:","")}var o=o.replace("@talkpad.ru$","");var q=new Element("table",{"class":"callTable"});var j=new Element("tbody").inject(q);var k=new Element("tr").inject(j);var g=new Element("td",{styles:{"font-size":"1em"}}).inject(k);new Element("td",{align:"right",styles:{"vertical-align":"top"},name:"controlHolder"}).inject(k);var a=new Element("span",{styles:{color:"blue"},html:o,id:"contactHolder"}).inject(g);new Element("span",{styles:{color:"#000000"},name:"stateHolder"}).inject(g);new Element("br").inject(g);var m=directionHash[l];var b=new Element("span",{styles:{color:"#000000"},id:"directionHolder"}).inject(g);if(m){m.inject(b)}else{var f={method:"POST",url:"/users/",data:"first=1&q="+l,onSuccess:function(v,u){if(v){var t=v[0];var s=new Hash(t);colored[s.num_post_n]=s.num_colorized;priceHash[l]=s.price;m=get_descr(s,0);m.inject($("directionHolder"));$("contactHolder").innerHTML=s.num_colorized}}};requests.push(f)}new Element("br").inject(g);var e=new Date();var h=r.totalDuration!=-1?r.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:l}).inject(g);return q},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 xmppClient=new XMPPClient();var chatPanelPlacer=new ChatPanelPlacer();var initTries=0;var isFirefox=Browser.Engine.gecko&&parseInt(Browser.Engine.version,10)>=19;var isChrome=Browser.Engine.webkit&&navigator.userAgent.indexOf("Chrome")!=-1&&Browser.Platform.win;var isIE=Browser.Engine.trident&&parseInt(Browser.Engine.version,10)>=4;function gen_resource(){var a="abcdefghijklmnopqrstuvwxyz";a+="ABCDEFGHIJKLMNOPQRSTUVWXYZ";a+="1234567890";res="talkpad.";for(n=0;n<8;n++){i=Math.floor(Math.random()*61);res+=a.charAt(i)}return res}function init(){if(isChrome&&$("TalkPadAdapter")&&!$("TalkPadAdapter").getAttribute("version")&&initTries<20){setTimeout(init,50);initTries=initTries+1;return}var b=Cookie.read("login_panel");if(b){Cookie.dispose("login_panel");loginPanel.setUser(b)}initReport();loadFlags();webInterface.init();callResults.init();var d=Cookie.read("userid");var h=Cookie.read("siteid");var f=gen_resource();if(xmppClient&&d&&h){xmppClient.connect(d+"@talkpad.ru",h,f)}var e=function(){alert(gettext("unsupported_browser"))};var g=function(){alert(gettext("get_chrome_beta"))};var j=e;if(isFirefox){softPhone=mozillaSoftPhone}else{if(isIE){softPhone=activeXSoftPhone}else{if(isChrome){if(navigator.userAgent.indexOf("Chrome/3")!=-1){j=g}else{softPhone=chromeSoftPhone}}}}if(!softPhone){webInterface.showAdminMessage(gettext("softphone_not_installed"));webInterface.showInstallDiv(false,"",j,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){webInterface.showAdminMessage(gettext("softphone_not_installed"));webInterface.showInstallDiv(true,softPhone.updateLink(),softPhone.installFunction(),Browser.Platform.win);softPhone=null;return}var a=softPhone.getCompInfo();if(a){softphone_data(a)}stateManager.init();webInterface.register();if(!b){webInterface.setFocus()}callResults.setDuration();setInterval("callResults.setDuration()",500);setInterval(processRequests,100)}function initReport(){setTimeout(report,500)}function report(){var c=(("https:"==document.location.protocol)?"https://ssl.":"http://www.");new Asset.javascript(c+"google-analytics.com/ga.js",{onload:function(){var d=_gat._getTracker("UA-9390996-1");d._trackPageview()}});var b="http://counter.yadro.ru/hit?t52.6;r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";"+Math.random();var a=new Asset.image(b,{border:0,width:88,height:31,alt:"",title:gettext("liveInternet")})}function loadFlags(){new Asset.images(["/static/img/flags.png"])}var deinitialized=false;function deinit(){if(deinitialized){return}deinitialized=true;chatPanelPlacer.closeChildren();if(xmppClient&&xmppClient.connected){xmppClient.disconnect()}}function flush(){webInterface.unregister();webInterface.register()};

