GO.addressbook.SelectCompany=function(a){Ext.apply(this,a);this.displayField="name_and_name2";if(typeof(a.fields)=="undefined"){a.fields={columns:[],fields:["id","name_and_name2","post_address","post_address_no","post_zip","post_city","post_state","post_country","vat_no","email"]}}if(!this.fieldLabel){this.fieldLabel=GO.addressbook.lang.company}if(GO.customfields){GO.customfields.addColumns(3,a.fields)}if(typeof(a.store)=="undefined"){this.store=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"companies",addressbook_id:this.addressbook_id,no_addressbooks_filter:"1"},root:"results",id:"id",totalProperty:"total",fields:a.fields.fields,remoteSort:true})}this.store.setDefaultSort("name","asc");GO.addressbook.SelectCompany.superclass.constructor.call(this,{valueField:"id",triggerAction:"all",selectOnFocus:true,pageSize:parseInt(GO.settings.max_rows_list)})};Ext.extend(GO.addressbook.SelectCompany,GO.form.ComboBoxReset);GO.addressbook.SelectContact=function(b){if(!b.displayField){b.displayField="name"}if(!b.valueField){b.valueField="id"}var a={fields:["id","cf","name","salutation","email","first_name","middle_name","last_name","home_phone","work_phone","cellular","company_id","company_name","address","address_no","zip","city","state","country"],columns:[]};if(GO.customfields){GO.customfields.addColumns(2,a)}b.store=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"contacts",addressbook_id:b.addressbook_id,no_addressbooks_filter:1},root:"results",id:"id",totalProperty:"total",fields:a.fields,remoteSort:true});b.store.setDefaultSort("name","asc");b.triggerAction="all";b.selectOnFocus=true;b.pageSize=parseInt(GO.settings.max_rows_list);GO.addressbook.SelectContact.superclass.constructor.call(this,b)};Ext.extend(GO.addressbook.SelectContact,GO.form.ComboBoxReset);Ext.ComponentMgr.registerType("selectcontact",GO.addressbook.SelectContact);GO.addressbook.readableAddressbooksStore=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"addressbooks",auth_type:"read",limit:parseInt(GO.settings.max_rows_list)},root:"results",totalProperty:"total",id:"id",fields:["id","name","owner","checked"],remoteSort:true});GO.addressbook.writableAddressbooksStore=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"addressbooks",auth_type:"write",limit:parseInt(GO.settings.max_rows_list)},root:"results",totalProperty:"total",id:"id",fields:["id","name","owner","acl_id","user_id","default_iso_address_format","default_salutation"],remoteSort:true});GO.addressbook.writableAddressbooksStore.on("load",function(){GO.addressbook.writableAddressbooksStore.on("load",function(){GO.addressbook.readableAddressbooksStore.load()},this)},this,{single:true});GO.addressbook.ManageDialog=function(b){if(!b){b={}}this.addressbooksGrid=new GO.addressbook.ManageAddressbooksGrid();var a=[this.addressbooksGrid];if(GO.mailings){this.templatesGrid=new GO.mailings.TemplatesGrid();this.mailingsGrid=new GO.mailings.MailingsGrid();a.push(this.templatesGrid);a.push(this.mailingsGrid)}if(GO.settings.has_admin_permission){this.exportPermissionsTab=new GO.grid.PermissionsPanel({title:GO.addressbook.lang.exportPermission,hideLevel:true});a.push(this.exportPermissionsTab)}b.layout="fit";b.modal=false;b.shadow=false;b.border=false;b.height=450;b.width=800;b.closeAction="hide";b.title=GO.addressbook.lang.cmdManageDialog;b.items=[{xtype:"tabpanel",activeTab:0,border:true,items:a}];b.buttons=[{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];GO.addressbook.ManageDialog.superclass.constructor.call(this,b)};Ext.extend(GO.addressbook.ManageDialog,GO.Window,{show:function(){if(!this.rendered){this.render(Ext.getBody())}if(GO.settings.has_admin_permission){this.exportPermissionsTab.setAcl(GO.addressbook.export_acl_id)}GO.addressbook.ManageDialog.superclass.show.call(this)}});GO.addressbook.ManageAddressbooksGrid=function(a){if(!a){a={}}a.title=GO.addressbook.lang.addressbooks;a.layout="fit";a.autoScroll=true;a.split=true;a.store=GO.addressbook.writableAddressbooksStore;a.paging=true;var b=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{header:GO.lang.strName,dataIndex:"name"},{header:GO.addressbook.lang.cmdOwner,dataIndex:"owner",sortable:false}]});a.cm=b;a.view=new Ext.grid.GridView({autoFill:true,forceFit:true,emptyText:GO.addressbook.lang.noAddressbooks}),a.sm=new Ext.grid.RowSelectionModel();a.loadMask=true;a.tbar=[{iconCls:"btn-add",text:GO.lang.cmdAdd,cls:"x-btn-text-icon",handler:function(){this.addressbookDialog.show()},disabled:!GO.settings.modules.addressbook.write_permission,scope:this},{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",handler:function(){this.deleteSelected()},disabled:!GO.settings.modules.addressbook.write_permission,scope:this},"-",new GO.form.SearchField({store:a.store,width:150})];GO.addressbook.ManageAddressbooksGrid.superclass.constructor.call(this,a);this.on("rowdblclick",function(d,e){var c=d.getStore().getAt(e);this.addressbookDialog.show(c)},this)};Ext.extend(GO.addressbook.ManageAddressbooksGrid,GO.grid.GridPanel,{afterRender:function(){GO.addressbook.ManageAddressbooksGrid.superclass.afterRender.call(this);if(!GO.addressbook.writableAddressbooksStore.loaded){GO.addressbook.writableAddressbooksStore.load()}this.addressbookDialog=new GO.addressbook.AddressbookDialog();this.addressbookDialog.on("save",function(){GO.addressbook.writableAddressbooksStore.load();GO.addressbook.readableAddressbooksStore.load()})},onShow:function(){GO.addressbook.ManageAddressbooksGrid.superclass.onShow.call(this);if(!GO.addressbook.writableAddressbooksStore.loaded){GO.addressbook.writableAddressbooksStore.load()}}});GO.addressbook.AddressbookDialog=function(b){if(!b){b={}}this.buildForm();var a=function(){this.propertiesPanel.items.items[0].focus()};b.layout="fit";b.modal=false;b.shadow=false;b.border=false;b.height=450;b.width=800;b.closeAction="hide";b.title=GO.addressbook.lang.addressbook;b.items=this.tabPanel;this.buttons=[{text:GO.addressbook.lang.cmdUpload,handler:function(){this.uploadFile()},hidden:true,scope:this},{text:GO.addressbook.lang.cmdExport,handler:function(){this.exportData()},hidden:true,scope:this},{text:GO.lang.cmdOk,handler:function(){this.saveAddressbook(true)},scope:this},{text:GO.lang.cmdApply,handler:function(){this.saveAddressbook()},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];GO.addressbook.AddressbookDialog.superclass.constructor.call(this,b)};Ext.extend(GO.addressbook.AddressbookDialog,GO.Window,{buildForm:function(a){this.propertiesPanel=new Ext.FormPanel({waitMsgTarget:true,title:GO.addressbook.lang.cmdPanelProperties,labelWidth:140,defaultType:"textfield",border:false,bodyStyle:"padding:5px",items:[{fieldLabel:GO.lang.strName,name:"name",allowBlank:false,anchor:"100%"},this.selectUser=new GO.form.SelectUser({fieldLabel:GO.lang.strUser,disabled:!GO.settings.has_admin_permission,allowBlank:false,anchor:"100%"}),this.formAddressFormat=new GO.form.SelectAddressFormat({fieldLabel:GO.addressbook.lang.defaultAddressFormat,name:"default_iso_address_format",displayField:"country_name",hiddenName:"default_iso_address_format",allowBlank:false,anchor:"100%",value:GO.settings.country}),{xtype:"panel",border:false,layout:"column",items:[{border:false,layout:"form",columnWidth:0.8,items:{xtype:"textfield",fieldLabel:GO.addressbook.lang.defaultSalutation,name:"default_salutation",allowBlank:false,anchor:"100%",value:GO.addressbook.lang.defaultSalutationExpression}},{columnWidth:0.2,border:false,bodyStyle:"padding-left:5px",items:{xtype:"button",handler:function(){this.propertiesPanel.form.findField("default_salutation").setValue(GO.addressbook.lang.defaultSalutationExpression)},scope:this,text:GO.lang.cmdReset}}]},{xtype:"fieldset",title:GO.addressbook.lang.explanationVariables,border:true,layout:"column",autoHeight:true,items:[{border:false,columnWidth:0.2,html:"["+GO.addressbook.lang.cmdSir+"/"+GO.addressbook.lang.cmdMadam+"]<br />{title}<br />{initials}<br />{first_name}<br />{middle_name}<br />{last_name}"},{columnWidth:0.8,border:false,html:GO.addressbook.lang.explanationSex+"<br />"+GO.lang.strTitle+"<br />"+GO.lang.strInitials+"<br />"+GO.lang.strFirstName+"<br />"+GO.lang.strMiddleName+"<br />"+GO.lang.strLastName}]}]});this.importfileTypeCombo=new Ext.form.ComboBox({fieldLabel:GO.addressbook.lang.cmdFormLabelFileType,value:"csv",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["csv","CSV (Comma Separated Values)"],["vcf","VCF (vCard)"]]}),displayField:"text",valueField:"value",hiddenName:"import_filetype",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.importfileTypeCombo.on("select",function(){switch(this.importfileTypeCombo.getValue()){case"vcf":this.importContactsCompaniesCombo.setDisabled(true);this.importValueSeperator.setDisabled(true);this.importValueIncluded.setDisabled(true);break;default:this.importContactsCompaniesCombo.setDisabled(false);this.importValueSeperator.setDisabled(false);this.importValueIncluded.setDisabled(false);break}},this);this.importfileInput=new Ext.form.TextField({autoCreate:{tag:"input",type:"file",size:"25",autocomplete:"off"},fieldLabel:GO.lang.strSelectFile,name:"import_file",inputType:"file",cls:"x-form-file x-form-field"});this.exportfileTypeCombo=new Ext.form.ComboBox({fieldLabel:GO.addressbook.lang.cmdFormLabelFileType,value:"csv",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["csv","CSV (Comma Separated Values)"],["vcf","VCF (vCard)"]]}),displayField:"text",valueField:"value",hiddenName:"export_filetype",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.exportfileTypeCombo.on("select",function(){switch(this.exportfileTypeCombo.getValue()){case"vcf":this.exportContactsCompaniesCombo.setDisabled(true);this.exportValueSeperator.setDisabled(true);this.exportValueIncluded.setDisabled(true);this.exportLinesEnded.setDisabled(true);break;default:this.exportContactsCompaniesCombo.setDisabled(false);this.exportValueSeperator.setDisabled(false);this.exportValueIncluded.setDisabled(false);this.exportLinesEnded.setDisabled(false);break}},this);this.importContactsCompaniesCombo=new Ext.form.ComboBox({fieldLabel:GO.addressbook.lang.cmdImport,value:"contacts",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["contacts",GO.addressbook.lang.contacts],["companies",GO.addressbook.lang.companies]]}),displayField:"text",valueField:"value",hiddenName:"import_type",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.exportContactsCompaniesCombo=new Ext.form.ComboBox({fieldLabel:GO.addressbook.lang.cmdExport,value:"contacts",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["contacts",GO.addressbook.lang.contacts],["companies",GO.addressbook.lang.companies]]}),displayField:"text",valueField:"value",hiddenName:"export_type",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.addressbookImportPanel=new Ext.FormPanel({waitMsgTarget:true,title:GO.addressbook.lang.cmdImport,labelWidth:150,defaultType:"textfield",fileUpload:true,border:false,defaults:{anchor:"100%"},cls:"go-form-panel",waitMsgTarget:true,items:[this.importfileTypeCombo,this.importfileInput,this.importContactsCompaniesCombo,this.importValueSeperator=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelValueSeperated,name:"separator",anchor:"",width:100,value:",",allowBlank:false}),this.importValueIncluded=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelValueIncluded,name:"quote",anchor:"",width:100,value:'"',allowBlank:false})]});this.addressbookExportPanel=new Ext.FormPanel({onSubmit:Ext.emptyFn,submit:function(){this.getEl().dom.submit()},title:GO.addressbook.lang.cmdExport,labelWidth:150,defaultType:"textfield",border:false,defaults:{anchor:"100%",allowBlank:false},cls:"go-form-panel",waitMsgTarget:true,items:[this.exportfileTypeCombo,this.exportContactsCompaniesCombo,this.exportValueSeperator=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelValueSeperated,name:"separator",anchor:"",width:100,value:",",allowBlank:false}),this.exportValueIncluded=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelValueIncluded,name:"quote",anchor:"",width:100,value:'"',allowBlank:false}),this.exportLinesEnded=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelLinesEnded,name:"crlf",anchor:"",width:100,value:"\\r\\n",allowBlank:false})]});this.tabPanel=new Ext.TabPanel({activeTab:0,deferredRender:false,border:false,items:[this.propertiesPanel,this.addressbookImportPanel,this.addressbookExportPanel,this.readPermissionsTab=new GO.grid.PermissionsPanel()]});this.propertiesPanel.on("show",this.syncButtons,this);this.addressbookImportPanel.on("show",this.syncButtons,this);this.addressbookExportPanel.on("show",this.syncButtons,this);this.readPermissionsTab.on("show",this.syncButtons,this)},syncButtons:function(){this.buttons[0].setVisible(this.addressbookImportPanel.isVisible());this.buttons[1].setVisible(this.addressbookExportPanel.isVisible());this.buttons[2].setVisible(this.propertiesPanel.isVisible());this.buttons[3].setVisible(this.propertiesPanel.isVisible())},show:function(a){if(!this.rendered){this.render(Ext.getBody())}if(a){this.record=a;this.addressbook_id=a.data.id}else{this.addressbook_id=0}this.tabPanel.setActiveTab(0);if(this.addressbook_id==0){this.propertiesPanel.form.reset();this.addressbookImportPanel.setDisabled(true);this.addressbookExportPanel.setDisabled(true);this.readPermissionsTab.setAcl(0)}else{this.propertiesPanel.form.setValues(this.record.data);this.selectUser.setRemoteText(this.record.data.owner);this.addressbookImportPanel.setDisabled(false);this.addressbookExportPanel.setDisabled(false);this.readPermissionsTab.setAcl(this.record.data.acl_id)}GO.addressbook.AddressbookDialog.superclass.show.call(this);this.propertiesPanel.form.clearInvalid();this.syncButtons()},importDataSelectionWindow:function(){switch(this.addressbookImportPanel.form.items.items[2].getValue()){case"contacts":var c="2";this.defaultCSVField={title:GO.lang.strTitle,first_name:GO.lang.strFirstName,middle_name:GO.lang.strMiddleName,last_name:GO.lang.strLastName,initials:GO.lang.strInitials,sex:GO.lang.strSex,birthday:GO.lang.strBirthday,address:GO.lang.strAddress,address_no:GO.lang.strAddressNo,zip:GO.lang.strZip,city:GO.lang.strCity,state:GO.lang.strState,country:GO.lang.strCountry,email:GO.lang.strEmail,email2:GO.lang.strEmail+" 2",email3:GO.lang.strEmail+" 3",home_phone:GO.lang.strPhone,fax:GO.lang.strFax,work_phone:GO.lang.strWorkPhone,work_fax:GO.lang.strWorkFax,cellular:GO.lang.strCellular,company_name:GO.lang.strCompany,company_name2:GO.lang.strCompany+" 2",department:GO.lang.strDepartment,"function":GO.lang.strFunction,salutation:GO.lang.strSalutation,comment:GO.lang.strComment};break;case"companies":var c="3";this.defaultCSVField={name:GO.lang.strName,name2:GO.lang.strName+" 2",email:GO.lang.strEmail,phone:GO.lang.strPhone,fax:GO.lang.strFax,country:GO.lang.strCountry,state:GO.lang.strState,city:GO.lang.strCity,zip:GO.lang.strZip,address:GO.lang.strAddress,address_no:GO.lang.strAddressNo,post_country:GO.lang.strPostCountry,post_state:GO.lang.strPostState,post_city:GO.lang.strPostCity,post_zip:GO.lang.strPostZip,post_address:GO.lang.strPostAddress,post_address_no:GO.lang.strPostAddressNo,homepage:GO.lang.strHomepage,bank_no:GO.addressbook.lang.cmdFormLabelBankNo,vat_no:GO.addressbook.lang.cmdFormLabelVatNo};break}if(GO.customfields&&GO.customfields.types[c]&&GO.customfields.types[c].panels){for(var h=0;h<GO.customfields.types[c].panels.length;h++){var a=GO.customfields.types[c].panels[h].customfields;for(var e=0;e<a.length;e++){if(a[e].datatype!="heading"&&a[e].datatype!="function"){this.defaultCSVField[a[e].dataname]=a[e].name}}}}this.addressbookImportData=new Ext.form.FormPanel({waitMsgTarget:true,labelWidth:125,border:false,defaults:{anchor:"-20"},cls:"go-form-panel",autoHeight:true});this.addressbookImportData.form.timeout=300;this.csvFieldStore=new Ext.data.JsonStore({fields:["id","name"],root:"list_keys",id:"id"});this.csvFieldStore.on("load",function(){var f=this.addressbookImportData.items.items;for(var m=0;m<f.length;m++){var n=true;for(var l=0;l<f[m].store.data.items.length;l++){var o=f[m].store.data.items[l].data.name;var k=f[m].fieldLabel;if(o==k){f[m].setValue(f[m].store.data.items[l].data.id);n=false}}if(n){f[m].setValue(f[m].store.data.items[0].data.id)}}},this);for(var b in this.defaultCSVField){var g=new Ext.form.ComboBox({fieldLabel:this.defaultCSVField[b],id:"export_combo_"+b,store:this.csvFieldStore,displayField:"name",valueField:"id",hiddenName:b,mode:"local",triggerAction:"all",editable:false});this.addressbookImportData.add(g)}var d=[{text:GO.addressbook.lang.cmdImport,handler:this.importData,scope:this},{text:GO.lang.cmdClose,handler:function(){this.csvFieldDialog.close()},scope:this}];this.csvFieldDialog=new Ext.Window({autoScroll:true,height:400,width:400,modal:true,title:GO.addressbook.lang.matchFields,items:[this.addressbookImportData],buttons:d});this.csvFieldDialog.show()},saveAddressbook:function(a){this.propertiesPanel.form.submit({waitMsg:GO.lang.waitMsgSave,url:GO.settings.modules.addressbook.url+"action.php",params:{task:"save_addressbook",addressbook_id:this.addressbook_id},success:function(b,c){GO.addressbook.writableAddressbooksStore.reload();if(c.result.addressbook_id){this.addressbook_id=c.result.addressbook_id;this.addressbookImportPanel.setDisabled(false);this.addressbookExportPanel.setDisabled(false);this.readPermissionsTab.setAcl(c.result.acl_id)}if(a){this.hide()}},failure:function(b,c){if(c.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,c.result.feedback)}},scope:this})},uploadFile:function(){this.addressbookImportPanel.form.submit({waitMsg:GO.lang.waitMsgUpload,url:GO.settings.modules.addressbook.url+"action.php",params:{task:"upload",addressbook_id:this.addressbook_id},success:function(a,b){if(this.addressbookImportPanel.form.items.items[0].getValue()=="csv"){this.importDataSelectionWindow();this.csvFieldStore.loadData(b.result)}else{Ext.MessageBox.alert(GO.lang.strSuccess,GO.addressbook.lang.importSuccess);this.refreshAb()}},failure:function(a,b){if(b.failureType!="client"){Ext.MessageBox.alert(GO.lang.strError,b.result.feedback)}},scope:this})},refreshAb:function(){var a=GO.mainLayout.getModulePanel("addressbook");if(a.tabPanel.getActiveTab().id=="ab-contacts-grid"){a.contactsGrid.store.reload()}else{a.companiesGrid.store.reload()}},importData:function(){this.addressbookImportData.form.submit({url:GO.settings.modules.addressbook.url+"action.php",waitMsg:GO.lang.waitMsgSave,params:{task:"import",addressbook_id:this.addressbook_id,separator:this.addressbookImportPanel.form.findField("separator").getValue(),quote:this.addressbookImportPanel.form.findField("quote").getValue(),import_type:this.addressbookImportPanel.form.items.items[2].getValue(),import_filetype:this.addressbookImportPanel.form.items.items[0].getValue()},success:function(a,b){if(this.csvFieldDialog){this.csvFieldDialog.close()}Ext.MessageBox.alert(GO.lang.strSuccess,GO.addressbook.lang.importSuccess);this.refreshAb()},failure:function(a,b){if(b.failureType!="client"){Ext.MessageBox.alert(GO.lang.strError,b.result.feedback)}},scope:this})},exportData:function(){this.addressbookExportPanel.form.el.set({action:GO.settings.modules.addressbook.url+"export.php?addressbook_id="+this.addressbook_id});this.addressbookExportPanel.form.submit()}});GO.addressbook.AddresbooksGrid=function(a){if(!a){a={}}a.title=GO.addressbook.lang.cmdPanelAddressbook;a.layout="fit";a.autoScroll=true;a.split=true;if(!a.store){a.store=GO.addressbook.readableAddressbooksStore}a.ddGroup="AddressBooksDD";a.enableDD=true;Ext.apply(a,{allowNoSelection:true,bbar:new GO.SmallPagingToolbar({items:[this.searchField=new GO.form.SearchField({store:a.store,width:120,emptyText:GO.lang.strSearch})],store:a.store,pageSize:GO.settings.config.nav_page_size})});GO.addressbook.AddresbooksGrid.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.AddresbooksGrid,GO.grid.MultiSelectGrid,{type:"",afterRender:function(){GO.addressbook.AddresbooksGrid.superclass.afterRender.call(this);var a=new Ext.dd.DropTarget(this.getView().mainBody,{ddGroup:"AddressBooksDD",notifyDrop:this.onNotifyDrop.createDelegate(this)})},setType:function(a){this.type=a},onNotifyDrop:function(a,j,g){var b=a.dragData.selections;var c=this.getView().findRowIndex(j.target);var h=this.getView().grid.store.data.items[c].id;var k=false;var d=[];for(var f=0;f<b.length;f++){d.push(b[f].id);if(b[f].json.company_id>0){k=true;company_id=b[f].json.company_id}}if(!k&&this.type=="company"){k=true}if(h>0&&(!k||confirm(GO.addressbook.lang.moveAll))){Ext.Ajax.request({url:GO.settings.modules.addressbook.url+"action.php",params:{task:"drop_"+this.type,book_id:h,items:Ext.encode(d)}});this.fireEvent("drop",this.type);return true}else{return false}}});GO.addressbook.ContactReadPanel=Ext.extend(GO.DisplayPanel,{link_type:2,loadParams:{task:"load_contact_with_items"},idParam:"contact_id",loadUrl:GO.settings.modules.addressbook.url+"json.php",stateId:"ab-contact-panel",editGoDialogId:"contact",editHandler:function(){GO.addressbook.showContactDialog(this.link_id)},initComponent:function(){this.template='<table class="display-panel" cellpadding="0" cellspacing="0" border="0"><tr><td valign="top"><table cellpadding="0" cellspacing="0" border="0"><tr><td>ID:</td><td>{id}</td></tr><tr><td><tpl if="!GO.util.empty(title)">{title} </tpl>{full_name}<br /><tpl if="!GO.util.empty(google_maps_link)"><a href="{google_maps_link}" target="_blank"></tpl>{formatted_address}<tpl if="!GO.util.empty(google_maps_link)"></a></tpl></td></tr></table></td><tpl if="photo_src"><td rowspan="2" align="right"><img src="{photo_src}" width="90" height="120" /></td></tpl></tr><tr><td valign="top"><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(initials)"><tr><td>'+GO.lang.strInitials+':</td><td> {initials}</td></tr></tpl><tpl if="!GO.util.empty(birthday)"><tr><td>'+GO.lang.strBirthday+':</td><td> {birthday}</td></tr></tpl></table></td></tr><tpl if="this.isContactFieldset(values)"><tr><td colspan="2" class="display-panel-heading">'+GO.addressbook.lang.cmdFieldsetContact+'</td></tr><tr><td valign="top"><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(email)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strEmail+':</td><td>{[this.mailTo(values.email, values.full_name)]}</td></tr></tpl><tpl if="!GO.util.empty(email2)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strEmail+' 2:</td><td>{[this.mailTo(values.email2, values.full_name)]}</td></tr></tpl><tpl if="!GO.util.empty(email3)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strEmail+' 3:</td><td>{[this.mailTo(values.email3, values.full_name)]}</td></tr></tpl><tpl if="this.isPhoneFieldset(values)"><tr><td colspan="2">&nbsp;</td></tr><tpl if="!GO.util.empty(home_phone)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strPhone+':</td><td><a href="{[GO.util.callToHref(values.home_phone)]}">{home_phone}</a></td></tr></tpl><tpl if="!GO.util.empty(cellular)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strCellular+':</td><td><a href="{[GO.util.callToHref(values.cellular)]}">{cellular}</a></td></tr></tpl><tpl if="!GO.util.empty(fax)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strFax+':</td><td>{fax}</td></tr></tpl></tpl></table></td><tpl if="this.isWorkPhoneFieldset(values)"><td valign="top"><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(work_phone)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strWorkPhone+':</td><td><a href="{[GO.util.callToHref(values.work_phone)]}">{work_phone}</a></td></tr></tpl><tpl if="!GO.util.empty(work_fax)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strWorkFax+':</td><td>{work_fax}</td></tr></tpl></table></td></tpl></tr></tpl><tpl if="this.isWorkFieldset(values)"><tr><td colspan="2" class="display-panel-heading">'+GO.addressbook.lang.cmdFieldsetWork+'</td></tr><tr><td colspan="2" valign="top" class="contactCompanyDetailsPanelKolom60"><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(company_name)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strCompany+':</td><td><a href="#" onclick="GO.linkHandlers[3].call(this,{company_id});">{company_name}</a></td></tr></tpl><tpl if="!GO.util.empty(values[\'function\'])"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strFunction+':</td><td>{function}</td></tr></tpl><tpl if="!GO.util.empty(department)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strDepartment+':</td><td>{department}</td></tr></tpl></table></td></tr></tpl><tpl if="!GO.util.empty(values[\'comment\'])"><tr><td class="display-panel-heading" colspan="2">'+GO.addressbook.lang.cmdFormLabelComment+'</td></tr><tr><td colspan="2">{comment}</td></tr></tpl></table>';if(GO.customfields){this.template+=GO.customfields.displayPanelTemplate}if(GO.tasks){this.template+=GO.tasks.TaskTemplate}if(GO.calendar){this.template+=GO.calendar.EventTemplate}this.template+=GO.linksTemplate;Ext.apply(this.templateConfig,{addSlashes:function(a){a=GO.util.html_entity_decode(a,"ENT_QUOTES");a=GO.util.add_slashes(a);return a},mailTo:function(b,a){if(GO.email&&GO.settings.modules.email.read_permission){return'<a href="#" onclick="GO.email.showAddressMenu(event, \''+this.addSlashes(b)+"','"+this.addSlashes(a)+"');\">"+b+"</a>"}else{return'<a href="mailto:'+b+'">'+b+"</a>"}},isContactFieldset:function(a){if(!GO.util.empty(a.email)||!GO.util.empty(a.email2)||!GO.util.empty(a.email3)||!GO.util.empty(a.home_phone)||!GO.util.empty(a.fax)||!GO.util.empty(a.cellular)||!GO.util.empty(a.work_phone)||!GO.util.empty(a.work_fax)){return true}else{return false}},isPhoneFieldset:function(a){if(!GO.util.empty(a.home_phone)||!GO.util.empty(a.fax)||!GO.util.empty(a.cellular)){return true}else{return false}},isWorkPhoneFieldset:function(a){if(!GO.util.empty(a.work_phone)||!GO.util.empty(a.work_fax)){return true}else{return false}},isWorkFieldset:function(a){if(!GO.util.empty(a.company_name)||!GO.util.empty(a["function"])||!GO.util.empty(a.department)){return true}else{return false}},GoogleMapsCityStreet:function(a){var b="http://maps.google.com/maps?q=";if(!GO.util.empty(a.address)&&!GO.util.empty(a.city)){if(!GO.util.empty(a.address_no)){return'<a href="'+b+a.address+"+"+a.address_no+"+"+a.city+'" target="_blank" >'+a.address+" "+a.address_no+"</a>"}else{return'<a href="'+b+a.address+"+"+a.city+'" target="_blank" >'+a.address+"</a>"}}else{return a.address+" "+a.address_no}}});Ext.apply(this.templateConfig,GO.linksTemplateConfig);if(GO.files){Ext.apply(this.templateConfig,GO.files.filesTemplateConfig);this.template+=GO.files.filesTemplate}if(GO.comments){this.template+=GO.comments.displayPanelTemplate}GO.addressbook.ContactReadPanel.superclass.initComponent.call(this);if(GO.documenttemplates){this.newOODoc=new GO.documenttemplates.NewOODocumentMenuItem();this.newOODoc.on("create",function(){this.reload()},this);this.newMenuButton.menu.add(this.newOODoc)}if(GO.tasks){this.scheduleCallItem=new GO.tasks.ScheduleCallMenuItem();this.newMenuButton.menu.add(this.scheduleCallItem)}},getLinkName:function(){return this.data.full_name},setData:function(b){GO.addressbook.ContactReadPanel.superclass.setData.call(this,b);if(GO.documenttemplates&&!GO.documenttemplates.ooTemplatesStore.loaded){GO.documenttemplates.ooTemplatesStore.load()}if(b.write_permission){if(this.scheduleCallItem){var a=this.data.full_name;if(this.data.work_phone!=""){a+=" ("+this.data.work_phone+")"}else{if(this.data.cellular!=""){a+=" ("+this.data.cellular+")"}else{if(this.data.home_phone!=""){a+=" ("+this.data.home_phone+")"}}}this.scheduleCallItem.setLinkConfig({name:a,links:[{link_id:this.data.id,link_type:2}],callback:this.reload,scope:this})}}}});GO.addressbook.CompanyReadPanel=Ext.extend(GO.DisplayPanel,{link_type:3,loadParams:{task:"load_company_with_items"},idParam:"company_id",loadUrl:GO.settings.modules.addressbook.url+"json.php",stateId:"ab-company-panel",editGoDialogId:"company",editHandler:function(){GO.addressbook.showCompanyDialog(this.link_id)},initComponent:function(){this.template='<div><table class="display-panel" cellpadding="0" cellspacing="0" border="0"><tr><tpl if="this.isCompanySecondColumn(values)"><td colspan="2"></tpl><tpl if="this.isCompanySecondColumn(values) == false"><td></tpl><table><tr><td>ID:</td><td colspan="2">{id}</td></tr></table></td></tr><tr><tpl if="this.isCompanySecondColumn(values)"><td colspan="2" valign="top" class="display-panel-heading"></tpl><tpl if="this.isCompanySecondColumn(values) == false"><td valign="top" class="display-panel-heading"></tpl>'+GO.addressbook.lang.cmdFieldsetContact+'</td></tr><tr><tpl if="this.isCompanySecondColumn(values)"><tpl if="this.isAddressPost(values)"><td valign="top" class="contactCompanyDetailsPanelKolom"></tpl><tpl if="this.isAddressPost(values) == false"><td colspan="2" valign="top" class="contactCompanyDetailsPanelKolom100"></tpl></tpl><tpl if="this.isCompanySecondColumn(values) == false"><td valign="top" class="contactCompanyDetailsPanelKolom100"></tpl><table cellpadding="0" cellspacing="0" border="0"><tpl if="this.isAddressPost(values) != false"><tr><td colspan="2" class="readPanelSubHeading">'+GO.addressbook.lang.cmdFieldsetVisitAddress+'</td></tr></tpl><tr><td><b>{name}</b><tpl if="!GO.util.empty(name2)"><br />{name2}</tpl><br /><tpl if="!GO.util.empty(google_maps_link)"><a href="{google_maps_link}" target="_blank"></tpl>{formatted_address}<tpl if="!GO.util.empty(google_maps_link)"></a></tpl></table></td><tpl if="this.isAddressPost(values)"><tpl if="this.isAddressVisit(values)"><td valign="top" class="contactCompanyDetailsPanelKolom"></tpl><tpl if="this.isAddressVisit(values) == false"><td colspan="2" valign="top" class="contactCompanyDetailsPanelKolom100"></tpl><table cellpadding="0" cellspacing="0" border="0"><tr><td colspan="2" class="readPanelSubHeading">'+GO.addressbook.lang.cmdFieldsetPostAddress+'</td></tr><tr><td><b>{name}</b><br /><tpl if="!GO.util.empty(post_google_maps_link)"><a href="{post_google_maps_link}" target="_blank"></tpl>{post_formatted_address}<tpl if="!GO.util.empty(post_google_maps_link)"></a></tpl></table></td></tpl></tr><tr><tpl if="this.isCompanySecondColumn(values)"><tpl if="this.isBankVat(values)"><td valign="top" class="contactCompanyDetailsPanelKolom"></tpl><tpl if="this.isBankVat(values) == false"><td colspan="2" valign="top" class="contactCompanyDetailsPanelKolom100"></tpl></tpl><tpl if="this.isCompanySecondColumn(values) == false"><td valign="top" class="contactCompanyDetailsPanelKolom100"></tpl><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(phone)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strPhone+':</td><td><a href="{[GO.util.callToHref(values.phone)]}">{phone}</a></td></tr></tpl><tpl if="!GO.util.empty(fax)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strFax+':</td><td>{fax}</td></tr></tpl><tpl if="!GO.util.empty(email)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strEmail+':</td><td>{[this.mailTo(values.email, values.full_name)]}</td></tr></tpl><tpl if="!GO.util.empty(homepage)"><tr><td class="contactCompanyLabelWidth">'+GO.lang.strHomepage+':</td><td><a href="{homepage}" target="_blank">{homepage}</a></td></tr></tpl></table></td><tpl if="this.isBankVat(values)"><td valign="top" class="contactCompanyDetailsPanelKolom"><table cellpadding="0" cellspacing="0" border="0"><tpl if="!GO.util.empty(bank_no)"><tr><td>'+GO.addressbook.lang.cmdFormLabelBankNo+':</td><td>{bank_no}</td></tr></tpl><tpl if="!GO.util.empty(bank_no)"><tr><td>'+GO.addressbook.lang.iban+':</td><td>{iban}</td></tr></tpl><tpl if="!GO.util.empty(crn)"><tr><td>'+GO.addressbook.lang.crn+':</td><td>{crn}</td></tr></tpl><tpl if="!GO.util.empty(vat_no)"><tr><td>'+GO.addressbook.lang.cmdFormLabelVatNo+':</td><td>{vat_no}</td></tr></tpl></table></td></tpl></tr></table><tpl if="!GO.util.empty(comment)"><table cellpadding="0" cellspacing="0" border="0" class="display-panel"><tr><td class="display-panel-heading">'+GO.addressbook.lang.cmdFormLabelComment+'</td></tr><tr><td>{comment}</td></tr></table></tpl><tpl if="employees.length"><table class="display-panel" cellpadding="0" cellspacing="0" border="0"><tr><td colspan="4" class="display-panel-heading">'+GO.addressbook.lang.cmdPanelEmployees+'</td></tr><tr><td width="16" class="display-panel-links-header">&nbsp;</td><td class="table_header_links">'+GO.lang.strName+'</td><td class="table_header_links">'+GO.lang.strFunction+'</td><td class="table_header_links">'+GO.lang.strEmail+'</td></tr><tpl for="employees"><tr><td><div class="go-icon go-link-icon-2"></div></td><td><a href="#" onclick="GO.linkHandlers[2].call(this, {id});">{name}</a></td><td>{function}</td><td>{[this.mailTo(values.email, values.name)]}</td></tr></tpl></table></tpl>';if(GO.customfields){this.template+=GO.customfields.displayPanelTemplate}if(GO.tasks){this.template+=GO.tasks.TaskTemplate}if(GO.calendar){this.template+=GO.calendar.EventTemplate}this.template+=GO.linksTemplate;Ext.apply(this.templateConfig,{addSlashes:function(a){a=GO.util.html_entity_decode(a,"ENT_QUOTES");a=GO.util.add_slashes(a);return a},mailTo:function(b,a){if(GO.email&&GO.settings.modules.email.read_permission){return'<a href="#" onclick="GO.email.showAddressMenu(event, \''+this.addSlashes(b)+"','"+this.addSlashes(a)+"');\">"+b+"</a>"}else{return'<a href="mailto:'+b+'">'+b+"</a>"}},isCompanySecondColumn:function(a){if(this.isBankVat(a)||this.isAddressPost(a)||!GO.util.empty(a.homepage)){return true}else{return false}},isBankVat:function(a){if(!GO.util.empty(a.bank_no)||!GO.util.empty(a.vat_no)||!GO.util.empty(a.iban)||!GO.util.empty(a.crn)){return true}else{return false}},isAddress:function(a){if(!GO.util.empty(a.address)||!GO.util.empty(a.address_no)||!GO.util.empty(a.zip)||!GO.util.empty(a.city)||!GO.util.empty(a.state)||!GO.util.empty(a.country)||!GO.util.empty(a.post_address)||!GO.util.empty(a.post_address_no)||!GO.util.empty(a.post_zip)||!GO.util.empty(a.post_city)||!GO.util.empty(a.post_state)||!GO.util.empty(a.post_country)){return true}else{return false}},isAddressVisit:function(a){if(!GO.util.empty(a.address)||!GO.util.empty(a.address_no)||!GO.util.empty(a.zip)||!GO.util.empty(a.city)||!GO.util.empty(a.state)||!GO.util.empty(a.country)){return true}else{return false}},isAddressPost:function(a){if(!GO.util.empty(a.post_address)||!GO.util.empty(a.post_address_no)||!GO.util.empty(a.post_zip)||!GO.util.empty(a.post_city)||!GO.util.empty(a.post_state)||!GO.util.empty(a.post_country)){return true}else{return false}},GoogleMapsCityStreet:function(a){var b="http://maps.google.com/maps?q=";if(!GO.util.empty(a.address)&&!GO.util.empty(a.city)){if(!GO.util.empty(a.address_no)){return'<a href="'+b+a.address+"+"+a.address_no+"+"+a.city+'" target="_blank" >'+a.address+" "+a.address_no+"</a>"}else{return'<a href="'+b+a.address+"+"+a.city+'" target="_blank" >'+a.address+"</a>"}}else{return a.address+" "+a.address_no}}});Ext.apply(this.templateConfig,GO.linksTemplateConfig);if(GO.files){Ext.apply(this.templateConfig,GO.files.filesTemplateConfig);this.template+=GO.files.filesTemplate}if(GO.comments){this.template+=GO.comments.displayPanelTemplate}this.template+="</div>";GO.addressbook.CompanyReadPanel.superclass.initComponent.call(this);if(GO.documenttemplates){this.newOODoc=new GO.documenttemplates.NewOODocumentMenuItem();this.newOODoc.on("create",function(){this.reload()},this);this.newMenuButton.menu.add(this.newOODoc)}if(GO.tasks){this.scheduleCallItem=new GO.tasks.ScheduleCallMenuItem();this.newMenuButton.menu.add(this.scheduleCallItem)}},setData:function(b){GO.addressbook.CompanyReadPanel.superclass.setData.call(this,b);if(GO.documenttemplates&&!GO.documenttemplates.ooTemplatesStore.loaded){GO.documenttemplates.ooTemplatesStore.load()}if(b.write_permission){if(this.scheduleCallItem){var a=this.data.name;if(this.data.phone!=""){a+=" ("+this.data.phone+")"}this.scheduleCallItem.setLinkConfig({name:a,links:[{link_id:this.data.id,link_type:3}],callback:this.reload,scope:this})}}}});GO.addressbook.ContactDialog=function(c){Ext.apply(this,c);this.goDialogId="contact";this.personalPanel=new GO.addressbook.ContactProfilePanel();GO.addressbook.ContactPhoto=Ext.extend(Ext.BoxComponent,{autoEl:{tag:"img",src:Ext.BLANK_IMAGE_URL},setPhotoSrc:function(f){var e=new Date();if(this.el){this.el.set({src:f==0?Ext.BLANK_IMAGE_URL:GO.settings.modules.addressbook.url+"photo.php?contact_id="+f+"&mtime="+e.format("U")})}this.setVisible(true)}});this.contactPhoto=new GO.addressbook.ContactPhoto();this.deleteImageCB=new Ext.form.Checkbox({boxLabel:GO.addressbook.lang.deleteImage,labelSeparator:"",name:"delete_image",allowBlank:true,hideLabel:true,disabled:true});this.uploadFile=new GO.form.UploadFile({inputName:"image",max:1});this.photoPanel=new Ext.Panel({title:GO.addressbook.lang.photo,layout:"form",border:false,cls:"go-form-panel",autoScroll:true,items:[this.uploadFile,this.contactPhoto,this.deleteImageCB]});this.commentPanel=new Ext.Panel({title:GO.addressbook.lang.cmdPanelComments,layout:"fit",forceLayout:true,border:false,items:[new Ext.form.TextArea({name:"comment",fieldLabel:"",hideLabel:true,anchor:"100% 100%"})]});this.personalPanel.on("show",function(){var e=Ext.get("first_name");if(e){e.focus()}},this);this.commentPanel.on("show",function(){this.formPanel.form.findField("comment").focus()},this);var a=[this.personalPanel,this.photoPanel,this.commentPanel];if(GO.mailings){a.push(new GO.mailings.SelectMailingsPanel())}if(GO.customfields&&GO.customfields.types["2"]){for(var d=0;d<GO.customfields.types["2"].panels.length;d++){a.push(GO.customfields.types["2"].panels[d])}}this.formPanel=new Ext.FormPanel({waitMsgTarget:true,url:GO.settings.modules.addressbook.url+"json.php",baseParams:{},border:false,fileUpload:true,items:[this.tabPanel=new Ext.TabPanel({border:false,activeTab:0,hideLabel:true,deferredRender:false,anchor:"100% 100%",items:a})]});this.collapsible=true;this.layout="fit";this.modal=false;this.shadow=false;this.border=false;this.height=570;this.width=820;this.plain=true;this.closeAction="hide";this.title=GO.addressbook.lang.cmdContactDialog;this.items=this.formPanel;this.buttons=[{text:GO.lang.cmdOk,handler:function(){this.saveContact(true)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];var b=function(){this.formPanel.form.findField("first_name").focus(true)};this.focus=b.createDelegate(this);GO.addressbook.ContactDialog.superclass.constructor.call(this);this.addEvents({save:true})};Ext.extend(GO.addressbook.ContactDialog,GO.Window,{show:function(b){if(!this.rendered){this.render(Ext.getBody())}if(GO.mailings&&!GO.mailings.writableMailingsStore.loaded){GO.mailings.writableMailingsStore.load({callback:function(){var d=GO.util.empty(b)?this.formPanel.form.getValues():{};this.show(b);delete d.addressbook_id;delete d.iso_address_format;delete d.salutation;this.formPanel.form.setValues(d)},scope:this})}else{if(!GO.addressbook.writableAddressbooksStore.loaded){GO.addressbook.writableAddressbooksStore.load({callback:function(){var d=GO.util.empty(b)?this.formPanel.form.getValues():{};this.show(b);delete d.addressbook_id;delete d.iso_address_format;delete d.salutation;this.formPanel.form.setValues(d)},scope:this})}else{var a=this.personalPanel.formAddressBooks.getValue();this.formPanel.form.reset();this.personalPanel.formAddressBooks.setValue(a);if(b){this.contact_id=b}else{this.contact_id=0}if(!GO.util.empty(GO.addressbook.defaultAddressbook)&&this.personalPanel.formAddressBooks.store.getById(GO.addressbook.defaultAddressbook)){this.personalPanel.setAddressbookID(GO.addressbook.defaultAddressbook)}else{if(a>0&&this.personalPanel.formAddressBooks.store.getById(a)){this.personalPanel.setAddressbookID(a)}else{this.personalPanel.formAddressBooks.selectFirst();this.personalPanel.setAddressbookID(this.personalPanel.formAddressBooks.getValue())}}if(this.contact_id>0){this.loadContact(b)}else{this.setPhoto(0);GO.addressbook.ContactDialog.superclass.show.call(this)}var c=this.personalPanel.formAddressBooks.store.getById(this.personalPanel.formAddressBooks.getValue());this.personalPanel.formAddressFormat.setValue(c.get("default_iso_address_format"));this.tabPanel.setActiveTab(0)}}},loadContact:function(a){this.formPanel.form.load({url:GO.settings.modules.addressbook.url+"json.php",params:{contact_id:a,task:"load_contact"},success:function(b,c){if(!c.result.data.write_permission){Ext.Msg.alert(GO.lang.strError,GO.lang.strNoWritePermissions)}else{this.personalPanel.setAddressbookID(c.result.data.addressbook_id);this.formPanel.form.findField("company_id").setRemoteText(c.result.data.company_name);if(!GO.util.empty(c.result.data.photo_src)){this.setPhoto(a)}GO.addressbook.ContactDialog.superclass.show.call(this)}},scope:this})},saveContact:function(b){var a=this.personalPanel.formCompany.getRawValue();this.formPanel.form.submit({url:GO.settings.modules.addressbook.url+"action.php",waitMsg:GO.lang.waitMsgSave,params:{task:"save_contact",contact_id:this.contact_id,company:a,delete_photo:this.deleteImageCB.getValue()},success:function(c,d){if(d.result.contact_id){this.contact_id=d.result.contact_id}this.uploadFile.clearQueue();this.fireEvent("save",this,this.contact_id);if(!GO.util.empty(d.result.image)){this.setPhoto(this.contact_id)}else{this.setPhoto(0)}if(b){this.hide()}},failure:function(c,d){if(d.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,d.result.feedback)}},scope:this})},setPhoto:function(a){this.contactPhoto.setPhotoSrc(a);this.deleteImageCB.setValue(false);this.deleteImageCB.setDisabled(a=="")}});GO.addressbook.CompanyDialog=function(c){Ext.apply(this,c);this.goDialogId="company";this.personalPanel=new GO.addressbook.CompanyProfilePanel();this.commentPanel=new Ext.Panel({title:GO.addressbook.lang.cmdPanelComments,layout:"fit",border:false,items:[new Ext.form.TextArea({name:"comment",fieldLabel:"",hideLabel:true})]});this.commentPanel.on("show",function(){this.companyForm.form.findField("comment").focus()},this);this.employeePanel=new GO.addressbook.EmployeesPanel();var a=[this.personalPanel,this.commentPanel];if(GO.mailings){a.push(new GO.mailings.SelectMailingsPanel())}a.push(this.employeePanel);if(GO.customfields&&GO.customfields.types["3"]){for(var d=0;d<GO.customfields.types["3"].panels.length;d++){a.push(GO.customfields.types["3"].panels[d])}}this.companyForm=new Ext.FormPanel({waitMsgTarget:true,border:false,baseParams:{},items:[this.tabPanel=new Ext.TabPanel({border:false,activeTab:0,deferredRender:false,hideLabel:true,anchor:"100% 100%",items:a})]});this.id="addressbook-window-new-company";this.layout="fit";this.modal=false;this.shadow=false;this.border=false;this.height=550;this.width=820;this.plain=true;this.closeAction="hide";this.collapsible=true;this.title=GO.addressbook.lang.cmdCompanyDialog;this.items=this.companyForm;this.buttons=[{text:GO.lang.cmdOk,handler:function(){this.saveCompany(true)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];var b=function(){this.companyForm.form.findField("name").focus(true)};this.focus=b.createDelegate(this);this.tbar=[this.moveEmployeesButton=new Ext.Button({text:GO.addressbook.lang.moveEmployees,handler:function(){if(!this.moveEmpWin){this.moveEmpForm=new Ext.FormPanel({cls:"go-form-panel",url:GO.settings.modules.addressbook.url+"action.php",baseParams:{task:"move_employees",from_company_id:0},waitMsgTarget:true,items:new GO.addressbook.SelectCompany({allowBlank:false,anchor:"100%",hiddenName:"to_company_id"})});this.moveEmpWin=new GO.Window({title:GO.addressbook.lang.moveEmployees,closable:true,modal:true,width:400,autoHeight:true,items:this.moveEmpForm,buttons:[{text:GO.lang.cmdOk,handler:function(){this.moveEmpForm.form.submit({waitMsg:GO.lang.waitMsgSave,success:function(e,f){this.moveEmpWin.hide()},failure:function(e,f){if(f.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,f.result.feedback)}},scope:this})},scope:this}]})}this.moveEmpForm.baseParams.from_company_id=this.company_id;this.moveEmpWin.show()},scope:this})];GO.addressbook.CompanyDialog.superclass.constructor.call(this);this.addEvents({save:true})};Ext.extend(GO.addressbook.CompanyDialog,GO.Window,{show:function(a){if(!GO.addressbook.writableAddressbooksStore.loaded){GO.addressbook.writableAddressbooksStore.load({callback:function(){this.show(a)},scope:this})}else{if(GO.mailings&&!GO.mailings.writableMailingsStore.loaded){GO.mailings.writableMailingsStore.load({callback:function(){this.show(a)},scope:this})}else{if(!this.rendered){this.render(Ext.getBody())}if(a){this.company_id=a}else{this.company_id=0}if(!GO.util.empty(GO.addressbook.defaultAddressbook)){this.personalPanel.formAddressBooks.setValue(GO.addressbook.defaultAddressbook)}this.moveEmployeesButton.setDisabled(true);this.tabPanel.setActiveTab(0);if(this.company_id>0){this.loadCompany(a)}else{this.employeePanel.setCompanyId(0);var b=this.personalPanel.formAddressBooks.getValue();this.companyForm.form.reset();if(b>0&&this.personalPanel.formAddressBooks.store.getById(b)){this.personalPanel.formAddressBooks.setValue(b)}else{this.personalPanel.formAddressBooks.selectFirst()}this.personalPanel.setCompanyId(0);var c=this.personalPanel.formAddressBooks.store.getById(this.personalPanel.formAddressBooks.getValue());this.personalPanel.formAddressFormat.setValue(c.get("default_iso_address_format"));this.personalPanel.formPostAddressFormat.setValue(c.get("default_iso_address_format"));GO.addressbook.CompanyDialog.superclass.show.call(this)}}}},loadCompany:function(a){this.companyForm.form.load({url:GO.settings.modules.addressbook.url+"json.php",params:{company_id:a,task:"load_company"},success:function(b,c){if(!c.result.data.write_permission){Ext.Msg.alert(GO.lang.strError,GO.lang.strNoWritePermissions)}else{this.employeePanel.setCompanyId(c.result.data.id);this.personalPanel.setCompanyId(c.result.data.id);this.moveEmployeesButton.setDisabled(false);GO.addressbook.CompanyDialog.superclass.show.call(this)}},failure:function(b,c){if(c.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,c.result.feedback)}},scope:this})},saveCompany:function(a){this.companyForm.form.submit({url:GO.settings.modules.addressbook.url+"action.php",params:{task:"save_company",company_id:this.company_id},waitMsg:GO.lang.waitMsgSave,success:function(b,c){if(c.result.company_id){this.company_id=c.result.company_id;this.employeePanel.setCompanyId(c.result.company_id);this.moveEmployeesButton.setDisabled(false)}this.fireEvent("save",this,this.company_id);if(a){this.hide()}},failure:function(b,c){if(c.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,c.result.feedback)}},scope:this})}});GO.addressbook.SelectContactDialog=function(a){Ext.apply(this,a);this.searchField=new GO.form.SearchField({width:320});this.addressbooksGrid=new GO.addressbook.AddresbooksGrid({region:"west",width:180,store:new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"addressbooks",auth_type:"read"},root:"results",totalProperty:"total",id:"id",fields:["id","name","owner","checked"],remoteSort:true})});this.addressbooksGrid.on("change",function(e,c,d){var f=Ext.encode(c);this.grid.store.baseParams.books=f;this.grid.store.load()},this);this.grid=new GO.addressbook.ContactsGrid({region:"center",tbar:[GO.lang.strSearch+": "," ",this.searchField,{handler:function(){if(!this.advancedSearchWindow){this.advancedSearchWindow=GO.addressbook.advancedSearchWindow=new GO.addressbook.AdvancedSearchWindow();this.advancedSearchWindow.on("ok",function(c){this.grid.store.baseParams.advancedQuery=GO.addressbook.searchQueryPanel.queryField.getValue();this.searchField.setValue("[ "+GO.addressbook.lang.advancedSearch+" ]");this.searchField.setDisabled(true);this.grid.store.load()},this)}this.advancedSearchWindow.show("contacts")},text:GO.addressbook.lang.advancedSearch,scope:this,style:"margin-left:5px;"},{handler:function(){this.searchField.setValue("");delete this.grid.store.baseParams.advancedQuery;this.searchField.setDisabled(false);this.grid.store.load()},text:GO.lang.cmdReset,scope:this}]});delete this.grid.store.baseParams.enable_mailings_filter;this.grid.store.baseParams.disable_filter_save="1";this.searchField.store=this.grid.store;var b=function(){this.searchField.focus(true)};GO.addressbook.SelectContactDialog.superclass.constructor.call(this,{layout:"border",modal:false,focus:b.createDelegate(this),height:400,width:750,closeAction:"hide",title:GO.addressbook.lang.strSelectContact,items:[this.addressbooksGrid,this.grid],buttons:[{text:GO.lang.cmdOk,handler:function(){this.callHandler(true)},scope:this},{text:GO.lang.cmdAdd,handler:function(){this.callHandler(false)},scope:this},{text:GO.addressbook.lang.addAllSearchResults,handler:function(){if(confirm(GO.addressbook.lang.confirmAddAllSearchResults)){this.callHandler(true,true)}},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}]})};Ext.extend(GO.addressbook.SelectContactDialog,Ext.Window,{show:function(){GO.addressbook.SelectContactDialog.superclass.show.call(this);if(!this.addressbooksGrid.store.loaded){this.addressbooksGrid.store.load({callback:function(){var a=this.addressbooksGrid.getSelected();this.grid.store.baseParams.books=Ext.encode(a);this.grid.store.load()},scope:this})}else{this.grid.store.load()}},callHandler:function(b,a){if(this.handler){if(!this.scope){this.scope=this}var c=this.handler.createDelegate(this.scope,[this.grid,a]);c.call()}if(b){this.hide()}}});GO.addressbook.SelectCompanyDialog=function(a){Ext.apply(this,a);this.searchField=new GO.form.SearchField({width:320});this.addressbooksGrid=new GO.addressbook.AddresbooksGrid({region:"west",width:180});this.addressbooksGrid.getSelectionModel().on("rowselect",function(f,e,d){var c=this.addressbooksGrid.getStore().getAt(e);this.grid.store.baseParams.addressbook_id=c.get("id");this.grid.store.load()},this);this.grid=new GO.addressbook.CompaniesGrid({region:"center",tbar:[GO.lang.strSearch+": "," ",this.searchField,{handler:function(){if(!this.advancedSearchWindow){this.advancedSearchWindow=GO.addressbook.advancedSearchWindow=new GO.addressbook.AdvancedSearchWindow();this.advancedSearchWindow.on("ok",function(c){this.grid.store.baseParams.advancedQuery=GO.addressbook.searchQueryPanel.queryField.getValue();this.searchField.setValue("[ "+GO.addressbook.lang.advancedSearch+" ]");this.searchField.setDisabled(true);this.grid.store.load()},this)}this.advancedSearchWindow.show("companies")},text:GO.addressbook.lang.advancedSearch,scope:this,style:"margin-left:5px;"},{handler:function(){this.searchField.setValue("");delete this.grid.store.baseParams.advancedQuery;this.searchField.setDisabled(false);this.grid.store.load()},text:GO.lang.cmdReset,scope:this}]});delete this.grid.store.baseParams.enable_mailings_filter;this.searchField.store=this.grid.store;var b=function(){this.searchField.focus(true)};GO.addressbook.SelectCompanyDialog.superclass.constructor.call(this,{layout:"border",focus:b.createDelegate(this),modal:false,height:400,width:750,closeAction:"hide",title:GO.addressbook.lang.strSelectCompany,items:[this.addressbooksGrid,this.grid],buttons:[{text:GO.lang.cmdOk,handler:function(){this.callHandler(true)},scope:this},{text:GO.lang.cmdAdd,handler:function(){this.callHandler(false)},scope:this},{text:GO.addressbook.lang.addAllSearchResults,handler:function(){if(confirm(GO.addressbook.lang.confirmAddAllSearchResults)){this.callHandler(true,true)}},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}]})};Ext.extend(GO.addressbook.SelectCompanyDialog,Ext.Window,{show:function(){if(!this.grid.store.loaded){this.grid.store.load()}GO.addressbook.SelectCompanyDialog.superclass.show.call(this)},callHandler:function(b,a){if(this.handler){if(!this.scope){this.scope=this}var c=this.handler.createDelegate(this.scope,[this.grid,a]);c.call()}if(b){this.hide()}}});GO.addressbook.ContactsGrid=function(b){if(!b){b={}}b.paging=true;b.border=false;var a={fields:["id","name","company_name","first_name","middle_name","last_name","title","initials","sex","birthday","age","email","email2","email3","home_phone","work_phone","work_fax","cellular","fax","address","address_no","zip","city","state","country","function","department","salutation","ab_name","ctime","mtime"],columns:[{header:GO.addressbook.lang.id,dataIndex:"id",width:20,hidden:true},{header:GO.lang.strName,dataIndex:"name",width:200},{header:GO.lang.strCompany,dataIndex:"company_name",width:200},{header:GO.lang.strFirstName,dataIndex:"first_name",hidden:true},{header:GO.lang.strMiddleName,dataIndex:"middle_name",hidden:true},{header:GO.lang.strLastName,dataIndex:"last_name",hidden:true},{header:GO.lang.strTitle,dataIndex:"title",hidden:true},{header:GO.lang.strInitials,dataIndex:"initials",hidden:true},{header:GO.lang.strSex,dataIndex:"sex",hidden:true},{header:GO.lang.strBirthday,dataIndex:"birthday",hidden:true},{header:GO.lang.age,dataIndex:"age",hidden:true},{header:GO.lang.strEmail,dataIndex:"email",width:150,hidden:true},{header:GO.lang.strEmail+" 2",dataIndex:"email2",width:150,hidden:true},{header:GO.lang.strEmail+" 3",dataIndex:"email3",width:150,hidden:true},{header:GO.lang.strPhone,dataIndex:"home_phone",width:100},{header:GO.lang.strWorkPhone,dataIndex:"work_phone",width:100},{header:GO.lang.strWorkFax,dataIndex:"work_fax",width:100,hidden:true},{header:GO.lang.strCellular,dataIndex:"cellular",width:100},{header:GO.lang.strFax,dataIndex:"fax",width:100,hidden:true},{header:GO.lang.strAddress,dataIndex:"address",hidden:true},{header:GO.lang.strAddressNo,dataIndex:"address_no",hidden:true},{header:GO.lang.strZip,dataIndex:"zip",hidden:true},{header:GO.lang.strCity,dataIndex:"city",hidden:true},{header:GO.lang.strState,dataIndex:"state",hidden:true},{header:GO.lang.strCountry,dataIndex:"country",hidden:true},{header:GO.lang.strFunction,dataIndex:"function",hidden:true},{header:GO.lang.strDepartment,dataIndex:"department",hidden:true},{header:GO.lang.strSalutation,dataIndex:"salutation",hidden:true},{header:GO.addressbook.lang.addressbook,dataIndex:"ab_name",hidden:true},{header:GO.lang.strMtime,dataIndex:"mtime",hidden:true,width:80},{header:GO.lang.strCtime,dataIndex:"ctime",hidden:true,width:80}]};if(GO.customfields){GO.customfields.addColumns(2,a)}b.store=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"contacts",enable_mailings_filter:true},root:"results",id:"id",totalProperty:"total",fields:a.fields,remoteSort:true});b.store.on("load",function(){if(b.store.reader.jsonData.feedback){alert(b.store.reader.jsonData.feedback)}},this);b.cm=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:a.columns});b.view=new Ext.grid.GridView({emptyText:GO.lang.strNoItems}),b.sm=new Ext.grid.RowSelectionModel();b.loadMask=true;b.enableDragDrop=true;b.ddGroup="AddressBooksDD";GO.addressbook.ContactsGrid.superclass.constructor.call(this,b)};Ext.extend(GO.addressbook.ContactsGrid,GO.grid.GridPanel,{loaded:false,afterRender:function(){GO.addressbook.ContactsGrid.superclass.afterRender.call(this);if(this.isVisible()){this.onGridShow()}},onGridShow:function(){if(!this.loaded&&this.rendered){this.store.load();this.loaded=true}}});GO.addressbook.CompaniesGrid=function(b){if(!b){b={}}b.border=false;b.paging=true;var a={fields:["id","name","name2","homepage","email","phone","fax","address","address_no","zip","city","state","country","post_address","post_address_no","post_city","post_state","post_country","post_zip","bank_no","vat_no","ctime","mtime","iban","crn","ab_name"],columns:[{header:GO.addressbook.lang.id,dataIndex:"id",width:20,hidden:true},{header:GO.lang.strName,dataIndex:"name",width:200},{header:GO.lang.strName2,dataIndex:"name2",width:200},{header:GO.lang.strEmail,dataIndex:"email",width:150,hidden:true},{header:GO.lang.strHomepage,dataIndex:"homepage",width:100,hidden:true},{header:GO.lang.strPhone,dataIndex:"phone",width:100},{header:GO.lang.strFax,dataIndex:"fax",width:80,hidden:true},{header:GO.lang.strAddress,dataIndex:"address",hidden:true},{header:GO.lang.strAddressNo,dataIndex:"address_no",hidden:true},{header:GO.lang.strZip,dataIndex:"zip",hidden:true},{header:GO.lang.strCity,dataIndex:"city",width:150},{header:GO.lang.strState,dataIndex:"state",width:80,hidden:true},{header:GO.lang.strCountry,dataIndex:"country",hidden:true},{header:GO.lang.strPostAddress,dataIndex:"post_address",hidden:true},{header:GO.lang.strPostAddressNo,dataIndex:"post_address_no",hidden:true},{header:GO.lang.strPostZip,dataIndex:"post_zip",hidden:true},{header:GO.lang.strPostCity,dataIndex:"post_city",hidden:true},{header:GO.lang.strPostState,dataIndex:"post_state",width:80,hidden:true},{header:GO.lang.strPostCountry,dataIndex:"post_country",hidden:true},{header:GO.addressbook.lang.cmdFormLabelBankNo,dataIndex:"bank_no",hidden:true},{header:GO.addressbook.lang.iban,dataIndex:"iban",hidden:true},{header:GO.addressbook.lang.crn,dataIndex:"crn",hidden:true},{header:GO.addressbook.lang.cmdFormLabelVatNo,dataIndex:"vat_no",hidden:true},{header:GO.lang.strMtime,dataIndex:"mtime",hidden:true,width:80},{header:GO.lang.strCtime,dataIndex:"ctime",hidden:true,width:80},{header:GO.addressbook.lang.addressbook,dataIndex:"ab_name",hidden:true}]};if(GO.customfields){GO.customfields.addColumns(3,a)}b.store=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"companies",enable_mailings_filter:true},root:"results",id:"id",totalProperty:"total",fields:a.fields,remoteSort:true});b.store.on("load",function(){if(b.store.reader.jsonData.feedback){alert(b.store.reader.jsonData.feedback)}},this);var c=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:a.columns});b.cm=c;b.view=new Ext.grid.GridView({emptyText:GO.lang.strNoItems}),b.sm=new Ext.grid.RowSelectionModel();b.loadMask=true;b.enableDragDrop=true;b.ddGroup="AddressBooksDD";GO.addressbook.CompaniesGrid.superclass.constructor.call(this,b)};Ext.extend(GO.addressbook.CompaniesGrid,GO.grid.GridPanel,{loaded:false,afterRender:function(){GO.addressbook.CompaniesGrid.superclass.afterRender.call(this);if(this.isVisible()){this.onGridShow()}},onGridShow:function(){if(!this.loaded&&this.rendered){this.store.load();this.loaded=true}}});GO.addressbook.SearchPanel=function(b){if(!b){b={}}b.layout="table";b.split=false;b.height=40;b.forceLayout=true;b.baseCls="x-plain";b.keys=[{key:Ext.EventObject.ENTER,fn:function(){this.selectedLetter="";this.alphabetView.clearSelections();this.fireQueryEvent()},scope:this}];this.alphabetArray=GO.addressbook.lang.alphabet.split(",");var d=new Array();d.push({value:"[0-9]"});for(var c=0;c<this.alphabetArray.length;c++){d.push({value:this.alphabetArray[c]})}var a=new Ext.XTemplate('<tpl for=".">','<span class="letter" onclick="">{value}</span>',"</tpl>");this.selectedLetter=0;this.alphabetView=new Ext.DataView({height:30,store:new Ext.data.JsonStore({fields:["value"],data:d}),tpl:a,autoHeight:true,singleSelect:true,cls:"alphabet-view",overClass:"alphabet-view-over",selectedClass:"alphabet-view-selected",itemSelector:"span.letter"});this.alphabetView.on("selectionchange",function(f,e){if(e[0]){this.selectedLetter=e[0].innerHTML;this.queryField.setValue("");this.fireQueryEvent()}},this);this.alphabetView.on("containerclick",function(f,g){return false},this);this.queryField=new Ext.form.TextField({name:"query",width:200,emptyText:GO.lang.strSearch+" "+GO.addressbook.lang.cmdFormSearchFourth});b.defaults={border:false,cls:"ab-search-form-panel",baseCls:"x-plain",forceLayout:true};b.items=[{items:this.alphabetView},{items:this.queryField},{items:new Ext.Button({handler:function(){this.selectedLetter="";this.alphabetView.clearSelections();this.fireQueryEvent()},text:GO.lang.strSearch,scope:this})},{items:new Ext.Button({handler:function(){if(!this.advancedSearchWindow){this.advancedSearchWindow=GO.addressbook.advancedSearchWindow=new GO.addressbook.AdvancedSearchWindow();this.advancedSearchWindow.on("ok",function(f){f.grid.stopEditing();this.fireEvent("queryChange",{advancedQuery:GO.addressbook.searchQueryPanel.queryField.getValue()})},this)}var e=this.ab.tabPanel.getActiveTab().id=="ab-contacts-grid"?"contacts":"companies";this.advancedSearchWindow.show(e)},text:GO.addressbook.lang.advancedSearch,scope:this})},{items:new Ext.Button({handler:function(){this.selectedLetter="";this.alphabetView.clearSelections();this.queryField.setValue("");this.fireQueryEvent()},text:GO.lang.cmdReset,scope:this})}];GO.addressbook.SearchPanel.superclass.constructor.call(this,b);this.addEvents({queryChange:true})};Ext.extend(GO.addressbook.SearchPanel,Ext.Panel,{selectedLetter:"",fireQueryEvent:function(){var a={clicked_letter:this.selectedLetter,query:this.queryField.getValue(),advancedQuery:""};this.fireEvent("queryChange",a)}});GO.addressbook.ContactProfilePanel=function(a){Ext.apply(a);this.formFirstName=new Ext.form.TextField({fieldLabel:GO.lang.strFirstName,name:"first_name",panel:this,validateValue:function(c){var b=(c!=""||this.panel.formLastName.getValue()!="");if(!b){this.markInvalid(this.blankText)}else{this.panel.formLastName.clearInvalid()}return b}});this.formMiddleName=new Ext.form.TextField({fieldLabel:GO.lang.strMiddleName,name:"middle_name"});this.formLastName=new Ext.form.TextField({fieldLabel:GO.lang.strLastName,name:"last_name",panel:this,validateValue:function(c){var b=(c!=""||this.panel.formFirstName.getValue()!="");if(!b){this.markInvalid(this.blankText)}else{this.panel.formFirstName.clearInvalid()}return b}});this.formTitle=new Ext.form.TextField({fieldLabel:GO.lang.strTitle,name:"title"});this.formInitials=new Ext.form.TextField({fieldLabel:GO.lang.strInitials,name:"initials"});this.sexCombo=new GO.form.ComboBox({fieldLabel:GO.lang.strSex,hiddenName:"sex",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["M",GO.lang.strMale],["F",GO.lang.strFemale]]}),value:"M",valueField:"value",displayField:"text",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.formSalutation=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelSalutation,name:"salutation"});this.formBirthday=new Ext.form.DateField({fieldLabel:GO.lang.strBirthday,name:"birthday",format:GO.settings.date_format});this.formEmail=new Ext.form.TextField({fieldLabel:GO.lang.strEmail,name:"email",vtype:"emailAddress"});this.formEmail2=new Ext.form.TextField({fieldLabel:GO.lang.strEmail+" 2",name:"email2",vtype:"emailAddress"});this.formEmail3=new Ext.form.TextField({fieldLabel:GO.lang.strEmail+" 3",name:"email3",vtype:"emailAddress"});this.formHomePhone=new Ext.form.TextField({fieldLabel:GO.lang.strPhone,name:"home_phone"});this.formFax=new Ext.form.TextField({fieldLabel:GO.lang.strFax,name:"fax"});this.formCellular=new Ext.form.TextField({fieldLabel:GO.lang.strCellular,name:"cellular"});this.formAddress=new Ext.form.TextField({fieldLabel:GO.lang.strAddress,name:"address"});this.formAddressNo=new Ext.form.TextField({fieldLabel:GO.lang.strAddressNo,name:"address_no"});this.formPostal=new Ext.form.TextField({fieldLabel:GO.lang.strZip,name:"zip"});this.formCity=new Ext.form.TextField({fieldLabel:GO.lang.strCity,name:"city"});this.formState=new Ext.form.TextField({fieldLabel:GO.lang.strState,name:"state"});this.formCountry=new GO.form.SelectCountry({fieldLabel:GO.lang.strCountry,name:"country_text",hiddenName:"country",listeners:{select:function(d,b){var c=this.formAddressFormat.store.getById(b.get("iso"));if(!c){var e=this.formAddressBooks.store.getById(this.formAddressBooks.getValue());c=e.get("default_iso_address_format")}else{c=c.id}this.formAddressFormat.setValue(c)},scope:this}});this.formAddressFormat=new GO.form.SelectAddressFormat({fieldLabel:GO.lang.strAddressFormat,name:"iso_address_format",displayField:"country_name",hiddenName:"iso_address_format",allowBlank:false});this.formCompany=new GO.addressbook.SelectCompany({fieldLabel:GO.lang.strCompany,name:"company",hiddenName:"company_id",emptyText:GO.addressbook.lang.cmdFormCompanyEmptyText,addressbook_id:this.addressbook_id});this.formDepartment=new Ext.form.TextField({fieldLabel:GO.lang.strDepartment,name:"department"});this.formFunction=new Ext.form.TextField({fieldLabel:GO.lang.strFunction,name:"function"});this.formWorkPhone=new Ext.form.TextField({fieldLabel:GO.lang.strWorkPhone,name:"work_phone"});this.formWorkFax=new Ext.form.TextField({fieldLabel:GO.lang.strWorkFax,name:"work_fax"});this.formAddressBooks=new GO.addressbook.SelectAddressbook({fieldLabel:GO.addressbook.lang.cmdFormLabelAddressBooks,store:GO.addressbook.writableAddressbooksStore,selectOnFocus:true,forceSelection:true,allowBlank:false,anchor:"100%"});this.formAddressBooks.on("beforeselect",function(d,b){if(this.formCompany.getValue()==0||confirm(GO.addressbook.lang.moveAll)){this.setAddressbookID(b.data.id);var c=this.formAddressFormat.store.getById(b.get("default_iso_address_format"));if(c){this.formAddressFormat.setValue(c.id);this.setSalutation()}return true}else{return false}},this);this.formAddressBooks.on("select",function(){this.setSalutation(true)},this);this.formFirstName.on("blur",function(){this.setSalutation(false)},this);this.formMiddleName.on("blur",function(){this.setSalutation(false)},this);this.formLastName.on("blur",function(){this.setSalutation(false)},this);this.formInitials.on("blur",function(){this.setSalutation(false)},this);this.formTitle.on("blur",function(){this.setSalutation(false)},this);this.sexCombo.on("change",function(){this.setSalutation(true)},this);this.formFirstName.on("change",function(){this.setSalutation(true)},this);this.formMiddleName.on("change",function(){this.setSalutation(true)},this);this.formLastName.on("change",function(){this.setSalutation(true)},this);this.formInitials.on("change",function(){this.setSalutation(true)},this);this.formTitle.on("change",function(){this.setSalutation(true)},this);this.addressbookFieldset={xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetSelectAddressbook,autoHeight:true,collapsed:false,items:this.formAddressBooks};this.personalFieldset={xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetPersonalDetails,autoHeight:true,collapsed:false,defaults:{border:false,anchor:"100%"},items:[this.formFirstName,this.formMiddleName,this.formLastName,this.formTitle,this.formInitials,this.sexCombo,this.formSalutation,this.formBirthday]};this.addressFieldset={xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetAddress,autoHeight:true,collapsed:false,defaults:{border:false,anchor:"100%"},items:[this.formAddress,this.formAddressNo,this.formPostal,this.formCity,this.formState,this.formCountry,this.formAddressFormat]};this.contactFieldset={xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetContact,autoHeight:true,collapsed:false,defaults:{border:false,anchor:"100%"},items:[this.formEmail,this.formEmail2,this.formEmail3,this.formHomePhone,this.formFax,this.formCellular,this.formWorkPhone,this.formWorkFax]};this.workFieldset={xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetWork,autoHeight:true,collapsed:false,defaults:{border:false,anchor:"100%"},items:[this.formCompany,this.formDepartment,this.formFunction]};this.title=GO.addressbook.lang.cmdPanelContact;this.autoScroll=true;this.bodyStyle="padding:5px";this.layout="column";this.labelWidth=125;this.defaults={border:false};this.items=[{itemId:"leftCol",columnWidth:0.5,items:[this.addressbookFieldset,this.personalFieldset,this.workFieldset]},{itemId:"rightCol",columnWidth:0.5,style:"margin-left: 5px;",items:[this.contactFieldset,this.addressFieldset]}];GO.addressbook.ContactProfilePanel.superclass.constructor.call(this)};Ext.extend(GO.addressbook.ContactProfilePanel,Ext.Panel,{setSalutation:function(e){if(e||this.formSalutation.getValue()==""){var j=this.formFirstName.getValue();var b=this.formMiddleName.getValue();var k=this.formLastName.getValue();var a=this.formInitials.getValue();var i=this.formTitle.getValue();var c=this.formAddressBooks.store.getById(this.formAddressBooks.getValue());var d=c.get("default_salutation");var g=d.slice(d.indexOf("[")+1,d.indexOf("]"));var f=g.split("/");var h=(this.sexCombo.getValue()=="M")?f[0]:f[1];d=d.replace("["+g+"]",h);d=d.replace("{first_name}",j);d=d.replace("{middle_name}",b);d=d.replace("{last_name}",k);d=d.replace("{initials}",a);d=d.replace("{title}",i);d=d.replace(/\s+/g," ");this.formSalutation.setValue(d)}},setAddressbookID:function(a){this.formAddressBooks.setValue(a);this.formCompany.store.baseParams.addressbook_id=a;this.formCompany.clearLastSearch()},setValues:function(a){this.formFirstName.setValue(a.name);this.formEmail.setValue(a.email);this.formHomePhone.setValue(a.phone);this.formCompany.setValue(a.company)}});GO.addressbook.CompanyProfilePanel=function(a){Ext.apply(a);this.formAddress=new Ext.form.TextField({fieldLabel:GO.lang.strAddress,name:"address",listeners:{change:function(c,b){if(this.formPostAddress.getValue()==""){this.formPostAddress.setValue(b)}},scope:this}});this.formAddressNo=new Ext.form.TextField({fieldLabel:GO.lang.strAddressNo,name:"address_no",listeners:{change:function(c,b){if(this.formPostAddressNo.getValue()==""){this.formPostAddressNo.setValue(b)}},scope:this}});this.formZip=new Ext.form.TextField({fieldLabel:GO.lang.strZip,name:"zip",listeners:{change:function(c,b){if(this.formPostZip.getValue()==""){this.formPostZip.setValue(b)}},scope:this}});this.formCity=new Ext.form.TextField({fieldLabel:GO.lang.strCity,name:"city",listeners:{change:function(c,b){if(this.formPostCity.getValue()==""){this.formPostCity.setValue(b)}},scope:this}});this.formState=new Ext.form.TextField({fieldLabel:GO.lang.strState,name:"state",listeners:{change:function(c,b){if(this.formPostState.getValue()==""){this.formPostState.setValue(b)}},scope:this}});this.formCountry=new GO.form.SelectCountry({fieldLabel:GO.lang.strCountry,name:"country_text",hiddenName:"country",listeners:{select:function(d,b){var c=this.formAddressFormat.store.getById(b.get("iso"));if(!c){var e=this.formAddressBooks.store.getById(this.formAddressBooks.getValue());c=e.get("default_iso_address_format")}else{c=c.id}this.formAddressFormat.setValue(c)},change:function(d,b){if(this.formPostCountry.getValue()==""){this.formPostCountry.setValue(b);var c=this.formPostAddressFormat.store.getById(b);if(!c){var e=this.formAddressBooks.store.getById(this.formAddressBooks.getValue());c=e.get("default_iso_address_format")}else{c=c.id}this.formPostAddressFormat.setValue(c)}},scope:this}});this.formAddressFormat=new GO.form.SelectAddressFormat({fieldLabel:GO.lang.strAddressFormat,name:"iso_address_format",displayField:"country_name",hiddenName:"iso_address_format",allowBlank:false});this.formPostAddress=new Ext.form.TextField({fieldLabel:GO.lang.strAddress,name:"post_address"});this.formPostAddressNo=new Ext.form.TextField({fieldLabel:GO.lang.strAddressNo,name:"post_address_no"});this.formPostZip=new Ext.form.TextField({fieldLabel:GO.lang.strZip,name:"post_zip"});this.formPostCity=new Ext.form.TextField({fieldLabel:GO.lang.strCity,name:"post_city"});this.formPostState=new Ext.form.TextField({fieldLabel:GO.lang.strState,name:"post_state"});this.formPostCountry=new GO.form.SelectCountry({fieldLabel:GO.lang.strCountry,name:"post_country_text",hiddenName:"post_country",listeners:{select:function(d,b){var c=this.formPostAddressFormat.store.getById(b.get("iso"));if(!c){var e=this.formAddressBooks.store.getById(this.formAddressBooks.getValue());c=e.get("default_iso_address_format")}else{c=c.id}this.formPostAddressFormat.setValue(c)},scope:this}});this.formPostAddressFormat=new GO.form.SelectAddressFormat({fieldLabel:GO.lang.strAddressFormat,name:"post_iso_address_format",displayField:"country_name",hiddenName:"post_iso_address_format"});this.formName=new Ext.form.TextField({fieldLabel:GO.lang.strName,name:"name"});this.formName2=new Ext.form.TextField({fieldLabel:GO.lang.strName2,name:"name2"});this.formPhone=new Ext.form.TextField({fieldLabel:GO.lang.strPhone,name:"phone",allowBlank:true,labelSeparator:this.separator,width:this.widthLeftColumn});this.formFax=new Ext.form.TextField({fieldLabel:GO.lang.strFax,name:"fax"});this.formEmail=new Ext.form.TextField({fieldLabel:GO.lang.strEmail,name:"email",vtype:"emailAddress"});this.formHomepage=new Ext.form.TextField({fieldLabel:GO.lang.strHomepage,name:"homepage"});this.formBankNo=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelBankNo,name:"bank_no"});this.formVatNo=new Ext.form.TextField({fieldLabel:GO.addressbook.lang.cmdFormLabelVatNo,name:"vat_no"});this.formAddressBooks=new GO.addressbook.SelectAddressbook({fieldLabel:GO.addressbook.lang.cmdFormLabelAddressBooks,store:GO.addressbook.writableAddressbooksStore,selectOnFocus:true,forceSelection:true,allowBlank:false,anchor:"100%"});this.formAddressBooks.on("beforeselect",function(c,b){if(this.company_id>0){return confirm(GO.addressbook.lang.moveAll)}},this);this.title=GO.addressbook.lang.cmdPanelCompany;this.labelWidth=120;this.bodyStyle="padding: 5px";this.layout="column";this.autoScroll=true;this.defaults={border:false};this.items=[{columnWidth:0.5,defaults:{border:false},items:[{xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetSelectAddressbook,autoHeight:true,border:true,collapsed:false,items:this.formAddressBooks},{xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetCompanyDetails,autoHeight:true,collapsed:false,border:true,defaults:{border:false,anchor:"100%"},items:[this.formName,this.formName2,this.formPhone,this.formFax,this.formEmail,this.formHomepage,this.formBankNo,{xtype:"textfield",fieldLabel:GO.addressbook.lang.iban,name:"iban"},{xtype:"textfield",fieldLabel:GO.addressbook.lang.crn,name:"crn"},this.formVatNo]}]},{columnWidth:0.5,defaults:{border:false},style:"margin-left: 5px;",items:[{xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetVisitAddress,autoHeight:true,collapsed:false,border:true,defaults:{border:false,anchor:"100%"},items:[this.formAddress,this.formAddressNo,this.formZip,this.formCity,this.formState,this.formCountry,this.formAddressFormat]},{xtype:"fieldset",title:GO.addressbook.lang.cmdFieldsetPostAddress,autoHeight:true,collapsed:false,border:true,defaults:{border:false,anchor:"100%"},items:[this.formPostAddress,this.formPostAddressNo,this.formPostZip,this.formPostCity,this.formPostState,this.formPostCountry,this.formPostAddressFormat]}]}];GO.addressbook.CompanyProfilePanel.superclass.constructor.call(this)};Ext.extend(GO.addressbook.CompanyProfilePanel,Ext.Panel,{setCompanyId:function(a){this.company_id=a}});GO.addressbook.EmployeesPanel=function(a){if(!a){a={}}a.store=new Ext.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{company_id:this.company_id,task:"load_employees"},id:"id",root:"results",fields:[{name:"id"},{name:"name"},{name:"function"},{name:"department"},{name:"phone"},{name:"email"}],remoteSort:true});a.store.on("load",function(){this.loaded=true},this);a.cm=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{header:GO.lang.strName,dataIndex:"name"},{header:GO.lang.strEmail,dataIndex:"email",width:200},{header:GO.lang.strPhone,dataIndex:"phone",width:100},{header:GO.lang.strFunction,dataIndex:"function",width:150},{header:GO.lang.strDepartment,dataIndex:"department",width:150}]});a.view=new Ext.grid.GridView({autoFill:true,forceFit:true});a.layout="fit";a.paging=true;a.title=GO.addressbook.lang.cmdPanelEmployees;a.id="ab-employees-grid";a.sm=new Ext.grid.RowSelectionModel();a.autoScroll=false;a.trackMouseOver=true;a.collapsible=false;a.disabled=true;a.tbar=[{iconCls:"btn-add",text:GO.lang.cmdAdd,cls:"x-btn-text-icon",handler:function(){if(!this.selectContactDialog){this.selectContactDialog=new GO.addressbook.SelectContactDialog({handler:function(b){var c=b.selModel.selections.keys;this.store.baseParams.add_contacts=Ext.encode(c);this.store.load();delete this.store.baseParams.add_contacts},scope:this})}this.selectContactDialog.grid.store.baseParams.addressbook_id=this.ownerCt.ownerCt.ownerCt.companyForm.form.findField("addressbook_id").getValue();this.selectContactDialog.show()},scope:this},{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",handler:function(){this.deleteSelected()},scope:this}];GO.addressbook.EmployeesPanel.superclass.constructor.call(this,a);this.on("rowdblclick",function(d,c){var b=d.getStore().getAt(c);GO.addressbook.showContactDialog(b.data.id)},this)};Ext.extend(GO.addressbook.EmployeesPanel,GO.grid.GridPanel,{setCompanyId:function(a){if(a!=this.store.baseParams.company_id){this.loaded=false;this.store.baseParams.company_id=a;this.setDisabled(a==0)}},onShow:function(){if(!this.loaded){this.store.load()}GO.addressbook.CompanyProfilePanel.superclass.onShow.call(this)}});GO.addressbook.AdvancedSearchWindow=function(a){if(!a){a={}}GO.addressbook.searchQueryPanel=new GO.addressbook.SearchQueryPanel();GO.addressbook.savedQueryGrid=new GO.addressbook.SavedQueryGrid();a.grid=GO.addressbook.savedQueryGrid;a.items=new Ext.TabPanel({activeTab:0,border:false,items:[GO.addressbook.searchQueryPanel,GO.addressbook.savedQueryGrid]});a.collapsible=true;a.layout="fit";a.modal=false;a.resizable=true;a.width=600;a.height=350;a.closeAction="hide";a.title=GO.addressbook.lang.advancedSearch;a.buttons=[{text:GO.addressbook.lang.executeQuery,handler:function(){this.fireEvent("ok",this);this.hide()},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];GO.addressbook.AdvancedSearchWindow.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.AdvancedSearchWindow,GO.Window,{editor:new Ext.form.TextField(),getCellEditor:function(a,b){return this.editor},show:function(a){if(a!=GO.addressbook.searchQueryPanel.typesStore.baseParams.type){GO.addressbook.searchQueryPanel.typesStore.baseParams.type=a;GO.addressbook.searchQueryPanel.typesStore.load();GO.addressbook.savedQueryGrid.store.baseParams.companies=a=="companies"?"1":"0"}GO.addressbook.AdvancedSearchWindow.superclass.show.call(this)}});GO.addressbook.SearchQueryPanel=function(a){if(!a){a={}}a.title=GO.addressbook.lang.newSearch;this.typesStore=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"ab_fields",type:""},root:"results",id:"field",fields:["field","label","value","type","options"],remoteSort:true});this.typesStore.on("load",function(){this.typesBox.selectFirst()},this);a.border=false;a.layout="form";a.defaults={hideLabel:true};a.bodyStyle="padding:5px;";var b=this.getComparators();GO.addressbook.queryField=this.queryField=new Ext.form.TextArea({anchor:"100%",height:150});this.queryMakerPanel=new Ext.Panel({layout:"table",border:false,defaults:{bodyStyle:"padding-right:4px",border:false},items:[{items:this.operatorBox=new Ext.form.ComboBox({store:new Ext.data.SimpleStore({fields:["value"],data:[["AND"],["OR"]]}),value:"AND",valueField:"value",displayField:"value",width:60,mode:"local",triggerAction:"all",editable:true,selectOnFocus:true,forceSelection:true})},{items:this.typesBox=new GO.form.ComboBox({store:this.typesStore,valueField:"field",displayField:"label",mode:"local",triggerAction:"all",editable:true,selectOnFocus:true,forceSelection:true,emptyText:GO.addressbook.lang.selectField,width:180})},{items:this.comparatorBox=new Ext.form.ComboBox({store:new Ext.data.SimpleStore({fields:["value"],data:b}),valueField:"value",displayField:"value",value:"LIKE",width:60,mode:"local",triggerAction:"all",editable:true,selectOnFocus:true,forceSelection:true})},{items:this.criteriumField=new Ext.form.TextField({name:"criterium",emptyText:GO.lang.keyword,width:180,panel:this})},{items:new Ext.Button({handler:function(){var c=this.queryField.getValue();if(this.queryField.getValue()&&this.operatorBox.value){c=c+" "+this.operatorBox.value}if(this.typesBox.value){c=c+" "+this.typesBox.value}if(this.comparatorBox.value){c=c+" "+this.comparatorBox.value}c=c+" '"+this.criteriumField.getValue()+"'";this.queryField.setValue(c)},text:GO.lang.cmdAdd,scope:this})}]});this.buttonsPanel=new Ext.Panel({buttonAlign:"left",border:false,buttons:[new Ext.Button({handler:function(){Ext.Msg.prompt(GO.addressbook.lang.searchQueryName,GO.addressbook.lang.enterSearchQueryName,function(c,d){Ext.Ajax.request({url:GO.settings.modules.addressbook.url+"action.php",params:{task:"save_sql",sql:GO.addressbook.queryField.getValue(),name:d,companies:this.typesStore.baseParams.type=="companies"?"1":"0"},success:function(e,f){var g=Ext.decode(e.responseText);if(!g.success){alert(g.feedback)}else{}},scope:this})},this)},text:GO.lang.cmdSave,scope:this}),new Ext.Button({handler:function(){this.queryField.setValue("")},text:GO.lang.cmdReset,scope:this})]});a.items=[this.queryField,this.buttonsPanel,this.queryMakerPanel];GO.addressbook.SearchQueryPanel.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.SearchQueryPanel,Ext.Panel,{getComparators:function(){return[["LIKE"],["NOT LIKE"],["="],["!="],[">"],[">="],["<"],["<="]]}});GO.addressbook.SavedQueryGrid=function(b){if(!b){b={}}b.title=GO.addressbook.lang.savedQueries;b.paging=true;b.border=false;b.store=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"sqls",companies:0},root:"results",id:"id",fields:["id","name","sql"],remoteSort:true});var a=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{header:GO.lang.strName,dataIndex:"name"}]});b.cm=a;b.view=new Ext.grid.GridView({autoFill:true,forceFit:true,emptyText:GO.lang.strNoItems}),b.sm=new Ext.grid.RowSelectionModel();b.loadMask=true;b.tbar=[{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",handler:function(){this.deleteSelected()},scope:this}];GO.addressbook.SavedQueryGrid.superclass.constructor.call(this,b);this.on("rowdblclick",function(c,f,d){GO.addressbook.searchQueryPanel.queryField.setValue(c.store.data.items[f].data.sql);GO.addressbook.advancedSearchWindow.fireEvent("ok",GO.addressbook.advancedSearchWindow);GO.addressbook.advancedSearchWindow.hide()});this.on("beforeshow",function(c){this.store.load()})};Ext.extend(GO.addressbook.SavedQueryGrid,GO.grid.GridPanel,{});GO.addressbook.MainPanel=function(a){if(!a){a={}}this.contactsGrid=new GO.addressbook.ContactsGrid({layout:"fit",region:"center",id:"ab-contacts-grid-panel"});this.contactsGrid.on("delayedrowselect",function(d,f,e){this.contactEastPanel.load(e.get("id"))},this);this.contactsGrid.on("rowdblclick",function(){this.contactEastPanel.editHandler()},this);this.contactsGrid.store.on("load",function(){this.setAdvancedSearchNotification(this.contactsGrid.store)},this);if(GO.email){this.contactsGrid.on("cellcontextmenu",function(f,h,d,g){if(typeof(this.contactsGrid.contextMenu)=="undefined"){this.contactsGrid.contextMenu=new GO.addressbook.ContextMenu()}this.contactsGrid.contextMenu.setSelected(f.selModel.getSelections());g.stopEvent();this.contactsGrid.contextMenu.showAt(g.getXY())},this)}this.companiesGrid=new GO.addressbook.CompaniesGrid({layout:"fit",region:"center",id:"ab-company-grid-panel"});this.companiesGrid.on("delayedrowselect",function(d,f,e){this.companyEastPanel.load(e.get("id"))},this);this.companiesGrid.on("rowdblclick",function(){this.companyEastPanel.editHandler()},this);if(GO.email){this.companiesGrid.on("cellcontextmenu",function(f,h,d,g){if(typeof(this.companiesGrid.contextMenu)=="undefined"){this.companiesGrid.contextMenu=new GO.addressbook.ContextMenu()}this.companiesGrid.contextMenu.setSelected(f.selModel.getSelections());g.stopEvent();this.companiesGrid.contextMenu.showAt(g.getXY())},this)}this.companiesGrid.store.on("load",function(){this.setAdvancedSearchNotification(this.companiesGrid.store)},this);this.searchPanel=new GO.addressbook.SearchPanel({region:"north",ab:this});this.searchPanel.on("queryChange",function(d){this.setSearchParams(d)},this);this.contactEastPanel=new GO.addressbook.ContactReadPanel({id:"ab-contact-panel",region:"east",title:GO.addressbook.lang.cmdPanelContact,width:420,collapseMode:"mini",collapsible:true,split:true});this.companyEastPanel=new GO.addressbook.CompanyReadPanel({id:"ab-company-panel",region:"east",title:GO.addressbook.lang.cmdPanelCompany,width:420,collapseMode:"mini",collapsible:true,split:true});this.contactsPanel=new Ext.Panel({id:"ab-contacts-grid",title:GO.addressbook.lang.contacts,layout:"border",items:[this.contactsGrid,this.contactEastPanel]});this.contactsPanel.on("show",function(){this.contactsGrid.onGridShow();this.setAdvancedSearchNotification(this.contactsGrid.store);this.addressbooksGrid.setType("contact")},this);this.companyPanel=new Ext.Panel({id:"ab-company-grid",title:GO.addressbook.lang.companies,layout:"border",items:[this.companiesGrid,this.companyEastPanel]});this.companyPanel.on("show",this.companiesGrid.onGridShow,this.companiesGrid);this.companyPanel.on("show",function(){this.companiesGrid.onGridShow();this.setAdvancedSearchNotification(this.companiesGrid.store);this.addressbooksGrid.setType("company")},this);this.addressbooksGrid=new GO.addressbook.AddresbooksGrid({region:"west",id:"ab-addressbook-grid",width:180,height:250});this.addressbooksGrid.on("change",function(g,e,f){var h=Ext.encode(e);var d=this.tabPanel.getActiveTab();if(d.id=="ab-contacts-grid"){this.contactsGrid.store.baseParams.books=h;this.contactsGrid.store.load();delete this.contactsGrid.store.baseParams.books}else{this.companiesGrid.store.baseParams.books=h;this.companiesGrid.store.load();delete this.companiesGrid.store.baseParams.books}if(f.length){GO.addressbook.defaultAddressbook=f[0].data.id}},this);this.addressbooksGrid.on("drop",function(d){if(d=="company"){this.companiesGrid.store.reload()}else{this.contactsGrid.store.reload()}},this);this.tabPanel=new Ext.TabPanel({region:"center",activeTab:0,border:true,items:[this.contactsPanel,this.companyPanel]});a.layout="border";a.border=false;if(GO.mailings){this.mailingsFilterPanel=new GO.grid.MultiSelectGrid({region:"center",id:"ab-mailingsfilter-panel",title:GO.mailings.lang.filterMailings,loadMask:true,store:GO.mailings.readableMailingsStore,allowNoSelection:true});this.mailingsFilterPanel.on("change",function(f,e){var d=this.tabPanel.getActiveTab();if(d.id=="ab-contacts-grid"){this.contactsGrid.store.baseParams.mailings_filter=Ext.encode(e);this.contactsGrid.store.load();delete this.contactsGrid.store.baseParams.mailings_filter}else{this.companiesGrid.store.baseParams.mailings_filter=Ext.encode(e);this.companiesGrid.store.load();delete this.companiesGrid.store.baseParams.mailings_filter}},this);this.addressbooksGrid.region="north";var c=new Ext.Panel({layout:"border",border:false,region:"west",width:180,split:true,items:[this.addressbooksGrid,this.mailingsFilterPanel]});a.items=[this.searchPanel,c,this.tabPanel]}else{a.items=[this.searchPanel,this.addressbooksGrid,this.tabPanel]}var b=[{iconCls:"btn-addressbook-add-contact",text:GO.addressbook.lang.btnAddContact,cls:"x-btn-text-icon",handler:function(){this.contactEastPanel.reset();this.contactEastPanel.editHandler();this.tabPanel.setActiveTab("ab-contacts-grid")},scope:this},{iconCls:"btn-addressbook-add-company",text:GO.addressbook.lang.btnAddCompany,cls:"x-btn-text-icon",handler:function(){this.companyEastPanel.reset();this.companyEastPanel.editHandler();this.tabPanel.setActiveTab("ab-company-grid")},scope:this},{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",handler:function(){var d=this.tabPanel.getActiveTab();switch(d.id){case"ab-contacts-grid":this.contactsGrid.deleteSelected({callback:this.contactEastPanel.gridDeleteCallback,scope:this.contactEastPanel});break;case"ab-company-grid":this.companiesGrid.deleteSelected({callback:this.companyEastPanel.gridDeleteCallback,scope:this.companyEastPanel});break}},scope:this},"-",{iconCls:"btn-addressbook-manage",text:GO.lang.administration,cls:"x-btn-text-icon",handler:function(){if(!this.manageDialog){this.manageDialog=new GO.addressbook.ManageDialog()}this.manageDialog.show()},scope:this}];if(GO.addressbook.exportPermission=="1"){b.push(new Ext.Button({iconCls:"btn-export",text:GO.lang.cmdExport,cls:"x-btn-text-icon",handler:function(){var g=this.tabPanel.getActiveTab();var d={};switch(g.id){case"ab-contacts-grid":d.query="search_contacts";d.colModel=this.contactsGrid.getColumnModel();break;case"ab-company-grid":d.query="search_companies";d.colModel=this.companiesGrid.getColumnModel();break}d.title=g.title;var h=this.searchPanel.queryField.getValue();if(!GO.util.empty(h)){d.subtitle=GO.lang.searchQuery+": "+h}else{d.subtile=""}if(g.id=="ab-contacts-grid"){if(!this.exportDialogExtended){var f=[];for(var e=0;e<this.companiesGrid.colModel.getColumnCount();e++){var j=this.companiesGrid.colModel.config[e];f.push(j.dataIndex+":"+GO.addressbook.lang.company+" "+j.header)}this.exportDialogExtended=new GO.ExportQueryDialog({query:"contactsearch",loadParams:{export_directory:"modules/addressbook/exporters/",books:this.contactsGrid.store.baseParams.books,companyColumns:f},customTypes:[{boxLabel:GO.addressbook.lang.exportWithCompanies,name:"type",inputValue:"with_companies_export_query"}]});d.subtitle=GO.lang.searchQuery+": "+h}else{d.subtitle=""}this.exportDialogExtended.show(d)}else{if(!this.exportDialog){this.exportDialog=new GO.ExportQueryDialog({query:d.query})}this.exportDialog.show(d)}},scope:this}))}if(GO.mailings&&GO.email){b.push("-");b.push({iconCls:"ml-btn-mailings",text:GO.mailings.lang.newsletters,cls:"x-btn-text-icon",handler:function(){if(!this.mailingStatusWindow){this.mailingStatusWindow=new GO.mailings.MailingStatusWindow()}this.mailingStatusWindow.show()},scope:this})}a.tbar=new Ext.Toolbar({cls:"go-head-tb",items:b});GO.addressbook.MainPanel.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.MainPanel,Ext.Panel,{setAdvancedSearchNotification:function(a){if(!GO.util.empty(a.baseParams.advancedQuery)){this.searchPanel.queryField.setValue("[ "+GO.addressbook.lang.advancedSearch+" ]");this.searchPanel.queryField.setDisabled(true)}else{if(this.searchPanel.queryField.getValue()=="[ "+GO.addressbook.lang.advancedSearch+" ]"){this.searchPanel.queryField.setValue("")}this.searchPanel.queryField.setDisabled(false)}},init:function(){this.getEl().mask(GO.lang.waitMsgLoad);Ext.Ajax.request({url:GO.settings.modules.addressbook.url+"json.php",params:{task:"init"},callback:function(b,d,a){if(!d){alert(GO.lang.strRequestError)}else{var c=Ext.decode(a.responseText);GO.addressbook.readableAddressbooksStore.loadData(c.addressbooks);if(GO.mailings){GO.mailings.readableMailingsStore.loadData(c.readable_addresslists);GO.mailings.writableMailingsStore.loadData(c.writable_addresslists)}this.getEl().unmask()}},scope:this})},afterRender:function(){GO.addressbook.MainPanel.superclass.afterRender.call(this);this.init();GO.dialogListeners.add("contact",{scope:this,save:function(){var a=this.tabPanel.getActiveTab();if(a.id=="ab-contacts-grid"){this.contactsGrid.store.reload()}}});GO.dialogListeners.add("company",{scope:this,save:function(){var a=this.tabPanel.getActiveTab();if(a.id=="ab-company-grid"){this.companiesGrid.store.reload()}}})},setSearchParams:function(c){var a=this.tabPanel.getActiveTab();for(var b in c){if(b!="advancedQuery"||a.id=="ab-contacts-grid"){this.contactsGrid.store.baseParams[b]=c[b]}if(b!="advancedQuery"||a.id!="ab-contacts-grid"){this.companiesGrid.store.baseParams[b]=c[b]}}if(a.id=="ab-contacts-grid"){this.companiesGrid.loaded=false;this.contactsGrid.store.load()}else{this.contactsGrid.loaded=false;this.companiesGrid.store.load()}}});GO.addressbook.showContactDialog=function(a){if(!GO.addressbook.contactDialog){GO.addressbook.contactDialog=new GO.addressbook.ContactDialog()}if(GO.addressbook.contactDialogListeners){GO.addressbook.contactDialog.on(GO.addressbook.contactDialogListeners);delete GO.addressbook.contactDialogListeners}GO.addressbook.contactDialog.show(a)};GO.addressbook.showCompanyDialog=function(a){if(!GO.addressbook.companyDialog){GO.addressbook.companyDialog=new GO.addressbook.CompanyDialog()}if(GO.addressbook.companyDialogListeners){GO.addressbook.companyDialog.on(GO.addressbook.companyDialogListeners);delete GO.addressbook.companyDialogListeners}GO.addressbook.companyDialog.show(a)};GO.addressbook.searchSenderStore=new GO.data.JsonStore({url:GO.settings.modules.addressbook.url+"json.php",baseParams:{task:"search_sender",email:""},root:"results",totalProperty:"total",id:"id",fields:["id","name"],remoteSort:true});GO.addressbook.searchSender=function(b,a){GO.addressbook.searchSenderStore.baseParams.email=b;GO.addressbook.searchSenderStore.load({callback:function(){switch(GO.addressbook.searchSenderStore.getCount()){case 0:var e=a.split(" ");var f={email:b,first_name:e[0]};if(e[2]){f.last_name=e[2];f.middle_name=e[1]}else{if(e[1]){f.middle_name="";f.last_name=e[1]}}if(!GO.addressbook.unknownEmailWin){GO.addressbook.unknownEmailWin=new GO.Window({title:GO.addressbook.lang.unknownEmail,items:{autoScroll:true,items:[{xtype:"plainfield",hideLabel:true,value:GO.addressbook.lang.strUnknownEmail}],cls:"go-form-panel"},layout:"fit",autoScroll:true,closeAction:"hide",closeable:true,height:120,width:400,buttons:[{text:GO.lang.cmdAdd,handler:function(){GO.addressbook.showContactDialog();GO.addressbook.contactDialog.formPanel.form.setValues(GO.addressbook.unknownEmailWin.params);GO.addressbook.unknownEmailWin.hide()}},{text:GO.lang.cmdEdit,handler:function(){if(!GO.email.findContactDialog){GO.email.findContactDialog=new GO.email.FindContactDialog()}GO.email.findContactDialog.show(GO.addressbook.unknownEmailWin.params);GO.addressbook.unknownEmailWin.hide()}},{text:GO.lang.cmdCancel,handler:function(){GO.addressbook.unknownEmailWin.hide()}}],scope:this})}GO.addressbook.unknownEmailWin.params=f;GO.addressbook.unknownEmailWin.show();break;case 1:var c=GO.addressbook.searchSenderStore.getAt(0);GO.linkHandlers[2].call(this,c.get("id"));break;default:if(!GO.addressbook.searchSenderWin){var d=new GO.grid.SimpleSelectList({store:GO.addressbook.searchSenderStore});d.on("click",function(g,h){var i=g.store.data.items[h].id;d.clearSelections();GO.addressbook.searchSenderWin.hide();GO.linkHandlers[2].call(this,i)},this);GO.addressbook.searchSenderWin=new GO.Window({title:GO.addressbook.lang.strSelectContact,items:{autoScroll:true,items:d,cls:"go-form-panel"},layout:"fit",autoScroll:true,closeAction:"hide",closeable:true,height:400,width:400,buttons:[{text:GO.lang.cmdClose,handler:function(){GO.addressbook.searchSenderWin.hide()}}]})}GO.addressbook.searchSenderWin.show();break}},scope:this})};GO.moduleManager.addModule("addressbook",GO.addressbook.MainPanel,{title:GO.addressbook.lang.addressbook,iconCls:"go-tab-icon-addressbook"});GO.linkHandlers[2]=GO.mailFunctions.showContact=GO.addressbook.showContact=function(b){if(!GO.addressbook.linkContactWindow){var a=new GO.addressbook.ContactReadPanel();GO.addressbook.linkContactWindow=new GO.LinkViewWindow({title:GO.addressbook.lang.contact,items:a,contactPanel:a,closeAction:"hide"})}GO.addressbook.linkContactWindow.contactPanel.load(b);GO.addressbook.linkContactWindow.show()};GO.linkPreviewPanels[2]=function(a){a=a||{};return new GO.addressbook.ContactReadPanel(a)};GO.linkPreviewPanels[3]=function(a){a=a||{};return new GO.addressbook.CompanyReadPanel(a)};GO.linkHandlers[3]=function(b){if(!GO.addressbook.linkCompanyWindow){var a=new GO.addressbook.CompanyReadPanel();GO.addressbook.linkCompanyWindow=new GO.LinkViewWindow({title:GO.addressbook.lang.company,items:a,companyPanel:a,closeAction:"hide"})}GO.addressbook.linkCompanyWindow.companyPanel.load(b);GO.addressbook.linkCompanyWindow.show()};GO.addressbook.SelectAddressbook=function(a){a=a||{};if(!a.hiddenName){a.hiddenName="addressbook_id"}if(!a.fieldLabel){a.fieldLabel=GO.addressbook.lang.addressbook}a.store=GO.addressbook.writableAddressbooksStore;Ext.apply(a,{displayField:"name",valueField:"id",triggerAction:"all",mode:"remote",editable:true,selectOnFocus:true,forceSelection:true,typeAhead:true,emptyText:GO.lang.strPleaseSelect,pageSize:parseInt(GO.settings.max_rows_list)});GO.addressbook.SelectAddressbook.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.SelectAddressbook,GO.form.ComboBox,{});GO.moduleManager.onModuleReady("customfields",function(){GO.customfields.dataTypes.contact={label:GO.addressbook.lang.contact,getFormField:function(a,b){var c=GO.customfields.dataTypes.text.getFormField(a,b);delete c.name;return Ext.apply(c,{xtype:"selectcontact",idValuePair:true,hiddenName:a.dataname,forceSelection:true,valueField:"cf"})}}},this);GO.moduleManager.on("moduleconstructed",function(d,c,b){if(c=="settings"){var a=new Ext.form.FieldSet({title:GO.addressbook.lang.addressbook,items:[{xtype:"textfield",name:"addressbook_name_template",fieldLabel:GO.addressbook.lang.globalsettings_templatelabel,width:300},{xtype:"checkbox",name:"change_all_addressbook_names",fieldLabel:GO.addressbook.lang.globalsettings_allchangelabel,listeners:{check:function(e,f){if(f&&!confirm(GO.addressbook.lang.globalsettings_renameall)){e.setValue(false)}},scope:this}}]});b.add(a)}});GO.addressbook.ContextMenu=function(a){if(!a){a={}}a.items=[];if(GO.email){this.actionCreateMail=new Ext.menu.Item({iconCls:"btn-email",text:GO.addressbook.lang.createEmailSelected,cls:"x-btn-text-icon",scope:this,handler:function(){this.showCreateMailDialog()}});a.items.push(this.actionCreateMail)}GO.addressbook.ContextMenu.superclass.constructor.call(this,a)};Ext.extend(GO.addressbook.ContextMenu,Ext.menu.Menu,{setSelected:function(a){this.selected=a},getSelected:function(){if(typeof(this.selected)=="undefined"){return[]}else{return this.selected}},showCreateMailDialog:function(){if(GO.email){var d=[];var b=this.getSelected();for(var a=0;a<b.length;a++){if(typeof(b[a].data.email)=="string"&&!GO.util.empty(b[a].data.email)){d.push('"'+b[a].data.name+'" <'+b[a].data.email+">")}}if(d.length>0){var c=d.join(", ")}else{var c=""}GO.email.showComposer({account_id:GO.moduleManager.getPanel("email").account_id,values:{to:c}})}}});