
Ext.apply(Date.parseCodes,{z:{g:0,c:null,s:"(?:\\d{1,3})"}});Ext.apply(Ext.form.Action.Submit.prototype,{handleResponse:function(response){if(this.form.errorReader){var rs=this.form.errorReader.read(response);var errors=[];if(rs.records){for(var i=0,len=rs.records.length;i<len;i++){var r=rs.records[i];errors[i]=r.data;}}
if(errors.length<1){errors=null;}
return{success:rs.success,errors:errors};}
try{return Ext.decode(response.responseText);}
catch(e){return{success:false,message:'Syntax error during parsing response (JSON format is expected)'};}}});Ext.override(Ext.form.Checkbox,{onRender:function(ct,position){Ext.form.Checkbox.superclass.onRender.call(this,ct,position);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue;}
this.innerWrap=this.el.wrap({cls:this.baseCls+'-wrap-inner'});this.wrap=this.innerWrap.wrap({cls:this.baseCls+'-wrap'});this.imageEl=this.innerWrap.createChild({tag:'img',src:Ext.BLANK_IMAGE_URL,cls:this.baseCls});if(this.boxLabel){this.labelEl=this.innerWrap.createChild({tag:'label',htmlFor:this.el.id,cls:'x-form-cb-label',html:this.boxLabel});}
if(this.checked){this.setValue(true);}else{this.checked=this.el.dom.checked;}
this.originalValue=this.checked;},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.call(this);this.imageEl[this.checked?'addClass':'removeClass'](this.checkedCls);},initCheckEvents:function(){this.innerWrap.addClassOnOver(this.overCls);this.innerWrap.addClassOnClick(this.mouseDownCls);this.innerWrap.on('click',this.onClick,this);},onFocus:function(e){Ext.form.Checkbox.superclass.onFocus.call(this,e);this.innerWrap.addClass(this.focusCls);},onBlur:function(e){Ext.form.Checkbox.superclass.onBlur.call(this,e);this.innerWrap.removeClass(this.focusCls);},onClick:function(e){if(e.getTarget().htmlFor!=this.el.dom.id){if(e.getTarget()!==this.el.dom){this.el.focus();}
if(!this.disabled&&!this.readOnly){this.toggleValue();}}},onEnable:Ext.form.Checkbox.superclass.onEnable,onDisable:Ext.form.Checkbox.superclass.onDisable,onKeyUp:undefined,setValue:function(v){var checked=this.checked;this.checked=(v===true||v==='true'||v=='1'||String(v).toLowerCase()=='on');if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked;this.imageEl[this.checked?'addClass':'removeClass'](this.checkedCls);}
if(checked!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked);}}},getResizeEl:function(){return this.wrap;}});Ext.override(Ext.form.Radio,{checkedCls:'x-form-radio-checked'});Ext.override(Ext.form.CheckboxGroup,{reset:function(){Ext.form.CheckboxGroup.superclass.reset.call(this);if(!this.rendered)
return;this.items.each(function(c){if(c.reset){c.reset();}},this);},getNames:function(){var n=[];this.items.each(function(item){if(item.getValue()){n.push(item.getName());}});return n;},getValues:function(){var v=[];this.items.each(function(item){if(item.getValue()){v.push(item.getRawValue());}});return v;},setValues:function(v){var r=new RegExp('('+v.join('|')+')');this.items.each(function(item){item.setValue(r.test(item.getRawValue()));});}});Ext.override(Ext.form.RadioGroup,{getName:function(){if(this.rendered)
return this.items.first().getName();},initValue:function(){if(this.value!==undefined){this.setValue(this.value);}},getValue:function(){if(!this.rendered){return this.value;}
var v;this.items.each(function(item){if(!item.getValue())return true;v=item.getRawValue();return false;});return v;},setValue:function(v){this.value=v;if(this.rendered){this.items.each(function(item){item.setValue(item.getRawValue()==v);});}}});Ext.override(Ext.form.Checkbox,{initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents('change','check');this.on('check',function(self,checked){self.fireEvent('change',self,!!checked,!checked);});}});Ext.override(Ext.form.RadioGroup,{afterRender:function(){var group=this;this.items.each(function(field){field.on("check",function(self,checked){if(checked)
group.fireEvent('change',group,self.getRawValue());});});Ext.form.RadioGroup.superclass.afterRender.call(this)}});Ext.override(Ext.form.BasicForm,{findField:function(id){var field=this.items.get(id);if(!field){var fn=function(f){if(field)
return false;if(f.isFormField&&(f.dataIndex==id||f.id==id||f.getName()==id)){field=f;return false;}
else if(f.items){f.items.each(fn);}}
this.items.each(fn);}
return field||null;}});Ext.override(Ext.tree.TreeLoader,{processResponse:function(response,node,callback){var json=response.responseText;try{var o=eval("("+json+")");var loader=this;var parseNodes=function(node,o){var nodesToDelete=new Ext.util.MixedCollection();var nodesToAdd=new Ext.util.MixedCollection();var existingNodes=new Ext.util.MixedCollection();for(var i=0,len=o.length;i<len;i++){var n=loader.createNode(o[i]);if(n){var child=node.findChild('id',n.id);if(child){if(child.isLeaf()==n.isLeaf()){if(child.text!=n.text)
child.setText(n.text);existingNodes.add(n.id,true);n.destroy();if(o[i].children){parseNodes(child,o[i].children);}}
else{nodesToDelete.add(child.id,child);nodesToAdd.add(n);}}
else{nodesToAdd.add(n);}}}
nodesToDelete.each(function(n){n.remove();return true;});if(node.childNodes){nodesToDelete.clear();for(var i=0,l=node.childNodes.length;i<l;i++){var childNode=node.childNodes[i];if(existingNodes.containsKey(childNode.id)==false)
nodesToDelete.add(childNode.id,childNode);}
nodesToDelete.each(function(n){n.remove();return true;});}
node.beginUpdate();nodesToAdd.each(function(n){node.appendChild(n);return true;});node.endUpdate();}
parseNodes(node,o);if(typeof callback=="function"){callback(this,node);}}catch(e){this.handleFailure(response);}}});(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase(),check=function(r){return r.test(ua);},isStrict=document.compatMode=="CSS1Compat",isOpera=check(/opera/),isChrome=check(/chrome/),isWebKit=check(/webkit/),isSafari=!isChrome&&check(/safari/),isSafari2=isSafari&&check(/applewebkit\/4/),isSafari3=isSafari&&check(/version\/3/),isSafari4=isSafari&&check(/version\/4/),isIE=!isOpera&&check(/msie/),isIE7=isIE&&check(/msie 7/),isIE8=isIE&&check(/msie 8/),isIE6=isIE&&!isIE7&&!isIE8,isGecko=!isWebKit&&check(/gecko/),isGecko2=isGecko&&check(/rv:1\.8/),isGecko3=isGecko&&check(/rv:1\.9/),isBorderBox=isIE&&!isStrict,isWindows=check(/windows|win32/),isMac=check(/macintosh|mac os x/),isAir=check(/adobeair/),isLinux=check(/linux/),isSecure=/^https/i.test(window.location.protocol);Ext.apply(Ext,{isIE8:isIE8,useShims:((isIE&&!(isIE7||isIE8))||(isMac&&isGecko&&!isGecko3))});})();Ext.override(Ext.menu.Menu,{autoWidth:function(){var el=this.el,ul=this.ul;if(!el){return;}
var w=this.width;if(w){el.setWidth(w);}else if(Ext.isIE&&!Ext.isIE8){el.setWidth(this.minWidth);var t=el.dom.offsetWidth;el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}}});

Ext.namespace('Ext.ux.login');Ext.ux.login.LoginDialog=function(config)
{Ext.apply(this,config);var css=".ux-login-auth-lock-icon {background: url('"+this.basePath+"/lock-icon.gif') 0 6px no-repeat !important;}"
+".ux-login-auth-header {background:transparent url('"+this.basePath+"/login-big.gif') no-repeat center right;padding:12px;padding-right:45px;font-weight:bold;}"
+".ux-login-auth-header .error {color:red;}"
+".ux-login-auth-form {padding:10px;}";Ext.util.CSS.createStyleSheet(css,this._cssId);this.addEvents({'show':true,'cancel':true,'success':true,'failure':true,'submit':true});Ext.ux.login.LoginDialog.superclass.constructor.call(this,config);this._headPanel=new Ext.Panel({baseCls:'x-plain',html:this.message,cls:'ux-login-auth-header',region:'north',height:50});this.usernameId=this.usernameId||Ext.id();this.passwordId=this.passwordId||Ext.id();this._formPanel=new Ext.form.FormPanel({region:'center',border:false,bodyStyle:"padding:10px;",labelWidth:75,defaults:{width:170},items:[{xtype:'textfield',id:this.usernameId,name:this.usernameField,fieldLabel:this.usernameLabel,vtype:this.usernameVtype,allowBlank:false},{xtype:'textfield',inputType:'password',id:this.passwordId,name:this.passwordField,fieldLabel:this.passwordLabel,vtype:this.passwordVtype,allowBlank:false}]});var buttons=[{text:this.loginButton,handler:this.submit,scope:this}];var keys=[{key:[10,13],handler:this.submit,scope:this}];if(typeof this.cancelButton=='string')
{buttons.push({text:this.cancelButton,handler:this.cancel,scope:this});keys.push({key:[27],handler:this.cancel,scope:this});}
this._window=new Ext.Window({width:290,height:200,closable:false,resizable:false,modal:this.modal,iconCls:'ux-login-auth-lock-icon',title:this.title,layout:'border',bodyStyle:'padding:5px;',buttons:buttons,keys:keys,items:[this._headPanel,this._formPanel]});this._window.on('show',function(){Ext.getCmp(this.usernameId).focus(false,true);this.fireEvent('show',this);},this);};Ext.extend(Ext.ux.login.LoginDialog,Ext.util.Observable,{title:'Authenticate',message:'Login to CMS',failMessage:'Unable to log in',waitMessage:'Logging in ...',loginButton:'Login',cancelButton:null,usernameLabel:'Username',usernameField:'username',usernameId:null,usernameVtype:'alphanum',passwordLabel:'Password',passwordField:'password',passwordId:null,passwordVtype:'alphanum',url:'/auth/login/',basePath:'/',method:'post',modal:false,_cssId:'ux-login-auth-css',_headPanel:null,_formPanel:null,_window:null,setMessage:function(msg)
{this._headPanel.body.update(msg);},show:function(el)
{this._window.show(el);},close:function()
{this._window.close();this.purgeListeners();Ext.util.CSS.removeStyleSheet(this._cssId);var self=this;delete self;},cancel:function()
{if(this.fireEvent('cancel',this))
{this.close();}},submit:function()
{var form=this._formPanel.getForm();if(form.isValid())
{if(this.fireEvent('submit',this,form.getValues()))
{this.setMessage(this.message);form.submit({url:this.url,method:this.method,waitMsg:this.waitMessage,success:this.onSuccess,failure:this.onFailure,scope:this});}}},onSuccess:function(form,action)
{if(this.fireEvent('success',this,action))
this.close();},onFailure:function(form,action)
{var msg='';if(action.result&&action.result.message)
msg=action.result.message||this.failMessage;else
msg=this.failMessage;this.setMessage(this.message+'<br /><span class="error">'+msg+'</span>');this.fireEvent('failure',this,action,msg);}});

Ext.BLANK_IMAGE_URL='ext/resources/images/default/s.gif';Ext.onReady(function(){Ext.QuickTips.init();var isDebug=debug!==undefined?debug:false;var prodName=productName!==undefined?productName:"Call Recorder";var loginDlg=new Ext.ux.login.LoginDialog({url:isDebug?'/login-debug.php':'/login.php',message:isDemo?"Login to "+prodName+"<br>(username: demo password: demo)":"Login to "+prodName,usernameVtype:null,passwordVtype:null,basePath:"/images"});loginDlg.on('success',function(){window.location="/";});setTimeout(function(){Ext.get('loading').remove();Ext.get('loading-mask').fadeOut({remove:true});loginDlg.show();},250);});
