
var addedIndex=0;function showPreviewImageDialog(imageUrl,imageInfo,title,isNotModal)
{new Ext.Window({layout:'fit',width:500,height:600,autoScroll:true,modal:!isNotModal,plain:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:'Image View',maximizable:true,html:['<table width="100%"><tr><td align="center">',imageInfo,'</td></tr><tr><td align="center"><img src="',imageUrl,'"></td></tr><tr><td>Url of image: <a target=_blank href="',imageUrl,'">',imageUrl,'</a></td></tr></table>'].join(''),buttons:[{minWidth:80,text:'Close',handler:function(){this.ownerCt.ownerCt.close();}}]}).show();}
function showPreviewVideoDialog(mediaId,title)
{new Ext.data.JsonStore({url:makeUrl('releases','loadVideo'),autoLoad:true,baseParams:{id:mediaId},fields:['media_id','embed_html'],listeners:{'load':{fn:function(store,r){new Ext.Window({layout:'fit',autoWidth:true,height:500,autoScroll:true,modal:true,plain:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:'Video View',maximizable:true,html:['<table width="100%"><tr><td align="center">',title,'</td></tr><tr><td align="center">',r[0].data.embed_html,'</td></tr></table>'].join(''),buttons:[{minWidth:80,text:'Close',handler:function(){this.ownerCt.ownerCt.close();}}]}).show();},scope:this}}});}
function prepareComboBox(url,options){return Ext.isObject(url)?new Ext.form.ComboBox(getComboOptions(url)):new Ext.form.ComboBox(getRemoteComboOptions(url,options));}
function sendJsonRequest(url,params,callback,scope,callbackError){var response=new Ext.data.Store({url:url,baseParams:params,reader:new Ext.data.JsonReader({record:'success',success:'@success'},[{name:'info'}])});response.on('load',function(){if(this.reader.jsonData.success){if(callback){if(callback=='reload'){scope.store.reload();}else{callback(scope,this.reader.jsonData);}}else{}
if(!Ext.isObject(this.reader.jsonData.info)){if(!Ext.isEmpty(this.reader.jsonData.info)){msg('Notification',this.reader.jsonData.info);}}}
if(this.reader.jsonData.errorInfo){var res=['<span class="errorInfo">',this.reader.jsonData.errorInfo,'</span>']
if(this.reader.jsonData.errors){res.push('<br>');for(i=0;i<this.reader.jsonData.errors.length;i++){var idx=this.reader.jsonData.errors[i];res.push('<b>',idx.id,'</b> : ',idx.msg,'<br>');}}
if(callbackError){msg('Error',res.join(''));callbackError(scope,res.join(''));}else{msg('Error',res.join(''));}}});response.load();}
function booleanRenderer(v)
{return v=='1'?'<font style="color:green;">Yes</font>':'<font style="color:red;">No</font>';}
function dRenderer(v){try{return v?Ext.util.Format.date(v,app.conf.dateFormat):'';}catch(e){return v;}}
function dtRenderer(v){try{return v?Ext.util.Format.date(v,app.conf.dtFormat):'';}catch(e){return v;}}
function listRenderer(v){if(v[0]){if(typeof v[0]=='object'){var l=[];Ext.each(v,function(n){l.push(n.value)});return l;}else{return v.join(', ');}}}
function contactsListRenderer(v){if(v[0]){if(typeof v[0]=='object'){var l=[];Ext.each(v,function(n){l.push('<a onclick=showContact('+n.id+') class=basic>'+n.value+'</a>')});return l;}else{return v.join(', ');}}}
function newRenderer(val,p,record){if(record.data.readed){return'<div class="item-title">'+val+'</div>';}else{return'<div class="item-title"><div class="icon icon-new"/></div>'+val+'</div>';}}
function showContactRenderer(val,p,record){if(record.data.contact_id){return'<a onclick=showContact('+record.data.contact_id+')>'+val+'</a>';}else{return val;}}
function makeUrl(module,action){return app.conf.baseUrl+(module?module:'')+(action?'/'+action:'');}
function makeSecureUrl(module,action){return app.conf.secureMainUrl+(module?module:'')+(action?'/'+action:'');}
function showTip(element,tipText)
{Ext.QuickTips.register({target:Ext.get(element),text:tipText});}
function createBeatsTreePanel(objectName,title){return createCheckTreePanel(objectName,'beats',app.makeUrl('json?method=getBeatsTree'),title);}
function createCountriesTreePanel(objectName,title){return createCheckTreePanel(objectName,'countries',app.makeUrl('json?method=getCountriesTree'),title);}
function createCheckTreePanel(objectName,items,dataUrl,title){return new Ext.ux.CheckColumnTreePanel({autoWidth:true,rootVisible:false,overflow:'auto',autoScroll:true,title:title,useArrows:true,objectName:objectName,checkItems:items,columns:[{header:'',width:350,dataIndex:'text'}],loader:new Ext.tree.TreeLoader({dataUrl:dataUrl,uiProviders:{'col':Ext.ux.CheckColumnNodeUI}}),root:new Ext.tree.AsyncTreeNode({text:''})});}
function makeLinks(ids,names,fnName){var links,namesA,idsA;try{links=[];if(names.length>0){namesA=names.split(',');idsA=ids.split(',');for(i=0;i<namesA.length;i++){links.push(["<a onclick=\"",fnName,"(",idsA[i],',','\'',namesA[i],'\'',");return false;\">",namesA[i],"</a>"].join(''));}}
return links.join(', ');}catch(e){return'';}}
function makeValuesArray(begin,end,step){var result=new Array();var i=begin;if(!step){step=1;}
for(i;i<=end;i+=step){result.push([i]);}
return result;}
function insertDynamicAddedPanel(id,fields,cleanValues,innerFields,fieldSetCfg){var expandTo=null;fieldSetCfg=fieldSetCfg||{};var index=Ext.getCmp(id).itemsCount;var i=0;if(cleanValues){delete innerFields;}
for(i=0;i<fields.length;i++){if(fields[i].id&&cleanValues){delete fields[i].id;}
if(fields[i].value&&cleanValues&&!fields[i].hidden){fields[i].value='';try{if((fields[i].name.indexOf("url[")==0)||(fields[i].name.indexOf("_feed[")!=-1)){fields[i].value="http://";}}catch(e){}}
if(fields[i].name){fields[i].name=fields[i].name.replace(/\[.*\]/,"["+index+"]");}
if(fields[i].hiddenName){fields[i].hiddenName=fields[i].hiddenName.replace(/\[.*\]/,"["+index+"]");}
if(Ext.getCmp('topics-dyn-panel')){if(fields[i].xtype=='superboxselect'){var newId='related_'+i;var j=i;while(Ext.getCmp(newId)){j+=6;newId='related_'+j;}
fields[i].id=newId;}}
if(fields[i].name){if(fields[i].name.indexOf("uploadFile")==0&&fields[i].name.indexOf("AsLogo")>0){fields[i].name="uploadFile"+index+"AsLogo";}else if(fields[i].name.indexOf("uploadFile")==0){fields[i].name="uploadFile"+index;}}
expandTo=fields[i].expandTo?fields[i].expandTo:null;}
var panelCfg=Ext.apply({xtype:"panel",layout:"form",defaultType:'textfield',bodyStyle:'padding: 0px 10px 0px 0px;',items:fields,width:expandTo?expandTo:400},fieldSetCfg);if(innerFields&&innerFields.length>0){for(i=0;i<innerFields.length;i++){for(var j=0;j<innerFields[i].length;j++){if(innerFields[i][j].name){innerFields[i][j].name=innerFields[i][j].name+'_'+index+'[]';}
if(innerFields[i][j].hiddenName){innerFields[i][j].hiddenName=innerFields[i][j].hiddenName+'_'+index+'[]';}}}}
var panelItems=[panelCfg];if(fieldSetCfg.addButton){panelItems.push({xtype:'button',iconCls:'icon icon-add',handler:function(){insertDynamicAddedPanel(id,fields,true,innerFields,fieldSetCfg);}});}
panelItems.push({xtype:'button',iconCls:'icon icon-delete',handler:function(){panel.get(0).get(0).removeAll(true);Ext.getCmp(id).remove(panel,true);}});var panel=new Ext.Panel({autoHeight:true,xtype:"panel",itemCls:'added-panel',cls:((fieldSetCfg&&fieldSetCfg.panelCls)?fieldSetCfg.panelCls:'addedPanel'),items:{layout:"table",autoHeight:true,layoutConfig:{columns:(fieldSetCfg.addButton?3:2)},baseCls:'x-plain',items:panelItems}});if(innerFields&&innerFields.length>0){for(i=0;i<innerFields.length;i++){insertDynamicAddedPanel(panel.id,innerFields[i],null,null,Ext.apply(fieldSetCfg,{addButton:true}));panel.doLayout();}}
var cmp=Ext.getCmp(id);if(fieldSetCfg.type=='profile'){cmp.add(panel);}else{var pos=0;Ext.each(cmp.items.items,function(n,i){if(n.itemCls=='added-panel'){pos=i+1;}else if(n.itemCls=='add-button-panel')pos=i;});cmp.insert(pos,panel);}
cmp.doLayout();Ext.getCmp(id).itemsCount=index+1;return panel;}
function getComboOptions(cfg){return Ext.apply({xtype:'combo',valueField:'id',displayField:'value',emptyText:'Select ...',editable:true,mode:'local',forceSelection:true,selectOnFocus:false,width:100,triggerAction:'all'},cfg||{});}
function getRemoteComboOptions(url,cfg){return Ext.apply(getComboOptions(cfg),{mode:'remote',width:220,pageSize:20,store:prepareOptionsDs(url,null,{autoLoad:false})});}
function editInline(el,clear)
{var selector=Ext.get(el.id);el=selector.up('div');var editor=el.child('div[class*=inline-editor]');var show=el.child('div[class*=inline-show]');var input=editor.child('input[class*=inline-input]');var cancel=el.child('div[class*=inline-cancel-selector]');if(show.isVisible()){show.setStyle('display','none');input.addClass('x-form-inline-field');editor.setVisible(true);if(clear){input.dom.value='';}
input.focus();selector.dom.innerHTML='save';cancel.setVisible(true);try{if(input.id=='home-profile-status-field'){overviewPortlet.delayTask.cancel();}}catch(e){}}else{editor.setStyle('display','none');if(cancel){cancel.setVisible(false);cancel.setStyle('display','none');}
sendJsonRequest(makeUrl("activites","add"),{text:input.dom.value},function(scope,data){setInline(scope,data.text);try{Home.profileStore.reload();ContactsUpdates.refresh();}catch(e){}},input);show.setVisible(true);selector.dom.innerHTML='edit';try{if(input.id=='home-profile-status-field'){if(overviewPortlet){overviewPortlet.delayTask.delay(60000);}}}catch(e){}}}
function cancelInline(el)
{var selector=Ext.get(el.id);var el=selector.up('div');var editor=el.child('div[class*=inline-editor]');var show=el.child('div[class*=inline-show]');var input=editor.child('input[class*=inline-input]');var edit=el.child('div[class*=inline-edit-selector]');editor.setStyle('display','none');show.setVisible(true);edit.dom.innerHTML='edit';try{if(input.id=='home-profile-status-field'){if(overviewPortlet){overviewPortlet.delayTask.delay(60000);}}}catch(e){}
selector.setVisible(false);selector.setStyle('display','none');}
function showReply(el)
{var selector=Ext.get(el);var reply=selector.up('div').child('div[class*=updates-reply]');reply.setVisible(true);if(updatesPortlet){updatesPortlet.delayTask.cancel();}}
function setInline(field,text)
{var el;try{el=Ext.get(field.el.id).up('div').up('div');}catch(e){el=Ext.get(field.id).up('div').up('div');}
var show=el.child('div[class*=inline-show]');var editor=el.child('div[class*=inline-editor]');var input=editor.child('input[class*=inline-input]');show.dom.innerHTML=text;editor.setStyle('display','none');show.setVisible(true);var selector=el.child('div[class*=inline-edit-selector]');selector.dom.innerHTML='edit';try{if(input.id=='home-profile-status-field'){if(overviewPortlet){overviewPortlet.delayTask.delay(60000);}}}catch(e){}}
function attachmentsRenderer(v){var attachments=Ext.util.JSON.decode(v);var result='';var tpl=new Ext.Template('<img class="contacts-history-attachment-img" src="../images/icons/attach.png" onclick="location.href=\'',app.makeUrl('downloadAttachment'),'?id={id}\'" onmouseover="showTip(this, \'{tipText}\');"/>').compile();for(var i=0;i<attachments.results.length;i++){var attachment=attachments.results[i];result+=tpl.applyTemplate({i:attachment.filename,tipText:attachment.filename,id:attachment.id});}
return result;}
function agoRenderer(v){if(!v)return'';var diff=(((new Date()).getTime()-v.getTime())/1000),day_diff=Math.floor(diff/86400);if(day_diff>31){return dtRenderer(v);}
if(isNaN(day_diff))
return'';return(day_diff==0||day_diff==-1)&&(diff<60&&"just now"||diff<120&&"1 minute ago"||diff<3600&&Math.floor(diff/60)+" minutes ago"||diff<7200&&"1 hour ago"||diff<86400&&Math.floor(diff/3600)+" hours ago")||day_diff==1&&"Yesterday"||day_diff<7&&day_diff+" days ago"||day_diff<31&&Math.ceil(day_diff/7)+" weeks ago";}
function ratingRenderer(v){var result='';for(var i=0;i<4;i++){result+='<div class="rate '+(v>i?'rated':'')+'"><img width="16" height="15" alt="" src="'+Ext.BLANK_IMAGE_URL+'" /></div>';}
return'<div class="x-voter">'+result+'</div>';}
function createSelectedGrid(rd,cm,title,url,pageSize){var ds=prepareDs(url,rd);var cfg={store:ds,cm:cm,sm:cm.getColumnById('checker')||new Ext.grid.CheckboxSelectionModel({checkOnly:true}),width:600,height:300,frame:true,viewConfig:{forceFit:true},title:title};if(pageSize){Ext.apply(cfg,{bbar:new Ext.PagingToolbar({pageSize:pageSize,plugins:new Ext.ux.Andrie.pPageSize({beforeText:'Per page',afterText:''}),store:ds,displayInfo:true,displayMsg:'Display {0} - {1} of {2}',emptyMsg:"No items to display"})});}
var grid=new Ext.grid.EditorGridPanel(cfg);grid.store.on('load',function(data,records,opt){try{var recs=[];data.each(function(rec){if(rec.data.checked){recs.push(rec);}},grid);grid.getSelectionModel().selectRecords(recs);}catch(e){}
grid.enable();},this);grid.reset=function(){this.store.baseParams.id=0;if(this.sm){this.sm.deselectRange(0,10000);}}
grid.fill=function(id){grid.disable();this.store.baseParams.id=id;this.store.load();}
grid.getJsonDataFromSelection=function(){var v=[];Ext.each(grid.getSelectionModel().getSelections(),function(p){v.push(p.data);});return Ext.encode(v);}
grid.store.load();return grid;}
function isPartnerAdmin(){return app.conf.user.accountRole=='partner'||isSiteAdmin();}
function isAdmin(){return app.conf.user.accountRole=='admin'||isPartnerAdmin();}
function isSiteAdmin(){return app.conf.user.accountRole=='platform';}
function isGuest(){return app.conf.user.accountRole=='guest';}
function isJourno(){return app.conf.account.edition=='media'||app.conf.account.edition=='techmedia';}
function isFree(){return app.conf.account.edition=='free';}
function isPartner(){return app.conf.account.edition=='tech';}
function isInfluencing(){return isFree();}
var Commentable={getCommentTpl:function(scope){return new Ext.XTemplate('<tpl for=".">','<div class="article-comment">','<div class="feed-item-pix"><img src="{author_pix}"></div>','<div class="feed-item-comment">{comment}</div>','<div class="feed-item-date">{created_at:dtRenderer} by&nbsp; <a onclick=showContact({contact_id})>{author_name}</a></div>','<tpl if="is_editable == true"><div class="delete"><div class="icon icon-delete"></div><a class="deleteCommentBtn" commentId={id} objId={item_id} objType=\'',scope.objType,'\'>delete</a></div></tpl>','<div class="x-clear"></div>','</div>','</tpl>','<div class="x-clear"></div>').compile();},initView:function(scope){scope.commentsView=new Ext.DataView({store:prepareDs(app.makeUrl('showComments'),['item_id','comment','id','is_editable','author_name','contact_id',{name:'created_at',type:'date',dateFormat:app.conf.dtFormat},'author_pix']),tpl:this.getCommentTpl(scope),autoHeight:true,autoWidth:true,multiSelect:true,loadingText:'Loading',overClass:'x-view-over',itemSelector:'div.thumb-wrap',plugins:new Ext.ux.RefreshMenu()});scope.commentsView.store.on('load',function(){var els=this.commentsView.el.select("a[class*='deleteCommentBtn']");for(var i=0;i<els.getCount();i++){els.item(i).on("click",function(e,el2){var el=Ext.get(el2.id);var type=el.getAttribute('objType');var id=el.getAttribute('commentId');var objId=el.getAttribute('objId');this.sendJsonRequest(app.makeUrl('deleteComment'),{id:id,objId:objId,type:type},function(scope){scope.commentsView.store.load({params:{id:objId,type:type}});});},scope,{single:false,stopEvent:true});}},scope);return scope.commentsView;},loadTask:function(scope){var task=new Ext.util.DelayedTask(function(){scope.commentsView.store.load({params:{id:scope.objId,type:scope.objType}});},scope);task.delay(1000);return task;},reload:function(scope){scope.commentsView.store.load({params:{id:scope.objId,type:scope.objType}});},init:function(scope,panel){if(scope.commentAddForm||scope.commentLoginPanel)return;if(isGuest()){panel.add(scope.commentLoginPanel=new Ext.Panel({html:'<div style="padding: 40px; font-size: 14px;">Please <a href="#" onclick="return Home.showLogin()">login</a> to comment or click <a href="#" onclick="return Home.showRegistation()">here to register</a></div>'}));}else{panel.add(this.initForm(scope));panel.add(this.initSubmitBtn(scope));}
panel.doLayout();this.loadTask(scope);},initForm:function(scope){return scope.commentAddForm=new Ext.form.FormPanel({labelAlign:'top',bodyStyle:'padding-left: 20px',items:{xtype:'textarea',fieldLabel:'Leave comment here',name:'comment',fieldClass:"x-form-textarea x-form-field",preventScrollbars:true,allowBlank:false}});},initSubmitBtn:function(scope){return new Ext.Button({text:'Save',style:"padding: 20px;",handler:Commentable.saveComment.createDelegate(scope,[scope.id],true)})},saveComment:function(btn,e){this.commentAddForm.getForm().submit({url:app.makeUrl('addComment'),waitMsg:'Adding comment...',reset:false,params:{id:this.objId,type:this.objType},scope:this,failure:function(form,action){msg('Notification','You cannot add comment');},success:function(form,action){msg('Notification','Comment added');this.commentAddForm.getForm().reset();Commentable.reload(this);}});},deleteComment:function(id,objId,type){sendJsonRequest(makeUrl('reader','deleteComment'),{id:id,objId:objId,type:type},function(scope){scope.items[type][objId].commentsView.store.load({params:{id:objId,type:type}});},this);}};function syncQuickFields(qFields,grid){if(grid){var cm=grid.getColumnModel();if(cm){Ext.each(qFields,function(f,i){f.setSize(cm.getColumnWidth(i+1)-2)});}}}
function fillTagMenu(scope){if(scope.tagBtn&&(typeof Newsrooms!='undefined')){var mc=prepareOptionsDs(Newsrooms.makeUrl('getAllOptions'),null,null,true);mc.on('load',function(data){var m=new Ext.menu.Menu({items:[]});for(var i=0;i<data.data.length;i++){var f=data.getAt(i).data,found=false;try{Ext.each(this.data.projects.split(','),function(n){if(f.value==n.trim())found=true;});}catch(e){}
m.addItem(new Ext.menu.CheckItem({text:f.value,checked:found,checkHandler:this.addTag.createDelegate(this)}));}
this.tagBtn.menu=m;},scope);mc.load();}}
function msg(title,format,pause){if(!pause)pause=2;Ext.DomHelper.append(Ext.DomHelper.insertFirst(document.body,{id:'msg-div'},true).alignTo(document,'t-t'),{html:['<div class="msg">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',title,'</h3>',String.format.apply(String,Array.prototype.slice.call(arguments,1)),'</div></div></div>','<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>','</div>'].join('')},true).slideIn('t').pause(pause).ghost("t",{remove:true});}
function prepareOptionsDs(url,baseParams,cfg,asCfg){var storeCfg=Ext.apply({xtype:'store',url:url,baseParams:baseParams||{},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},new Ext.data.Record.create(['id','value']))},cfg||{});return!asCfg?storeCfg:new Ext.data.Store(storeCfg);}
function prepareDs(url,recordDef,autoLoad,id){return new Ext.data.Store({url:url,autoLoad:autoLoad,baseParams:id>0?{id:id}:{},reader:new Ext.data.JsonReader(id?{}:{totalProperty:"totalCount",root:"results",id:"id"},recordDef)});}
function getAttachmentsView(){return new Ext.DataView({store:prepareDs(app.makeUrl("showAttachments"),['id','filename','created_at','mime_type','attachmentable_model','attachmentable_id']),tpl:new Ext.XTemplate('<div class="p20">','<tpl for=".">','<div><a href="#" onclick="location.href=\'',app.makeUrl('downloadAttachment'),'?id={id}\'" onmouseover="showTip(this, \'Download\');"><img class="contacts-history-attachment-img" src="../images/icons/attach.png" />  {filename}</a></div>','</tpl>','</div>'),autoHeight:true,multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap'});}
function showContact(id,type){Contacts.showItem(id,type?type:'person');}
function showPerson(id){Contacts.showItem(id,'person');}
function showCompany(id){Contacts.showItem(id,'company');}
function showOutlet(id){Contacts.showItem(id,'outlet');}
function showWriterStory(id){Writer.showItem(id);}
function showTask(id){Tasks.showItem(id);}
function showProject(id){Tasks.showProject(id);}
function showList(id,type,title){Lists.showItem(id,type,title);}
function showOpportunity(id){Opportunities.showItem(id);}
function showClip(id){Coverage.showItem(id);}
function showRequestJ(id){Requests.showItem(id);}
function showRequest(id){if(app.getMainPanel().getItem('opportunities-panel')){Opportunities.showItem(id);}else{Requests.showItem(id);}}
function showEvent(id){Calendar.showItem(id);}
function showArticle(id){Reader.showItem(id,'article');}
function showRelease(id){Reader.showItem(id,'release');}
function showStory(id){Reader.showItem(id,'story');return false;}
function showReaderItem(id,type){Reader.showItem(id,type);}
function showReaderUrl(url,title,id){Reader.showSource(url,title,id);}
function showMessage(id){Inbox.showItem(id);}
function showProfile(id){Coverage.loadProfile(id);}
function showMailing(id){Mailings.showItem(id);}
function showCampaign(id){Mailings.showItem(id);}
function showQuestion(id){Streams.showQuestion(id);}
function showJob(id){Jobs.showItem(id);}
function enableTextSelection(grid)
{if(Ext.isIE){var elms=Ext.DomQuery.select("div[unselectable=on]",grid.dom);for(i=0;i<elms.length;i++){elms[i].unselectable="off";}}else{var elms_h=Ext.DomQuery.select("div[class*=x-grid3-hd-inner]{overflow=hidden}",grid.dom)
var elms_1=Ext.DomQuery.select("div[class*=x-grid3-cell-inner]{overflow=hidden}",grid.dom)
var elms_2=Ext.DomQuery.select("*{-moz-user-select=none}",grid.dom)
for(i=0;i<elms_h.length;i++){elms_h[i].style.overflow="visible";}
for(i=0;i<elms_1.length;i++){elms_1[i].style.overflow="visible";}
for(i=0;i<elms_2.length;i++){elms_2[i].style["MozUserSelect"]="all";}}}
function isValidEmail(elementValue){var emailPattern=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;return emailPattern.test(elementValue);}
function formatAddressString(data){for(var i=0;i<data.addresses.length;i++){var tmp=[];if(data.addresses[i].street){tmp.push(data.addresses[i].street);}
if(data.addresses[i].city){tmp.push(data.addresses[i].city);}
if(data.addresses[i].state){tmp.push(data.addresses[i].state);}
if(data.addresses[i].zip){tmp.push(data.addresses[i].zip);}
if(data.addresses[i].country){tmp.push(data.addresses[i].country);}
data.addresses[i].address=tmp.join(', ');};return data;}
Array.prototype.unique=function(b){var a=[],i,l=this.length;for(i=0;i<l;i++){if(a.indexOf(this[i],0,b)<0){a.push(this[i]);}}
return a;};function makeYesNoStore(both){var data=[];if(both){data.push(['','Both']);}
data.push([1,'Yes'],[0,'No']);return new Ext.data.SimpleStore({fields:['id','value'],data:data});}
function log(text,scope){console.log(text,scope?scope:'');}
function editTags(el)
{var selector=Ext.get(el);var panel=Ext.getCmp(selector.findParent('div[id*=-panel]').id);var grid=panel.grid?panel.grid:panel.ownerCt.grid;var el=selector.up('div');var editor=el.child('div[class*=tags-editor]');var input=editor.child('input[class*=tags-input]');var show=el.child('div[class*=tags-show]');if(show.isVisible()){show.setVisible(false);new Ext.form.InlineTextField({name:'tags',emptyText:'no tags. type tags here...',applyTo:input,grow:true,autoSave:{url:app.makeUrl('setTags'),params:{id:input.getAttribute('objId'),type:input.getAttribute('objType')},callback:function(scope,data){try{grid.store.reload();}catch(e){}
show.dom.innerHTML=makeLinks(data.addons.ids,data.addons.names,(grid?'Ext.getCmp(\''+grid.id+'\')':input.getAttribute('objModule'))+'.showTagged');editor.setVisible(false);editor.setStyle('display','none');show.setVisible(true);selector.dom.innerHTML='tags';}}});editor.setVisible(true);selector.dom.innerHTML='end editing';}else{editor.setVisible(false);editor.setStyle('display','none');show.setVisible(true);selector.dom.innerHTML='tags';}}
function rateItem(el)
{var s=Ext.get(el);sendJsonRequest(app.makeUrl('markStarred'),{id:s.getAttribute('objId'),type:s.getAttribute('objType')},function(){s.toggleClass('rated');});}
function prepareData(data,moduleName,grid)
{if(data.beats_ids){data.beats_str=makeLinks(data.beats_ids,data.beats,moduleName+'.showBeat');}
if(data.tags_ids){data.tags_links=makeLinks(data.tags_ids,data.tags,(grid?'Ext.getCmp(\''+grid.id+'\')':moduleName)+'.showTagged');}
return data;}
function showGmap(address,title){new Ext.Window({layout:'fit',title:'Location of '+title,closeAction:'hide',width:500,height:500,x:140,y:60,items:{xtype:'gmappanel',region:'center',zoomLevel:14,gmapType:'map',addControl:new GSmallMapControl(),setCenter:{geoCodeAddr:address,marker:{title:address}}}}).show();}
function makeAutocomplete(el,url){var field=new actb(el,[]);prepareOptionsDs(url,null,null,true).load({callback:function(records,options,success){if(success){var fields=[];Ext.each(records,function(f){fields.push(f.data.value);});field.actb_keywords=fields;}}});}
function makeAutocompleteBeats(fieldName){if(Ext.getDom(fieldName)){var field=new actb(Ext.getDom(fieldName),[]);var fields=[];Ext.each(app.ds.beats.data.items,function(f){fields.push(f.data.value);});field.actb_keywords=fields;}}
function setItemAction(link,id,action,actionText){var pointer=Ext.get(id+'-textarea-pointer');Ext.get(link).up('div').select('a.item-action-link').each(function(sel){if(sel.getAttribute('act')==action){sel.addClass("bold");pointer.applyStyles({'background-position':'-'+(990-sel.getOffsetsTo(sel.up('td'))[0])+'px top'});}else{sel.removeClass("bold");}});Ext.get(id+'-item-action').dom.value=action;switch(action){case'note':actionText=actionText||(isJourno()?'Write a note':'Share note with your team');break;case'task':actionText=actionText||'Create task regarding';break;case'question':actionText=actionText||'Ask a question';break;case'answer':actionText=actionText||'Answer a question';break;case'forward':actionText=actionText||'Forward a question';break;case'request':actionText=actionText||'Add request';break;case'tweet':var count=140-pointer.up('td').child('textarea').dom.value.length;actionText=actionText||'Post to Twitter (<span id="'+id+'-twitter-counter">'+count+'</span>)';break;case'pitch':actionText=actionText||'Pitch';break;case'enquiry':actionText=actionText||'Enquiry';break;case'release':actionText=actionText||'Release';break;}
Ext.get(id+'-item-action-title').dom.innerHTML=actionText;}
function streamAction(eh,action,itemId,itemType,commentId,img)
{var el=Ext.get(eh);var stream=el.up('div[class*=stream-item]');var tpl=new Ext.XTemplate('<div class="stream-comments">','<div class="stream-comments-top">','<tpl if="comments_count &gt; 2">','<div class="form-outer"><div class="form-inner"><a href=# onclick="streamAction(this, \'triggerComments\', {comments_count})">Hide {comments_count:math("-2")} <tpl if="this.isQuestion(type_id) == true">responses</tpl><tpl if="this.isQuestion(type_id) == false">comments</tpl></a></div></div>','</tpl>','<tpl for="comments">','<tpl if="xindex == 3"><div class="more-comments" style="display: block;"></tpl>','<div class="stream-comment">','<div class="body-outer"><div class="body-inner">','<tpl if="user_pic"><div class="tweet"><img src="{user_pic}"></div></tpl>','<a href=# onclick="showContact({contact_id})">{user}</a> <tpl if="this.isQuestion(parent.type_id) == true">(<a href=# onclick="showCompany({company_contact_id})";>{company}</a>) </tpl>','{text}<br>','<span class="info">{created_at} <tpl if="is_editable"> | <a href=# onclick="streamAction(this, \'delete\', \'{parent.id}\', \'activity\', \'{id}\')">Delete</a></tpl></span>','</div></div>','</div>','<tpl if="xindex == xcount && xcount &gt; 3"></div></tpl>','</tpl>','<div class="form-outer"><div class="form-inner">','<input type="text" class="stream-comment-input" onfocus="streamAction(this, \'show_form\', \'\', \'\'); return false;" value="Write a comment...">','<div class="stream-comment-form" style="display: none;">','<div class="user-pic"><img src="'+app.conf.user.twitterPic+'"></div>','<div class="textarea">','<textarea></textarea><br>','<button onclick="streamAction(this, \'submit_comment\', \'{id}\', \'activity\')">comment</button>','</div>','</div>','</div></div>','</div>','</div>',{isQuestion:function(typeId){if(typeId==2261||typeId==2262||typeId==2267)return true;return false;}});switch(action){case'comment':var commentsDiv=el.up('div').up('div').child('div[class=stream-comments-top]');commentsDiv.setDisplayed(true);commentsDiv.child('input').setDisplayed(false);var formDiv=commentsDiv.child('div[class=stream-comment-form]');formDiv.setDisplayed(true);var textArea=formDiv.child('textarea');textArea.removeAllListeners();textArea.addListener('blur',function(){var p=getStreamPanel(el);if(p){p.enableLoading=true;}
setTimeout(function(){formDiv.setDisplayed(false);commentsDiv.child('input').setDisplayed(true);},1000);});textArea.focus();var p=getStreamPanel(el);if(p){p.enableLoading=false;}
break;case'triggerComments':var commentsDiv=el.up('div').up('div').up('div').child('div[class=more-comments]');if(commentsDiv.isVisible()){commentsDiv.setDisplayed(false);el.dom.innerHTML=el.dom.innerHTML.replace('Hide '+(itemId-2),'Show all '+itemId);}else{commentsDiv.setDisplayed(true);el.dom.innerHTML=el.dom.innerHTML.replace('Show all '+itemId,'Hide '+(itemId-2));}
break;case'delete':confirm(function(){sendJsonRequest(makeUrl("core","deleteComment"),{id:commentId,objId:itemId,type:itemType},function(scope,data){var comment=el.up('div[class=stream-comment]');comment.remove();},null);},this,'Are you sure you want to delete?');break;case'submit_comment':var textarea=el.up('div').child('textarea');if(!textarea.getValue()){msg('Error','Please type a comment');return;}
sendJsonRequest(makeUrl('core','addComment'),{id:itemId,type:itemType,comment:textarea.getValue()},function(scope,data){var p=getStreamPanel(el);if(p){p.enableLoading=true;p.refresh();}});break;case'show_form':el.setDisplayed(false);var formDiv=el.up('div[class=form-inner]').child('div[class=stream-comment-form]');formDiv.setDisplayed(true);var textArea=formDiv.child('textarea');textArea.focus();textArea.removeAllListeners();textArea.addListener('blur',function(){setTimeout(function(){formDiv.setDisplayed(false);el.setDisplayed(true);var p=getStreamPanel(el);if(p){p.enableLoading=true;}},1000);});var p=getStreamPanel(el);if(p){p.enableLoading=false;}
break;case'reply_tweet':setItemAction(Ext.get('stream-tweet-link'),'stream-module','tweet');Ext.getCmp('stream-module-textarea').setValue('@'+Ext.util.Format.htmlDecode(itemId)+' ');Ext.get('stream-module-twitter-counter').update(140-Ext.util.Format.htmlDecode(itemId).length-2);break;case'retweet':setItemAction(Ext.get('stream-tweet-link'),'stream-module','tweet');Ext.getCmp('stream-module-textarea').setValue('RT @'+itemId+' '+Ext.util.Format.htmlDecode(itemType));Ext.get('stream-module-twitter-counter').update(140-itemId.length-Ext.util.Format.htmlDecode(itemType).length-2);break;case'share_tweet':sendJsonRequest(makeUrl('streams','shareTweet'),{id:itemId,screen_name:itemType,message:commentId,img:img},function(scope){Streams.afterItemUpdate();});break;case'delete_activity':confirm(function(){sendJsonRequest(makeUrl('activities','delete'),{ids:"[{'id': "+itemId+"}]"},function(scope){var p=getStreamPanel(el);if(p){p.refresh();}});},this,'Are you sure you want to delete activity?');break;case'delete_notification':confirm(function(){sendJsonRequest(makeUrl('streams','deleteNotification'),{ids:"[{'id': "+itemId+"}]"},function(scope){Ext.getCmp("stream-module-notifications-panel").store.reload();});},this,'Are you sure you want to delete notification?');break;case'show_more':el.up('div').setDisplayed(false);el.up('div').up('div').child('div[class*=note-full]').setDisplayed(true);break;case'edit_activity':var dlg=Streams.getDlg(itemType,itemId,getStreamPanel(el));if(itemType!='tag'){dlg.setTitle('Edit '+itemType);}
this.previewStore=new Ext.data.JsonStore({url:makeUrl('activities','loadForStream'),autoLoad:false,fields:['id','note','type_id','time_spent','related_ids','teams_ids'],listeners:{'load':{fn:function(scope,rec){var data=rec[0].data;dlg.items.get(0).getForm().setValues(data);dlg.show();},scope:this}}});this.previewStore.reload({params:{id:itemId}});break;case'show_hidden':el.dom.innerHTML='';var p=getStreamPanel(el);if(p){p.enableLoading=true;p.newItemsPanel.el.dom.innerHTML='';for(var i=0;i<p.newItems;i++){p.scrollerPanel.items.items[i].show();}
p.scrollerPanel.doLayout();p.newItems=0;}
break;}}
function confirm(f,scope,title){Ext.MessageBox.confirm('Message',title||'Do you really want to process this items?',function(btn,text){if(btn=='yes'){f.call(this);}},scope||this);}
function getStreamPanel(el){var pe=el.up('div[class*=stream-panel]');if(pe){return Ext.getCmp(pe.id);}
return null;}
function closeLoader(storyId){Ext.get('loading').fadeOut({duration:.2,remove:true});Ext.get('loading-mask').fadeOut({duration:.2,remove:true});if(storyId){showStory(storyId);}}
function verifyContact(){this.sendJsonRequest(makeUrl('contacts','verify'),{id:app.conf.user.contact_id},function(scope){closeLoader();});}
function analysisAction(action,id){var panel=Ext.getCmp('contact-'+id+'-overview-panel');if(action=='showNext'){panel.analysisDataview.store.baseParams.page=panel.analysisDataview.store.baseParams.page+1;}else if(action=='showPrevious'){panel.analysisDataview.store.baseParams.page=panel.analysisDataview.store.baseParams.page-1;}
panel.analysisDataview.store.load();}
function campaignWizardDeleteAttachment(id,mailingId){confirm(function(){sendJsonRequest(makeUrl("core","deleteAttachment"),{id:mailingId,deleteId:id,type:'mailing'},function(scope,data){Ext.get('campaign-wizard-attachment-'+id).slideOut('t',{remove:true});},null);},this,'Are you sure you want to delete?');}
function removeEmptyProperties(obj){var result={};Ext.iterate(obj,function(k,v){if(v){eval('result.'+k+' = v;');}})
return result;}
function track(activity,module){if(!(isPartnerAdmin()||isSiteAdmin())){try{tracker.track(activity,module);}catch(e){}}}
Ext.onReady(function(){Ext.get('loading-mask').setOpacity(.8);Ext.History.init();Ext.History.on('change',function(token){var tp=app.getMainPanel();if(tp.get(token)){tp.activate(token);}else{}});Ext.state.Manager.setProvider(new Ext.state.ServerProvider({url:makeUrl('../state.php')}));app=new Application(app.conf);Ext.Ajax.request({url:app.makeUrl('json?method=getAllData'),method:'GET',success:function(p){var k=Ext.util.JSON.decode(p.responseText)[0];for(var n in k){eval(['app.ds.',n,' = prepareOptionsDs(null, null, null, true);'].join(''));eval(['app.ds.',n,'.loadData(k[\'',n,'\'])'].join(''));}
app.ds.ruleTypes=new Ext.data.SimpleStore({fields:['value'],data:[['AND'],['OR']]});app.ds.minuteStore=new Ext.data.SimpleStore({fields:['value'],data:makeValuesArray(0,60,5)});app.ds.ratingTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[['0','Not rated'],['1','One star'],['2','Two stars'],['3','Three stars'],['4','Four stars']]});app.ds.showPeriods=new Ext.data.SimpleStore({fields:['id','value'],data:[['week','Show last week'],['month','Show last month'],['3_months','Show last 3 months'],['6_months','Show last 6 months'],['year','Show last year'],['all','Show all']]});app.ds.postponeTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[['1','1 day'],['2','2 days'],['3','3 days'],['4','4 days'],['5','5 days'],['7','1 week'],['14','2 weeks'],['30','1 month']]});app.ds.completeTypes=new Ext.data.SimpleStore({fields:['value'],data:makeValuesArray(0,100,10)});app.ds.probabilityTypes=new Ext.data.SimpleStore({fields:['value'],data:makeValuesArray(0,100,10)});app.ds.priorityTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[[4301,'Low'],[4302,'Medium'],[4303,'High']]});app.ds.weekDayStore=new Ext.data.SimpleStore({fields:['value'],data:[['Sunday'],['Monday'],['Thuesday'],['Wednesday'],['Thursday'],['Friday'],['Saturday']]});app.ds.monthDayStore=new Ext.data.SimpleStore({fields:['value'],data:makeValuesArray(1,28)});app.ds.emailPrefStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['0','No preference'],['1','HTML'],['2','Plain text']]});app.ds.leadProductStore=new Ext.data.SimpleStore({fields:['value'],data:[['Subscription'],['Kickstart'],['PR Wire'],['Kickstart 2011']]});app.ds.leadSourceStore=new Ext.data.SimpleStore({fields:['value'],data:[['Website'],['Email'],['Phone']]});app.ds.contractTypeStore=new Ext.data.SimpleStore({fields:['value'],data:[['Subscription'],['Sponsor'],['Monitoring']]});app.ds.loanStatusStore=new Ext.data.SimpleStore({fields:['value'],data:[['Requested'],['Rejected'],['Approved'],['Sent'],['Received'],['Returned'],['Complete']]});app.ds.booleanStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['','All'],['1','Yes'],['0','No']]});app.ds.platformStore=new Ext.data.SimpleStore({fields:['value'],data:[['Main'],['Portal'],['Prwire']]});app.ds.taskTypeStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['my','My'],['','All'],['supervised','Supervised'],['team','Team']]});app.ds.yearsStore=new Ext.data.SimpleStore({fields:['value'],data:makeValuesArray(1960,new Date().format('Y'))});app.ds.clipStatusStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['','All'],['processed','Processed'],['ignored','Ignored'],['unprocessed','Unprocessed']]});app.ds.editionTypeStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['free','Free'],['paid','Paid'],['media','Media']]});app.ds.packageTypeStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['pr','PR'],['tech','Tech'],['media','Media']]});app.ds.letterFilterStore=new Ext.data.SimpleStore({fields:['value'],data:[['Symbols and digits'],['A'],['B'],['C'],['D'],['E'],['F'],['G'],['H'],['I'],['J'],['K'],['L'],['M'],['N'],['O'],['P'],['Q'],['R'],['S'],['T'],['U'],['V'],['W'],['X'],['Y'],['Z']]});app.conf.user.ims=[['hidden','Hidden',true],['private','Private',true],['public','Public',true]];app.ds.subscriptionStatus=new Ext.data.SimpleStore({fields:['id','value'],data:[['subscribed','Subscribed'],['','Not subscribed'],['unsubscribed','Unsubscribed']]});app.ds.storyCategoryStore=new Ext.data.SimpleStore({fields:['id','value'],data:[['marcoms','Marcoms'],['media','Media']]});app.ds.verificationStatuses=new Ext.data.SimpleStore({fields:['id','value'],data:[['Verified','Verified'],['Unverified','Unverified'],['Cannot Verify','Cannot Verify'],['Needs Verifying','Needs Verifying'],['Need Checking','Need Checking'],['Need More','Need More']]});app.ds.listItemStatus=new Ext.data.SimpleStore({fields:['id','value'],data:[['Included','Included'],['Excluded','Excluded'],['New','New'],['Ignore','Ignore'],['Remove','Remove']]});if(!isGuest()&&!isFree()){app.ds.listOptionsStore=prepareDs(makeUrl('lists','getLists'),['id','name','type']);app.ds.listOptionsStore.load();Search.renderArea();}
if(isGuest()){app.registrationInput=new Ext.form.TextField({name:'email',renderTo:'home-registration-form-input',emptyText:'Enter your work email',width:100,height:50});new Ext.Button({minWidth:60,height:34,text:'<b>Register</b>',renderTo:'home-registration-form-button',handler:function(){var wizard=new RegistrationWizard().show();wizard.cards[0].get(1).setValue(app.registrationInput.getValue());wizard.onNextClick();}});new Ext.Button({minWidth:60,height:34,text:'<b>Sign In</b>',renderTo:'home-login-button',handler:function(){Home.showLogin();}});}
Ext.QuickTips.init();app.show();app.beatsWindow=new Ext.sv.UI.BeatsWindow();app.rolesWindow=new Ext.sv.UI.RolesWindow();app.countriesWindow=new Ext.sv.UI.CountriesWindow();app.ds.frequencyTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[['1402','Annual'],['1410','Bi-Annual'],['1411','Tri-Annual'],['1412','Seasonal'],['1407','Bi-Monthly'],['1404','Daily'],['1406','Fortnightly'],['1403','Immediate'],['1401','Monthly'],['1408','Quarterly'],['1409','Special'],['1405','Weekly']]});app.ds.starredTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[['starred','Starred'],['not_starred','Not starred']]});app.ds.requestExpiredTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[['expired','Expired requests'],['current','Current requests']]});app.ds.unreaded=new Ext.data.SimpleStore({fields:['id','value'],data:[['readed','Read'],['unreaded','Unread']]});app.ds.timeframe=new Ext.data.SimpleStore({fields:['id','value'],data:[['day','Last 24 hours'],['week','Last week'],['month','Last month'],['year','Last year']]});app.ds.importTypes=new Ext.data.SimpleStore({fields:['value'],data:[['Public'],['Private'],['Not imported']]});try{app.ds.newsroomsStore=prepareOptionsDs(Newsrooms.makeUrl('getAllOptions'),null,null,true);app.ds.newsroomsStore.load();}catch(e){}
if(Ext.DomQuery.jsSelect('div[id=loader-buttons] > button').length){Ext.each(Ext.DomQuery.jsSelect('div[id=loader-buttons] > button'),function(el,n){Ext.get(el).dom.disabled='';},this);Ext.get('main-loading-indicator').fadeOut({duration:.2,remove:true});}else{closeLoader();}
if(app.conf.lastSession){msg('Alert','Your last login details was changed.<br><br>Last login details: '+app.conf.lastSession+'<br><br><a href=# onclick="Sessions.showMain()">Click to see your sessions</a>',10);}
if(!isGuest()&&!isJourno()&&!isFree()&&(app.conf.user.edition!='Community')){app.notificationsStore=prepareDs(app.makeUrl('notificationsCount'),['activities','tasks','tasks_overdue'],false);app.notificationsStore.on('load',function(store,data){if(app.notificationPanel){app.notificationPanel.destroy();}
app.notificationPanel=new Ext.Panel({renderTo:'notifications-indicator',layout:'hbox',defaults:{xtype:'button',style:'padding-left: 5px',minWidth:60,height:34},items:[{text:'Tasks: <b>'+(data[0].data.tasks_overdue?'<font color=#f00>'+data[0].data.tasks_overdue+'</font>':data[0].data.tasks)+'</b>',flex:0.4,listeners:{click:{fn:function(){if(Ext.getCmp('streams-overview-panel')){Streams.showOverview('stream-module-tasks-panel');}else{Streams.init().showOverview();Streams.showOverview('stream-module-tasks-panel');}
Ext.getCmp("stream-module-tasks-panel").store.reload();}}}},{text:'Notifications: <b>'+data[0].data.activities+'</b>',flex:0.6,listeners:{click:{fn:function(){if(Ext.getCmp('streams-overview-panel')){Streams.showOverview('stream-module-notifications-panel');}else{Streams.init().showOverview();Streams.showOverview('stream-module-notifications-panel');}
sendJsonRequest(app.makeUrl("notificationsRead"),{},function(scope,data){app.notificationsStore.load();});Ext.getCmp("stream-module-notifications-panel").store.reload();}}}}]});});app.notificationsStore.load();app.notificationsTask=new Ext.util.DelayedTask(function(){app.notificationsStore.load();app.notificationsTask.delay(60*1000);});app.notificationsTask.delay(60*1000);app.ds.activityTypes=new Ext.data.SimpleStore({fields:['id','value'],data:[[2205,'Note'],[2213,'Email (Sent)'],[2212,'Email (Received)'],[2215,'Call (Made)'],[2201,'Call (Received)']]});app.ds.contactsACStore=new Ext.data.ArrayStore({autoLoad:true,url:makeUrl('core','getPersonsCompaniesContactOptions'),idIndex:0,fields:[{name:'i'},{name:'t'},{name:'v'}]});app.ds.tasksOppACStore=new Ext.data.ArrayStore({autoLoad:true,url:makeUrl('core','getTasksRequestsMailingsOptions'),idIndex:0,fields:[{name:'i'},{name:'t'},{name:'v'}]});Streams.init();}
if(app.conf.isNewUser&&app.conf.account.id==1123){new IntroProfessionalWizard().open();}}});});Ext.BLANK_IMAGE_URL='/ext-3.4.0/resources/images/default/s.gif';Ext.override(Ext.data.Store,{loadRecords:function(o,options,success){if(!o||success===false){if(success!==false){this.fireEvent("load",this,[],options);}else{var result;if(this.errorReader){var rs=this.errorReader.read(o);var errors=[];if(rs.records){for(var i=0,len=rs.records.length;i<len;i++){var r=rs.records[i];errors[i]=r.data;}}
result={success:rs.success,errors:errors};}
this.fireEvent("loadexception",this,options,o,result);}
if(options.callback){options.callback.call(options.scope||this,[],options,false);}
return;}
var r=o.records,t=o.totalRecords||r.length;if(!options||options.add!==true){for(var i=0,len=r.length;i<len;i++){r[i].join(this);}
this.data.clear();this.data.addAll(r);this.totalLength=t;this.applySort();this.fireEvent("datachanged",this);}else{this.totalLength=Math.max(t,this.data.length+r.length);this.add(r);}
this.fireEvent("load",this,r,options);if(options.callback){options.callback.call(options.scope||this,r,options,true);}}});Ext.grid.GridStateManager=function(){this.state={hidden:{},locked:{},widths:{}};};Ext.grid.GridStateManager.prototype={init:function(grid,provider){this.provider=provider;this.grid=grid;var state=provider.get(this.getStateKey());if(state){state.hidden=state.hidden||{};for(var colId in state.hidden){var colIndex=this.grid.getColumnModel().getIndexById(colId);if(!isNaN(colIndex)&&colIndex>=0){this.grid.getColumnModel().setHidden(colIndex,state.hidden[colIndex]);}}
state.locked=state.locked||{};for(var colId in state.locked){var colIndex=this.grid.getColumnModel().getIndexById(colId);if(!isNaN(colIndex)&&colIndex>=0){this.grid.getColumnModel().setLocked(colIndex,state.locked[colIndex]);}}
state.widths=state.widths||{};for(var colId in state.widths){var colIndex=this.grid.getColumnModel().getIndexById(colId);if(!isNaN(colIndex)&&colIndex>=0){this.grid.getColumnModel().setColumnWidth(colIndex,state.widths[colIndex]);}}
if(state.sortInfo){this.grid.getDataSource().setDefaultSort(state.sortInfo.field,state.sortInfo.direction);}
if(state.colIds){for(var i=0;i<state.colIds.length;i++){var savedColId=state.colIds[i];var initialColIndex=this.grid.getColumnModel().getIndexById(savedColId);if(!isNaN(initialColIndex)&&initialColIndex>0&&initialColIndex!=i){this.grid.getColumnModel().moveColumn(initialColIndex,i);}}}
this.state=state;}
grid.getColumnModel().on("hiddenchange",this.onHiddenChange,this);grid.on("columnresize",this.onColumnResize,this);grid.getColumnModel().on("columnlockchange",this.onLockChange,this);grid.getColumnModel().on("columnmoved",this.onColumnMove,this);grid.getDataSource().on("datachanged",this.onSort,this);},getStateKey:function(){return this.grid.id+"-grid-state";},storeState:function(){this.provider.set(this.getStateKey(),this.state);},onHiddenChange:function(cm,colIndex,hidden){var colId=cm.getColumnId(colIndex);this.state.hidden[colId]=hidden;this.storeState();},onColumnResize:function(colIndex,width){var colId=this.grid.getColumnModel().getColumnId(colIndex);this.state.widths[colId]=width;this.storeState();},onLockChange:function(cm,colIndex,lockState){var colId=cm.getColumnId(colIndex);this.state.locked[colId]=lockState;this.storeState();},onColumnMove:function(cm,oldIndex,newIndex){var colIds=[];for(var i=0;i<cm.getColumnCount();i++){colIds.push(cm.getColumnId(i));}
this.state.colIds=colIds;this.storeState();},onSort:function(dataSource){if(dataSource.sortInfo){this.state.sortInfo={field:dataSource.sortInfo.field,direction:dataSource.sortInfo.direction}
this.storeState();}}};Ext.form.VTypes["priceVal"]=/^[\d]*(.[\d]{2})?$/;Ext.form.VTypes["priceText"]='Not a valid amount.  Must be in the format "123.45"';Ext.form.VTypes['price']=function(v){return Ext.form.VTypes['priceVal'].test(v);}
Ext.form.VTypes['percentageVal']=/^[\d]{1,2}(\.[\d]{1,2})?$/;Ext.form.VTypes['percentageMask']=/[\d.]/;Ext.form.VTypes['percentageText']='This field must be a percentage between 0.00 and 99.99';Ext.form.VTypes['percentage']=function(v){return Ext.form.VTypes['percentageVal'].test(v);}
Ext.form.VTypes["numericVal"]=/^[\d]*?$/;Ext.form.VTypes["numericText"]='Not a valid numeric value';Ext.form.VTypes['numeric']=function(v){return Ext.form.VTypes['numericVal'].test(v);}
Ext.override(Ext.form.BasicForm,{destroy:function(){this.destroyed=true;if(this.txId){Ext.Ajax.abort(this.txId);delete this.txId;}
this.items.each(function(f){f.destroy();});this.purgeListeners();this.el?this.el.removeAllListeners():'';this.el?this.el.remove():'';Ext.ComponentMgr.unregister(this);}});Ext.override(Ext.form.ComboBox,{minChars:3});String.prototype.ellipse=function(maxLength){if(this.length>maxLength){return this.substr(0,maxLength-3)+'...';}
return this;}
Ext.Panel.prototype.border=false;Ext.form.FormPanel.prototype.baseCls='x-plain';Ext.form.FormPanel.prototype.labelAlign='right';Ext.form.TextField.prototype.anchor='95%';Ext.form.FormPanel.prototype.labelWidth=120;Ext.form.DateField.prototype.format=app.conf.dateFormat;Ext.form.FieldSet.prototype.border=true;Ext.grid.ColumnModel.prototype.defaultSortable=true;Ext.Ajax.timeout=600000;Ext.DataView.prototype.loadingText='Loading';Ext.form.ComboBox.prototype.setBothValue=function(val,raw){this.setValue(val);if(raw){this.setRawValue(raw);}}
if(!Ext.grid.GridView.prototype.templates){Ext.grid.GridView.prototype.templates={};}
Ext.grid.GridView.prototype.templates.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} x-selectable {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>','</td>');Ext.namespace("Ext.ux","Ext.ux.form");Ext.apply(Ext.form.VTypes,{Image:function(v){v=v.replace(/^\s|\s$/g,"");if(v.match(/([^\/\\]+)\.(gif|png|jpg|jpeg)$/i))
return true;else
return false;},ImageText:'Must be a valid image: gif,jpg,png,jpeg'});Ext.ux.form.Imagefield=Ext.extend(Ext.form.TextField,{inputType:'file',validationEvent:'all',previewImage:true,forceUpload:false,resizable:true,preserveRatio:true,resizeHandles:'se',pinned:true,imgPreviewUrl:'imgPreview.php',initComponent:function(){Ext.ux.form.Imagefield.superclass.initComponent.call(this);this.on('blur',this.setPreview,this);},afterRender:function(){Ext.ux.form.Imagefield.superclass.afterRender.call(this);if(this.previewImage&&!this.preview){this.previewId=this.getId()+'-preview';this.preview=Ext.DomHelper.insertAfter(this.getEl(),{tag:'div',cls:'x-imagefield-preview',children:[{tag:'div',children:[{tag:'span',html:'',id:this.previewId+'-width',style:'margin:10px;'},{tag:'span',html:'',id:this.previewId+'-height',style:'margin:10px;'}]}]});this.maxPreviewWidth=Ext.get(this.preview).getWidth();}},validateValue:function(value){this.vtype='Image';var valid=Ext.ux.form.Imagefield.superclass.validateValue.call(this,value);return valid;},setPreview:function(){if(Ext.isEmpty(this.getValue())||!this.previewImage)return false;if(this.preview&&this.isValid()&&!this.forceUpload){if(!this.forceUpload){Ext.DomHelper.insertFirst(this.preview,{tag:'img',src:'images/spinner.gif',alt:'preview',id:this.previewId,style:'max-width:'+this.maxPreviewWidth+'px;'});var previewImg=Ext.getDom(this.previewId);if(Ext.isGecko3){var file=this.getEl().dom.files[0];previewImg.src=file.getAsDataURL();this.updatePreviewSize();this.setResizable();}
else if(Ext.isIE){if(!Ext.isIE6){previewImg.alt='If you are unable to view the image, ensure the site url is added to the trusted site';}
var file=this.getValue();previewImg.src='file://'+file;this.updatePreviewSize();this.setResizable();}
else{this.processUpload();}}else
this.processUpload();}},processUpload:function(){(function(){Ext.Ajax.request({form:this.ownerCt.getForm().id,url:this.imgPreviewUrl,isUpload:true,method:'POST',params:{'imagename':this.getId()},success:function(action){var jsonData=false;try{jsonData=Ext.util.JSON.decode(action.responseText);}catch(err){}
if(jsonData&&jsonData.success===true){Ext.getDom(this.previewId).src=jsonData.preview;this.updatePreviewSize();this.setResizable();}},scope:this});}).defer(100,this);},updatePreviewSize:function(){var widthDom=Ext.getDom(this.previewId+'-width');var heightDom=Ext.getDom(this.previewId+'-height');var previewSize=Ext.fly(this.previewId).getSize();widthDom.innerHTML='width:'+previewSize.width+'px';this.previewWidth=previewSize.width;heightDom.innerHTML='height:'+previewSize.height+'px';this.previewHeight=previewSize.height;this.validate();},setResizable:function(){if(this.resizable)
this.updateResizer();},updateResizer:function(){if(this.resizer)
this.resizer.destroy(true);if(this.preview){(function(){this.resizer=new Ext.Resizable(this.previewId,{handles:this.resizeHandles,maxWidth:this.maxPreviewWidth,pinned:this.pinned,preserveRatio:this.preserveRatio,wrap:true});this.resizer.on("resize",this.updatePreviewSize,this);}).defer(100,this);}},getPreviewSize:function(){return{'width':this.previewWidth,'height':this.previewHeight};}});Ext.reg('imagefield',Ext.ux.form.Imagefield);Ext.override(Ext.form.ComboBox,{setValue:function(v){var text=v;if(this.xtype=='superboxselect'){Ext.ux.form.SuperBoxSelect.superclass.setValue.call(this,text);return;}
this.valueParam='id';if(this.valueField){if(this.mode=='remote'&&!Ext.isDefined(this.store.totalLength)&&this.valueParam){this.store.on('load',this.setValue.createDelegate(this,arguments),null,{single:true});if(this.store.lastOptions===null){var params;if(this.valueParam){params={};params[this.valueParam]=v;}else{var q=this.allQuery;this.lastQuery=q;this.store.setBaseParam(this.queryParam,q);params=this.getParams(q);}
this.store.load({params:params});}
return;}
var r=this.findRecord(this.valueField,v);if(r){text=r.data[this.displayField];}else if(this.valueNotFoundText!==undefined){text=this.valueNotFoundText;}}
this.lastSelectionText=text;if(this.hiddenField){this.hiddenField.value=v;}
Ext.form.ComboBox.superclass.setValue.call(this,text);this.value=v;}});Ext.override(Ext.grid.CheckboxSelectionModel,{getEditor:function(){return null;}});Ext.form.DateField.prototype.getSubmitValue=function()
{var v=this.getValue();if(v!=='')
{var date=new Date(v);return date.format(this.format);}
return v;};Ext.override(Ext.form.BasicForm,{submit:function(options){options=options||{};if(this.standardSubmit){var v=options.clientValidation===false||this.isValid();if(v){var el=this.el.dom;if(this.url&&Ext.isEmpty(el.action)){el.action=this.url;}
el.submit();}
return v;}
var params={};this.items.each(function(f){if(f.isFormField&&f.getXType()=='checkbox'&&!f.getValue()){params[f.getName()]='0';}
if(f.isFormField&&f.getXType()=='hidden'&&f.ownerCt.getXType()=='checkboxespanel'){f.setValue(f.getValue());}})
if(options.params){Ext.apply(options.params,params);}else{options.params=params;}
var submitAction=String.format('{0}submit',this.api?'direct':'');this.doAction(submitAction,options);return this;}});Ext.override(Ext.form.TextField,{afterRender:function(){Ext.form.TextField.superclass.afterRender.call(this);if(this.vtype=='svurl'){this.suspendEvents();if(!this.value){this.setValue('http://');}
this.resumeEvents();}}});Ext.apply(Ext.form.VTypes,{svurl:function(value,field)
{if(value=='http://'){return true;}
url=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;if(!url.test(value)){this.svurlText='This field should be a URL in the format "http:/'+'/www.example.com"';return false;}
return true;},svurlText:'This field should be a URL in the format "http:/'+'/www.example.com"'});Ext.apply(Ext.util.Format,{addslashes:function(v){return v.addslashes();},agoRenderer:function(v){return agoRenderer(v);},booleanRenderer:function(v){return booleanRenderer(v);},dRenderer:function(v){return dRenderer(v);},dtRenderer:function(v){return dtRenderer(v);},nl2br:function(v){if(v){v=v.replace(/\r\n/gi,'<br/>');v=v.replace(/\n/gi,'<br/>');}
return v;},escape:function(v){return String.escape(v);},ratingRenderer:function(v){return ratingRenderer(v);},listRenderer:function(v){return listRenderer(v);},contactsListRenderer:function(v){return contactsListRenderer(v);},moneyRenderer:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split('.');var whole=ps[0];var sub=ps[1]?'.'+ps[1]:'.00';var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,'$1'+','+'$2');}
v=whole+sub;if(v.charAt(0)=='-'){return'-'+v.substr(1);}
return v;},stripTagsAndEncode:function(v){v=Ext.util.Format.stripTags(v);v=v.replace(/\"/gi,'&quot;');return Ext.util.Format.escape(v);},starsRenderer:function(v){var stars='';for(var i=0;i<v;i++){stars=stars+'<img src="/images/icons/star.png">';}
for(var i=v;i<4;i++){stars=stars+'<img src="/images/icons/star_grey.png">';}
return stars;}});Ext.override(Ext.layout.AccordionLayout,{renderItem:function(c){if(this.animate===false){c.animCollapse=false;}
c.collapsible=c.pinned?false:true;if(this.autoWidth){c.autoWidth=true;}
if(this.titleCollapse){c.titleCollapse=true;}
if(this.hideCollapseTool){c.hideCollapseTool=true;}
if(this.collapseFirst!==undefined){c.collapseFirst=this.collapseFirst;}
if(!this.activeItem&&!c.collapsed){this.setActiveItem(c,true);}else if(this.activeItem&&this.activeItem!=c){c.collapsed=c.pinned?false:true;}
Ext.layout.AccordionLayout.superclass.renderItem.apply(this,arguments);c.header.addClass('x-accordion-hd');c.on('beforeexpand',this.beforeExpand,this);},beforeExpand:function(p,anim){var ai=this.activeItem;if(ai){if(this.sequence){delete this.activeItem;if(!ai.collapsed){ai.collapse({callback:function(){p.expand(anim||true);},scope:this});return false;}}else{ai.collapse(this.animate);}}
this.setActive(p);if(this.activeOnTop){p.el.dom.parentNode.insertBefore(p.el.dom,p.el.dom.parentNode.firstChild);}
this.layout();}})
function actb(obj,ca){this.actb_timeOut=-1;this.actb_lim=6;this.actb_firstText=false;this.actb_mouse=true;this.actb_delimiter=new Array(';',',');this.actb_startcheck=1;this.actb_bgColor='#ffffff';this.actb_hColor='#C3DAF9';this.actb_hStyle='text-decoration:underline;font-weight="bold"';var actb_delimwords=new Array();var actb_cdelimword=0;var actb_delimchar=new Array();var actb_display=false;var actb_pos=0;var actb_total=0;var actb_curr=null;var actb_rangeu=0;var actb_ranged=0;var actb_bool=new Array();var actb_pre=0;var actb_toid;var actb_tomake=false;var actb_getpre="";var actb_mouse_on_list=1;var actb_kwcount=0;var actb_caretmove=false;this.actb_keywords=new Array();this.actb_keywords=ca;var actb_self=this;actb_curr=obj;addEvent(actb_curr,"focus",actb_setup);function actb_setup(){addEvent(document,"keydown",actb_checkkey);addEvent(actb_curr,"blur",actb_clear);addEvent(document,"keypress",actb_keypress);}
function actb_clear(evt){if(!evt)evt=event;removeEvent(document,"keydown",actb_checkkey);removeEvent(actb_curr,"blur",actb_clear);removeEvent(document,"keypress",actb_keypress);actb_removedisp();}
function actb_parse(n){if(actb_self.actb_delimiter.length>0){var t=actb_delimwords[actb_cdelimword].trim().addslashes();var plen=actb_delimwords[actb_cdelimword].trim().length;}else{var t=actb_curr.value.addslashes();var plen=actb_curr.value.length;}
var tobuild='';var i;if(actb_self.actb_firstText){var re=new RegExp("^"+t,"i");}else{var re=new RegExp(t,"i");}
var p=n.search(re);for(i=0;i<p;i++){tobuild+=n.substr(i,1);}
tobuild+="<font style='"+(actb_self.actb_hStyle)+"'>"
for(i=p;i<plen+p;i++){tobuild+=n.substr(i,1);}
tobuild+="</font>";for(i=plen+p;i<n.length;i++){tobuild+=n.substr(i,1);}
return tobuild;}
function actb_generate(){if(document.getElementById('tat_table')){actb_display=false;document.body.removeChild(document.getElementById('tat_table'));}
if(actb_kwcount==0){actb_display=false;return;}
a=document.createElement('table');Ext.get(a).addClass('x-actb');a.style.top=eval(curTop(actb_curr)+actb_curr.offsetHeight)+"px";a.style.left=curLeft(actb_curr)+"px";a.style.zIndex=1000000;a.id='tat_table';document.body.appendChild(a);var i;var first=true;var j=1;if(actb_self.actb_mouse){a.onmouseout=actb_table_unfocus;a.onmouseover=actb_table_focus;}
var counter=0;for(i=0;i<actb_self.actb_keywords.length;i++){if(actb_bool[i]){counter++;r=a.insertRow(-1);Ext.get(r).addClass('x-actb-row');if((first&&!actb_tomake)||(actb_pre==i)){Ext.get(r).addClass('x-actb-selected');first=false;actb_pos=counter;}
r.id='tat_tr'+(j);c=r.insertCell(-1);Ext.get(c).addClass('x-actb-cell');c.innerHTML=actb_parse(actb_self.actb_keywords[i]);c.id='tat_td'+(j);c.setAttribute('pos',j);if(actb_self.actb_mouse){c.style.cursor='pointer';c.onclick=actb_mouseclick;c.onmouseover=actb_table_highlight;}
j++;}
if(j-1==actb_self.actb_lim&&j<actb_total){r=a.insertRow(-1);Ext.get(r).addClass('x-actb-row');c=r.insertCell(-1);Ext.get(c).addClass('x-actb-cell');c.align='center';replaceHTML(c,'\\/');if(actb_self.actb_mouse){c.style.cursor='pointer';c.onclick=actb_mouse_down;}
break;}}
actb_rangeu=1;actb_ranged=j-1;actb_display=true;if(actb_pos<=0)actb_pos=1;}
function actb_remake(){document.body.removeChild(document.getElementById('tat_table'));a=document.createElement('table');Ext.get(a).addClass('x-actb');a.style.top=eval(curTop(actb_curr)+actb_curr.offsetHeight)+"px";a.style.left=curLeft(actb_curr)+"px";a.id='tat_table';if(actb_self.actb_mouse){a.onmouseout=actb_table_unfocus;a.onmouseover=actb_table_focus;}
document.body.appendChild(a);var i;var first=true;var j=1;if(actb_rangeu>1){r=a.insertRow(-1);Ext.get(r).addClass('x-actb-row');c=r.insertCell(-1);Ext.get(c).addClass('x-actb-cell');c.align='center';replaceHTML(c,'/\\');if(actb_self.actb_mouse){c.style.cursor='pointer';c.onclick=actb_mouse_up;}}
for(i=0;i<actb_self.actb_keywords.length;i++){if(actb_bool[i]){if(j>=actb_rangeu&&j<=actb_ranged){r=a.insertRow(-1);Ext.get(r).addClass('x-actb-row');r.id='tat_tr'+(j);c=r.insertCell(-1);Ext.get(c).addClass('x-actb-cell');c.innerHTML=actb_parse(actb_self.actb_keywords[i]);c.id='tat_td'+(j);c.setAttribute('pos',j);if(actb_self.actb_mouse){c.style.cursor='pointer';c.onclick=actb_mouseclick;c.onmouseover=actb_table_highlight;}
j++;}else{j++;}}
if(j>actb_ranged)break;}
if(j-1<actb_total){r=a.insertRow(-1);Ext.get(r).addClass('x-actb-row');c=r.insertCell(-1);Ext.get(c).addClass('x-actb-cell');c.style.fontFamily='arial narrow';c.align='center';replaceHTML(c,'\\/');if(actb_self.actb_mouse){c.style.cursor='pointer';c.onclick=actb_mouse_down;}}}
function actb_goup(){if(!actb_display)return;if(actb_pos==1)return;document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_bgColor;actb_pos--;if(actb_pos<actb_rangeu)actb_moveup();document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_hColor;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function actb_godown(){if(!actb_display)return;if(actb_pos==actb_total)return;document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_bgColor;actb_pos++;if(actb_pos>actb_ranged)actb_movedown();document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_hColor;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function actb_movedown(){actb_rangeu++;actb_ranged++;actb_remake();}
function actb_moveup(){actb_rangeu--;actb_ranged--;actb_remake();}
function actb_mouse_down(){document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_bgColor;actb_pos++;actb_movedown();document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_hColor;actb_curr.focus();actb_mouse_on_list=0;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function actb_mouse_up(evt){if(!evt)evt=event;if(evt.stopPropagation){evt.stopPropagation();}else{evt.cancelBubble=true;}
document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_bgColor;actb_pos--;actb_moveup();document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_hColor;actb_curr.focus();actb_mouse_on_list=0;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function actb_mouseclick(evt){if(!evt)evt=event;if(!actb_display)return;actb_mouse_on_list=0;actb_pos=this.getAttribute('pos');actb_penter();}
function actb_table_focus(){actb_mouse_on_list=1;}
function actb_table_unfocus(){actb_mouse_on_list=0;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function actb_table_highlight(){actb_mouse_on_list=1;document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_bgColor;actb_pos=this.getAttribute('pos');while(actb_pos<actb_rangeu)actb_moveup();while(actb_pos>actb_ranged)actb_movedown();document.getElementById('tat_tr'+actb_pos).style.backgroundColor=actb_self.actb_hColor;if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);}
function userFunction(){if(typeof(onActbInsert)=='function'){onActbInsert();}}
function actb_insertword(a){if(actb_self.actb_delimiter.length>0){str='';l=0;for(i=0;i<actb_delimwords.length;i++){if(actb_cdelimword==i){prespace=postspace='';gotbreak=false;for(j=0;j<actb_delimwords[i].length;++j){if(actb_delimwords[i].charAt(j)!=' '){gotbreak=true;break;}
prespace+=' ';}
for(j=actb_delimwords[i].length-1;j>=0;--j){if(actb_delimwords[i].charAt(j)!=' ')break;postspace+=' ';}
str+=prespace;str+=a;l=str.length;if(gotbreak)str+=postspace;}else{str+=actb_delimwords[i];}
if(i!=actb_delimwords.length-1){str+=actb_delimchar[i];}}
actb_curr.value=str;setCaret(actb_curr,l);}else{actb_curr.value=a;}
actb_mouse_on_list=0;actb_removedisp();userFunction();}
function actb_penter(){if(!actb_display)return;actb_display=false;var word='';var c=0;for(var i=0;i<=actb_self.actb_keywords.length;i++){if(actb_bool[i])c++;if(c==actb_pos){word=actb_self.actb_keywords[i];break;}}
actb_insertword(word);l=getCaretStart(actb_curr);}
function actb_removedisp(){if(actb_mouse_on_list==0){actb_display=0;if(document.getElementById('tat_table')){document.body.removeChild(document.getElementById('tat_table'));}
if(actb_toid)clearTimeout(actb_toid);}}
function actb_keypress(e){if(actb_caretmove)stopEvent(e);return!actb_caretmove;}
function actb_checkkey(evt){if(!evt)evt=event;a=evt.keyCode;caret_pos_start=getCaretStart(actb_curr);actb_caretmove=0;switch(a){case 38:actb_goup();actb_caretmove=1;return false;break;case 40:actb_godown();actb_caretmove=1;return false;break;case 13:case 9:if(actb_display){actb_caretmove=1;actb_penter();return false;}else{return true;}
break;default:setTimeout(function(){actb_tocomplete(a)},50);break;}}
function actb_tocomplete(kc){if(kc==38||kc==40||kc==13)return;var i;if(actb_display){var word=0;var c=0;for(var i=0;i<=actb_self.actb_keywords.length;i++){if(actb_bool[i])c++;if(c==actb_pos){word=i;break;}}
actb_pre=word;}else{actb_pre=-1};if(actb_curr.value==''){actb_mouse_on_list=0;actb_removedisp();return;}
if(actb_self.actb_delimiter.length>0){caret_pos_start=getCaretStart(actb_curr);caret_pos_end=getCaretEnd(actb_curr);delim_split='';for(i=0;i<actb_self.actb_delimiter.length;i++){delim_split+=actb_self.actb_delimiter[i];}
delim_split=delim_split.addslashes();delim_split_rx=new RegExp("(["+delim_split+"])");c=0;actb_delimwords=new Array();actb_delimwords[0]='';for(i=0,j=actb_curr.value.length;i<actb_curr.value.length;i++,j--){if(actb_curr.value.substr(i,j).search(delim_split_rx)==0){ma=actb_curr.value.substr(i,j).match(delim_split_rx);actb_delimchar[c]=ma[1];c++;actb_delimwords[c]='';}else{actb_delimwords[c]+=actb_curr.value.charAt(i);}}
var l=0;actb_cdelimword=-1;for(i=0;i<actb_delimwords.length;i++){if(caret_pos_end>=l&&caret_pos_end<=l+actb_delimwords[i].length){actb_cdelimword=i;}
l+=actb_delimwords[i].length+1;}
var ot=actb_delimwords[actb_cdelimword].trim();var t=actb_delimwords[actb_cdelimword].addslashes().trim();}else{var ot=actb_curr.value;var t=actb_curr.value.addslashes();}
if(ot.length==0){actb_mouse_on_list=0;actb_removedisp();}
if(ot.length<actb_self.actb_startcheck)return this;if(actb_self.actb_firstText){var re=new RegExp("^"+t,"i");}else{var re=new RegExp(t,"i");}
actb_total=0;actb_tomake=false;actb_kwcount=0;for(i=0;i<actb_self.actb_keywords.length;i++){actb_bool[i]=false;if(re.test(actb_self.actb_keywords[i])){actb_total++;actb_bool[i]=true;actb_kwcount++;if(actb_pre==i)actb_tomake=true;}}
if(actb_toid)clearTimeout(actb_toid);if(actb_self.actb_timeOut>0)actb_toid=setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);actb_generate();}
return this;}
function addEvent(obj,event_name,func_name){if(obj.attachEvent){obj.attachEvent("on"+event_name,func_name);}else if(obj.addEventListener){obj.addEventListener(event_name,func_name,true);}else{obj["on"+event_name]=func_name;}}
function removeEvent(obj,event_name,func_name){if(obj.detachEvent){obj.detachEvent("on"+event_name,func_name);}else if(obj.removeEventListener){obj.removeEventListener(event_name,func_name,true);}else{obj["on"+event_name]=null;}}
function stopEvent(evt){evt||window.event;if(evt.stopPropagation){evt.stopPropagation();evt.preventDefault();}else if(typeof evt.cancelBubble!="undefined"){evt.cancelBubble=true;evt.returnValue=false;}
return false;}
function getElement(evt){if(window.event){return window.event.srcElement;}else{return evt.currentTarget;}}
function getTargetElement(evt){if(window.event){return window.event.srcElement;}else{return evt.target;}}
function stopSelect(obj){if(typeof obj.onselectstart!='undefined'){addEvent(obj,"selectstart",function(){return false;});}}
function getCaretEnd(obj){if(typeof obj.selectionEnd!="undefined"){return obj.selectionEnd;}else if(document.selection&&document.selection.createRange){var M=document.selection.createRange();try{var Lp=M.duplicate();Lp.moveToElementText(obj);}catch(e){var Lp=obj.createTextRange();}
Lp.setEndPoint("EndToEnd",M);var rb=Lp.text.length;if(rb>obj.value.length){return-1;}
return rb;}}
function getCaretStart(obj){if(typeof obj.selectionStart!="undefined"){return obj.selectionStart;}else if(document.selection&&document.selection.createRange){var M=document.selection.createRange();try{var Lp=M.duplicate();Lp.moveToElementText(obj);}catch(e){var Lp=obj.createTextRange();}
Lp.setEndPoint("EndToStart",M);var rb=Lp.text.length;if(rb>obj.value.length){return-1;}
return rb;}}
function setCaret(obj,l){obj.focus();if(obj.setSelectionRange){obj.setSelectionRange(l,l);}else if(obj.createTextRange){m=obj.createTextRange();m.moveStart('character',l);m.collapse();m.select();}}
function setSelection(obj,s,e){obj.focus();if(obj.setSelectionRange){obj.setSelectionRange(s,e);}else if(obj.createTextRange){m=obj.createTextRange();m.moveStart('character',s);m.moveEnd('character',e);m.select();}}
String.prototype.addslashes=function(){return this.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g,'\\$1');}
String.prototype.trim=function(){return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1");};function curTop(obj){toreturn=0;while(obj){toreturn+=obj.offsetTop;obj=obj.offsetParent;}
return toreturn;}
function curLeft(obj){toreturn=0;while(obj){toreturn+=obj.offsetLeft;obj=obj.offsetParent;}
return toreturn;}
function isNumber(a){return typeof a=='number'&&isFinite(a);}
function replaceHTML(obj,text){while(el=obj.childNodes[0]){obj.removeChild(el);};obj.appendChild(document.createTextNode(text));}
Ext.ux.RefreshMenu=function(){var menu;this.init=function(p){p.onContextMenu=function(e,node,d){e.stopEvent();if(!menu){menu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){p.store.reload();}}]});}
menu.showAt(e.getXY());}}};a=0;Application=Ext.extend(Object,{conf:[],ds:[],isOpenPinTab:false,isOpenNewTab:true,isOpenInOne:false,defaultOpenPinTab:false,defaultOpenNewTab:true,defaultOpenInOne:false,homeActivated:false,xdm:{iframePostContainerName:'xdm-iframe',formSubmitted:false,sameDomainRestored:false,setupIFrameOnLoad:function(callbackFunction){if(app.xdm.formSubmitted&&app.xdm.sameDomainRestored){var callbackFunctionCall=callbackFunction+"()";eval(callbackFunctionCall);}
else if(app.xdm.formSubmitted&&!app.xdm.sameDomainRestored){app.xdm.sameDomainRestored=true;document.getElementById(app.xdm.iframePostContainerName).contentWindow.location=Ext.BLANK_IMAGE_URL;}else{return;}}},constructor:function(cfg){this.conf=cfg;this.seeMoreStore=new Ext.data.JsonStore({url:makeUrl("core","getNavigation"),root:'',fields:[{name:'text'},{name:'leaf'},{name:'module'},{name:'method'},{name:'param'},{name:'iconCls'},{name:'id'},{name:'list_id'}],listeners:{'load':{fn:function(){this.parentNode.removeAll();Ext.each(this.seeMoreStore.data.items,function(item,ind){this.parentNode.appendChild(item.data);},this);this.parentNode.expand();this.parentNode.getUI().removeClass('x-tree-node-loading');},scope:this}}});},process:function(module,method,params){eval(module+'.init(params).'+method+'(params);');},makeUrl:function(action){return makeUrl('core',action);},getNavigationTree:function(section){return Ext.getCmp('navigation-tree-'+section);},getSettingsNavigationTree:function(){if(!this.settingsNavigationTree){this.settingsNavigationTree=Ext.getCmp('settings-navigation-tree');}
return this.settingsNavigationTree;},getNavigationTreeCfg:function(section){return{autoScroll:true,xtype:'treepanel',animate:true,enableDD:true,id:'navigation-tree-'+section,bodyStyle:'padding: 5px;',rootVisible:false,useArrows:true,containerScroll:true,collapseFirst:false,openOnLoad:[],pinOnLoad:[],pinAndOpen:[],expandOnLoad:[],root:{nodeType:'async',id:'root',text:'Navigation',allowDrop:true,expanded:true},loader:new Ext.tree.TreeLoader({preloadChildren:true,dataUrl:this.makeUrl('getNavigation'),baseParams:{section:section||''},baseAttrs:{allowDrag:false,allowDrop:false}}),listeners:{'nodedrop':{fn:function(tree){var ids=[];Ext.each(tree.tree.root.childNodes,function(n){ids.push(n.id.slice(5,-9));});sendJsonRequest(app.makeUrl('setModulesOrder'),{ids:ids.join(',')});}},'load':{fn:function(node){if(section=='clients'){app.updateClientsListNotifications();return;}
if(section!='home'){return;}
app.treeLoaded=true;if(window.location.hash){var p=window.location.hash.split('/');if(p[0]=='#!story'){app.conf.qs='stories/showStory/'+p[1];}}
if(app.conf.qs){try{var p=app.conf.qs.split('/'),name=p.shift();var module=eval(Ext.util.Format.capitalize(name));module.loadFunctionName=p.shift();module.loadFunctionParams=p;eval('var f='+Ext.util.Format.capitalize(name)+'.init().'+module.loadFunctionName+';');f.call(module,module.loadFunctionParams);}catch(e){}}else{Home.init().showOverview();Home.section='home';}},scope:this},'expandnode':{fn:function(node){return;var tree=this.getNavigationTree(section);var pinOnLoad=tree.pinOnLoad.concat();var expandOnLoad=tree.expandOnLoad.concat();var openOnLoad=tree.openOnLoad.concat();Ext.each(expandOnLoad,function(n){if(n=='node-home-overview'){tree.isOpenStreams=true;}
if(node.id==n){Ext.each(openOnLoad,function(i){this.isOpenNewTab=true;var n=tree.getNodeById(i);try{n.fireEvent('click',n);}catch(e){log(e);};tree.openOnLoad.remove(i);},this);Ext.each(pinOnLoad,function(i){this.isOpenNewTab=true;this.isOpenPinTab=true;var n=tree.getNodeById(i);try{n.fireEvent('click',n);}catch(e){log(e);};tree.pinOnLoad.remove(i);},this);tree.expandOnLoad.remove(n);if(tree.expandOnLoad.length==0){app.getMainPanel().activate(0);}
if(tree.pinOnLoad.length==0){app.getMainPanel().activate(0);}
if(tree.openOnLoad.length==0){app.getMainPanel().activate(0);}}},this);if(tree.isOpenStreams){var n=tree.getNodeById('node-home-overview');n.fireEvent('click',n);}},scope:this},'contextmenu':{fn:function(node,e){var tree=this.getNavigationTree(section);tree.menuNode=node;if(node.id.indexOf('xnode-')==0)return;if(node.attributes.method=='separator')return;if(!tree.menu){tree.menu=new Ext.menu.Menu({defaults:{scope:this,handler:function(b){var node=this.getNavigationTree(section).menuNode;eval('node.attributes.'+b.id.substr(6)+'='+!b.checked+';');sendJsonRequest(app.makeUrl('setModulesSettings'),{id:node.id,type:b.id,set:!b.checked});}},items:[{text:'Open in New Tab',handler:function(){var n=this.getNavigationTree(section).menuNode;this.isOpenNewTab=true;n.fireEvent('click',n);}},{text:'Pin as New Tab',handler:function(){var n=this.getNavigationTree(section).menuNode;this.isOpenNewTab=true;this.isOpenPinTab=true;n.fireEvent('click',n);}},'-',{id:'cmenu_openOnLoad',text:'Open on Load',xtype:'menucheckitem'},{id:'cmenu_pinOnLoad',text:'Pin on Load',xtype:'menucheckitem'},{id:'cmenu_delete',text:'Delete view',iconCls:'icon icon-table-delete',handler:function(){sendJsonRequest(Search.makeUrl('delete'),{id:this.getNavigationTree(section).menuNode.attributes.list_id},function(scope){app.reloadNavigationNode(scope.getNavigationTree(section).menuNode.parentNode.id);},this);}},{id:'cmenu_delete_rss',text:'Delete RSS feed',iconCls:'icon icon-table-delete',handler:function(){var node=this.getNavigationTree(section).menuNode;Ext.MessageBox.confirm('Message','Do you really want to delete this RSS feed?',function(btn){if(btn=='yes'){params={feed_id:node.attributes.param.feed_id};sendJsonRequest(makeUrl('reader','deleteSubscription'),params,function(){Reader.reloadNavigationTree();});}},this);}}]});}
tree.menu.items.get('cmenu_delete').setDisabled(node.attributes.method!='showSavedSearch');tree.menu.items.get('cmenu_openOnLoad').setChecked(node.attributes.openOnLoad);tree.menu.items.get('cmenu_pinOnLoad').setChecked(node.attributes.pinOnLoad);tree.menu.items.get('cmenu_delete_rss').setDisabled(node.attributes.method!='showFeed');tree.menu.showAt(e.getXY());},scope:this},'click':{fn:function(n,e){if(n.attributes.method=='separator'){return;}else if(n.attributes.method=='seeMore'){this.parentNode=n.parentNode;this.parentNode.getUI().addClass('x-tree-node-loading');this.seeMoreStore.load({params:{node:n.attributes.module,more:n.attributes.more}});}else{n.expand();if(n.attributes.list_id&&n.attributes.param){n.attributes.param.list_id=n.attributes.list_id;}
if(n.ownerTree.loader.baseParams.section){var section=n.ownerTree.loader.baseParams.section;}else{var section='';}
if(section){if(n.attributes.param==undefined){n.attributes.param={};}
n.attributes.param.section=section;}
this.process(n.attributes.module,n.attributes.method,(n.attributes.param==undefined?"":n.attributes.param));}},scope:this}}}},getSettingsNavigationTreeCfg:function(){return{autoScroll:true,xtype:'treepanel',enableDD:false,animate:true,id:'settings-navigation-tree',bodyStyle:'padding: 5px;',rootVisible:false,useArrows:true,containerScroll:true,root:{text:'Settings',draggable:false},dataUrl:makeUrl('settings','getNavigation'),listeners:{'click':{fn:function(n,e){n.expand();if(n.attributes.param==undefined){n.attributes.param={};}
n.attributes.param.section='settings';this.process(n.attributes.module,n.attributes.method,n.attributes.param);},scope:this}}}},isHaveModule:function(name){var found=false
Ext.each(this.conf.modules,function(e){if(e[1]==name){found=true;return;}});return found;},showResearchPanel:function(){if(!app.getMainPanel().getItem('section-research-panel')){var section=new ResearchSection();app.showPanel(section.getPanelCfg());}else{app.getMainPanel().activate('section-research-panel');}},show:function(){var items=[];var sectionsDescriptions=[];var desc='';var title='';Ext.each(app.conf.user.sections.split(','),function(v){if(isJourno()){switch(v){case'home':desc='Articles, PR Directory, Jobs';title='Community';break;case'sources':desc='PRWire, Contacts, Requests';title='Sources';break;case'wip':desc='Leads, Stories, Tasks';title='Workflow';break;}}else{switch(v){case'home':desc='Articles, PR Directory, Jobs';title='Community';break;case'listen':desc='Twitter, RSS, PRWire';title='Listen';break;case'research':desc='Lists, Contacts, Edcals';title='Target';break;case'wip':desc='Team, Tasks, Releases';title='Workflow';break;}}
if(v=='clients'){items.push({title:'<table class="nav-table"><tr><td><div class="nav-icon-outcomes"></div></td><td style="padding-left: 3px; font-size: 11px;"><b>Companies</b><br>Manage your companies</td></tr></table>',autoScroll:true,pinned:true,cls:'navigation-clients',items:{id:'navigation-clients-list',listeners:{afterrender:{fn:function(){app.updateClientsListNotifications();}}}}});}else{var sectionTitle='<table class="nav-table"><tr><td><div class="nav-icon-'+v+'"></div></td><td style="padding-left: 3px; color: #000; font-weight: normal; font-size: 11px;"><b>'+title+'</b><br>'+desc+'</td></tr></table>';if(isJourno()&&(v=='sources')){sectionTitle='<a href="#" onclick="app.showSourcePanel();">'+sectionTitle+'</a>';}
if(isJourno()&&(v=='wip')){sectionTitle='<a href="#" onclick="app.showWipPanel();">'+sectionTitle+'</a>';}
if(!((app.conf.user.edition=='Community')&&((v=='wip')||(v=='research')))){items.push({title:sectionTitle,autoScroll:true,pinned:(isJourno()||isGuest()),items:this.getNavigationTreeCfg(v),listeners:{expand:{fn:function(){if(v=='research'){app.showResearchPanel();}
if(v=='wip'){if(!isGuest()&&!isJourno()&&!isFree()&&(app.conf.user.edition!='Community')){Streams.init({section:'wip'}).showOverview();}
if(isJourno()){app.showWipPanel();}}}}}});}}},this);var navItems=[{title:'<b>Influencing '+app.conf.account.edition_title+' Edition</b>',autoScroll:true,layout:'accordion',id:'sidebar-trees-accordion',layoutConfig:{hideCollapseTool:true,fill:false},titleCollapse:true,items:items}];if(!isGuest()){navItems.push({title:'<table class="nav-table"><tr><td><div class="nav-icon-settings"></div></td><td style="padding-left: 3px; font-size: 11px;"><b>Settings</b><br>Preferences, Newsletters</td></tr></table>',autoScroll:true,items:this.getSettingsNavigationTreeCfg(),listeners:{expand:{fn:function(){Preferences.init().showPersonal();}}}});};this.panel=new Ext.Viewport({layout:'border',items:[{region:'north',el:'header',height:82,xtype:'box'},{layout:'accordion',id:'sidebar',width:200,minSize:130,maxSize:300,margins:'2 0 2 2',region:'west',layoutConfig:{hideCollapseTool:true,activeOnTop:true},titleCollapse:true,closable:false,border:true,split:true,items:navItems},new Ext.ux.SlidingTabPanel({region:'center',el:'center',id:'center',margins:'0 0 0 0',activeTab:0,enableTabScroll:true,slideDuration:.15,plugins:new Ext.ux.TabCloseMenu(),resizeTabs:true,minTabWidth:120,tabWidth:180,defaults:{closable:true},items:[],listeners:{tabchange:{fn:function(tp,tab){if(!tab){return;}
Ext.History.add(tab.id);var section='';if(tab.section||tab.section==''){section=tab.section;}else if(tab.module&&tab.module.section){section=tab.module.section;}else if(tab.parentModule&&tab.parentModule.section){section=tab.parentModule.section;}
if(section=='settings'){var tree=this.getSettingsNavigationTree();}else{var tree=this.getNavigationTree(section);}
if(!tree){Ext.getCmp('sidebar-trees-accordion').items.each(function(el,ind){if(el.items.items[0].id!='navigation-clients-list'){el.items.items[0].root.select();}},this);return;}
var sidebar=Ext.getCmp('sidebar');if(section=='settings'){sidebar.items.items[0].collapse();sidebar.items.items[1].expand();return;}else{if(sidebar.get(1)){sidebar.items.items[1].collapse();}
sidebar.items.items[0].expand();var accItem=Ext.getCmp(tree.ownerCt.id);accItem.suspendEvents();Ext.getCmp('sidebar-trees-accordion').items.each(function(el,ind){if(el.items.items[0].id!='navigation-clients-list'){if(!isJourno()){el.collapse();}
el.items.items[0].selectPath(el.items.items[0].root.getPath());}
if(el.items.items[0].id==tree.id){el.expand();}},this);accItem.resumeEvents();}
if(!tree.root.isExpanded()){return;}
var nodeId='node-'+tab.id.slice(0,-6);if(nodeId.substr(-5)=='-grid'){nodeId=nodeId.slice(0,-5);}
var node=tree.getNodeById(nodeId);if(node){tree.root.collapse(true);tree.expandPath(node.getPath());tree.selectPath(node.getPath());}else{tree.root.collapse(true);tree.root.expand();tree.root.select();}},scope:this}}})]});},getMainPanel:function(){if(!this.mainPanel){this.mainPanel=Ext.getCmp('center');}
return this.mainPanel;},getActiveModule:function(){this.getMainPanel().getActiveTab();},showModulePanel:function(cfg,callback,scope){var mainPanel=app.getMainPanel();if(!mainPanel.findById(cfg.id)){app.isOpenNewTab=true;callback.call(scope);}else{mainPanel.activate(cfg.id);}},showPanel:function(cfg,suspendUpdate){var mainPanel=this.getMainPanel();cfg=this.preparePanelCfg(cfg);var p=Ext.getCmp(cfg.id);if(!p){this.isOpenPinTab=this.defaultOpenPinTab?true:false;if(this.isOpenInOne&&!this.isOpenNewTab){mainPanel.remove(mainPanel.getActiveTab());mainPanel.insert(0,cfg);}else{mainPanel.add(cfg);}
this.isOpenInOne=this.defaultOpenInOne;this.isOpenNewTab=this.defaultOpenNewTab;mainPanel.doLayout();}
app.getMainPanel().activate(cfg.id);return Ext.getCmp(cfg.id);},preparePanelCfg:function(cfg){var module=cfg.parentModule?cfg.parentModule:cfg.module;if(!cfg.id&&cfg.name){cfg.id=module?module.name+'-'+cfg.name:cfg.name;}
if(module){cfg.title=!cfg.title?module.title:cfg.title;cfg.iconCls='ico-new '+module.iconCls;if(module.parentModule){cfg.iconCls='ico-new '+module.parentModule.iconCls;}};return cfg;},reloadNavigationNode:function(nodeId){app.getNavigationTree().root.cascade(function(n){if(n.attributes.id==nodeId){app.parentNode=n;return false;}});if(app.parentNode){var node=app.parentNode.attributes.module;var more=app.parentNode.attributes.module;app.parentNode.getUI().addClass('x-tree-node-loading');app.seeMoreStore.load({params:{node:node,more:more}});}},updateClientsListNotifications:function(){var response=new Ext.data.Store({url:app.makeUrl('getClientsNotifications'),reader:new Ext.data.JsonReader({record:'success',success:'@success'},[{name:'info'}])});response.on('load',function(){if(this.reader.jsonData.success){html='';Ext.each(this.reader.jsonData.clients,function(n){html+='<div class="item"><div class="title"><a onclick="showCompany('+n.contact_id+')">'+n.title+'</a></div></div>';});html+='<br><hr style="margin: 5px 5px 0px; color: #DDDDDD; background-color: #DDDDDD; border-width: 0px;">'+'<div style="display: inline-block; float: left;">'+'<div class="ico-new-company-nav" style="margin: 8px 5px;"></div>'+'</div>'+'<div style="display: inline-block; float: left;">'+'<a onclick="new CompanyWizard().open()" class="more" style="padding: 5px 0px;">Add a new company</a>'+'</div>';if(this.reader.jsonData.needMore){html+='<div style="display: inline-block; float: right;"><a class="more" onclick="Newsrooms.showMain(); return false;" style="padding: 5px;">see more</a></div>';}
Ext.get('navigation-clients-list').update(html);Ext.getCmp('sidebar').doLayout();}});response.load();},showHomePanel:function(){if(!app.getMainPanel().getItem('home-overview-panel')){Home.init().showOverview();}
app.getMainPanel().activate('home-overview-panel');},showWipPanel:function(){if(!app.getMainPanel().getItem('section-wip-panel')){var section=new WipSection();app.showPanel(section.getPanelCfg());}else{app.getMainPanel().activate('section-wip-panel');}},showSourcePanel:function(){if(!app.getMainPanel().getItem('section-sources-panel')){var section=new SourcesSection();app.showPanel(section.getPanelCfg());}else{app.getMainPanel().activate('section-sources-panel');}}});Application.Module=Ext.extend(Ext.Panel,{dialogHeight:480,dialogWidth:750,listeners:{'afterrender':{fn:function(p){if(this.parentModule){this.parentModule.init();}
this.init();this.showMain();}}},mtype:'module',isHavePreview:false,isAlwaysPreview:false,initComponent:function(){Ext.apply(this,this.initialConfig);if(!this.iconCls&&this.parentModule&&this.parentModule.iconCls){this.iconCls='ico-new '+this.parentModule.iconCls;}
this.iconCls=this.iconCls?this.iconCls:'ico-new ico-module-'+this.name;Application.Module.superclass.initComponent.apply(this);this.loadUrl=this.loadUrl?this.loadUrl:this.makeUrl('load');this.on('close',function(){});},init:function(params){if(params&&params.section){this.section=params.section;}
if(!this.isInited){this.isInited=true;this.initParams();}
return this;},initParams:function(){},initFilters:function(){return null},makeUrl:function(action){return makeUrl(this.name,action);},showOverview:function(){app.showPanel(this.getOverviewPanelCfg());},showMain:function(cfg){this.showFilteredGrid(this.getGridPanelCfg(cfg));},showPanel:function(module){app.showPanel(module);},showFilteredGrid:function(cfg,name){this.init().showGridPanel((!app.isOpenNewTab?null:name),this.getGridPanelCfg(cfg));},showGridPanel:function(name,gridCfg){name=name?name:'main';var id=this.name+'-'+name+'-grid-panel';var p=Ext.getCmp(id);gridCfg.module=gridCfg.module||this;if(!p){var cfg={module:this,id:id,xtype:'fgridpanel',name:this.name+'-'+name,title:gridCfg.title,isNewGrid:this.isNewGrid,isResearchGrid:this.isResearchGrid,gridCfg:Ext.apply({recordDef:this.rd,id:this.name+'-'+name+'-grid',name:name,cm:this.cm,sm:this.sm,pageSize:app.conf.pageSize,filters:this.initFilters(),isHavePreview:this.isHavePreview,isAlwaysPreview:this.isAlwaysPreview},gridCfg||{})};app.showPanel(cfg);}else{var grid=p.get(0);if(!grid.xtype||(grid.xtype!='fgrid'&&grid.xtype!='roweditgrid')){grid=p.get(1);}
Ext.apply(grid.store.baseParams||{},{sparams:null});grid.setFilters();grid.setFilters(gridCfg.baseParams,true);Ext.apply(grid.store.baseParams,gridCfg.baseParams);gridCfg=app.preparePanelCfg(gridCfg);if(gridCfg.title){p.setTitle(gridCfg.title);}
grid.store.load();app.getMainPanel().activate(id);}},getGridPanelCfg:function(cfg){var cfgR=Ext.apply({recordDef:this.rd,cm:this.cm,sm:this.sm,module:cfg.module||this,xtype:'fgrid',pageSize:app.conf.pageSize,filters:this.initFilters()},cfg||{});if(this.pagerUrl){Ext.apply(cfgR,{pagerUrl:this.pagerUrl});}
return cfgR;},getOverviewPanelCfg:function(){return{layout:'fit',id:this.name+'-overview-panel',autoScroll:true,module:this,items:this.overviewDataview=new Ext.DataView({store:this.overviewStore=new Ext.data.JsonStore({url:this.overviewUrl||this.makeUrl('getOverviewData'),baseParams:{limit:5},autoLoad:false,root:'results',fields:this.overviewFields,listeners:{'load':{fn:function(){if(this.initOverviewElements){this.initOverviewElements();}},scope:this}}}),tpl:this.overviewTpl,loadingText:'Loading',autoHeight:true,multiSelect:true,overClass:'x-view-over',autoWidth:true,itemSelector:'div.thumb-wrap',plugins:new Ext.ux.RefreshMenu(),listeners:{'afterrender':{fn:function(c){c.store.reload();}}}})}},retrieveItemData:function(id,f,url){Ext.Ajax.request({url:url||this.previewUrl||this.makeUrl('preview'),method:'POST',success:f||function(p){this.data=Ext.util.JSON.decode(p.responseText)[0];},failure:null,scope:this,params:{id:id}});},afterItemUpdate:function(){},setFormDefaults:function(){},getForm:function(){if(this.formPanel){return this.formPanel.getForm();}else{return null;}},resetForm:function(){this.formPanel.getForm().reset();},doAdd:function(btn){var dlg=this.getDialog();dlg.grid=btn?btn.scope:null;dlg.setTitle('Create '+this.itemName);dlg.action="create";if(dlg.closeAction=='hide'){this.resetForm();}
dlg.show();this.setFormDefaults();var tabPanel=this.formPanel.items.first();if(tabPanel&&tabPanel.xtype=="tabpanel"){tabPanel.items.each(function(p,index,len){tabPanel.setActiveTab(len-index-1);});}},edit:function(id){this.doEdit(id);},doEdit:function(btn,grid,callbackFn){var id=null;var dlg=this.getDialog();dlg.setTitle('Update '+this.itemName);dlg.action='update';if(btn.scope&&(btn.scope.xtype=='grid'||btn.scope.xtype=='fgrid')){dlg.grid=btn.scope;var m=dlg.grid.getSelections();if(m.length!=1){msg("Notice","Please select one item to edit");return;}
id=m[0].get("id");}else{id=btn;}
dlg.objId=id;if(callbackFn){dlg.afterItemUpdate=callbackFn;}
if(dlg.closeAction=='hide'){this.resetForm();}
if(!this.loadStore){this.loadStore=new Ext.data.Store({url:this.loadUrl,reader:new Ext.data.JsonReader({},this.rd)});this.loadStore.on('load',function(){this.getDialog().show();var obj=this.loadStore.getAt(0).data;this.fillDynamicFields(obj);var tabPanel=this.formPanel.items.first();if(tabPanel&&tabPanel.xtype=="tabpanel"){tabPanel.items.each(function(p,index,len){tabPanel.setActiveTab(len-index-1);});}
this.fillForm(obj);},this);}
this.loadStore.load({params:{id:id}});},fillForm:function(obj){this.getForm().setValues(obj);},beforeShow:function(){},fillDynamicFields:function(obj){},makeParamsOnDialogSubmit:function(){if(!Ext.getCmp('topics-dyn-panel')){return{}}else{var i=0;var relatedOutletsIds='';var relatedPersonsIds='';while(Ext.getCmp('related_'+(4+(i*6)))){if(i>0){relatedOutletsIds+='-';relatedPersonsIds+='-';}
relatedOutletsIds+=Ext.getCmp('related_'+(4+(i*6))).getValue();relatedPersonsIds+=Ext.getCmp('related_'+(5+(i*6))).getValue();i++;}
return{related_outlets_ids_as_string:relatedOutletsIds,related_persons_ids_as_string:relatedPersonsIds}}},getFormPanel:function(){return this.formPanel;},getRd:function(){return this.rd;},createUploadAttachmentsPanel:function(objectType,moduleName){var store=new Ext.data.JsonStore({url:app.makeUrl("showAttachments"),autoLoad:false,root:'results',baseParams:{type:objectType},fields:[{name:'id'},{name:'filename'},{name:'created_at'},{name:'attachmentable_model'},{name:'attachmentable_id'}]});var attachmentsViewTpl=new Ext.XTemplate('<table>','<tpl for=".">','<tr>','<td></td>','<td><a href="#" onclick="location.href=\'',app.makeUrl('downloadAttachment'),'?id={id}\'" onmouseover="showTip(this, \'Download\');"><img class="contacts-history-attachment-img" src="/images/icons/attach.png" />  {filename}</a></td>','<td><button onclick="'+Ext.util.Format.capitalize(moduleName)+'.attachmentsPanel.deleteAttachment({id}, {attachmentable_id})">Delete</button></td>','</tr>','</tpl>','</table><div class="x-clear"></div>');var dataView=new Ext.DataView({store:store,tpl:attachmentsViewTpl,autoHeight:true,multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap',emptyText:'No files attached'});var panel=new Ext.Panel({title:"Attachments",height:400,overflow:'auto',autoScroll:true,bodyStyle:'position:relative;',items:[dataView,this.filesPanel=new DynamicFieldsPanel({autoScroll:false,fields:[{name:"uploadFile",xtype:'fileuploadfield',id:'form-file',emptyText:'Select a file',labelSeparator:'',labelWidth:0}]})]});panel.filesPanel=this.filesPanel;panel.appendField=function(){this.filesPanel.appendField();};panel.deleteAttachment=function(attachmentId,id){Ext.MessageBox.confirm('Message','Do you really want to delete attachment?',function(btn){if(btn=="yes"){this.sendJsonRequest(app.makeUrl('deleteAttachment'),{id:id,type:objectType,deleteId:attachmentId},function(scope){scope.dataView.store.reload();});}},this);};panel.reset=function(){panel.items.each(function(p,index,len){try{var item=p.items.first();while(item){p.remove(item,true);item=p.items.first();}}catch(e){}});};panel.dataView=dataView;panel.loadAttachments=function(obj){panel.dataView.store.load({params:{id:obj.id}});};panel.doLayout();return panel;},getDialog:function(itemName,createUrl,updateUrl,isHaveTabs,title){itemName=this.itemTitle;createUrl=this.createUrl;updateUrl=this.updateUrl;title=this.dialogTitle;var name=this.name+'-'+itemName+'-dlg';var dlg=Ext.getCmp(name);if(!dlg){dlg=new Ext.Window({layout:'fit',width:this.dialogWidth,module:this,modal:true,plain:true,id:name,bodyStyle:'padding:5px;',buttonAlign:'center',height:this.dialogHeight,closeAction:'close',stateEvents:['move'],forceLayout:true,title:title?title:Ext.util.Format.capitalize(itemName)+" add/edit",items:this.formPanel=new Ext.form.FormPanel(this.initForm?this.initForm():{}),buttons:[{minWidth:80,text:'Cancel',handler:function(){dlg.close();}},{minWidth:80,text:'Reset Position',handler:function(){dlg.center();}},{minWidth:80,text:'Save',scope:this,handler:function(){if(this.getForm().isValid()){var submitUrl=createUrl||this.makeUrl('create');var waitMsg='Creating new '+itemName+' now...';var params=this.makeParamsOnDialogSubmit();if(dlg.action=="update"){submitUrl=updateUrl||this.makeUrl('update');Ext.apply(params,{id:dlg.objId});waitMsg='Update '+itemName+' now...';}
this.getForm().submit({url:submitUrl,params:params,waitMsg:waitMsg,reset:false,failure:function(form,action){var errorStr='';Ext.each(action.result.errors,function(f){if(f.msg!=undefined){errorStr+='<br/><b>'+f.id+'</b>: '+f.msg;}});Ext.MessageBox.alert('Error Message',action.result.errorInfo+errorStr);},success:function(form,action){msg('Notification',action.result.info);this.afterItemUpdate(action.result)
if(dlg.grid){dlg.grid.store.reload();}
if(dlg.afterItemUpdate){dlg.afterItemUpdate();}
dlg.close();},scope:this});}else{Ext.MessageBox.alert('Error Message','Please check tabs for errors');}}}].concat(this.getDialogAdditionalButtons())});this.itemName=itemName;}
return dlg;},getDialogAdditionalButtons:function(){return[]},activateMainPanel:function(title){this.showMain();var p=Ext.getCmp(this.name+'-main-grid-panel');if(p){if(title){p.setTitle(title);}
app.getMainPanel().activate(p);}else{}},showObjectList:function(params){this.showFilteredGrid(this.getGridPanelCfg({baseParams:params,title:params.name,hideTarget:true,headerAddons:[{text:'Remove from list',iconCls:'icon icon-cross',tooltip:'Remove from List',handler:function(){this.selectionAction(null,function(){this.sendJsonRequest(makeUrl('lists','removeFromList'),{list_id:params.list_id,ids:this.selectedIdsToJson()});});}}]}),'objectList-'+params.list_id);},showSearchResults:function(params){var id=Ext.id();this.init().showFilteredGrid(this.getGridPanelCfg({baseParams:params,title:((this.name=='persons')?'Journalists':Ext.util.Format.capitalize(this.name))+' search results'}),id);if(this.getSearchPanel(id)){this.getSearchPanel(id).form.setValues(params);if(params.informations){Ext.getCmp(this.name+'-'+id+'-search-panel-ims').setValue(params.informations);}}},showBeat:function(id,name){this.showFilteredGrid(this.getGridPanelCfg({baseParams:{beatId:id},title:name,isHideSearchPanel:true}),'beat-'+id);},showStarred:function(){this.showFilteredGrid(this.getGridPanelCfg({title:'Starred',baseParams:{starred:'starred'}}),'starred');},showTagged:function(id){this.showFilteredGrid(this.getGridPanelCfg({baseParams:{tag_id:id}}));},previewItem:function(id,data,panel){this.previewTpl.overwrite(panel.body,data);},getPanel:function(position){return Ext.getCmp(this.name+(position?'-'+position:'')+'-panel');},confirmAction:function(title,f){Ext.MessageBox.confirm('Message',title||'Confirm action',function(btn){if(btn=="yes"){f.call(this);}},this);},toggleSubCategories:function(id){var linkDiv=Ext.get(this.name+"-beat-"+id);var children=Ext.get(this.name+"-beat-children-"+id);if(!children.isDisplayed()){linkDiv.applyStyles({'background-position':'-17px -1px'});children.setDisplayed(true);}else{linkDiv.applyStyles({'background-position':'-64px -1px'});children.setDisplayed(false);}},browseByLetter:function(l){this.showFilteredGrid(this.getGridPanelCfg({title:l,baseParams:{letter:l},isHideSearchPanel:true}),'by-letter-'+l);},sendJsonRequest:function(url,params,callback,callbackError){sendJsonRequest(url,params,callback,this,callbackError);},getItemPanelCfg:function(id,itemName){var name=(itemName?itemName:this.itemTitle);if(id){name=name+'-'+id;}
return{layout:"border",id:name+'-panel',items:[{region:'east',id:name+"-preview-panel",cls:'preview',autoScroll:true,split:true,width:420,tbar:{cls:'item-toolbar',enableOverflow:true},layout:'fit'},{region:'center',overflow:'hidden',autoScroll:true,layout:'border',id:name+"-center-panel",items:[{id:name+"-top-panel",region:'north',split:false,collapsible:false,height:135},{cls:'item-tabs-panel',layout:'fit',region:'center',id:name+"-bottom-panel"}]}]};},confirm:function(fn,title){confirm(fn,this,title);},getListDetailsTpl:function(id){return new Ext.XTemplate('<tpl for=".">','<div class="details">','<div class="details-header-1" style="float: left; clear: both">','{name}','</div>','<div class="x-clear"></div>','<div class="pb20 pt10">','<b>Items selected:</b> <span id="'+id+'-items-selected">0</span> (Use all {total})','</div>','<tpl if="filters.length &gt; 0">','<div class="details-header-2" style="float: left; clear: both; padding-bottom: 20px;">','Filters: ','</div>','<div style="float: left; padding-left: 10px;"><tpl for="filters">','{name}: {value}<br>','</tpl></div>','<div class="clear"></div>','</tpl>','</div>','</tpl>').compile();},getListDetailsRD:function(){return(['total','name','list_id','list_params','list_criteria','search_params','list_items_new','list_items_remove','list_items_status','filters']);},titleRenderer:function(val,p,record,rowIndex,columnIndex,ds){return'<a href=# onclick="'+this.getModuleName()+'.showItem('+record.data.id+');" style="font-weight: bold">'+val+'</a>';},getModuleName:function(){return Ext.util.Format.capitalize(this.name);},getSearchPanel:function(id){return Ext.getCmp(this.name+'-'+id+'-search-panel');},getGridTopPanelInformationItems:function(){var items=[];if(isAdmin()){items.push({inputValue:'hidden',boxLabel:'Hidden'});}
items.push({inputValue:'private',boxLabel:'Private'},{inputValue:'public',boxLabel:'Public',checked:true});return items;},getGridTopPanelCfg:function(panel,title,hideTarget){if(panel.isResearchGrid){return[{layout:'hbox',layoutConfig:{columns:4},cls:'section-inline-form',bodyStyle:'background-color: #CEDFF5;',style:'background-color: #CEDFF5;',defaults:{bodyStyle:'background-color: #CEDFF5; padding-left: 10px'},items:[{html:'<span style="font-size: 14pt; font-weight: bold;">'+
(title?Ext.util.Format.capitalize(title):'')+'</span>'},{flex:1,xtype:'form',style:'padding-top: 3px;',hideLabels:true,id:panel.name+'-search-panel',items:[{xtype:'textfield',id:panel.id+'-searchField',listeners:{render:{fn:function(){var grid=this.grid;grid.filter=new Ext.app.SearchField({store:grid.store,emptyText:'Search for keyword within these results',name:'filter',hiddenName:'filter',applyTo:grid.id+'-panel-searchField',hideTrigger2:true,grid:grid,height:24})},scope:panel}}}]},{width:75,html:'<a href=# onclick="Ext.getCmp(\''+panel.id+'\').grid.doSearch()" class="submit-search search-word" title="Submit search"></a>'},{width:100,style:'padding-top: 14px',html:'<a href=# onclick="Ext.getCmp(\''+panel.id+'\').grid.refineSearch()">Advanced search</a>'}]}];}
var rightColumnItems=this.getGridTopPanelRightColumnItems();if(this.isInfoModule){rightColumnItems.push({columns:3,id:panel.name+'-search-panel-ims',xtype:'checkboxgroup',width:260,fieldLabel:'from this dataset',defaults:{name:'informations'},items:this.getGridTopPanelInformationItems()});}
rightColumnItems.push({xtype:'button',text:'Search',scope:this,width:80,style:'float: right; padding-right: 40px',cls:'right',handler:function(){var params=Ext.apply(Ext.getCmp(panel.name+'-search-panel').getForm().getFieldValues());this.showFilteredGrid(this.getGridPanelCfg({baseParams:params}),panel.grid.name);}});return[{cls:'overview-container',style:'padding: 10px 10px 0 20px;',autoHeight:true,html:'<div class="block-title sprite sprite-search"><h1>Find '+(this.itemsTitle?this.itemsTitle:this.itemsTitle+'s')+' that ...</h1><hr></div>'},{xtype:'form',baseCls:'top-search-form',layout:'fit',id:panel.name+'-search-panel',items:[{layout:'column',defaults:{columnWidth:.5,layout:'form',defaultType:'textfield',labelWidth:200,layoutConfig:{labelSeparator:''}},items:[{items:this.getGridTopPanelLeftColumnItems()},{items:rightColumnItems}]}]}];},selectAllItemsConfirm:function(el,id){confirm(function(){this.selectAllItems(el,id);},this,'Do you want use all items? It can take several minutes');},selectAllItems:function(callback,id,type,el){var grid=Ext.getCmp(id);var store=grid.getSelectionModel().store;var s=grid.store;var gridStore=new Ext.data.Store({url:s.url,reader:s.reader,baseParams:s.baseParams,remoteSort:true,autoLoad:false});var sel=Ext.get(callback);if(sel){sel.dom.oldHTML=sel.dom.innerHTML;sel.dom.innerHTML='<img src="'+Ext.BLANK_IMAGE_URL+'" class="icon-indicator" style="width: 16px; height:16px;"> Loading all ...';grid.getSelectionModel().lock();}
gridStore.on('load',function(s,records){Ext.each(records,function(n){if(!store.getById(n.id)){store.add(n);}});grid.getSelectionModel().unlock();if(callback&&!sel){callback(id,type,el);}else{sel.dom.innerHTML=sel.dom.oldHTML;grid.getSelectionModel().fireEvent('selectionchange');msg("Notice","Items selected");}});gridStore.reload({params:{limit:100000,start:0}});},clearSelectedItems:function(id){var sm=Ext.getCmp(id).getSelectionModel();if(!sm.isLocked()){sm.store.removeAll();sm.clearSelections(false);sm.fireEvent('selectionchange');}},getDefaultPreviewPanelCfg:function(name){return{id:name+'-grid-preview',module:this,cls:'preview',autoScroll:true,clear:function(){},tbar:[],items:{}};}});Application.ViewModule=Ext.extend(Application.Module,{initComponent:function(){this.parentModule.init();Application.ViewModule.superclass.initComponent.apply(this);this.initParams();Ext.applyIf(this,{rd:this.parentModule.rd,itemTopTpl:this.parentModule.itemTopTpl});this.store=prepareDs(this.loadUrl,this.rd,false,this.objId);this.store.addListener('load',function(store,r){if(!app.homeActivated){app.getMainPanel().activate(this);}
this.data=r[0].data;this.setTitle(this.data.title);if(this.parentModule.itemOverviewTpl){this.parentModule.itemOverviewTpl.overwrite(this.getPanel('preview').body,this.data);}
this.itemTopTpl.overwrite(this.getPanel('top').body,this.data);if(this.data.type_id==301&&!this.data.is_premium){this.initTopPanel();this.doLayout();return;}
Ext.get(this.name+'-top-panel').child('div').child('div').applyStyles('overflow: visible; height: auto; padding-bottom: 11px;');this.autocomplWord='';this.autocomplIndex='';this.autocomplDiv=Ext.get(this.name+'-textarea-autocomplete');this.logTyping=false;this.pointerDiv=Ext.get(this.name+'-textarea-pointer');if(this.pointerDiv){this.itemActionsDiv=this.pointerDiv.up('td[class=item-actions]').child('div[class=item-actions]');this.commentTextArea=new Ext.form.TextArea({name:this.name+'-comment',renderTo:this.name+'-textarea-div',id:this.name+'-textarea',autoWidth:true,emptyClass:'stream-textarea-empty',cls:'stream-textarea pointer',height:50,enableKeyEvents:true,listeners:{'afterrender':function(el)
{el.setWidth(el.getWidth()-15);},'keypress':{fn:function(t,ev)
{if(ev.getKey()!=13||this.autocomplIndex==0||!app.ds.contactsACStore.data.length){return;}
ev.stopEvent();},scope:this},'keyup':{fn:function(t,ev)
{var el=Ext.get(this.name+'-twitter-counter');var rawValue=t.getRawValue();if(el){var len=140-rawValue.length;if(len<0){len=0;}
el.update(len+'');if(len==0){msg("Notice","Twitter message limit is reached");}}
if(ev.isSpecialKey()&&ev.getKey()!=38&&ev.getKey()!=40&&ev.getKey()!=13&&ev.getKey()!=16&&ev.getKey()!=37&&ev.getKey()!=39&&ev.getKey()!=8&&ev.getKey()!=35&&ev.getKey()!=46){this.logTyping=false;this.resetAutoComplete();return;}else if((ev.getKey()==38||ev.getKey()==40)&&(app.ds.contactsACStore.data.length||app.ds.tasksOppACStore.data.length)){if(ev.getKey()==40){this.autocomplIndex++;if(this.autocomplIndex>10){this.autocomplIndex=1;}}else{this.autocomplIndex--;if(this.autocomplIndex<1){this.autocomplIndex=10;}}
this.autocomplDiv.select('a').removeClass('active');this.autocomplDiv.select('a.ac_item_'+this.autocomplIndex).addClass('active');}else if(ev.getKey()==13&&(app.ds.contactsACStore.data.length||app.ds.tasksOppACStore.data.length)){if(this.autocomplIndex==0){return;}
var acObject=this.autocomplDiv.child('a[class*=ac_item_'+this.autocomplIndex+']');t.setValue(rawValue.replace(this.autocomplWord,Ext.util.Format.stripTags(Ext.util.Format.htmlDecode(acObject.dom.innerHTML))+' '));var usedContacts=Ext.get(this.name+'-autocomplete-contacts');usedContacts.dom.value=(usedContacts.dom.value+'|'+Ext.util.Format.stripTags(Ext.util.Format.htmlDecode(acObject.dom.innerHTML)));var usedContacts=Ext.get(this.name+'-autocomplete-contacts-ids');usedContacts.dom.value=(usedContacts.dom.value+'|'+acObject.getAttribute('objectId'));var usedContacts=Ext.get(this.name+'-autocomplete-contacts-types');usedContacts.dom.value=(usedContacts.dom.value+'|'+acObject.getAttribute('type'));this.resetAutoComplete();return;}else if(ev.getKey()==16){return;}else{var offset=-1;if(ev.getKey()==8){this.autocomplWord=this.autocomplWord.substring(0,this.autocomplWord.length-1);this.autocomplIndex=0;}else if(ev.getKey()==37||ev.getKey()==39){var offset=rawValue.length-this.getInputSelection(t.el.dom).start;if(offset!=0){this.autocomplWord=rawValue.substring(rawValue.lastIndexOf(this.logTyping),rawValue.length-offset);}}if(ev.getKey()==38){this.autocomplWord=rawValue.substring(rawValue.lastIndexOf(this.logTyping));}else{var char=rawValue.charAt(rawValue.length-1);if(char=='@'||char=='#'){this.resetAutoComplete();app.ds.contactsACStore.clearFilter();app.ds.tasksOppACStore.clearFilter();this.logTyping=char;}
if(this.logTyping){this.autocomplWord=this.autocomplWord+char;}
this.autocomplWord=rawValue.substring(rawValue.lastIndexOf(this.logTyping));}
if(this.autocomplWord.length>3&&(this.autocomplWord.charAt(0)=='@'||this.autocomplWord.charAt(0)=='#')){var items='';if(this.logTyping=='@'){app.ds.contactsACStore.filter('v',this.autocomplWord.substring(1));Ext.each(app.ds.contactsACStore.getRange(0,9),function(el,ind){items=items+'<a href=# onclick="return false;" class="ac_item_'+(ind+1)+'" objectId="'+el.data.i+'" type="'+el.data.t+'">'+this.highlight(this.autocomplWord.substring(1),el.data.v)+'</a>';},this);}else if(this.logTyping=='#'){app.ds.tasksOppACStore.filter('v',this.autocomplWord.substring(1));Ext.each(app.ds.tasksOppACStore.getRange(0,9),function(el,ind){items=items+'<a href=# onclick="return false;" class="ac_item_'+(ind+1)+'" objectId="'+el.data.i+'" type="'+el.data.t+'">'+this.highlight(this.autocomplWord.substring(1),el.data.v)+'</a>';},this);}
this.autocomplDiv.dom.innerHTML=items;if(items.length){this.autocomplDiv.applyStyles('border-bottom: 1px solid #B5B8C8;');this.pointerDiv.setDisplayed(false);this.itemActionsDiv.setDisplayed(false);}else{this.autocomplDiv.applyStyles('border-bottom: none;');this.pointerDiv.setDisplayed(true);this.itemActionsDiv.setDisplayed(true);}}else{this.autocomplDiv.dom.innerHTML='';}}},scope:this},'blur':{fn:function(t,ev)
{},scope:this}}});var btn=Ext.get(this.name+'-comment-submit');btn.addListener('click',function(event,el)
{if(this.commentTextArea.getValue()||(this.objTypeN==5&&Ext.get(this.name+'-item-action').dom.value=='complete')||Ext.get(this.name+'-item-action').dom.value=='release'){btn.setDisplayed(false);var indicator=btn.up('td').child('div');indicator.setDisplayed(true);var type=Ext.get(this.name+'-item-action').dom.value;this.acObjects=new Array();var usedContacts=Ext.get(this.name+'-autocomplete-contacts').dom.value.split('|');var usedContactsIds=Ext.get(this.name+'-autocomplete-contacts-ids').dom.value.split('|');var usedContactsTypes=Ext.get(this.name+'-autocomplete-contacts-types').dom.value.split('|');var comment=this.commentTextArea.getValue();Ext.each(usedContacts,function(el,ind){if(el){if(comment.indexOf(el)!=-1){this.acObjects.push({id:usedContactsIds[ind],type:usedContactsTypes[ind],title:el});}}},this);switch(type){case'note':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('note');dlg.show();dlg.scope=this;dlg.get(0).get(1).setValue(2205);dlg.get(0).get(0).setValue(comment);var related=this.setCurrentObjAsRelated();Ext.each(this.acObjects,function(el,ind){if(el.type==3){var f=dlg.get(0).find('hiddenName','company_id');if(f[0]){f[0].setValue(el.id);}}else if(el.type==1||el.type==2){var f=dlg.get(0).find('name','person_id');if(f[0]){f[0].setValue(el.id);}}
related.push(el.type+'_'+el.id);},this);var f=dlg.get(0).find('name','related_ids');if(f[0]){f[0].setValue(related.join(','));}
if((this.data.shared_teams)&&(this.data.shared_teams>0)){var f=dlg.get(0).find('name','teams_ids');if(f[0]){f[0].reset();f[0].setValue(this.data.shared_teams.join(','));}}else{if(Streams.selectedTeamId){var f=dlg.get(0).find('name','teams_ids');if(f[0]){f[0].setValue(Streams.selectedTeamId);}}
if(this.data.is_shared){var f=dlg.get(0).find('name','teams_ids');if(f[0]){f[0].setValue(0);}}}
break;case'task':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('task');dlg.show();dlg.get(0).get(0).setValue(this.commentTextArea.getValue());var companyId=Ext.get(this.name+'-company-id');if(companyId){dlg.get(0).get(6).setValue(companyId.dom.value);}
if(this.objId&&this.objId!=1&&this.data.user_id&&this.data.account_id==1123){dlg.get(0).get(3).setValue(this.data.user_id);}
dlg.scope=this;var related=[];Ext.each(this.acObjects,function(el,ind){if(el.type<5){related.push(el.type+'_'+el.id);}},this);var f=dlg.get(0).find('name','related_ids');if(f[0]){f[0].setValue(related.join(','));}
break;case'question':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('question');dlg.get(0).get(0).setValue(this.commentTextArea.getValue());dlg.scope=this;dlg.show();break;case'request':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('request');dlg.get(0).get(0).setValue(this.commentTextArea.getValue());dlg.scope=this;Ext.each(this.acObjects,function(el,ind){if(el.type==4){dlg.get(0).get(3).setValue(el.id);}},this);dlg.show();break;case'forward':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('questionForward');dlg.get(0).get(0).setValue(this.commentTextArea.getValue());Ext.each(this.acObjects,function(el,ind){if(el.type==1||el.type==2){dlg.get(0).get(1).setValue(el.id);}},this);dlg.scope=this;dlg.show();break;case'answer':this.sendJsonRequest(makeUrl("streams","postAnswer"),{question_id:this.objId,answer:this.commentTextArea.getValue()},function(scope,data){scope.commentTextArea.enable().reset();scope.afterItemUpdate();indicator.setDisplayed(false);btn.setDisplayed(true);},function(scope){scope.commentTextArea.setValue().enable();indicator.setDisplayed(false);btn.setDisplayed(true);});break;case'tweet':if(this.commentTextArea.getValue().length>140){msg('Error','Message length ('+this.commentTextArea.getValue().length+') exceeds limit of 140 symbols');indicator.setDisplayed(false);btn.setDisplayed(true);return;}
indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('tweet');dlg.setTitle('Confirm tweet');dlg.get(0).get(0).setValue(this.commentTextArea.getValue());dlg.get(0).get(1).show();dlg.get(0).get(1).setValue(true);dlg.scope=this;dlg.show();break;case'complete':this.addCommentDlg.show();this.actionName='completion';this.actionNote.setValue(this.commentTextArea.getValue());this.actionValue=100;btn.setDisplayed(true);indicator.setDisplayed(false);break;case'pitch':sendJsonRequest(makeUrl('activities','extractRelatedObjects'),{text:this.commentTextArea.getValue()},function(scope,data){Ext.each(data.related,function(el,ind){scope.acObjects.push({id:el.id,type:el.type});},scope);indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('pitch');dlg.get(0).get(0).setValue(scope.commentTextArea.getValue());dlg.get(0).get(3).setValue(scope.objId);dlg.scope=scope;dlg.show();scope.fillRelatedObjects(dlg);},this);break;case'enquiry':sendJsonRequest(makeUrl('activities','extractRelatedObjects'),{text:this.commentTextArea.getValue()},function(scope,data){Ext.each(data.related,function(el,ind){scope.acObjects.push({id:el.id,type:el.type});},scope);indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('enquiry');dlg.get(0).get(0).setValue(scope.commentTextArea.getValue());dlg.get(0).get(3).setValue(scope.objId);dlg.scope=scope;dlg.show();scope.fillRelatedObjects(dlg);},this);break;case'release':indicator.setDisplayed(false);btn.setDisplayed(true);var dlg=Streams.getDlg('release');dlg.get(0).get(0).setValue(this.commentTextArea.getValue());dlg.get(0).get(1).setValue(this.objId);dlg.scope=this;dlg.show();break;}}},this);}
this.initTopPanel();this.doLayout();},this);this.store.addListener('exception',function(e,e1,e2,e3){this.ownerCt.remove(this);},this);this.activitiesCm=new Ext.grid.ColumnModel([new Ext.grid.CheckboxSelectionModel(),{id:'message',header:"Message",dataIndex:'message',width:330,renderer:function(v,meta,r)
{return'<div class="icon icon-'+r.get("icon")+'"></div>'+v;}},{header:"Date",hidden:true,dataIndex:'created_at',renderer:dRenderer,width:100},{header:"Time",dataIndex:'time',width:100,sortable:false}]);this.activitiesRd=['id','type_id','icon','message','time',{name:'created_at',type:'date',dateFormat:app.conf.dtFormat}];this.on('render',function(){this.store.load();},this);},initParams:function(){},getStreamPanel:function(){return Ext.getCmp(this.name+'-stream-panel');},afterStreamUpdate:function(){if(this.getStreamPanel()){this.getStreamPanel().refresh();}},afterItemUpdate:function(){this.store.reload();this.afterStreamUpdate();},showMain:function(){},resetAutoComplete:function(){this.logTyping=false;this.autocomplWord='';this.autocomplDiv.dom.innerHTML='';this.autocomplIndex=0;this.autocomplDiv.applyStyles('border-bottom: none;');this.pointerDiv.setDisplayed(true);this.itemActionsDiv.setDisplayed(true);Ext.get(this.name+'-top-panel').child('div').child('div').applyStyles('overflow: visible; height: auto; padding-bottom: 11px;');},getInputSelection:function(el){var start=0,end=0,normalizedValue,range,textInputRange,len,endRange;if(typeof el.selectionStart=="number"&&typeof el.selectionEnd=="number"){start=el.selectionStart;end=el.selectionEnd;}else{range=document.selection.createRange();if(range&&range.parentElement()==el){len=el.value.length;normalizedValue=el.value.replace(/\r\n/g,"\n");textInputRange=el.createTextRange();textInputRange.moveToBookmark(range.getBookmark());endRange=el.createTextRange();endRange.collapse(false);if(textInputRange.compareEndPoints("StartToEnd",endRange)>-1){start=end=len;}else{start=-textInputRange.moveStart("character",-len);start+=normalizedValue.slice(0,start).split("\n").length-1;if(textInputRange.compareEndPoints("EndToEnd",endRange)>-1){end=len;}else{end=-textInputRange.moveEnd("character",-len);end+=normalizedValue.slice(0,end).split("\n").length-1;}}}}
return{start:start,end:end}},initTopPanel:function(){this.doLayout();},highlight:function(word,str){var regex=new RegExp('(<[^>]*>)|(\\b'+word+')','ig');var replace="$1<b>$2</b>";if(regex.exec(str)){return str.replace(regex,replace);}
return str;},setCurrentObjAsRelated:function(){var related=[];if(this.objTypeN&&this.objId){related.push(this.objTypeN+'_'+this.objId);}else if(this.data&&this.data.type_id){if(this.data.type_id==302){related.push('1_'+this.data.person_id);}else if(this.data.type_id==301){related.push('3_'+this.data.company_id);}else if(this.data.type_id==304){related.push('4_'+this.data.outlet_id);}}
return related;},fillRelatedObjects:function(dlg){var related=new Array();Ext.each(this.acObjects,function(el,ind){related.push(el.type+'_'+el.id);},this);var f=dlg.get(0).find('name','related_ids');if(f[0]){f[0].setValue(related.unique().join(','));}}});Ext.state.ServerProvider=function(config){Ext.state.ServerProvider.superclass.constructor.call(this);Ext.apply(this,config);this.state={};this.getState();};Ext.extend(Ext.state.ServerProvider,Ext.state.Provider,{getState:function(){var response=new Ext.data.Store({url:this.url,baseParams:{subaction:'get'},reader:new Ext.data.JsonReader({record:'success',success:'@success'},[{name:'state'}])});response.on('load',function(){if(response.reader.jsonData.success){this.state=Ext.util.JSON.decode(response.reader.jsonData.state);}},this);response.load();},setState:function(){var response=new Ext.data.Store({url:this.url,baseParams:{subaction:'set',state:Ext.encode(this.state)},reader:new Ext.data.JsonReader({record:'success',success:'@success'},[{name:'state'}])});response.load();},set:function(name,value){Ext.state.ServerProvider.superclass.set.call(this,name,value);this.setState();this.changesCount=0;}});FilteredGridPanel=Ext.extend(Ext.Panel,{layout:'border',xtype:'fgridpanel',initComponent:function(){Ext.apply(this,this.initialConfig);if(this.gridCfg.title){this.title=this.gridCfg.title;this.hideTarget=this.gridCfg.hideTarget;}
if(this.isNewGrid){var cfgNewGrid={collapsible:true,collapsed:this.gridCfg.isHideSearchPanel?true:false,collapseMode:'mini',height:180}
var cfgResearchGrid={collapsible:false,collapsed:false,split:false,header:false,height:40}
this.items=[Ext.apply({region:'north',layout:'fit',forceLayout:true,items:this.module.getGridTopPanelCfg(this,this.title,this.hideTarget),listeners:{beforecollapse:{fn:function(p){Ext.getCmp(this.name+'-collapse-btn').toggle(false);},scope:this},beforeexpand:{fn:function(p){Ext.getCmp(this.name+'-collapse-btn').toggle(true);},scope:this},expand:{fn:function(p){p.doLayout();},scope:this}}},this.isResearchGrid?cfgResearchGrid:cfgNewGrid),this.grid=new FilteredGrid(Ext.apply(this.gridCfg,{xtype:'fgrid',layout:'fit',header:false,isResearchGrid:this.isResearchGrid,region:'center',isNewGrid:true}))];}else{if(this.gridCfg.xtype=='roweditgrid'){this.items=[this.grid=new RowEditGrid(Ext.apply(this.gridCfg,{xtype:'roweditgrid',layout:'fit',header:false,region:'center'}))];}else{this.items=[this.grid=new FilteredGrid(Ext.apply(this.gridCfg,{xtype:'fgrid',layout:'fit',header:false,region:'center'}))];}}
if(this.name.slice(-5)=='-main'){this.module.grid=this.grid;}
if(this.module.isHavePreview||this.module.isAlwaysPreview){this.items.push({id:this.name+'-grid-details-panel',layout:'fit',region:'east',cls:'details-panel',width:250,split:true,collapsible:false,autoScroll:true,tbar:this.getDetailsPanelToolbarCfg(),items:this.getDetailsPanelItemsCfg(),listeners:{render:{fn:function(p){var state=Ext.state.Manager.getProvider().get(p.id);if(!(state&&state.width)){p.setWidth(p.getWidth()/100*40)}},scope:this}}});}
FilteredGridPanel.superclass.initComponent.apply(this);},getDetailsPanelToolbarCfg:function(){if(this.module.getDetailsPanelToolbarCfg){return this.module.getDetailsPanelToolbarCfg(this.name);}},getDetailsPanelItemsCfg:function(){var cfg=[Ext.apply(this.getPreviewPanelCfg(),{region:'center'})];return cfg;},getPreviewPanelCfg:function(){if(this.module.getPreviewPanelCfg){return this.module.getPreviewPanelCfg(this.name,this.grid);}else{return{id:this.name+'-grid-preview',module:this.module,cls:'preview',name:this.name,autoScroll:true,clear:function(){if(this.body){this.body.update('');}},items:{xtype:'dataview',store:prepareDs(this.module.makeUrl('preview'),this.module.rd,false,true),tpl:this.module.previewTpl,grid:this.grid,autoHeight:true,loadingText:'Loading'},tbar:[]};}}});Ext.reg('fgridpanel',FilteredGridPanel);FilteredGrid=Ext.extend(Ext.grid.EditorGridPanel,{initComponent:function(){var cfg=Ext.apply({pageSize:app.conf.pageSize,monitorWindowResize:false,autoScroll:true,layout:'fit',loadMask:true,trackMouseOver:true,stripeRows:true,isHaveFilter:true,isHaveEdit:true,isHaveDelete:true,isHavePager:true,isHavePreview:false,isAlwaysPreview:false,passDataToView:true,isLoading:0,specialHdrAddonsOrder:false,summaryLength:400},this.initialConfig);if(cfg.module){this.module=cfg.module;Ext.applyIf(cfg,{pagerUrl:cfg.module.makeUrl('getPager'),deleteUrl:cfg.module.makeUrl('delete'),updateUrl:cfg.module.makeUrl('update')});}
if(cfg.isHaveEdit&&this.module){cfg.dblclickEdit=cfg.dblclickShow?false:true;}
Ext.apply(cfg,{viewConfig:Ext.apply({enableRowBody:true,isShowSummary:cfg.summary,getRowClass:function(record,rowIndex,p,ds){var xf=Ext.util.Format;if(this.isShowSummary){eval('var v = record.data.'+cfg.summary+';');p.body='<div class="grid-summary">'+
(cfg.summaryLength>0?xf.ellipsis(xf.stripTags(v),cfg.summaryLength):xf.stripTags(v))
+'</div>';return'x-grid3-row-expanded';}
return'x-grid3-row-collapsed';}},cfg.viewConfig||{})});var reader=new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},cfg.recordDef);var baseParams=Ext.apply({},cfg.baseParams||{}),ds=null,view=null,tb=null;if(cfg.groupField!=undefined){if(cfg.showGroupName==undefined){cfg.showGroupName=false;}
var groupCfg={url:cfg.pagerUrl,reader:reader,baseParams:baseParams,remoteSort:true,remoteGroup:true,autoLoad:false};if(cfg.groupField!=''){groupCfg=Ext.apply(groupCfg,{groupField:cfg.groupField,sortInfo:cfg.sortInfo||{field:cfg.groupField,direction:"ASC"}});}else{groupCfg=Ext.apply(groupCfg,{sortInfo:cfg.sortInfo||{field:'id',direction:"ASC"}});}
ds=new Ext.data.GroupingStore(groupCfg);view=new Ext.grid.GroupingView(Ext.apply({forceFit:true,enableGroupingMenu:true,showGroupName:cfg.showGroupName,groupTextTpl:'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'},cfg.viewConfig||{}));}else{ds=new Ext.data.Store({url:cfg.pagerUrl,reader:reader,sortInfo:cfg.sortInfo,baseParams:baseParams,remoteSort:true,autoLoad:false});if(cfg.viewConfig&&cfg.viewConfig.rowHeight){view=new Ext.ux.grid.BufferView(Ext.apply({forceFit:cfg.autoExpandColumn?false:true,scrollDelay:false},cfg.viewConfig||{}));}else{view=new Ext.grid.GridView(Ext.apply({forceFit:cfg.autoExpandColumn?false:true},cfg.viewConfig||{}));}}
ds.grid=this;ds.on('beforeload',function(s,options){if(!this.isResearchGrid){var filters=[];Ext.each(this.filters,function(e){filters.push(e);});if(this.filter){filters.push(this.filter);}
Ext.each(filters,function(f){var v=f.getValue();if(f.xtype=='datefield'){v=Ext.util.Format.date(f.getValue(),app.conf.dateFormat);}
if(!Ext.isDefined(f.getValue())){v='';}
eval('options.params.'+f.hiddenName+'=\''+(Ext.isString()?String.escape(v):v)+'\';');});}else{if(this.filter){this.searchForm.getForm().setValues({filter:this.filter.getValue()})}
Ext.apply(options.params,this.baseParams);var par={};if(this.refineSearchDlg){Ext.apply(options.params,removeEmptyProperties(this.searchForm.getForm().getFieldValues()));}
if(s.baseParams.list_id>0){var tb=this.getTopToolbar().get(0);tb.get(0).show();tb.get(1).show();}}
if(s.isLoading!==false){Ext.apply(options.params,s.baseParams||{});}
if(Ext.urlEncode(options.params)==Ext.urlEncode(s.baseParams)){if(!s.isLoading){s.isLoading=true;return true;}
return false;}
return true;},this);ds.on('load',function(s){s.isLoading=false;},this);Ext.apply(cfg,{store:ds,view:view});var newCm=[];if(Ext.isArray(cfg.cm)){Ext.each(cfg.cm,function(i){if(i.id=='checker'){if(i.xtype=='storesm'){newCm.push(new StoreSelectionModel({recordDef:cfg.recordDef}));}else{newCm.push(new Ext.grid.CheckboxSelectionModel())}}else{newCm.push(i);}});}
Ext.apply(this,cfg);this.cm=Ext.isArray(cfg.cm)?new Ext.grid.ColumnModel({columns:newCm}):cfg.cm;this.sm=!Ext.isEmpty(this.sm)?this.sm:(newCm[0]&&newCm[0].id=='checker'?newCm[0]:(this.cm.getColumnById('checker')||new Ext.grid.CheckboxSelectionModel()));this.cm.defaultSortable=true;this.cp=new Ext.state.Manager.getProvider();this.filtersState=this.cp.get('Filters_'+this.id,[]);if(cfg.isHaveFilter!=false){var tbItems=[];var htbCfg=this.getHeaderTbCfg()
if(htbCfg){if(cfg.specialHdrAddonsOrder){htbCfg.items=this.reorderHeaderTbItems(htbCfg);}
tbItems.push(htbCfg);}
tbItems.push(this.getFiltersTbCfg());tb=new Ext.Panel({items:tbItems});}else if(cfg.headerAddons){var tbItems=[];this.addAddons(cfg.headerAddons,tbItems);tb=new Ext.Toolbar({items:tbItems});}
var bb;if(cfg.isHavePager!=false){bb=new Ext.PagingToolbar(Ext.apply({pageSize:this.pageSize,plugins:new Ext.ux.Andrie.pPageSize({beforeText:'Per page',afterText:''}),store:ds,displayInfo:true,displayMsg:'Display {0} - {1} of {2}',emptyMsg:"No items to display"},this.getFooterTbCfg()));}else{bb=new Ext.Toolbar(this.getFooterTbCfg());}
this.tbar=tb;this.bbar=bb;FilteredGrid.superclass.initComponent.call(this);var baseP=this.baseParams;if(this.isResearchGrid){this.refineSearchDlg=this.initRefineSearchDlg();this.refineSearchDlg.show().hide();this.searchForm.getForm().setValues(this.baseParams);this.refineListCriteriaDlg=this.initRefineListCriteriaDlg(this.initSearchForm(true));}
if(!this.isNewGrid){this.getSelectionModel().on('selectionchange',function(model){var counter=Ext.get(this.id+'-items-selected');if(counter){counter.dom.innerHTML=model.selections.length+'';}},this);}
if(this.module){if(this.module.isInfoModule){this.store.on('beforeload',function(){try{var ims=new Array();Ext.getCmp(this.module.name+'-'+this.name+'-search-panel-ims').items.each(function(el){if(el.getValue()){ims.push(el.getRawValue());}},this);this.store.baseParams.ims=ims.join(',');}catch(e){this.store.baseParams.ims='public';}},this);}
this.on('rowdblclick',function(g,rowIndex,e){if(this.dblclickEdit){var d=this.store.data.items[rowIndex].data;if(d.is_editable){this.module.doEdit(d.id,d,this);}}else if(this.dblclickShow){var r=this.store.data.items[rowIndex],id=this.showFieldId?r.data[this.showFieldId]:r.data.id;if(typeof this.module.showItem=='function'){this.module.showItem(id,this.passDataToView?r.data:null,this);}}});if(this.module.name=='persons'||this.module.name.indexOf('list-')==0||this.module.name=='spokespeople'){this.store.on('load',function(){var records=this.store.getRange();var els=Ext.get(this.getEl()).select("div[class='x-voter grid-voter']");for(var i=0;i<els.getCount();i++){var record=records[i];new Ext.ux.Voter({applyTo:els.elements[i],url:makeUrl('contacts','setVote')+"?contactId="+record.get("contact_id"),value:record.get("rate"),scope:this.module,callback:function(voter,data){voter.setValue(data.value);}});}},this);}
if(this.isNewGrid){this.store.on('load',function(){if(this.module.refreshListDetails){this.module.refreshListDetails(this);}else{this.refreshListDetails(this);}},this);}}
this.on('afterrender',function(){if(this.baseParams){this.setFilters(this.baseParams,true);}
this.store.load();});if(this.isNewGrid){this.on('cellclick',function(grid,rowIndex,cellIndex){if(cellIndex){grid.previewItem(rowIndex);}else{grid.showListDetails();}},this);this.on('rowbodyclick',function(grid,rowIndex){grid.previewItem(rowIndex);},this);}else{this.getSelectionModel().on('rowselect',function(sm,index,record){var editable=record.data.is_editable;if(this.isHavePreview||this.isAlwaysPreview){if(!Ext.isEmpty(editable)){if(this.deleteBtn){this.deleteBtn.setVisible(editable);}
if(this.editBtn){this.editBtn.setVisible(editable);}}
this.previewItem(index);}else{if(!Ext.isEmpty(editable)){if(sm.grid.deleteBtn){sm.grid.deleteBtn.setVisible(editable);}
if(sm.grid.editBtn){sm.grid.editBtn.setVisible(editable);}}}},this,{buffer:250});}
this.on('contextmenu',function(e){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.store.reload();},scope:this}]});}
this.contextMenu.showAt(e.getXY());});if(this.isResearchGrid){this.on('beforedestroy',function(){this.refineSearchDlg.destroy();this.refineListCriteriaDlg.destroy();},this)}},saveFiltersState:function(){var newState=[];Ext.each(this.filters,function(f){newState.push(!f.hidden);});this.filtersState=newState;this.cp.set('Filters_'+this.id,this.filtersState);},setFilters:function(v,isBase){if(typeof v=='undefined'){Ext.each(this.filters,function(f){f.reset();});this.filter.reset();return;}
Ext.each(this.filters,function(f,i){Ext.iterate(v,function(ok,ov){if(ok==f.hiddenName){f.setValue(ov);if(f.xtype=='datefield'){f.setValue(ov);}
if(isBase){f.setDisabled(true);}
this.showFilter(null,true,f);}},this);},this);if(this.filter&&v.filter){this.filter.setValue(v.filter);}},setFilter:function(name,v,rawValue){Ext.each(this.filters,function(f){if(f.hiddenName==name){f.setValue(v);if(rawValue){f.setRawValue(rawValue);}}});},resetFilters:function(){this.setFilters();this.setFilters(this.baseParams||{},true);this.store.load();},loadFilters:function(param){this.setFilters(param);this.store.reload();},showFilter:function(item,check,filter){filter.setVisible(check);this.saveFiltersState();},previewItem:function(index){var record=this.store.getAt(index);this.getPreviewPanel();var id=this.previewFieldId?record.data[this.previewFieldId]:record.data.id;if(this.previewPanel&&!this.previewPanel.collapsed){var data=record.data;if(this.module&&this.module.isTagged){data.tags_links=makeLinks(data.tags_ids,data.tags,'Ext.getCmp(\''+this.id+'\').showTagged');if(data.tags==null){data.tags='';}}
data.beats_str=makeLinks(data.beats_ids,data.beats,Ext.util.Format.capitalize(this.module.name)+'.showBeat');this.previewPanel.data=data;this.previewPanel.clear();this.previewPanel.grid=this;this.previewShowingItem=true;this.module.previewItem(id,data,this.previewPanel);}},getFiltersTbCfg:function(){var items=[],filterItems=[];if(this.filters){if(this.module&&this.module.isTagged&&!isGuest()){}
Ext.each(this.filters,function(f,i){if(!f.hidden){var checked=false;try{checked=this.filtersState[i];}catch(e){}
f.setVisible(checked);filterItems.push({text:f.labelName,checked:checked,xtype:'menucheckitem',checkHandler:this.showFilter.createDelegate(this,[f],true)});}},this);if(!this.isNewGrid){items.push({text:'Search',menu:{items:filterItems}},this.filters);}}
if(!this.isResearchGrid){items.push(this.filter=new Ext.app.SearchField({store:this.store,name:'filter',hiddenName:'filter',grid:this,width:160}),' ');if(this.isNewGrid){items.push('-',{text:this.isHideSearchPanel?'Show advanced search':'Hide advanced search',pressed:this.isHideSearchPanel?false:true,id:this.module.name+'-'+this.name+'-collapse-btn',enableToggle:true,toggleHandler:function(btn,pressed){var p=this.module.getSearchPanel(this.name).ownerCt;if(!pressed){btn.setText('Show advanced search');p.collapse();}else{btn.setText('Hide advanced search');p.expand();}},scope:this});}}
return{xtype:'toolbar',items:items};},getHeaderTbCfg:function(){var items=[];if(this.isResearchGrid){items.push({text:'Show',hidden:true},this.listItemsStatus=prepareComboBox({store:app.ds.listItemStatus,width:100,value:'Included',hidden:true,listeners:{select:{fn:function(cb){this.store.baseParams.list_item_status=cb.getValue();this.store.reload();},scope:this}}}),'-');}
if(this.isNewGrid){items.push({iconCls:'icon icon-go-to-post',text:'Open selected',scope:this,handler:function(){var m=this.getSelections();for(var i=0,len=m.length;i<len;i++){var d=m[i].data;var type=Contacts.getTypeById(d.type);this.module.showItem(d.contact_id,type,this);}}});items.push('-');}
if(!isGuest()){if(this.isHaveEdit&&this.module){items.push(this.addBtn=new Ext.Toolbar.Button({iconCls:'icon icon-add',tooltip:'Add item',text:'Add',scope:this,handler:function(b){var fn=this.doAdd||this.module.doAdd;fn.call(this.module,b,this);}}));}
if((this.module)&&((this.module.name=='persons')||(this.module.name=='outlets'))){if(isPartnerAdmin()){if(this.isHaveEdit&&this.module){items.push(this.editBtn=new Ext.Toolbar.Button({iconCls:'icon icon-edit',tooltip:'Edit item',text:'Edit',scope:this,handler:function(b){var fn=this.doEdit||this.module.doEdit;fn.call(this.module,b,this);}}));}
if(this.deleteUrl!=undefined&&this.isHaveDelete){items.push(this.deleteBtn=new Ext.Toolbar.Button({iconCls:'icon icon-delete',tooltip:'Delete item',text:'Delete',scope:this,handler:function(){this.selectionAction('Do you really want to delete?',function(){this.sendJsonRequest(this.deleteUrl,Ext.apply(this.baseParams||{},{ids:this.selectedIdsToJson()}),function(scope){scope.store.reload();msg("Notice","Deletion complete");});});}}));}}}
else{if(this.isHaveEdit&&this.module){items.push(this.editBtn=new Ext.Toolbar.Button({iconCls:'icon icon-edit',tooltip:'Edit item',text:'Edit',scope:this,handler:function(b){var fn=this.doEdit||this.module.doEdit;fn.call(this.module,b,this);}}));}
if(this.deleteUrl!=undefined&&this.isHaveDelete){items.push(this.deleteBtn=new Ext.Toolbar.Button({iconCls:'icon icon-delete',tooltip:'Delete item',text:'Delete',scope:this,handler:function(){this.selectionAction('Do you really want to delete?',function(){this.sendJsonRequest(this.deleteUrl,Ext.apply(this.baseParams||{},{ids:this.selectedIdsToJson()}),function(scope){scope.store.reload();try{if(scope.module.name=='teams'){app.getMainPanel().get(1).store.reload();}}catch(e){}
msg("Notice","Deletion complete");});});}}));}}}
if(this.headerAddons){this.addAddons(this.headerAddons,items);}
return items.length?{xtype:'toolbar',items:items}:null;},getFooterTbCfg:function(){var items=['-'];if(this.summary){items.push({pressed:true,enableToggle:true,text:'Summary',tooltip:{title:'Summary',text:'View a short summary of each item in the list'},iconCls:'icon icon-details',scope:this,toggleHandler:function(btn,pressed){this.toggleSummary(pressed);}});}
if(this.isHavePreview&&!this.isAlwaysPreview){items.push(' ',{pressed:true,enableToggle:true,text:'Preview Panel',tooltip:{title:'Preview Panel',text:'Show or hide the Preview Panel'},iconCls:'icon icon-preview-right',toggleHandler:function(btn,pressed){var p=Ext.getCmp(this.id+'-details-panel');if(pressed){p.show();}else{p.hide();}
this.ownerCt.doLayout();},scope:this});}
if(this.footerAddons){this.addAddons(this.footerAddons,items);}
return{height:26,items:items};},addAddons:function(addons,items){if(items.length&&items[items.length-1]!='-'){items.push('-');}
Ext.each(addons,function(addon){if(addon=='update'){items.push({iconCls:'icon icon-accept',tooltip:'Save changes',text:'Save',handler:function(){var data=this.getJsonData(true);if(data=="[]"){msg('Notification','Nothing to update');}else{this.sendJsonRequest(this.updateUrl,Ext.apply(this.baseParams||{},{data:data}),function(scope){msg('Notification','Your changes were saved');scope.store.reload();try{scope.afterItemUpdate();}catch(e){}});}},scope:this});}else if(addon=='add'){items.push({iconCls:'icon icon-add',tooltip:'Add item',text:'Add',handler:function(){var rc=Ext.data.Record.create(this.recordDef);var item=new rc(this.newItem||{});this.stopEditing();this.store.insert(0,item);this.startEditing(0,0);},scope:this});}else if(addon=='delete'){items.push({iconCls:'icon icon-delete',tooltip:'Delete',text:'Delete',handler:function(){this.selectionAction('Do you really want to delete?',function(){this.sendJsonRequest(this.deleteBulkUrl,Ext.apply(this.baseParams||{},{ids:this.selectedIdsToJson()}),function(scope){Ext.each(scope.getSelections(),function(o){scope.store.remove(o);try{scope.afterItemUpdate();}catch(e){}},scope);});});},scope:this});}else if(addon=='contact'){items.push({iconCls:'icon icon-person',tooltip:'Show contact',text:'Show contact',handler:function(){try{showContact(this.getSelections()[0].data.contact_id);}catch(e){}},scope:this});}else if(addon=='clone'){items.push({iconCls:'icon icon-clone',tooltip:'Clone item',text:'Clone',handler:function(){var m=this.getSelections();if(m.length!=1){msg("Notice","Please select one item to clone");return;}
this.sendJsonRequest(this.module.makeUrl('clone'),{id:m[0].get("id")},function(scope,data){if(data.id){scope.module.doEdit(data.id);}
scope.store.reload();});},scope:this});}else if(addon=='postpone'){items.push({iconCls:'icon icon-table-add',text:'Postpone',menu:this.module.postponeMenu,scope:this});}else if(addon=='complete'){items.push({text:'Complete',iconCls:'icon icon-complete',tooltip:'Complete',menu:this.module.completeMenu,scope:this});}else if(addon=='priority'){items.push({text:'Priority',iconCls:'icon icon-chart-bar',tooltip:'Change priority',menu:this.module.priorityMenu,scope:this});}else if(addon=='groupBy'){items.push({split:true,text:'Group by',iconCls:'icon icon-preview-right',handler:this.module.groupGrid.createDelegate(this,[]),menu:this.module.groupByMenu});}else{items.push(Ext.applyIf(addon,{scope:this}));}},this);},selectedIdsToJson:function(fieldName){if(!fieldName){fieldName="id"}
var m=this.getSelections(),v=[]
Ext.each(m,function(n){v.push({id:n.get(fieldName)});});return Ext.encode(v);},addClickOutsideEvent:function(){if(!this.events.clickoutside){this.addEvents({"clickoutside":true});}
if(!Ext.grid.Grid.prototype.handleClickOutside){Ext.grid.Grid.override({handleClickOutside:function(e){if(Ext.get(e.getTarget()).findParent(".x-grid-container")!=this.container.dom){this.fireEvent("clickoutside",e,this);}}});}
Ext.get(document.body).on("click",this.handleClickOutside,this);},saveSelectedItemsAsList:function(id,name,menu,ids){sendJsonRequest(makeUrl('lists','updateParams'),{id:id,type:this.module.itemTitle,name:name,ids:ids},function(){if(menu){menu.destroy();}});},saveGridAsList:function(id,name,menu){var params=Ext.apply({},this.store.baseParams);this.sendJsonRequest(makeUrl('lists','updateParams'),Ext.apply(params,{id:id,name:name,type:this.module.itemTitle}),function(scope,data){if(menu){menu.destroy();}
app.reloadNavigationNode('research',data.node_id||'node-'+scope.module.name+'-overview');});},toggleSummary:function(show){this.view.isShowSummary=show;this.view.rowHeight=show?this.view.rowHeight+25:this.view.rowHeight-25;this.view.refresh();},getJsonDataFromSelection:function(){var v=[];Ext.each(this.getSelections(),function(f){v.push(f.data);});return Ext.encode(v);},getJsonData:function(dirty){var ds=this.store,v=[];ds.each(function(f){if(!dirty||(dirty&&f.dirty)){v.push(f.data);}},this);return Ext.encode(v);},getSelections:function(){return this.getSelectionModel().getSelections();},selectionAction:function(title,f,error){error=error?error:'Please select at least one item to process';if(this.getSelectionModel().getSelections().length>0){if(title){Ext.MessageBox.confirm('Message',title,function(btn,text){if(btn=='yes'){f.call(this);}},this);}else{f.call(this);}}else{Ext.MessageBox.alert('Error',error||'Please select at least one item to process');}},reorderHeaderTbItems:function(tbItems){for(var i=0;i<this.headerAddons.length;i++){for(var j=0;j<tbItems.items.length;j++){var tmp=false;try{if(this.headerAddons[i]==tbItems.items[j].text.toLowerCase()||this.headerAddons[i].text.toLowerCase()==tbItems.items[j].text.toLowerCase()){tmp=true;}}catch(e){}
if(tmp){this.headerAddons[i]=tbItems.items[j];tbItems.items.splice(j,1);j=1000;}}}
return this.headerAddons;},getPreviewPanel:function(){if(!this.previewPanel){this.previewPanel=Ext.getCmp(this.id+'-preview');if(this.previewPanel){this.previewPanel.grid=this;}}
return this.previewPanel;},afterItemUpdate:function(){this.module.afterItemUpdate();},showTagged:function(id){this.store.baseParams.tag_id=id;this.store.reload();},sendJsonRequest:function(url,params,callback,callbackError){if(!callback){callback='reload';}
sendJsonRequest(url,params,callback,this,callbackError);},showListDetails:function(){var p=this.getPreviewPanel();if(!p)return;p.getTopToolbar().removeAll();p.getTopToolbar().add('<b>Hint:</b> Click once anywhere on '+(this.module.itemTitle?this.module.itemTitle:'item in grid')+' to preview in this panel');p.getTopToolbar().setHeight(27);var el=p.get(0).el;el.hide().update(this.module.getListDetailsTpl(this.id).apply(this.listDetailsStore.getAt(0).data)).slideIn('l',{stopFx:true,duration:.2});p.doLayout();if(this.isNewGrid){if(this.module.initListDetails){this.module.initListDetails(this.id);}
Ext.get(this.id+'-items-selected').dom.innerHTML=this.getSelectionModel().store.getCount()+'';}},refreshListDetails:function(grid){var params={};if(this.refineSearchDlg){var searchForm=this.searchForm;Ext.apply(params,searchForm.getForm().getFieldValues());}else{Ext.each(grid.filters,function(f){if(f.getValue()){if(f.xtype=='datefield'){eval('params.'+f.hiddenName+'=\''+Ext.util.Format.date(f.getValue(),app.conf.dateFormat)+'\';');}else{params[f.hiddenName]=f.getValue();}}},grid);if(grid.filter){params.filter=this.filter.getValue();}}
this.listDetailsStore=new Ext.data.JsonStore({url:this.module.listDetailsUrl||this.module.makeUrl('getListDetails'),baseParams:Ext.apply(grid.store.baseParams,params),autoLoad:true,fields:this.module.getListDetailsRD(),listeners:{'load':{fn:function(scope,rec){this.listCriteria=rec[0].data.list_criteria;this.showListDetails();},scope:this}}});},getListDetailsRD:function(){return new Array();},initSearchForm:function(forList){var form=null;var name=forList?this.name+'-listCriteria':this.name;switch(this.module.name){case'opportunities':form=Opportunities.getSearchFormCfg(name);break;case'outlets':form=Outlets.getSearchFormCfg(name);break;case'media':form=Media.init().getSearchFormCfg(name);break;case'persons':form=Persons.getSearchFormCfg(name);break;case'relevant_journalists':form=RelevantJournalists.getSearchFormCfg(name);break;}
return form;},initRefineSearchDlg:function(){var dlg=new Ext.Window({layout:'fit',width:500,modal:true,plain:true,id:this.name+'-refineDlg',bodyStyle:'padding:5px;',buttonAlign:'center',cls:'refine-dlg',closeAction:'hide',forceLayout:true,title:"Refine this search",items:this.searchForm=this.initSearchForm(false),autoHeight:true,buttons:[{minWidth:80,text:'Cancel',handler:function(){dlg.hide();}},{minWidth:80,text:'Save',handler:function(){this.filter.setValue(this.searchForm.getForm().findField('filter').getValue());Contacts.clearSelectedItems(this.id);this.store.reload();dlg.hide();},scope:this}]});return dlg;},refineSearch:function(){if(!this.refineSearchDlg){this.refineSearchDlg=this.initRefineSearchDlg();}
this.refineSearchDlg.show();},doSearch:function(){Contacts.clearSelectedItems(this.id);this.store.reload();},initRefineListCriteriaDlg:function(form){var dlg=new Ext.Window({layout:'fit',width:500,modal:true,plain:true,id:this.name+'-refine-listCriteria-Dlg',bodyStyle:'padding:5px;',buttonAlign:'center',cls:'refine-dlg',closeAction:'hide',forceLayout:true,title:"Revise this list criteria",items:form,autoHeight:true,buttons:[{minWidth:80,text:'Cancel',handler:function(){dlg.hide();}},{minWidth:80,text:'Revise',handler:function(){Ext.MessageBox.alert('Notification','Influencing will revise this list based on the new criteria you have entered. <br>This may take a few minutes, and you will receive a notification when it is complete');var params=this.refineListCriteriaDlg.get(0).getForm().getFieldValues();params.id=this.store.baseParams.list_id;this.sendJsonRequest(makeUrl('lists','updateParams'),params,function(scope,data){scope.store.reload();dlg.hide();},this);},scope:this}]});return dlg;},refineListCriteria:function(){var form=this.refineListCriteriaDlg.get(0);Ext.each(this.listCriteria,function(n){var v=Ext.isArray(n.value)?n.value.join(','):n.value;var f=form.find('hiddenName',n.name);if(f.length){f[0].setValue(n.value);}});this.refineListCriteriaDlg.show();}});Ext.reg('fgrid',FilteredGrid);StoreSelectionModel=Ext.extend(Ext.grid.CheckboxSelectionModel,{checkOnly:true,xtype:'storesm',constructor:function(config){Ext.apply(this,config);StoreSelectionModel.superclass.constructor.call(this);var reader=new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},config.recordDef);this.store=new Ext.data.Store({reader:reader,autoLoad:false});this.on('rowselect',function(sm,index,record){if(!this.store.getById(record.id)){this.store.add(record);}},this);this.on('rowdeselect',function(sm,index,record){if(this.store.getById(record.id)){this.store.remove(record);}},this);this.on('selectionchange',function(){var c=Ext.get(this.grid.id+'-items-selected');if(c){c.dom.innerHTML=this.store.getCount()+'';}})}});Ext.reg('storesm',StoreSelectionModel);DynamicFieldsPanel=Ext.extend(Ext.Panel,{bodyStyle:'position:relative;',defaults:{height:300},comboIds:[],itemsCount:0,initComponent:function(){Ext.applyIf(this,{addAddButton:true,addButtonText:'Add',addNote:'You can add multiple fields by click on this button',fieldSetCfg:{panelCls:'addedPanel',addButton:false},isSet:false});var items=[];Ext.apply(this.fieldSetCfg,{addButton:!this.addAddButton});if(this.addAddButton){items.push({xtype:'button',height:22,iconCls:'icon icon-add',handler:function(){this.appendField();},text:this.addButtonText,scope:this});}
if(this.addAddButton&&this.addNote){items.push({height:22,cls:'buttonNote',xtype:'panel',html:this.addNote});}
if(items.length){Ext.apply(this,{items:{layout:'hbox',itemCls:'add-button-panel',cls:'add-button-panel',xtype:'panel',items:items,height:30}});}
DynamicFieldsPanel.superclass.initComponent.call(this);},reset:function(isAdd){var items=[];this.items.each(function(item){items.push(item);})
if(items){Ext.each(items,function(item){if(item.itemCls=='added-panel'){this.remove(item,true);}},this);}
if(isAdd){this.appendField();}},fillFields:function(fields,values){var nFields=new Array();if(fields){for(var i=0;i<fields.length;i++){var nField={};Ext.apply(nField,fields[i]);if(values){if(values[i]&&(typeof(values[i])=='object')){this.comboIds[i]=Ext.id();nField.value=values[i][0];nField.valueNotFoundText=values[i][1];nField.rValue=values[i][1];nField.listeners=Ext.apply(nField.listeners||{},{"render":{fn:function(){this.setValue(this.value);this.setRawValue(this.rawValue);try{this.fireEvent('select',this,this.store.getById(this.value));}catch(e){}}}});}else{nField.value=values[i];nField.listeners=Ext.apply(nField.listeners||{},{"render":{fn:function(){this.setValue(this.value);}}});}}
nFields[i]=nField;}}
return nFields;},appendField:function(values,innerValues){var fFields=[];if(innerValues&&innerValues.length>0){for(var i=0;i<innerValues.length;i++){fFields[i]=this.fillFields(this.innerFields,innerValues[i]);}}else{if(this.innerFields){fFields[0]=this.fillFields(this.innerFields);}}
return insertDynamicAddedPanel(this.id,this.fillFields(this.fields,values),false,fFields,Ext.apply({},this.fieldSetCfg));},setFirstTime:function(data){if(!this.isSet){this.reset();this.set(data);this.isSet=true;}}});Ext.reg('dyn-panel',DynamicFieldsPanel);Ext.ux.Portal=Ext.extend(Ext.Panel,{layout:'column',autoScroll:true,cls:'x-portal',defaultType:'portalcolumn',initComponent:function(){Ext.ux.Portal.superclass.initComponent.call(this);this.addEvents({validatedrop:true,beforedragover:true,dragover:true,beforedrop:true,drop:true});},initEvents:function(){Ext.ux.Portal.superclass.initEvents.call(this);this.dd=new Ext.ux.Portal.DropZone(this,this.dropConfig);}});Ext.reg('portal',Ext.ux.Portal);Ext.ux.Portal.DropZone=function(portal,cfg){this.portal=portal;Ext.dd.ScrollManager.register(portal.body);Ext.ux.Portal.DropZone.superclass.constructor.call(this,portal.bwrap.dom,cfg);portal.body.ddScrollConfig=this.ddScrollConfig;};Ext.extend(Ext.ux.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:true,increment:200},createEvent:function(dd,e,data,col,c,pos){return{portal:this.portal,panel:data.panel,columnIndex:col,column:c,position:pos,data:data,source:dd,rawEvent:e,status:this.dropAllowed};},notifyOver:function(dd,e,data){var xy=e.getXY(),portal=this.portal,px=dd.proxy;if(!this.grid){this.grid=this.getGrid();}
var cw=portal.body.dom.clientWidth;if(!this.lastCW){this.lastCW=cw;}else if(this.lastCW!=cw){this.lastCW=cw;portal.doLayout();this.grid=this.getGrid();}
var col=0,xs=this.grid.columnX,cmatch=false;for(var len=xs.length;col<len;col++){if(xy[0]<(xs[col].x+xs[col].w)){cmatch=true;break;}}
if(!cmatch){col--;}
var p,match=false,pos=0,c=portal.items.itemAt(col),items=c.items.items;for(var len=items.length;pos<len;pos++){p=items[pos];var h=p.el.getHeight();if(h!==0&&(p.el.getY()+(h/2))>xy[1]){match=true;break;}}
var overEvent=this.createEvent(dd,e,data,col,c,match&&p?pos:c.items.getCount());if(portal.fireEvent('validatedrop',overEvent)!==false&&portal.fireEvent('beforedragover',overEvent)!==false){px.getProxy().setWidth('auto');if(p){px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null);}else{px.moveProxy(c.el.dom,null);}
this.lastPos={c:c,col:col,p:match&&p?pos:false};this.scrollPos=portal.body.getScroll();portal.fireEvent('dragover',overEvent);return overEvent.status;;}else{return overEvent.status;}},notifyOut:function(){delete this.grid;},notifyDrop:function(dd,e,data){delete this.grid;if(!this.lastPos){return;}
var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p;var dropEvent=this.createEvent(dd,e,data,col,c,pos!==false?pos:c.items.getCount());if(this.portal.fireEvent('validatedrop',dropEvent)!==false&&this.portal.fireEvent('beforedrop',dropEvent)!==false){dd.proxy.getProxy().remove();dd.panel.el.dom.parentNode.removeChild(dd.panel.el.dom);if(pos!==false){c.insert(pos,dd.panel);dd.panel.pos=pos;}else{c.add(dd.panel);dd.panel.pos="last";}
c.doLayout();this.portal.fireEvent('drop',dropEvent);var st=this.scrollPos.top;if(st){var d=this.portal.body.dom;setTimeout(function(){d.scrollTop=st;},10);}}
delete this.lastPos;},getGrid:function(){var box=this.portal.bwrap.getBox();box.columnX=[];this.portal.items.each(function(c){box.columnX.push({x:c.el.getX(),w:c.el.getWidth()});});return box;}});Ext.ux.PortalColumn=Ext.extend(Ext.Container,{layout:'anchor',autoEl:'div',defaultType:'portlet',cls:'x-portal-column'});Ext.reg('portalcolumn',Ext.ux.PortalColumn);Ext.ux.Portlet=Ext.extend(Ext.Panel,{anchor:'100%',frame:true,collapsible:true,draggable:true,cls:'x-portlet',heightIncrement:16,pinned:false,duration:.6,easing:'backIn',transparent:false,onRender:function(ct,position){Ext.ux.Portlet.superclass.onRender.call(this,ct,position);var createProxyProtoType=Ext.Element.prototype.createProxy;Ext.Element.prototype.createProxy=function(config){return Ext.DomHelper.append(this.dom,config,true);};this.resizer=new Ext.Resizable(this.el,{animate:true,duration:this.duration,easing:this.easing,handles:'s',transparent:this.transparent,heightIncrement:this.heightIncrement,minHeight:this.minHeight||100,pinned:this.pinned});this.resizer.on('resize',this.onResizer,this);Ext.Element.prototype.createProxy=createProxyProtoType;},onResizer:function(oResizable,iWidth,iHeight,e){this.setHeight(iHeight);var iframe=this.el.child('iframe');if(iframe){iframe.dom.height=iHeight;}
this.saveUIState();},onCollapse:function(doAnim,animArg){this.el.setHeight('');Ext.ux.Portlet.superclass.onCollapse.call(this,doAnim,animArg);}});Ext.reg('portlet',Ext.ux.Portlet);RowEditGrid=Ext.extend(Ext.grid.GridPanel,{initComponent:function(){var config=this.initialConfig;var baseParams=Ext.apply({},config.baseParams||{}),view=null,tb=null;view=new Ext.grid.GridView(Ext.apply({forceFit:true},config.viewConfig||{}));var ds=new Ext.data.JsonStore({url:config.pagerUrl,totalProperty:"totalCount",root:"results",id:"id",fields:config.recordDef,sortInfo:config.sortInfo,baseParams:baseParams,remoteSort:true});var initConfig={store:ds,view:view,isHaveAdd:true,isHaveDelete:true,isHaveFilter:false,isHaveRowToolbar:true,isHaveContextMenu:true,remoteUpdate:true,reloadAfterUpdate:true,pageSize:app.conf.pageSize};Ext.apply(initConfig,config);Ext.apply(this,initConfig);this.cp=new Ext.state.Manager.getProvider();this.filtersState=this.cp.get('Filters_'+this.id,[]);if(config.isHaveFilter!=false){var tbItems=[];var htbCfg=this.getHeaderTbCfg();if(htbCfg){tbItems.push(htbCfg);}
tbItems.push(this.getFiltersTbCfg());tb=new Ext.Panel({items:tbItems});}
var bb;if(config.isHavePager){bb=new Ext.PagingToolbar(Ext.apply({pageSize:this.pageSize,plugins:new Ext.ux.Andrie.pPageSize({beforeText:'Per page',afterText:''}),store:ds,displayInfo:true,displayMsg:'Display {0} - {1} of {2}',emptyMsg:"No items to display"},this.getFooterTbCfg(true)));}else{bb=new Ext.Toolbar(this.getFooterTbCfg());}
initConfig.tbar=tb;initConfig.bbar=bb;initConfig.cm=Ext.isArray(config.cm)?new Ext.grid.ColumnModel(config.cm):config.cm,initConfig.sm=config.sm||initConfig.cm.getColumnById('checker')||new Ext.grid.CheckboxSelectionModel()
Ext.apply(this,initConfig);RowEditGrid.superclass.initComponent.call(this);this.plugins=[this.editor=new Ext.ux.grid.RowEditor({saveText:'Update'})];if(this.remoteUpdate){this.store.on('update',function(store,record,operation){var data=this.getJsonData(true);if(data=="[]"){msg('Notification','Nothing to update');}else{this.sendJsonRequest(this.updateUrl,Ext.apply(this.baseParams||{},{data:data}),function(scope){scope.store.reload();try{scope.afterItemUpdate();}catch(e){}});}},this);}
this.on('afterrender',function(){if(config.baseParams){this.setFilters(config.baseParams,true);}
this.store.load();});if(this.isNewGrid){this.on('cellclick',function(grid,rowIndex,cellIndex){if(cellIndex){grid.previewItem(rowIndex);}else{grid.showListDetails();}},this);this.on('rowbodyclick',function(grid,rowIndex){grid.previewItem(rowIndex);},this);}else{this.getSelectionModel().on('rowselect',function(sm,index,record){var editable=record.data.is_editable;if(this.isHavePreview||this.isAlwaysPreview){if(!Ext.isEmpty(editable)){if(this.deleteBtn){this.deleteBtn.setVisible(editable);}
if(this.editBtn){this.editBtn.setVisible(editable);}}
this.previewItem(index);}else{if(!Ext.isEmpty(editable)){if(sm.grid.deleteBtn){sm.grid.deleteBtn.setVisible(editable);}
if(sm.grid.editBtn){sm.grid.editBtn.setVisible(editable);}}}},this,{buffer:250});}
var ds=this.store;ds.on('beforeload',function(s,options){var filters=[];Ext.each(this.filters,function(f){filters.push(f);})
if(this.filter){filters.push(this.filter);}
Ext.each(filters,function(f){var v=f.getValue();if(f.xtype=='datefield'){v=Ext.util.Format.date(f.getValue(),app.conf.dateFormat);}
if(!Ext.isDefined(f.getValue())){v='';}
eval('options.params.'+f.hiddenName+'=\''+v+'\';');},this);if(s.isLoading!==false){Ext.apply(options.params,s.baseParams||{});}
if(Ext.urlEncode(options.params)==Ext.urlEncode(s.baseParams)){if(!s.isLoading){s.isLoading=true;return true;}
return false;}
return true;},this);ds.on('load',function(s){s.isLoading=false;},this);if(this.isHaveContextMenu){this.on('contextmenu',function(e){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.store.reload();},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);}},getPreviewPanel:function(){if(!this.previewPanel){this.previewPanel=Ext.getCmp(this.id+'-preview');if(this.previewPanel){this.previewPanel.grid=this;}}
return this.previewPanel;},previewItem:function(index){var record=this.store.getAt(index);this.getPreviewPanel();var id=this.previewFieldId?record.data[this.previewFieldId]:record.data.id;if(this.previewPanel&&!this.previewPanel.collapsed){var data=record.data;if(this.module&&this.module.isTagged){data.tags_links=makeLinks(data.tags_ids,data.tags,'Ext.getCmp(\''+this.id+'\').showTagged');if(data.tags==null){data.tags='';}}
data.beats_str=makeLinks(data.beats_ids,data.beats,Ext.util.Format.capitalize(this.module.name)+'.showBeat');this.previewPanel.data=data;this.previewPanel.clear();this.previewPanel.grid=this;this.previewShowingItem=true;this.module.previewItem(id,data,this.previewPanel);}},addAddons:function(addons,items){if(items.length&&items[items.length-1]!='-'){items.push('-');}
Ext.each(addons,function(addon){items.push(Ext.applyIf(addon,{scope:this}));},this);},getHeaderTbCfg:function(){var items=[];if(this.headerAddons){this.addAddons(this.headerAddons,items);}
return items.length?{xtype:'toolbar',items:items}:null;},getSelections:function(){return this.getSelectionModel().getSelections();},getFooterTbCfg:function(isNeedSeparator){var items=isNeedSeparator?['-']:[];if(this.isHaveAdd){items.push({iconCls:'icon icon-add',tooltip:'Add item',text:'Add',handler:function(){var rc=Ext.data.Record.create(this.recordDef);var item=new rc(Ext.apply({},this.newItem||{}));this.editor.stopEditing();this.store.insert(0,item);this.getView().refresh();this.getSelectionModel().selectRow(0);this.editor.startEditing(0);},scope:this});}
if(this.isHaveDelete){items.push({iconCls:'icon icon-delete',tooltip:'Delete',text:'Delete',handler:function(){this.selectionAction('Do you really want to delete?',function(){this.sendJsonRequest(this.deleteBulkUrl,Ext.apply(this.baseParams||{},{ids:this.selectedIdsToJson()}),function(scope){scope.store.reload();msg("Notice","Deletion complete");});});},scope:this})};if(this.footerAddons){this.addAddons(this.footerAddons,items);}
return{height:26,items:items};},selectedIdsToJson:function(fieldName){if(!fieldName){fieldName="id"}
var m=this.getSelectionModel().getSelections(),v=[]
Ext.each(m,function(n){v.push({id:n.get(fieldName)});});return Ext.encode(v);},getJsonData:function(dirty){var ds=this.store,v=[];ds.each(function(f){if(!dirty||(dirty&&f.dirty)){v.push(f.data);}},this);return Ext.encode(v);},saveFiltersState:function(){var newState=[];Ext.each(this.filters,function(f){newState.push(!f.hidden);});this.filtersState=newState;this.cp.set('Filters_'+this.id,this.filtersState);},setFilters:function(v,isBase){if(typeof v=='undefined'){Ext.each(this.filters,function(f){f.reset();});this.filter.reset();return;}
Ext.each(this.filters,function(f,i){Ext.iterate(v,function(ok,ov){if(ok==f.hiddenName&&ov){f.setValue(ov);if(f.xtype=='datefield'){f.setValue(ov);}
if(isBase){f.setDisabled(true);}
this.showFilter(null,true,f);}},this);},this);if(this.filter&&v.filter){this.filter.setValue(v.filter);}},setFilter:function(name,v,rawValue){Ext.each(this.filters,function(f){if(f.hiddenName==name){f.setValue(v);if(rawValue){f.setRawValue(rawValue);}}});},resetFilters:function(){this.setFilters();this.setFilters(this.config.baseParams||{},true);this.store.load();},loadFilters:function(param){this.setFilters(param);this.store.reload();},showFilter:function(item,check,filter){filter.setVisible(check);this.saveFiltersState();},getFiltersTbCfg:function(){var items=[];var filterItems=[];if(this.filters){Ext.each(this.filters,function(f,i){if(!f.hidden){var checked=false;try{checked=this.filtersState[i];}catch(e){}
f.setVisible(checked);filterItems.push({text:f.labelName,checked:checked,xtype:'menucheckitem',checkHandler:this.showFilter.createDelegate(this,[f],true)});}},this);items.push({text:'Search',menu:{items:filterItems}},this.filters);}
items.push(this.filter=new Ext.app.SearchField({store:this.store,name:'filter',hiddenName:'filter',grid:this,width:160}),' ');return{xtype:'toolbar',items:items};},selectionAction:function(title,f,error){error=error?error:'Please select at least one item to process';if(this.getSelectionModel().getSelections().length>0){if(title){Ext.MessageBox.confirm('Message',title,function(btn,text){if(btn=='yes'){f.call(this);}},this);}else{f.call(this);}}else{Ext.MessageBox.alert('Error',error||'Please select at least one item to process');}},sendJsonRequest:function(url,params,callback,callbackError){sendJsonRequest(url,params,callback?callback:'reload',this,callbackError);}});Ext.reg('roweditgrid',RowEditGrid);Ext.app.SearchField=Ext.extend(Ext.form.TwinTriggerField,{initComponent:function(){Ext.app.SearchField.superclass.initComponent.call(this);this.on('specialkey',function(f,e){if(e.getKey()==e.ENTER){this.onTrigger2Click();}},this);},validationEvent:false,validateOnBlur:false,trigger1Class:'x-form-clear-trigger',trigger2Class:'x-form-search-trigger',cls:'filter-field',width:180,hasSearch:false,paramName:'filter',onTrigger1Click:function(){this.grid.setFilters();this.grid.setFilters(this.grid.baseParams||{},true);if(this.store.baseParams.last_id){this.store.baseParams.last_id='';}
this.grid.store.load();},reset:function(){this.el.dom.value='';var o={start:0};this.store.baseParams[this.paramName]='';},onTrigger2Click:function(){var v=this.getRawValue();var o={start:0};this.store.baseParams=this.store.baseParams||{};this.store.baseParams[this.paramName]=v;if(this.store.baseParams.last_id){this.store.baseParams.last_id='';}
this.store.reload({params:o});}});Ext.namespace('Ext.sv');Ext.namespace('Ext.sv.UI');Ext.sv.UI.CheckboxesWindow=Ext.extend(Ext.Window,{layout:'fit',width:370,height:430,modal:true,closeAction:'hide',plain:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Set checkboxes",initComponent:function(){Ext.sv.UI.CheckboxesWindow.superclass.initComponent.call(this);this.initButtons();},initButtons:function(){this.addButton({minWidth:80,text:'Set',scope:this,handler:this.setHandler.createDelegate(this)});this.addButton({minWidth:80,text:'Cancel',scope:this,handler:function(b){this.hide();}});this.addButton({minWidth:80,text:'Reset',scope:this,handler:this.resetHandler.createDelegate(this)});},resetHandler:function(b){this.field.setValue('');this.hide();},setHandler:function(b){this.field.setValue(this.valuesTreePanel.getValues());this.hide();},setField:function(v){this.field=v;},getField:function(){return this.field;},setValues:function(ids){this.valuesTreePanel.reset();this.valuesTreePanel.setValues(ids);},listeners:{show:function(){this.setValues(this.field.getValue());}}});Ext.sv.UI.BeatsWindow=Ext.extend(Ext.sv.UI.CheckboxesWindow,{title:"Set beats",initComponent:function(){Ext.sv.UI.BeatsWindow.superclass.initComponent.call(this);this.add(this.valuesTreePanel=createBeatsTreePanel('release'));this.store=app.ds.beats;}});Ext.sv.UI.RolesWindow=Ext.extend(Ext.sv.UI.CheckboxesWindow,{title:"Set role",initComponent:function(){Ext.sv.UI.RolesWindow.superclass.initComponent.call(this);this.valuesTreePanel=createCheckTreePanel('role','roles',makeUrl('core/json?method=getRolesTree'));this.add(this.valuesTreePanel);this.store=app.ds.personRoleTypes;}});Ext.sv.UI.CountriesWindow=Ext.extend(Ext.sv.UI.CheckboxesWindow,{title:"Set countries",initComponent:function(){Ext.sv.UI.CountriesWindow.superclass.initComponent.call(this);this.valuesTreePanel=createCheckTreePanel('role','countries',makeUrl('core/json?method=getCountriesTree'));this.add(this.valuesTreePanel);this.store=app.ds.countries;}});Ext.sv.UI.ReleaseCountriesWindow=Ext.extend(Ext.sv.UI.CheckboxesWindow,{title:"Set countries",height:125,initComponent:function(){Ext.sv.UI.ReleaseCountriesWindow.superclass.initComponent.call(this);this.valuesTreePanel=createCheckTreePanel('role','releaseCountries',makeUrl('core/json?method=getReleaseCountriesTree'));this.add(this.valuesTreePanel);this.store=app.ds.countries;}});Ext.sv.UI.CheckBoxesField=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},initWindow:function(){if(this.valuesType=='beats'){if(!app.beatsWindow){app.beatsWindow=new Ext.sv.UI.BeatsWindow();}
app.beatsWindow.setField(this);this.window=app.beatsWindow;}
if(this.valuesType=='roles'){if(!app.rolesWindow){app.rolesWindow=new Ext.sv.UI.RolesWindow();}
app.rolesWindow.setField(this);this.window=app.rolesWindow;}
if(this.valuesType=='countries'){if(!app.countriesWindow){app.countriesWindow=new Ext.sv.UI.CountriesWindow();}
app.countriesWindow.setField(this);this.window=app.countriesWindow;}
if(this.valuesType=='releaseCountries'){if(!app.releaseCountriesWindow){app.releaseCountriesWindow=new Ext.sv.UI.ReleaseCountriesWindow();}
app.releaseCountriesWindow.setField(this);this.window=app.releaseCountriesWindow;}},getWindow:function(){return this.window;},onTriggerClick:function(){var window=this.getWindow();window.setField(this);window.show();window.valuesTreePanel.expandAll();},initComponent:function(config){Ext.apply(this,config);Ext.sv.UI.CheckBoxesField.superclass.initComponent.call(this);this.initWindow();},afterRender:function(ct){Ext.sv.UI.CheckBoxesField.superclass.afterRender.call(this,ct);this.idsContainer=this.wrap.createChild({tag:"input",type:"hidden",autocomplete:"off",value:this.value});},reset:function(){Ext.sv.UI.CheckBoxesField.superclass.reset.call(this);this.idsContainer.update('');},setIds:function(v){this.idsContainer.set({'value':v});},setValue:function(v){var result=[];var store=this.getWindow().store;Ext.each(v.split(','),function(n){var r=store.findExact('id',n);if(r>-1){result.push(store.getAt(r).get('value'));}});this.idsValue=v;this.setRawValue(result.join(', '));},getValue:function(){return this.idsValue;}});Ext.form.CheckBoxesField=Ext.extend(Ext.sv.UI.CheckBoxesField,{});Ext.reg('checkboxesfield',Ext.form.CheckBoxesField);Ext.sv.UI.CheckBoxesPanel=Ext.extend(Ext.Panel,{autoScroll:true,height:400,xtype:'checkboxespanel',initComponent:function(config){this.items=[{xtype:'hidden',name:this.name,value:this.value,getValue:function(){return this.ownerCt.tree.getValues();},getSubmitValue:function(){return this.getValue();},setValue:function(v){this.ownerCt.tree.setValues(v);Ext.form.Hidden.superclass.setValue.call(this,v);}},this.tree=new Ext.ux.CheckColumnTreePanel({autoWidth:true,autoScroll:true,rootVisible:false,useArrows:true,loader:new Ext.tree.TreeLoader({dataUrl:app.makeUrl('json?method=get'+Ext.util.Format.capitalize(this.objType)+'Tree'),uiProviders:{'col':Ext.ux.CheckColumnNodeUI}}),root:new Ext.tree.AsyncTreeNode({text:''}),listeners:{'afterrender':{fn:function(e){this.tree.expandAll();},scope:this}}})];Ext.sv.UI.CheckBoxesPanel.superclass.initComponent.call(this);}});Ext.reg('checkboxespanel',Ext.sv.UI.CheckBoxesPanel);ActivitiesModule=Ext.extend(Application.Module,{title:'Activities',itemTitle:'activity',outletCombo:null,companyCombo:null,personCombo:null,previewActivityDialog:null,previewDialogStore:null,name:'activities',dialogWidth:720,dialogHeight:350,afterInitParams:function(){},initParams:function(){this.cm=[new Ext.grid.CheckboxSelectionModel(),{id:'title',header:"Title",dataIndex:'title',width:300},{id:'note',header:"Note",dataIndex:'note',width:300},{id:'info',header:"Info",dataIndex:'info',width:300}];this.rd=['id','title','note','attachments','person_id','person','company_id','company','outlet_id','outlet','story_id','story','time','creator','type','project_id','task_id','project','task','subject','time_spent','request_id','request','is_editable','photo','date_time','date',{name:'created_at',type:'date',dateFormat:app.conf.dtFormat}];this.previewTpl=new Ext.XTemplate('<tpl for=".">','<div class="contacts-history-item">','<div class="module-header-3"><img src="/images/icons/user_suit.gif"></div>','<div class="module-header-3">{title}</div>','<div class="contacts-history-item-attachments">{attachments}</div>','<div class="clear"></div>','<div class="contacts-history-item-info">{info}</div>','<div class="feed-item-body">{note}</div>','</div>','</tpl>').compile();this.previewDialogStore=prepareDs(this.makeUrl('load'),this.rd,false,true);var previewDialogtableTpl=new Ext.XTemplate('<tpl for=".">','<div style="padding-bottom: 10px;">','<table width=100%>','<tr>','<td>Logged by:</td>','<td>{creator}</td>','<td>Person:</td>','<td>{person}</td>','</tr>','<tr>','<td>Activity type:</td>','<td>{type}</td>','<td>Company:</td>','<td>{company}</td>','</tr>','<tr>','<td>Date:</td>','<td>{date}</td>','<td>Outlet:</td>','<td>{outlet}</td>','</tr>','<tr>','<td>Time:</td>','<td>{time}</td>','<td>Opportunity/Request:</td>','<td>{request}</td>','</tr>','</table>','</div>','</tpl>');var previewDialogtableNoteTpl=new Ext.XTemplate('<tpl for=".">','<td colspan=4>{note}</td>','</tpl>');this.attachmentsTpl=new Ext.XTemplate('<tpl for=".">','<div class="contacts-history-item">','<div class="note-attachments">{attachments}</div>','</div>','</tpl>');this.previewActivityDialog=new Ext.Window({layout:'fit',width:600,height:400,autoScroll:true,modal:true,closeAction:'hide',plain:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:'Activity Preview',items:[{xtype:'tabpanel',layoutOnTabChange:true,height:400,activeTab:0,bodyStyle:'padding:5px;',items:[{title:"Activity",xtype:"panel",autoScroll:true,autoHeight:true,defaults:{autoHeight:true,xtype:"fieldset"},items:[{xtype:"dataview",loadingText:"Loading...",store:this.previewDialogStore,tpl:previewDialogtableTpl,autoHeight:true,multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap'},{title:"Activity",collapsible:true,items:[{xtype:"dataview",loadingText:"Loading...",store:this.previewDialogStore,tpl:previewDialogtableNoteTpl,autoHeight:true,multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap'}]}]}]}],buttons:[{minWidth:80,text:'Hide',handler:function(){Activities.previewActivityDialog.hide();}}]});this.afterInitParams();},getTpl:function(){return this.previewTpl},getStore:function(id,type){return prepareDs(this.makeUrl('list?objId='+id+'&objType='+type),this.rd);},prepareData:function(data,isPreview){var attachments=Ext.util.JSON.decode(data.attachments);data.attachments="";if(isPreview){var tpl=new Ext.Template('<a href="#" onclick="location.href=\'',app.makeUrl('downloadAttachment'),'?id={id}\'" onmouseover="showTip(this, \'Download\');"><img class="contacts-history-attachment-img" src="/images/icons/attach.gif" />  {tipText}</a>','<br/>').compile();}else{var tpl=new Ext.Template('<img class="contacts-history-attachment-img" src="/images/icons/attach.gif" onclick="location.href=\'',app.makeUrl('downloadAttachment'),'?id={id}\'" onmouseover="showTip(this, \'{tipText}\');"/>').compile();}
for(var i=0;i<attachments.results.length;i++){var attachment=attachments.results[i];data.attachments+=tpl.applyTemplate({i:attachment.filename,tipText:attachment.filename,id:attachment.id});}
data.desc=data.note.replace(/<\/?[^>]+>/gi,'').ellipse(250);return data;},fillForm:function(obj){Activities.getForm().setValues(obj);},showMain:function(){this.showFilteredGrid({autoExpandColumn:'subject',isHaveFilter:false,isHaveEdit:false,footerAddons:['delete']});},make:function(id,type,scope){this.init();this.objId=id;this.objType=type;this.scope=scope||this;this.getDialog().setTitle('Log activity');this.getDialog().action="create";this.getDialog().show();},makeParamsOnDialogSubmit:function(){return{item_id:this.objId,item_type:this.objType};},preview:function(id){this.previewActivityDialog.show();this.previewDialogStore.load({params:{id:id}});}});ActivitiesPanel=function(config){var id=config.objectType+'-'+config.objectId
var module='';if(config.objectType=='task'){module='Tasks';}else if(config.objectType=='contact'||config.objectType=='person'){module='Contacts';this.noteActionAdd='No note entered [<a href=# style="color: #000;" onclick="Ext.get(\'contact-note-'+config.objectId+'\').setDisplayed(false);Ext.getCmp(\'add-contact-note-form-'+config.objectId+'\').setVisible(true);Ext.get(this).parent().setDisplayed(false);return false;">Click here to add a note</a>]';this.noteActionEdit='[<a href=# style="color: #000;" onclick="Ext.get(\'contact-note-'+config.objectId+'\').setDisplayed(false);Ext.getCmp(\'add-contact-note-form-'+config.objectId+'\').setVisible(true);Ext.get(this).parent().setDisplayed(false);return false;">edit</a>]';}
var descriptionTpl=new Ext.XTemplate('<tpl for=".">','<div id="description-container-'+config.objectId+'">','<div class="x-clear"></div>','<tpl if="this.showInternalNote(account_id, \''+module+'\')">','<div class="tasks-bg p10">','<b>Internal note:</b><br>','<div id="contact-note-{id}">','<div id="contact-note-text-{id}"><tpl if="note.length!=0">{note:nl2br}</tpl></div>','<tpl if="note.length!=0"><div class="last-editor" id="note-editor-'+config.objectId+'"><tpl if="note_edited_at.length!=0">Last edited at {note_edited_at:dtRenderer} by {note_editor}</tpl></div></tpl>','</div>','<div id="add-contact-note-{id}"></div>','<tpl if="note.length==0">','<div id="no-task-descr-{id}">'+this.noteActionAdd+'</div>','</tpl>','<tpl if="note.length!=0">','<div id="no-task-descr-{id}">'+this.noteActionEdit+'</div>','</tpl>','</div>','</tpl>','<div class="p20">','Add note:<br>','<textarea class="x-form-textarea x-form-field" style="width: 600px; height: 80px; margin-bottom: 3px;" id="add-activity-note-'+id+'" name="note"></textarea><br>','<div id="add-activity-addons-'+id+'" style="clear: both; ">','<div style="float: left; clear: none; padding: 2px 0 10px; width: 80px;">Person: </div><div style="float: left; clear: none;" id="add-activity-person-'+id+'"></div><br>','<div class="x-clear"></div>','<div style="float: left; clear: none; padding: 2px 0 10px; width: 80px;">Company: </div><div style="float: left; clear: none;" id="add-activity-company-'+id+'"></div>','</div>','<div class="x-clear"></div>','<div style="float: left; clear: none;"><div id="add-activity-submit-'+id+'"></div></div><div style="float: left; clear: none; height: 20px; padding: 5px 0 0 5px;"><a href=# id="show-activity-addons-'+id+'">Show advanced options</a></div>','</div>','<div class="tasks-bg p10">','<div style="float: left; clear: none;"><h1>ACTIVITIES</h1></div>','<div style="float: right; clear: none;"><a href=# id="'+id+'-activities-sort-asc" onclick="'+module+'.reloadActivities(\''+id+'\', \'ASC\');return false;">Sort Ascending</a> | <a href=# id="'+id+'-activities-sort-desc" style="font-weight:bold" onclick="'+module+'.reloadActivities(\''+id+'\', \'DESC\');return false;">Sort Descending</a></div>','</div>','<div class="p20" style="padding:10px 20px 20px;">','<div id="activities-'+id+'"></div>','</div>','</div>','</tpl>',{showInternalNote:function(account_id,module){return(account_id==app.conf.account.id&&module=='Contacts');}}).compile();ActivitiesPanel.superclass.constructor.call(this,Ext.apply(config,{title:'Activities',overflow:'auto',autoScroll:true,height:400,items:[{overflow:'auto',autoScroll:true,bodyStyle:'position:relative;',id:'activity-panel-'+id,listeners:{'afterrender':{fn:function(){descriptionTpl.overwrite(this.body,this.data);if(module=='Contacts'){this.addNoteForm=new Ext.form.FormPanel({renderTo:"add-contact-note-"+this.objectId,id:"add-contact-note-form-"+this.objectId,url:Contacts.makeUrl('saveNote'),labelWidth:0,hideLabels:true,defaults:{xtype:'hidden'},style:'padding-left:0;',buttonAlign:'left',hideMode:'display',items:[this.contactNote=new Ext.form.TextArea({name:'note',xtype:'textarea',hideLabel:true,width:500,height:100,allowBlank:false,value:this.data.note}),{name:'id',value:this.objectId}],buttons:[{minWidth:80,text:'Save',scope:this,handler:function(){if(this.addNoteForm.getForm().isValid()){this.addNoteForm.getForm().submit({reset:false,failure:function(form,action){Ext.MessageBox.alert('Error Message',action.result.errorInfo);},success:function(form,action){msg('Notification',action.result.info);this.data.note=action.result.note;this.data.note_edited_at=action.result.note_edited_at;this.data.note_editor=action.result.note_editor;this.addNoteForm.setVisible(false);Ext.DomHelper.overwrite(Ext.getDom('contact-note-text-'+this.data.id),Ext.util.Format.nl2br(this.data.note));Ext.DomHelper.overwrite(Ext.getDom('note-editor-'+this.data.id),'Last edited at '+Ext.util.Format.dtRenderer(this.data.note_edited_at)+' by '+this.data.note_editor);Ext.get('contact-note-'+this.data.id).setDisplayed(true);Ext.get('no-task-descr-'+this.data.id).setDisplayed(true);this.contactNote.setValue(this.data.note);},scope:this});}}},{minWidth:80,text:'Cancel',scope:this,handler:function(){this.addNoteForm.setVisible(false);this.contactNote.setValue(this.data.description);Ext.get('contact-note-'+this.objectId).setDisplayed(true);Ext.get('add-contact-note-form-'+this.objectId).setDisplayed(true);Ext.get('no-task-descr-'+this.objectId).setDisplayed(true);}}]});this.addNoteForm.setVisible(false);}
Ext.get('show-activity-addons-'+id).on('click',function(e,el){el=Ext.get(el.id);Ext.get('add-activity-addons-'+id).setVisibilityMode(Ext.Element.DISPLAY).toggle();if(el.dom.innerHTML=='Show advanced options'){el.dom.innerHTML='Hide Advanced Options';}else{el.dom.innerHTML='Show Advanced Options';}},this);this.personCombo=prepareComboBox(makeUrl('contacts','getPersonOptions'),{hiddenName:'person_id',width:200,renderTo:'add-activity-person-'+id});this.personCombo.setValue(this.data.person_id);this.companyCombo=prepareComboBox(app.makeUrl('getNewsroomsOptions'),{hiddenName:'company_id',renderTo:'add-activity-company-'+id});Ext.get('add-activity-addons-'+id).setDisplayed(false);this.addActivityBtn=new Ext.Button({text:'Save',tooltip:'Save activity',applyTo:"add-activity-submit-"+id,style:'float: left;',handler:function(){var noteTextArea=Ext.get('add-activity-note-'+id);if(!noteTextArea.getValue()){Ext.MessageBox.alert('Error Message','Please enter note');return;}
if(this.objectType=='task'){this.sendJsonRequest(Activities.makeUrl('create'),{type_id:'2205',task_id:this.objectId,is_shared:'1',note:noteTextArea.getValue(),company_id:this.companyCombo.getValue(),person_id:this.personCombo.getValue()},function(scope,data){Ext.get('add-activity-note-'+scope.objectType+'-'+scope.objectId).dom.value='';scope.personCombo.reset();scope.companyCombo.reset();scope.activitiesStore.reload();});}else if(this.objectType=='person'){if(!this.personCombo.getValue()){Ext.MessageBox.alert('Error Message','Please specify person');return;}
this.sendJsonRequest(Activities.makeUrl('create'),{type_id:'2205',is_shared:'1',note:noteTextArea.getValue(),company_id:this.companyCombo.getValue(),person_id:this.personCombo.getValue()},function(scope,data){Ext.get('add-activity-note-'+scope.objectType+'-'+scope.objectId).dom.value='';scope.personCombo.setValue(scope.data.person_id);scope.companyCombo.reset();scope.activitiesStore.reload();});}},scope:this});this.activitiesStore.load();this.panel=new Ext.Panel({id:'activities-panel-'+id,autoHeight:true,renderTo:'activities-'+id,layout:'fit',items:this.activitiesDataview=new Ext.DataView({store:this.activitiesStore,tpl:this.activitiesTpl,autoHeight:true,loadingText:'Loading...',multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap',emptyText:'No activities are logged'})});this.doLayout();},scope:this}}}]}));this.activitiesTpl=new Ext.XTemplate('<tpl for=".">','<div class="article-comment task-activ" style="margin: 0 0 10px 0;">','<div class="feed-item-pix"><img src="{photo}"></div>','<div class="feed-item-comment" style="font-size: 13px;">{title}</div>','<div class="feed-item-comment">{note}</div>','<div class="feed-item-date">{date_time}</div>','<div class="delete-{is_editable}"><tpl if="is_editable == true"><div class="icon icon-delete"></div></tpl><a onclick="'+module+'.deleteActivity('+this.id+', {id});">delete</a></div>','<div class="x-clear"></div>','</div>','</tpl>','<div class="x-clear"></div>').compile();this.activitiesStore=new Ext.data.JsonStore({url:makeUrl("activities","getPager"),root:'results',fields:Activities.rd,baseParams:{objId:this.objectId,objType:this.objectType,dir:'DESC',sort:'created_at',simpleMode:'1'},listeners:{'load':{fn:function(){},scope:this}}});};Ext.extend(ActivitiesPanel,Ext.Panel,{});Activities=new ActivitiesModule().init();HomePortlet=Ext.extend(Ext.ux.Portlet,{tools:[{id:'refresh',qtip:"Refresh",handler:function(e,target,panel){panel.refresh();}},{id:'gear',qtip:"Edit",handler:function(e,target,panel){DashboardPortlets.edit(panel.portletId);}},{id:'close',qtip:"Delete",handler:function(e,target,panel){Dashboards.confirmAction('Do you really want to delete?',function(){sendJsonRequest(DashboardPortlets.makeUrl('delete'),{id:panel.portletId},function(){Dashboards.getPortlet(panel.portletId).hide();});});}}],initComponent:function(){Ext.ux.Portlet.superclass.initComponent.call(this);this.rd=['id','title','description','comments_count','author','content','author_id','outlet_id','outlet','type','day','items','image_url',{name:'published_at',type:'date',dateFormat:app.conf.dtFormat}];this.portletStore=prepareDs(makeUrl("portlets","load"),['id','name','filters','type_id','content','items_count','summary_state','calendar_item','template_source'],false,true);this.statusType=app.conf.tweet?'twitter':'status';this.dataStore=prepareDs(makeUrl("portlets","getPortletData")+'?id='+this.portletId,this.rd);this.dataStore.on('load',function(records){if(this.type_id==4411){var query=records.data.items[0].data.content.split('|');var id='portlet-chart-'+this.portletId;if(!this.gvPanel){this.gvPanel=new Ext.ux.GVisualizationPanel({id:id,visualizationPkg:query[0],height:this.getInnerHeight()-30,is3D:true,store:this.chartStore=new Ext.data.JsonStore({url:'coverage/gvChartData',autoLoad:false,baseParams:{chart_type:query[0],display:query[1],start_date:query[2],end_date:query[3],timeline:query[4],profile_id:query[5]},fields:[{name:'dates'},{name:'results'}]})});if(!this.getComponent(id)){this.remove(this.dataView);this.add(this.gvPanel);}
this.doLayout();}else{this.gvPanel.setHeight(this.getInnerHeight()-30);this.chartStore.reload();}
delete query;delete id;}else if(this.type_id==4401){updatesPortlet=this;this.delayTask.delay(300000);Ext.select("div.home-updates-delete").each(function(e){e.removeAllListeners();e.on('click',function(e3,e2){var id=Ext.get(e2.id).getAttributeNS('attributes','objId');this.sendJsonRequest(makeUrl("activities","delete"),{id:id},function(scope){try{ContactsUpdates.refresh();}catch(e1){}
scope.dataStore.reload();});},this,{stopEvent:true});},this);}else if(this.type_id==4412){var sf=Ext.get("home-profile-request-field");sf.setWidth(sf.parent('div.x-panel.x-portlet.x-panel-noborder').getWidth()-120);new Ext.ToolTip({html:'<br>Media requests are a quick, easy way to request information, spokespeople or products from the PR community. Requests are only shared with our PR subscribers and cannot be seen by other journalists. For a simple request, you may simply type a quick description into the Media Request portlet. If you mention the publication name and deadline our system should automatically fill in the relevant details. Alternatively, you can click Add Detailed Request to add more specific details.<br><br>We recommend that you specify exactly how you would like to be contacted and the more guidance and detail you can give, the better the responses are likely to be.',width:200,target:'media-request-tip',title:'About Media Requests',dismissDelay:15000});Ext.get('request-submit').on('click',function(t,e){var el=Ext.get(e);var ta=el.parent('div').child('textarea');if(!ta.getValue()){msg('Notification','Input something');delete el;delete ta;return;}
el.mask();ta.parent().mask();this.sendJsonRequest(makeUrl("requests","createQuick"),{text:ta.getValue()},function(scope){el.unmask();ta.parent().unmask();scope.dataStore.reload();});delete el;delete ta;},this);delete sf;}else{this.delayTask.delay(900000);}},this);this.delayTask=new Ext.util.DelayedTask(function(){if(this.type_id==4401){this.getComponent(1).getActiveTab().getComponent(0).store.reload();this.delayTask.delay(300000);this.dataStore.reload()}else{this.delayTask.delay(900000);this.dataStore.reload()}},this)
if(!this.settings){this.portletStore.load({params:{id:this.portletId},scope:this,callback:function(records,options,success){this.applySettings(records[0].data);}});}},prepareView:function(type,isLoad,isTwitter){return new Ext.DataView({store:{xtype:'jsonstore',url:makeUrl("portlets","getPortletData"),autoLoad:isLoad,baseParams:{type:type,id:this.portletId},root:"results",fields:this.rd,listeners:{'load':{fn:function(){Ext.select("div.home-updates-delete").each(function(e){e.removeAllListeners();e.on('click',function(e3,e2){var id=Ext.get(e2.id).getAttributeNS('attributes','objId');this.sendJsonRequest(makeUrl("activities","delete"),{id:id},function(scope){try{ContactsUpdates.refresh();}catch(e1){}
scope.dataStore.reload();});},this,{stopEvent:true});},this);},scope:this}}},prepareData:function(data){data.section=type;return data;},tpl:(isTwitter?DashboardPortlets.getUpdatesTpl():DashboardPortlets.updatesTpl),multiSelect:true,type:type,overClass:'x-view-over',itemSelector:'div.thumb-wrap',style:"padding: 10px",emptyText:"No items to show",loadingText:"Loading..."});},applySettings:function(d){this.dataStore.baseParams.id=d.id;this.summary_state=d.summary_state;this.setTitle(d.name);this.type_id=d.type_id;if(this.type_id==4407){this.add({xtype:'iframepanel',fitToFrame:true,closable:false,height:this.height,defaultSrc:makeUrl("portlets","getHtmlPortletData")+"?id="+d.id});}else{if(this.type_id==4405){this.add({xtype:'panel',cls:'portlet-calendar',items:[{html:'<div class="today">Today is '+Ext.util.Format.date(new Date(),app.conf.dateFormat)+'</div><div class="calendar-selector"><a href="#" id="portlet-calendar-selector-'+this.portletId+'">Show calendar</a></div>'},{autoHeight:true,style:"padding: 5px",items:this.calendar=new EventsCalendar({scope:Calendar,showByStamp:function(stamp){this.portlet.dataStore.baseParams.stamp=stamp;this.portlet.dataStore.baseParams.ex_type='';this.portlet.dataStore.reload();}})}]});this.calendar.portlet=this;this.dataStore.baseParams.stamp=new Date().clearTime().getTime()/1000;this.dataStore.baseParams.ex_type='future';}
var cfg={store:this.dataStore,tpl:DashboardPortlets.getTpl(d.type_id),multiSelect:true,overClass:'x-view-over',itemSelector:'div.thumb-wrap',style:"padding: 10px",emptyText:"No items to show",portlet:this,prepareData:function(data){data.summary_state=this.portlet.summary_state;if(data.description){data.description=data.description.replace("<a","<a target=_blank");}
return data;}};if(this.type_id==4411&&this.height){cfg.height=this.height;}
this.dataView=new Ext.DataView(cfg);this.dataView.store.load();function tbarHandler(e,state){if(state){var store=e.findParentByType('panel').items.items[0].store;store.baseParams.section=e.findParentByType('panel').title;store.baseParams.sub_section=e.text;store.reload();}}
if(this.type_id==4401){var communityItems=[{text:'All',pressed:true},'-',{text:'Status'},'-',{text:'Updates'},'-',{text:'Releases'}];var allItems=[{text:'All',pressed:true},'-',{text:'Status'},'-',{text:'Updates'}];if(!isJourno()){communityItems.push('-',{text:'Opportunities'});allItems.push('-',{text:'Activities'},'-',{text:'Opportunities'});}else{allItems.push('-',{text:'Releases'});}
var tabItems=[{title:'All',tbar:{defaults:{enableToggle:true,toggleGroup:'portlet-btn-all',toggleHandler:tbarHandler,scope:this},items:allItems},items:this.prepareView('All',true)},{title:'Public',tbar:{defaults:{enableToggle:true,toggleGroup:'portlet-btn-public',toggleHandler:tbarHandler,scope:this},items:[{text:'All',pressed:true},'-',{text:'Twitter'},'-',{text:'Facebook'}]},items:this.prepareView('Public',false,true)},{title:'Community',tbar:{defaults:{enableToggle:true,toggleGroup:'portlet-btn-community',toggleHandler:tbarHandler,scope:this},items:communityItems},items:this.prepareView('Community')}];if(!isJourno()){tabItems.push({title:'Team',tbar:{defaults:{enableToggle:true,toggleGroup:'portlet-btn-team',toggleHandler:tbarHandler,scope:this},items:[{text:'All',pressed:true},'-',{text:'Status'},'-',{text:'Updates'},'-',{text:'Activities'},'-',{text:'Opportunities'}]},items:this.prepareView('Team')});}
tabItems.push({title:'Mine',tbar:{defaults:{enableToggle:true,toggleGroup:'portlet-btn-mine',toggleHandler:tbarHandler,scope:this},items:[{text:'All',pressed:true},'-',{text:'Status'},'-',{text:'Activities'}]},items:this.prepareView('Mine')});this.doLayout();this.add(this.tabsPanel=new Ext.TabPanel({fitToFrame:true,activeTab:0,layoutOnTabChange:true,defaults:{autoScroll:true,height:(this.height||600)},listeners:{'tabchange':{fn:function(p,t){var store=t.items.items[0].store;store.baseParams.section=t.title;store.reload();},scope:this}},items:tabItems}));}else{this.add(this.dataView);}}
this.doLayout();if(this.collapsed){this.collapse();}
this.doLayout();app.panel.doLayout();if(this.type_id==4405){this.calendar.findParentByType('panel').hide();var selector=Ext.get('portlet-calendar-selector-'+this.portletId);selector.on('click',function(){var p=this.calendar.findParentByType('panel');if(p.isVisible()){p.hide();selector.update('Show calendar');}else{p.show();selector.update('Hide calendar');}
this.doLayout();},this);}},refresh:function(){this.notScroll=true;if(this.type_id==4405){this.dataStore.baseParams.ex_type='future';}
this.dataStore.reload();},listeners:{'beforestatesave':{fn:function(cmp,state){cmp.ownerCt.items.each(function(p,index,len){p.pos=index;p.column=p.ownerCt.column;p.saveUIState();});return false;},scope:this},'show':{fn:function(cmp,state){this.saveUIState();}},'expand':{fn:function(cmp,state){this.saveUIState();}},'collapse':{fn:function(cmp,state){this.saveUIState();}},'render':{fn:function(cmp,state){if(this.settings){this.applySettings(this.settings);}}},'resize':{fn:function(cmp,state){if(this.type_id==4401){var sf=Ext.get("home-profile-status-field");if(sf){sf.setWidth(sf.parent('div.x-tab-panel-body').getWidth()-120);}}}}},saveUIState:function(){var state={pos:this.pos,column:this.column,collapsed:this.collapsed};if(this.el){state.height=this.el.getHeight();}
Ext.state.Manager.set(this.id,state);}});Ext.ComponentMgr.registerType('home-portlet',HomePortlet);PortletsModule=Ext.extend(Application.Module,{title:'Portlets',itemTitle:'portlet',name:'portlets',initParams:function(){this.rd=['id','user_id','account_id','name','type_id','type','items_count','summary_state','filters','calendar_item','is_shared','template_id','template_source','column_place','sort_order','page','page_id'];this.filterTypesStore=prepareOptionsDs(this.makeUrl("getFilterTypeOptions"),null,null,true);},requestTpl:new Ext.XTemplate('<tpl for=".">','<div class="status-portlet-item">','<div class="divActivityTitle">','<h1>What information do you need? <a id="media-request-tip" style="margin-left: 10px">What is this?</a></h1>','<span>Type here to quickly and easily poll the PR community for information</span>','</div>','<div class="text-editor"><textarea class="inline-input" id="home-profile-request-field"></textarea>','<a class="img_button" title="Add" id="request-submit"><button value="submit" class="big"><span>Add</span></button></a>','</div>','<div style="clear: both; height: 1px"></div>','<a onclick="Requests.doAdd()">Add Detailed Request</a>','<a style="margin-left: 20px;" onclick="Requests.activate().showCurrentRequests()">','<tpl if="day">You have {day} active requests</tpl>','<tpl if="!day">You currently have no active requests</tpl></a>','</div>','<div style="clear: both; height: 1px"></div>','</tpl>').compile(),getUpdatesTpl:function(){if(!app.conf.tweet){return new Ext.XTemplate('<tpl for=".">You have not provided your twitter feed details. <a href="#" onclick="Home.editProfile()">Click here</a> and go to Feed tab to add your twitter feed so you can view and post your Twitter feeds from this site.</tpl>');}else{return this.updatesTpl}},updatesTpl:new Ext.XTemplate('<tpl for=".">','<tpl for="items">','<div class="day-portlet-item"><span>{day}</span><hr/>','<tpl for="items">','<div class="portlet-item"><div class="tweet"><img src="{outlet}"></div>','<div class="header">{title}','<div style="font-size: 11px; color: #666">','<tpl if="type==\'twitter\'">',' Via Twitter ','</tpl>','{[agoRenderer(new Date(values.published_at))]}</div>','<tpl if="author_id==app.conf.user.id">','<div class="home-updates-delete inline-reply-selector" objId="{id}">delete</div>','</tpl>','</div>','<hr size="1" />','</div>','</tpl></div>','</tpl>','</tpl>').compile(),updatesSimpleTpl:new Ext.XTemplate('<tpl for=".">','<tpl for="items">','<div class="day-portlet-item"><span>{day}</span><hr/>','<tpl for="items">','<div class="portlet-item"><div class="icon icon-{type}"></div>','<div class="header">{title}','<tpl if="author_id==app.conf.user.id">','<div class="home-updates-delete inline-reply-selector" objId="{id}">delete</div>','</tpl>','</div>','<hr size="1" />','</div>','</tpl></div>','</tpl>','</tpl>'),eventsTpl:new Ext.XTemplate('<tpl for=".">','<div class="day-portlet-item">{day}<hr/>','<tpl for="items">','<div class="portlet-item"><div class="icon icon-{type}"></div>','<tpl if="type==\'date\'">','<div class="header"><b><a onclick="showEvent({id})">{title}</a></b></div>','<tpl if="this.isUpcoming(parent.day) == true">{published_at:dRenderer} - </tpl><a onclick="showContact({author_id})">{author}</a> in {outlet} ','</tpl>','<tpl if="type==\'edit\'">','<div class="header"><b><a onclick="showTask({id})">','<tpl if="description==true"><font color="red">{title}</font></tpl>','<tpl if="description==false">{title}</tpl>','</a></b></div>','<tpl if="author_id">','In project <a onclick="showProject({author_id})">{author}</a> {outlet} priority','</tpl>','<tpl if="!author_id">','{outlet} priority','</tpl>','</tpl>','<hr size="1" />','</div>','</tpl></div>','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Tasks.init().showMain({\'subtype\': \'my\'}); return false;">See More Tasks</a> | <a href=# onclick="Calendar.init().showMain(); return false;">See More Events</a></div>','<div class="clear"></div>',{isUpcoming:function(day){return day=="Upcoming events";}}).compile(),opportunitiesTpl:new Ext.XTemplate('<tpl for=".">','<div class="day-portlet-item"><span>{day}</span><hr/>','<tpl for="items">','<div class="portlet-item"><div class="icon icon-{type}"></div>','<div class="header"><b><a onclick="showRequest({id})">{title}</a></b></div>','<a <tpl if="author_id">onclick="showContact({author_id})</tpl>">{author}</a>','<tpl if="outlet_id">',' for <a onclick="showContact({outlet_id})">{outlet}</a>','</tpl>','<tpl if="this.needSummary(parent.summary_state, xindex, parent.id)">','<div class="sumary">{description}</div>','</tpl>','<hr size="1" />','</div>','</tpl></div>','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Opportunities.init().showBeat(0); return false;">See More</a></div>','<div class="clear"></div>',{needSummary:function(state,i,id){switch(state){case"all":return true;case"no":return false;case"first":return(i+id)==2;default:return true;}}}).compile(),coverageTpl:new Ext.XTemplate('<tpl for=".">','<div class="day-portlet-item"><span>{day}</span><hr/>','<tpl for="items">','<div class="portlet-item"><div class="icon icon-{type}"></div>','<div class="header"><b><a onclick="showClip({id})">{title}</a></b></div>','<tpl if="description">{description} | </tpl>','<tpl if="author_id"><a onclick="showContact({author_id})"></tpl>{author}<tpl if="author_id"></a></tpl>','<tpl if="outlet_id"> for <a onclick="showContact({outlet_id})">{outlet}</a> |</tpl> {published_at}','<hr size="1" />','</div>','</tpl></div>','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Coverage.init().showMain(); return false;">See More</a></div>','<div class="clear"></div>').compile(),htmlTpl:new Ext.XTemplate('<tpl for=".">{content}</tpl>'),articlesTpl:new Ext.XTemplate('<tpl for=".">','<div class="portlet-item"><div class="icon icon-feed"></div>','<div class="header"><b><a onclick="showReaderUrl(\'{type}\', \'{title:escape}\', {id})">{title}</a></b></div>','<div class="clear"></div>','<tpl if="this.needSummary(summary_state, xindex)">','<tpl if="image_url">','<div class="image"><img src="{image_url}" width="80"/></div>','</tpl>','<div class="sumary">{description}</div>','</tpl>','<div class="comment"><tpl if="outlet">{outlet} | </tpl>{published_at:agoRenderer} | <a onclick="showReaderUrl(\'{type}\', \'{title:escape}\', {id})">{comments_count} comments</a></div>','<div class="clear"></div>','</div>','<hr size="1" />','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Reader.init().showMain(); return false;">See More</a></div>','<div class="clear"></div>',{hasLink:function(description){return description.indexOf("href")>=0;},needSummary:function(state,i){switch(state){case"all":return true;case"no":return false;case"first":return i==1;default:return true;}}}).compile(),commentsTpl:new Ext.XTemplate('<tpl for=".">','<div class="portlet-item"><div class="icon icon-comments"></div>','<div class="header"><a onclick="showContact({author_id})">{author}</a> on <b><a href="#" onclick="showReaderItem({outlet}, \'{type}\')">{title}</a></b></div>','<a onclick="showReaderItem({outlet}, \'{type}\')">{description}</a>','<div class="clear"></div>','</div>','<hr size="1" />','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Stories.init().showMain(); return false;">See More</a></div>','<div class="clear"></div>').compile(),storiesTpl:new Ext.XTemplate('<tpl for=".">','<div class="story-portlet-item">','<div class="header"><a onclick="showStory({id})">{title}</a></b></div>','<div class="clear"></div>','<tpl if="this.needSummary(summary_state, xindex)">','<tpl if="image_url">','<div class="image"><img src="{image_url}" width="80"/></div>','</tpl>','<div class="sumary">{description}</div>','</tpl>','<div class="comment">{published_at:agoRenderer} | {comments_count} comments</div>','<div class="clear"></div>','</div>','<hr size="1" />','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Stories.init().showMain(); return false;">See More</a></div>','<div class="clear"></div>',{hasLink:function(description){return description.indexOf("href")>=0;},needSummary:function(state,i){switch(state){case"all":return true;case"no":return false;case"first":return i==1;default:return true;}}}).compile(),releasesTpl:new Ext.XTemplate('<tpl for=".">','<div class="story-portlet-item">','<div class="header"><b><a onclick="showRelease({id})">{title}</a></b></div>','<tpl if="this.needSummary(summary_state, xindex)">','<tpl if="image_url">','<div class="image"><img src="{image_url}" width="80"/></div>','</tpl>','<div class="sumary">{description}</div>','</tpl>','<div class="comment">{outlet} | {published_at:agoRenderer}</div>','<div class="clear"></div>','</div>','<hr size="1" />','</tpl>','<div class="portlet-item see-more"><a href=# onclick="Prwire.init().showMain(); return false;">See More</a></div>','<div class="clear"></div>',{hasLink:function(description){return description.indexOf("href")>=0;},needSummary:function(state,i){switch(state){case"all":return true;case"no":return false;case"first":return i==1;default:return true;}}}).compile(),chartTpl:new Ext.XTemplate('<tpl for="."></tpl>'),getTpl:function(typeId){switch(typeId){case 4401:case 4413:return this.updatesTpl;case 4402:return this.opportunitiesTpl;case 4403:return this.articlesTpl;case 4404:return this.coverageTpl;case 4405:return this.eventsTpl;case 4406:return this.commentsTpl;case 4407:return this.htmlTpl;case 4408:return this.storiesTpl;case 4409:return this.releasesTpl;case 4411:return this.chartTpl;case 4412:return this.requestTpl;default:return this.updatesTpl;}},initForm:function(){return{defaults:{autoHeight:false,bodyStyle:'padding:10px'},items:[{xtype:'tabpanel',id:this.name+"-dialog-tabpanel",layoutOnTabChange:true,defaults:{bodyStyle:'position:relative;'},height:400,activeTab:0,items:[{title:"General",layout:"form",defaultType:'textfield',items:[{fieldLabel:'Name',name:'name',allowBlank:false},new Ext.form.ComboBox(getComboOptions({fieldLabel:'Portlet type',hiddenName:'type_id',allowBlank:false,listeners:{'select':{fn:function(combo,record,index){this.initAddons(record.get("id"));this.filterTypesStore.reload({params:{type:record.get("id")}});this.filtersPanel.reset();this.filtersPanel.appendField();},scope:this}},store:app.ds.portletTypes})),this.pageFieldSet=new Ext.form.FieldSet({autoHeight:true,style:"padding: 0px; border: none",items:this.pageField=new Ext.form.ComboBox(getRemoteComboOptions(this.makeUrl('getHomePagesOptions'),{fieldLabel:'Page',hiddenName:'page_id'}))}),this.itemsCountFieldSet=new Ext.form.FieldSet({autoHeight:true,style:"padding: 0px; border: none",items:{xtype:'textfield',fieldLabel:'Items count',name:'items_count',vtype:'numeric',value:5}}),this.htmlFieldSet=new Ext.form.FieldSet({autoHeight:true,style:"padding: 0px; border: none",items:[{xtype:'textarea',width:400,height:200,fieldLabel:'Html source',name:'template_source'}]}),this.summaryStateFieldSet=new Ext.form.FieldSet({autoHeight:true,style:"padding: 0px; border: none",items:[getComboOptions({fieldLabel:'Summary state',hiddenName:'summary_state',value:'first',store:new Ext.data.SimpleStore({fields:['id','value'],data:[['first','Show first summary only'],['all','Show all summaries'],['no','Show no summaries']]})})]})]},this.filtersPanel=new DynamicFieldsPanel({title:"Filters",autoScroll:true,fields:[getComboOptions({fieldLabel:'Type',hiddenName:"filter_type_id[]",mode:'remote',triggerAction:'all',selectOnFocus:false,store:this.filterTypesStore,listeners:{'select':{fn:function(combo,record,index){var id=combo.hiddenName;id=id.replace(/filter_type_id/,'filter_value');var el=Ext.get(id).parent().child('input[class*=x-form-field]');var cmp=Ext.getCmp(el.id);cmp.setValue("");if(record.id==4504){cmp.selectText('Select or type url of feed');cmp.setEditable(true);}else{cmp.selectText('Select....');cmp.setEditable(false);}
cmp.store.baseParams.type_id=record.id;cmp.store.reload();},scope:this},'blur':{fn:function(combo){}}}}),getRemoteComboOptions(this.makeUrl("getFilterValueOptions"),{fieldLabel:'Value',hiddenName:"filter_value[]"})],set:function(obj){if(!obj.filters.length){this.appendField();}
try{Ext.each(obj.filters,function(o){this.appendField([o.type_id,o.value]);},this);}catch(e){this.appendField();}}})]}]};},fillDynamicFields:function(obj){this.initAddons(obj.type_id);this.filtersPanel.set(obj);},fillForm:function(obj){this.getForm().setValues(obj);this.pageField.setRawValue(obj.page);},initAddons:function(type){this.filterTypesStore.baseParams={type:type};this.pageFieldSet.setVisible(this.parentModule==Home);this.summaryStateFieldSet.setVisible(type==4403||type==4408||type==4409||type==4402);this.htmlFieldSet.setVisible(type==4407);this.itemsCountFieldSet.setVisible(type!=4407&&type!=4410&&type!=4411);var tabPanel=Ext.getCmp(this.name+"-dialog-tabpanel");if(type==4404||type==4403||type==4408||type==4402||type==4409||type==4405){tabPanel.unhideTabStripItem(this.filtersPanel);}else{tabPanel.hideTabStripItem(this.filtersPanel);}},resetForm:function(){try{this.getForm().reset();this.filtersPanel.reset();this.initAddons('');}catch(e){}},setFormDefaults:function(){this.initAddons('');this.filtersPanel.appendField();}});EventsCalendar=Ext.extend(Ext.DatePicker,{initComponent:function(){EventsCalendar.superclass.initComponent.call(this);this.initStore();},initStore:function(){this.store=prepareDs(this.scope.makeUrl("calendarData"),[{name:'stamp'}]);},showByStamp:function(stamp){this.scope.showByStamp(stamp);},setDates:function(){this.unselectDates();if(this.store){this.store.load({params:{start_date:this.cells.first().dom.firstChild.dateValue/1000,end_date:this.cells.last().dom.firstChild.dateValue/1000+86400},scope:this,callback:function(records,options,success){for(var i=0;i<records.length;i++){this.selectDate(records[i].data.stamp);}}});}},handleDateClick:function(e,t){e.stopEvent();if(t.dateValue&&!Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.showByStamp(t.dateValue/1000);this.cells.each(function(c){c.removeClass("x-date-today");});Ext.fly(t.parentNode).addClass("x-date-today");}},unselectAll:function(){this.cells.each(function(c){c.removeClass("x-date-today");});},unselectDates:function(){this.cells.each(function(c){c.removeClass("x-date-selected");});},selectDate:function(date){this.settingDate=date;this.cells.each(function(c){if(this.settingDate-c.dom.firstChild.dateValue/1000<86400&&this.settingDate-c.dom.firstChild.dateValue/1000>=0){c.addClass("x-date-selected");}},this);},update:function(date){var vd=this.activeDate;this.activeDate=date;if(vd&&this.el){var t=date.getTime();if(vd.getMonth()==date.getMonth()&&vd.getFullYear()==date.getFullYear()){this.cells.each(function(c){c.removeClass("x-date-today");if(c.dom.firstChild.dateValue==t){c.addClass("x-date-today");this.showByStamp(t/1000);setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}},50);return false;}},this);return;}}
var days=date.getDaysInMonth();var firstOfMonth=date.getFirstDateOfMonth();var startingPos=firstOfMonth.getDay()-this.startDay;if(startingPos<=this.startDay){startingPos+=7;}
var pm=date.add("mo",-1);var prevStart=pm.getDaysInMonth()-startingPos;var cells=this.cells.elements;var textEls=this.textNodes;days+=startingPos;var day=86400000;var d=(new Date(pm.getFullYear(),pm.getMonth(),prevStart)).clearTime();var today=new Date().clearTime().getTime();var sel=date.clearTime().getTime();var min=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var max=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var ddMatch=this.disabledDatesRE;var ddText=this.disabledDatesText;var ddays=this.disabledDays?this.disabledDays.join(""):false;var ddaysText=this.disabledDaysText;var format=this.format;var setCellClass=function(cal,cell){cell.title="";var t=d.getTime();cell.firstChild.dateValue=t;if(t==today){cell.className+=" x-date-today";cell.title=cal.todayText;}
if(t==sel){cell.className+=" x-date-selected";setTimeout(function(){try{cell.firstChild.focus();}catch(e){}},50);}
if(t<min){cell.className=" x-date-disabled";cell.title=cal.minText;return;}
if(t>max){cell.className=" x-date-disabled";cell.title=cal.maxText;return;}
if(ddays){if(ddays.indexOf(d.getDay())!=-1){cell.title=ddaysText;cell.className=" x-date-disabled";}}
if(ddMatch&&format){var fvalue=d.dateFormat(format);if(ddMatch.test(fvalue)){cell.title=ddText.replace("%0",fvalue);cell.className=" x-date-disabled";}}};var i=0;for(;i<startingPos;i++){textEls[i].innerHTML=(++prevStart);d.setDate(d.getDate()+1);cells[i].className="x-date-prevday";setCellClass(this,cells[i]);}
for(;i<days;i++){intDay=i-startingPos+1;textEls[i].innerHTML=(intDay);d.setDate(d.getDate()+1);cells[i].className="x-date-active";setCellClass(this,cells[i]);}
var extraDays=0;for(;i<42;i++){textEls[i].innerHTML=(++extraDays);d.setDate(d.getDate()+1);cells[i].className="x-date-nextday";setCellClass(this,cells[i]);}
this.mbtn.setText(this.monthNames[date.getMonth()]+" "+date.getFullYear());if(!this.internalRender){var main=this.el.dom.firstChild;var w=main.offsetWidth;this.el.setWidth(w+this.el.getBorderWidth("lr"));Ext.fly(main).setWidth(w);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){main.rows[0].cells[1].style.width=(w-(main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[date]);}}
this.setDates();},onShow:function(){this.setDates();},handleMouseWheel:function(e){e.stopEvent();}});StreamPanel=Ext.extend(Ext.Panel,{rd:['id','icon','message','created_at','user_pic','actions','comments','comments_count','note','note_full','type_id','is_private','time','teams'],cls:'stream-panel',autoScroll:true,title:'Activities',plain:true,bodyBorder:false,enableLoading:true,newItems:0,tbar:[],tpl:new Ext.XTemplate('<div class="portlet-item stream-item"><table><tr><td>','<tpl if="user_pic"><div class="tweet"><img src="{user_pic}"></div></tpl>','</td><td>','<div class="title"><div class="ico-new ico-new-{icon}"></div>{message}</div>','<div class="item-info"><div class="note">{note} <tpl if="note_full"><a href=# onclick="streamAction(this, \'show_more\'); return false;">Show more</a></tpl></div><tpl if="note_full"><div class="note note-full" style="display: none;">{note_full}</div></tpl>','<tpl if="this.isQuestion(type_id) == true"><span class="shared-type"><tpl if="is_private">Private</tpl><tpl if="!is_private">Public</tpl></span></tpl><tpl if="teams">Shared {created_at} ago with {teams}</tpl><tpl if="!teams">{created_at} ago (not shared)</tpl> - ','<tpl for="actions">','{[xindex != 1 ? \' |\': \'\']} ','<tpl if="name != \'Edit\'"><a href=# onclick="streamAction(this, \'{id}\', \'{parent.id}\', \'activity\')">{name}</a></tpl>','<tpl if="name == \'Edit\'"><a href=# onclick="streamAction(this, \'{id}\', \'{parent.id}\', \'{type}\', \''+this.id+'\')">{name}</a></tpl>','</tpl>','</div>','</td></tr></table>','<div class="stream-comments">','<div class="stream-comments-top" <tpl if="comments.length == 0">style="display: none;"</tpl>>','<tpl if="comments_count &gt; 2">','<div class="form-outer"><div class="form-inner"><a href=# onclick="streamAction(this, \'triggerComments\', {comments_count})">Show all {comments_count} <tpl if="this.isQuestion(type_id) == true">responses</tpl><tpl if="this.isQuestion(type_id) == false">comments</tpl></a></div></div>','</tpl>','<tpl for="comments">','<tpl if="xindex == 1 && xcount &gt; 2"><div class="more-comments" style="display: none;"></tpl>','<div class="stream-comment">','<div class="body-outer"><div class="body-inner">','<tpl if="user_pic"><div class="tweet"><img src="{user_pic}"></div></tpl>','<a href=# onclick="showContact({contact_id})">{user}</a> <tpl if="this.isQuestion(parent.type_id) == true">(<a href=# onclick="showCompany({company_contact_id})";>{company}</a>) </tpl>','{text}<br>','<span class="info">{created_at} <tpl if="is_editable"> | <a href=# onclick="streamAction(this, \'delete\', \'{parent.id}\', \'activity\', \'{id}\'); return false;">Delete</a></tpl></span>','</div></div>','</div>','<tpl if="xindex == xcount-2 && xcount &gt; 2"></div></tpl>','</tpl>','<div class="form-outer"><div class="form-inner">','<input type="text" class="stream-comment-input" onfocus="streamAction(this, \'show_form\', \'\', \'\'); return false;" value="Write a comment...">','<div class="stream-comment-form" style="display: none;">','<div class="user-pic"><img src="'+app.conf.user.twitterPic+'"></div>','<div class="textarea">','<textarea class="'+this.name+'-stream-textarea"></textarea><br>','<button onclick="streamAction(this, \'submit_comment\', \'{id}\', \'activity\'); return false;">post</button>','</div>','</div>','</div></div>','</div>','</div>','</div>',{isQuestion:function(typeId){if(typeId==2261||typeId==2262||typeId==2267)return true;return false;}}).compile(),initComponent:function(){var config=this.initialConfig;StreamPanel.superclass.initComponent.apply(this);this.add(this.newItemsPanel=new Ext.Panel({html:''}),this.scrollerPanel=new Ext.Panel({bodyCssClass:'stream',autoScroll:false}));this.store=new Ext.data.Store({url:this.pagerUrl,autoLoad:false,baseParams:{limit:10,is_stream:true,start:0},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.store.addListener('beforeload',function(s,options){if(this.store.isLoading){return false;}
this.store.isLoading=true;Ext.each(this.filters,function(f){if(f.xtype=='datefield'){eval('options.params.'+f.hiddenName+'=\''+Ext.util.Format.date(f.getValue(),app.conf.dateFormat)+'\';');}else{eval('options.params.'+f.hiddenName+'=\''+f.getValue()+'\';');}},this);if(options.params.start){s.lastOptions.params.start=options.params.start;}
if(Ext.urlEncode(options.params)!=Ext.urlEncode(s.lastOptions.params)){s.baseParams.start=0;}
return true;},this);this.store.addListener('load',function(store,r){this.enableLoading=true;var records=this.store.getRange();var items=[];this.store.isLoading=false;if(this.store.baseParams.last_id&&(!this.store.lastOptions.params||!this.store.lastOptions.params.lazy_load)){if(this.scrollerPanel.el&&records.length){this.newItemsPanel.el.slideOut('t',{stopFx:true,duration:.2});this.newItems=this.newItems+records.length;this.newItemsPanel.el.dom.innerHTML='<div class="stream-new-items-panel"><a href=# onclick="streamAction(this, \'show_hidden\'); return false;">Show '+this.newItems+' new item'+(this.newItems>1?'s':'')+'</a></div>';this.newItemsPanel.el.slideIn('t',{stopFx:true,duration:.2})
for(var i=0;i<records.length;i++){this.scrollerPanel.insert(0,{xtype:'panel',cls:'stream-item-panel',hidden:true,html:this.tpl.apply(records[i].data)});}
Ext.each(records,function(el,n){if(!this.store.baseParams.last_id||el.data.id>this.store.baseParams.last_id){this.store.baseParams.last_id=el.data.id;}},this);}
return;}
if(records[0]&&(!this.store.lastOptions.params||!this.store.lastOptions.params.lazy_load)){Ext.each(records,function(el,n){if(!this.store.baseParams.last_id||el.data.id>this.store.baseParams.last_id){this.store.baseParams.last_id=el.data.id;}},this);}
if(this.store.baseParams.start==0){if(this.newItemsPanel.el){this.newItemsPanel.el.dom.innerHTML='';}
this.scrollerPanel.removeAll();}
for(var i=0;i<records.length;i++){this.scrollerPanel.add({cls:'stream-item-panel',html:this.tpl.apply(records[i].data)});}
this.doLayout();if(this.el){this.el.removeListener('contextmenu');this.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:this.refresh.createDelegate(this)}]});}
this.contextMenu.showAt(e.getXY());},this);this.el.child('div').child('div[class*=x-panel-body]').removeListener('scroll');this.el.child('div').child('div[class*=x-panel-body]').addListener('scroll',function(event,el){if(this.enableLoading&&(this.scrollerPanel.getHeight()-(el.scrollTop+this.getHeight())<50)){var streamPanel=Ext.getCmp(el.parentNode.parentNode.id);streamPanel.store.reload({params:{start:streamPanel.store.baseParams.start+10,lazy_load:true}});this.enableLoading=false;streamPanel.store.baseParams.start=streamPanel.store.baseParams.start+10;}},this);}},this);this.on('render',function(){this.store.reload();},this);var filterItems=[];var filters=[]
if(this.filters){Ext.each(this.filters,function(f,i){if(f=='team'){f=prepareComboBox(makeUrl("core","getUsersOptions"),{emptyText:'All Users',labelName:'Users',hiddenName:'creator_id'});}else if(f=='client'){f=prepareComboBox(makeUrl("newsrooms","getOptions"),{emptyText:'All Clients',labelName:'Clients',hiddenName:'company_id'});}else if(f=='contacts'){f=prepareComboBox(makeUrl("contacts","getPersonOptions"),{emptyText:'All Contacts',labelName:'Contacts',hiddenName:'person_id'});}else if(f=='types'){f=prepareComboBox(makeUrl("activities","getTypesOptions"),{emptyText:'All Types',labelName:'Types',hiddenName:'type_id'});}
if(!f.hidden){var checked=false;try{checked=this.filtersState[i];}catch(e){}
f.setVisible(checked);filterItems.push({text:f.labelName,checked:checked,xtype:'menucheckitem',checkHandler:this.showFilter.createDelegate(this,[f],true)});}
filters.push(f);},this);this.getTopToolbar().add({text:'Search',menu:{items:filterItems}},filters);this.filters=filters;}
this.getTopToolbar().add(this.filter=new Ext.app.SearchField({store:this.store,grid:this,width:160}));this.getTopToolbar().doLayout();},refresh:function(){if(this.enableLoading){this.scrollerPanel.removeAll();this.newItems=0;this.store.baseParams.last_id='';this.store.baseParams.start=0;this.store.reload({params:{start:0}});}},showFilter:function(item,check,filter){filter.setVisible(check);},setFilters:function(v,isBase){if(typeof v=='undefined'){Ext.each(this.filters,function(f){f.reset();});this.filter.reset();return;}
Ext.each(this.filters,function(f,i){Ext.iterate(v,function(ok,ov){if(ok==f.hiddenName&&ov){f.setValue(ov);if(f.xtype=='datefield'){f.setValue(ov);}
if(isBase){f.setDisabled(true);}
this.showFilter(null,true,f);}},this);},this);if(this.filter&&v.filter){this.filter.setValue(v.filter);}},getUpdates:function(){this.store.reload({params:{start:0}});}});Ext.reg('streampanel',StreamPanel);Application.SectionModule=Ext.extend(Application.Module,{initComponent:function(){Application.SectionModule.superclass.initComponent.apply(this);this.initParams();},initParams:function(){},afterItemUpdate:function(){this.store.reload();},getPanelCfg:function(){return{layout:"border",border:false,id:"section-"+this.name+"-panel",title:this.title,section:'research',iconCls:'ico-new '+this.iconCls,items:[{region:'east',id:"section-"+this.name+"-actions-panel",cls:'preview',autoScroll:true,split:true,width:420,items:[{xtype:'toolbar',items:[{text:'Actions'}]},{}]},{region:'center',overflow:'hidden',autoScroll:true,bodyBorder:false,id:"section-"+this.name+"-center-panel",split:false,items:[this.getTopAreaCfg(),this.getBottomAreaCfg()]}]};},showMain:function(){}});Ext.form.InlineTextField=function(config){Ext.form.InlineTextField.superclass.constructor.call(this,config);};Ext.extend(Ext.form.InlineTextField,Ext.form.TextField,{inlineClass:"x-form-inline-field",disabledClass:"x-form-inline-field-disabled",saveOnlyOnChange:true,doSave:function(){cfg=this.autoSave;this.url=cfg.url;this.callback=cfg.callback||Ext.emptyFn;this.params=cfg.params;eval(['this.params.',this.name,' = "',this.getValue(),'";'].join(''));if(cfg.scope){scope=cfg.scope;}else{scope=this;}
sendJsonRequest(this.url,this.params,this.callback,scope);},reset:function(){Ext.form.TextField.superclass.reset.call(this);if(this.value){this.setRawValue(this.value);}
else if(this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}}});Ext.form.InlineTextField.prototype.onRender=Ext.form.TextField.prototype.onRender.createSequence(function(){this.el.addClass(this.inlineClass);if(this.editable===false){this.disabled=true;}});Ext.form.InlineTextField.prototype.onFocus=Ext.form.TextField.prototype.onFocus.createSequence(function(){if(this.editable!==false){this.previousValue=this.getValue();this.el.removeClass(this.inlineClass);}});Ext.form.InlineTextField.prototype.onBlur=Ext.form.TextField.prototype.onBlur.createSequence(function(){if(this.isValid()&&!this.el.hasClass(this.inlineClass)){this.el.addClass(this.inlineClass);if(this.autoSave&&(this.saveOnlyOnChange===false||this.getValue()!=this.previousValue)){this.doSave();}}});Ext.namespace('Ext.ux.form');Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{defaultAutoCreate:{tag:'input',type:'hidden'},timeWidth:55,dtSeparator:' ',hiddenFormat:app.conf.dateFormat+' '+app.conf.timeFormat,isFormField:true,dateFormat:app.conf.dateFormat,timeFormat:app.conf.timeFormat,width:150,value:new Date(),initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this);var dateConfig=Ext.apply({},{id:this.id+'-date',format:this.dateFormat,width:this.timeWidth,listeners:{blur:{scope:this,fn:this.onBlur}}},this.dateConfig);this.df=new Ext.form.DateField(dateConfig);delete(this.dateFormat);var timeConfig=Ext.apply({},{id:this.id+'-time',format:this.timeFormat,width:this.timeWidth,listeners:{blur:{scope:this,fn:this.onBlur}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig);delete(this.timeFormat);this.relayEvents(this.df,['focus','change','specialkey','invalid','valid']);this.relayEvents(this.tf,['focus','change','specialkey','invalid','valid']);},onRender:function(ct,position){Ext.ux.form.DateTime.superclass.onRender.call(this,ct,position);var t=Ext.DomHelper.append(ct,{tag:'table',style:'border-collapse:collapse',children:[{tag:'tr',children:[{tag:'td',style:'padding-right:4px; width: 110px'},{tag:'td'}]}]},true);this.tableEl=t;var td=t.child('td');this.df.render(td);var td=td.next('td');this.tf.render(td);if(Ext.isIE&&Ext.isStrict){t.select('input').applyStyles({top:0});}
this.on('specialkey',this.onSpecialKey,this);this.df.el.swallowEvent(['keydown','keypress']);this.tf.el.swallowEvent(['keydown','keypress']);this.rendered=true;},onSpecialKey:function(t,e){if(e.getKey()==e.TAB){if(t===this.df&&!e.shiftKey){e.stopEvent();this.tf.focus();}
if(t===this.tf&&e.shiftKey){e.stopEvent();this.df.focus();}}},setSize:function(w,h){if(!w){return;}
this.df.setSize(w-this.timeWidth-4,h);this.tf.setSize(this.timeWidth,h);if(Ext.isIE){this.df.el.up('td').setWidth(w-this.timeWidth-4);this.tf.el.up('td').setWidth(this.timeWidth);}},focus:function(){this.df.focus();},setValue:function(val){val=val?val:new Date(0);var da,time;if(val instanceof Date){this.setDate(val);this.setTime(val);this.dateValue=new Date(val);}
else{da=val.split(this.dtSeparator);this.setDate(da[0]);if(da[1]){this.setTime(da[1]);}}
this.updateValue(true);},getValue:function(){return new Date(this.dateValue);},getSubmitValue:function(){var v=this.dateValue;if(v!=='')
{var date=new Date(v);return date.format(this.hiddenFormat);}
return v;},onBlur:function(){this.updateValue(true);(function(){var suppressEvent=this.df.hasFocus||this.tf.hasFocus;this.updateValue(suppressEvent);}).defer(100,this);},updateValue:function(suppressEvent){var d=this.df.getValue();this.dateValue=this.dateValue?this.dateValue:new Date(d);if(d instanceof Date){this.dateValue.setFullYear(d.getFullYear());this.dateValue.setMonth(d.getMonth());this.dateValue.setDate(d.getDate());}
else{this.dateValue.setFullYear(1970);this.dateValue.setMonth(0);this.dateValue.setDate(1);}
var t=Date.parseDate(this.tf.getValue(),this.tf.format);if(t instanceof Date&&this.dateValue instanceof Date){this.dateValue.setHours(t.getHours());this.dateValue.setMinutes(t.getMinutes());this.dateValue.setSeconds(t.getSeconds());}
else{this.dateValue.setUTCHours(0);this.dateValue.setUTCMinutes(0);this.dateValue.setUTCSeconds(0);}
if(this.rendered){this.el.dom.value=this.dateValue instanceof Date?this.dateValue.format(this.hiddenFormat):this.dateValue;}
if(true!==suppressEvent){this.fireEvent('blur',this);}},isValid:function(){return this.df.isValid()&&this.tf.isValid();},validate:function(){return this.df.validate()&&this.tf.validate();},setDate:function(date){this.df.setValue(new Date(date));},setTime:function(date){this.tf.setValue(date);}});Ext.reg('xdatetime',Ext.ux.form.DateTime);Ext.ux.TabCloseMenu=function(){var tabs,menu,ctxItem;this.init=function(tp){tabs=tp;tabs.on('contextmenu',onContextMenu);}
function onContextMenu(ts,item,e){var nodeId='node-'+item.id.slice(0,-6);if(nodeId.substr(-5)=='-grid'){nodeId=nodeId.slice(0,-5);}
var node=app.getNavigationTree().getNodeById(nodeId);if(!menu){menu=new Ext.menu.Menu({items:[{id:tabs.id+'_close',text:'Close Tab',handler:function(){tabs.remove(ctxItem);}},{id:tabs.id+'_close-others',text:'Close Other Tabs',handler:function(){tabs.items.each(function(item){if(item.closable&&item!=ctxItem){tabs.remove(item);}});}},'-',{id:tabs.id+'_openOnLoad',text:'Open on Load',xtype:'menucheckitem',handler:function(b){var node=this.node;eval('node.attributes.'+b.id.slice(-10)+'='+!b.checked+';');sendJsonRequest(app.makeUrl('setModulesSettings'),{id:node.id,type:b.id,set:!b.checked});}},{id:tabs.id+'_pinOnLoad',text:'Pin on Load',xtype:'menucheckitem',handler:function(b){var node=this.node;eval('node.attributes.'+b.id.slice(-9)+'='+!b.checked+';');sendJsonRequest(app.makeUrl('setModulesSettings'),{id:node.id,type:b.id,set:!b.checked});}}]});}
ctxItem=item;var items=menu.items;items.get(tabs.id+'_pinOnLoad').setDisabled(node?false:true);items.get(tabs.id+'_openOnLoad').setDisabled(node?false:true);items.get(tabs.id+'_pinOnLoad').node=node;items.get(tabs.id+'_openOnLoad').node=node;if(node){items.get(tabs.id+'_pinOnLoad').setChecked(node.attributes.pinOnLoad);items.get(tabs.id+'_openOnLoad').setChecked(node.attributes.openOnLoad);}
var disableOthers=true;tabs.items.each(function(){if(this!=item&&this.closable){disableOthers=false;return false;}});items.get(tabs.id+'_close-others').setDisabled(disableOthers);menu.showAt(e.getPoint());}};Ext.ux.indicator=Ext.extend(Ext.Button,{iconCls:'icon icon-indicator-static',disabled:true,tooltip:'Loading indicator',counter:0,initComponent:function(){Ext.ux.indicator.superclass.initComponent.call(this);Ext.Ajax.on('beforerequest',function(conn,o){if(this.counter==0){this.showProgress();}
this.counter++;},this);Ext.Ajax.on('requestcomplete',function(conn,response,o){this.counter--;if(this.counter<=0){this.hideProgress();this.counter=0;}},this);Ext.Ajax.on('requestexception',function(conn,response,o){--this.counter;if(this.counter<=0){this.hideProgress();this.counter=0;}},this);},showProgress:function(){this.setIconClass('icon-indicator');},hideProgress:function(){this.setIconClass('icon-indicator-static');},handler:function(){alert(this.counter);}});Ext.namespace('Ext.ux');Ext.ux.TagCloud=function(config){Ext.ux.TagCloud.superclass.constructor.call(this,config);if(this.store)
this.setStore(this.store);this.displayField=this.displayField||'tag';this.weightField=this.weightField||'count';this.tagsName=this.tagsName||'cloud-tags';this.addEvents({'tagselect':true});this.nodes=[];}
Ext.extend(Ext.ux.TagCloud,Ext.Component,{defaultAutoCreate:{tag:"div",cls:"x-cloud"},getDataSource:function(){return this.store;},setStore:function(store){store.on('load',this.refresh,this);this.store=store;this.store.remoteSort=false;this.store.sort(this.displayField,'ASC');},onRender:function(ct,position){this.container=ct;if(this.el){this.el=Ext.get(this.el);if(!this.target){ct.dom.appendChild(this.el.dom);}}else{var cfg=this.getAutoCreate();if(!cfg.name){cfg.name=this.name||this.id;}
this.el=ct.createChild(cfg,position);}
this.list=this.el.createChild({tag:"ol",cls:"x-cloud-ordered-list"});},refresh:function(){this.clearNodes();this.getWeightDistribution();var records=this.store.getRange();for(var i=0;i<records.length;i++){var count=records[i].data[this.weightField];var child=this.list.createChild({tag:"li",id:this.tagsName+'-'+records[i].data['id'],cls:"x-cloud-item "+this.getWeightClassification(count),html:['<a href="#" nowrap>',records[i].data[this.displayField],this.displayWeight?'&nbsp;('+count+')':'','</a>'].join('')});child.on('click',this.onSelect,this);}
this.list.fadeIn({duration:0.5,block:true});this.nodes=this.list.dom.childNodes;},clearNodes:function(){while(this.list.dom.firstChild){this.list.dom.removeChild(this.list.dom.firstChild);}},onSelect:function(e,t){var item=t.parentNode;var index=this.indexOf(item);var selected=this.list.query('.x-cloud-item-selected');if(selected.length>0){if(item.id!=selected[0].id){Ext.get(selected[0]).removeClass('x-cloud-item-selected');}}
Ext.get(item.id).toggleClass('x-cloud-item-selected');this.fireEvent('tagselect',this,this.getDataSource().getAt(index),index,Ext.get(item.id));Ext.EventObject.stopEvent(e);},indexOf:function(node){var ns=this.nodes;for(var i=0,len=ns.length;i<len;i++){if(ns[i]==node){return i;}}
return-1;},getWeightClassification:function(weight){if(weight==this.max)
return'largest';if(weight==this.min)
return'smallest';if(weight>(this.min+(this.distribution*2)))
return'large';if(weight>(this.min+this.distribution))
return'medium';return'small';},getWeightDistribution:function(){var records=this.store.getRange();if(records.length==0){this.max=this.min=0;return;}
this.max=records[0].data.count;this.min=records[0].data.count;for(var i=0;i<records.length;i++){var count=records[i].data[this.weightField];if(count>this.max){this.max=count;}
if(count<this.min){this.min=count;}}
if(!this.distribution)
this.distribution=(this.max-this.min)/5;},selectTagId:function(id){try{var selected=this.list.query('.x-cloud-item-selected');if(selected.length>0){Ext.get(selected[0]).removeClass('x-cloud-item-selected');}
Ext.get(this.tagsName+'-'+id).addClass('x-cloud-item-selected');return Ext.util.Format.stripTags(Ext.get(this.tagsName+'-'+id).dom.innerHTML);}catch(e){return'';}}});Ext.ux.CheckColumnTreePanel=Ext.extend(Ext.tree.TreePanel,{lines:false,borderWidth:Ext.isBorderBox?0:2,cls:'x-column-tree',checked:[],checkedValues:[],afterRenderValue:false,setAfterRenderValue:false,getValues:function(){this.checked=[];if(this.getEl()){var els=this.getEl().select('input');els.each(function(el){if(el.dom.checked==true){this.checked.push(el.getValue())
try{this.checkedValues.push(el.next().child('span').dom.innerHTML);}catch(e){}}},this);}
return this.checked.join(',');},setValues:function(values){if(this.rendered==false){this.afterRenderValue=values;this.setAfterRenderValue=true;return;}
this.reset();if(values){this.checked=values.split(',');var els=this.getEl().select('input');els.each(function(el){Ext.each(this.checked,function(f){if(el.getValue()==f){el.dom.checked=true;try{this.checkedValues.push(el.next().child('span').dom.innerHTML);}catch(e){}}});},this);}},reset:function(){this.checked=[];this.checkedValues=[];if(this.getEl()){var els=this.getEl().select('input');els.each(function(el){el.dom.checked=false;},this);}},listeners:{'render':{fn:function(){if(this.setAfterRenderValue){this.setAfterRenderValue=false;this.setValues(this.afterRenderValue);}}}}});Ext.ux.CheckColumnNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{focus:Ext.emptyFn,toggleCheck:function(value){var cb=this.checkbox;if(cb){cb.checked=(value===undefined?!cb.checked:value);}},renderElements:function(n,a,targetNode,bulkRender){this.indentMarkup=n.parentNode?n.parentNode.ui.getChildIndent():'';var cb=typeof a.checked=='boolean';a.checked=false;for(i=0;i<n.ownerTree.checked.length;i++){if(n.ownerTree.checked[i]==a.id){a.checked=true;break;}}
var href=a.href?a.href:Ext.isGecko?"":"#";var buf=['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',a.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img src="',a.icon||this.emptyIcon,'" class="x-tree-node-icon',(a.icon?" x-tree-node-inline-icon":""),(a.iconCls?" "+a.iconCls:""),'" unselectable="on" />',cb?('<input class="x-tree-node-cb" value="'+a.id+'" type="checkbox" '+(a.checked?'checked="checked" />':'/>')):'','<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" ',a.hrefTarget?' target="'+a.hrefTarget+'"':"",'><span unselectable="on">',n.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join('');var nel;if(bulkRender!==true&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,buf);}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",targetNode,buf);}
this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0];this.ecNode=cs[1];this.iconNode=cs[2];var index=3;if(cb){this.checkbox=cs[3];index++;}
this.anchor=cs[index];this.textNode=cs[index].firstChild;}});Ext.namespace('Ext.ux.Andrie');Ext.ux.Andrie.pPageSize=function(config){Ext.apply(this,config);};Ext.extend(Ext.ux.Andrie.pPageSize,Ext.util.Observable,{beforeText:'Show',afterText:'items',addBefore:'-',addAfter:null,dynamic:false,variations:[5,10,20,50,100,200,500,1000],comboCfg:undefined,init:function(pagingToolbar){this.pagingToolbar=pagingToolbar;this.pagingToolbar.pageSizeCombo=this;this.pagingToolbar.setPageSize=this.setPageSize.createDelegate(this);this.pagingToolbar.getPageSize=function(){return this.pageSize;}
this.pagingToolbar.on('render',this.onRender,this);},addSize:function(value){if(value>0){this.sizes.push([value]);}},updateStore:function(){if(this.dynamic){var middleValue=this.pagingToolbar.pageSize,start;middleValue=(middleValue>0)?middleValue:1;this.sizes=[];var v=this.variations;for(var i=0,len=v.length;i<len;i++){this.addSize(middleValue-v[v.length-1-i]);}
this.addToStore(middleValue);for(var i=0,len=v.length;i<len;i++){this.addSize(middleValue+v[i]);}}else{if(!this.staticSizes){this.sizes=[];var v=this.variations;var middleValue=0;for(var i=0,len=v.length;i<len;i++){this.addSize(middleValue+v[i]);}
this.staticSizes=this.sizes.slice(0);}else{this.sizes=this.staticSizes.slice(0);}}
this.combo.store.loadData(this.sizes);this.combo.collapse();this.combo.setValue(this.pagingToolbar.pageSize);},setPageSize:function(value,forced){var pt=this.pagingToolbar;this.combo.collapse();value=parseInt(value)||parseInt(this.combo.getValue());value=(value>0)?value:1;if(value==pt.pageSize){return;}else if(value<pt.pageSize){pt.pageSize=value;var ap=Math.round(pt.cursor/value)+1;var cursor=(ap-1)*value;var store=pt.store;this.pagingToolbar.pageSize=value;this.pagingToolbar.doLoad(cursor-value);}else{this.pagingToolbar.pageSize=value;this.pagingToolbar.doLoad(Math.floor(this.pagingToolbar.cursor/this.pagingToolbar.pageSize)*this.pagingToolbar.pageSize);}
this.updateStore();},onRender:function(){this.combo=Ext.ComponentMgr.create(Ext.applyIf(this.comboCfg||{},{store:new Ext.data.SimpleStore({fields:['pageSize'],data:[]}),displayField:'pageSize',valueField:'pageSize',mode:'local',triggerAction:'all',width:50,xtype:'combo'}));this.combo.on('select',this.setPageSize,this);this.updateStore();if(this.addBefore){this.pagingToolbar.add(this.addBefore);}
if(this.beforeText){this.pagingToolbar.add(this.beforeText);}
this.pagingToolbar.add(this.combo);if(this.afterText){this.pagingToolbar.add(this.afterText);}
if(this.addAfter){this.pagingToolbar.add(this.addAfter);}}})
Ext.ux.MaximizeTool=function(){this.init=function(ct){var maximizeTool={id:'maximize',handler:handleMaximize,scope:ct,qtip:'Maximize'};ct.tools=ct.tools||[];var newTools=[];for(var i=0,len=ct.tools.length;i<len;i++){if(ct.tools[i].id=='maximize')return;}
for(var i=0,len=ct.tools.length;i<len-1;i++){newTools[i]=ct.tools[i];}
newTools[i]=maximizeTool;newTools[i+1]=ct.tools[i];ct.tools=newTools;};function handleMaximize(event,toolEl,panel){panel.originalOwnerCt=panel.ownerCt;panel.originalPosition=panel.ownerCt.items.indexOf(panel);panel.originalSize=panel.getSize();if(!toolEl.window){var defaultConfig={id:(panel.getId()+'-MAX'),width:(Ext.getBody().getSize().width-100),height:(Ext.getBody().getSize().height-100),resizable:true,draggable:true,closable:true,closeAction:'hide',hideBorders:true,plain:true,layout:'fit',autoScroll:false,bodyBorder:false,frame:true,pinned:true,bodyStyle:'z-index: 100000; background-color: #ffffff;'};toolEl.window=new Ext.Window(defaultConfig);toolEl.window.on('hide',handleMinimize,panel);}
toolEl.window.add(panel);if(panel.tools['toggle'])panel.tools['toggle'].setVisible(false);panel.tools['maximize'].setVisible(false);toolEl.window.show(this);if(this.tabsPanel){this.prevHeight=this.tabsPanel.getInnerHeight();this.tabsPanel.setHeight(this.getInnerHeight());}
if(this.gvPanel){this.gvPanel.setHeight(this.getInnerHeight()-30);this.chartStore.reload();}};function handleMinimize(window){this.originalOwnerCt.insert(this.originalPosition,this);this.originalOwnerCt.doLayout();this.setSize(this.originalSize);this.tools['maximize'].setVisible(true);if(this.tools['toggle'])this.tools['toggle'].setVisible(true);if(this.tabsPanel){this.tabsPanel.setHeight(this.prevHeight+26);this.tabsPanel.doLayout();}
if(this.gvPanel){this.gvPanel.setHeight(this.getInnerHeight()-30);this.chartStore.reload();}}}
Ext.namespace('Ext.ux.grid');Ext.ux.grid.ProgressColumn=function(config){Ext.apply(this,config);this.renderer=this.renderer.createDelegate(this);this.addEvents('action');Ext.ux.grid.ProgressColumn.superclass.constructor.call(this);};Ext.extend(Ext.ux.grid.ProgressColumn,Ext.util.Observable,{textPst:'%',colored:false,actionEvent:'dblclick',init:function(grid){this.grid=grid;this.view=grid.getView();if(this.editor&&grid.isEditor){var cfg={scope:this};cfg[this.actionEvent]=this.onClick;grid.afterRender=grid.afterRender.createSequence(function(){this.view.mainBody.on(cfg);},this);}},onClick:function(e,target){var rowIndex=e.getTarget('.x-grid3-row').rowIndex;var colIndex=this.view.findCellIndex(target.parentNode.parentNode);var t=e.getTarget('.x-progress-text');if(t){this.grid.startEditing(rowIndex,colIndex);}},renderer:function(v,p,record){var style='';var textClass=(v<55)?'x-progress-text-back':'x-progress-text-front'+(Ext.isIE6?'-ie6':'');var text=String.format('</div><div class="x-progress-text {0}" style="width:100%;" id="{1}">{2}</div></div>',textClass,Ext.id(),v+this.textPst);text=(v<96)?text.substring(0,text.length-6):text.substr(6);if(this.colored==true){if(v<=100&&v>66)
style='-green';if(v<67&&v>33)
style='-orange';if(v<34)
style='-red';}
p.css+=' x-grid3-progresscol';return String.format('<div class="x-progress-wrap"><div class="x-progress-inner"><div class="x-progress-bar{0}" style="width:{1}%;">{2}</div>'+'</div>',style,v,text);}});Ext.ux.ManagedIFrame=function(){var args=Array.prototype.slice.call(arguments,0),el=Ext.get(args[0]),config=args[0];if(el&&el.dom&&el.dom.tagName=='IFRAME'){config=args[1]||{};}else{config=args[0]||args[1]||{};el=config.autoCreate?Ext.get(Ext.DomHelper.append(document.body,Ext.apply({tag:'iframe',src:(Ext.isIE&&Ext.isSecure)?Ext.SSL_SECURE_URL:''},config.autoCreate))):null;}
if(!el||el.dom.tagName!='IFRAME')return el;!!el.dom.name.length||(el.dom.name=el.dom.id);this.addEvents({"domready":true,"documentloaded":true});if(config.listeners){this.listeners=config.listeners;Ext.ux.ManagedIFrame.superclass.constructor.call(this);}
Ext.apply(el,this);el.addClass('x-managed-iframe');if(config.loadMask){el.loadMask=Ext.apply({msg:'Loading..',msgCls:'x-mask-loading',maskEl:null},config.loadMask);}
if(Ext.isIE){el.dom.onreadystatechange=el.loadHandler.createDelegate(el);}else{el.dom.onload=el.loadHandler.createDelegate(el);}
if(config.src){el.setSrc(config.src);}else{el.src=el.dom.src||null;var content=config.html||config.content||false;if(content){el.update(content);}}
return el;};Ext.extend(Ext.ux.ManagedIFrame,Ext.util.Observable,{setSrc:function(url,discardUrl){var src=url||this.src||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:'');this.showMask();(function(){this._windowContext=null;this.dom.src=(typeof src=='function'?src()||'':src);}).defer(100,this);if(discardUrl!==true){this.src=src;}},update:function(content,loadScripts,callback){loadScripts=loadScripts||this.getUpdateManager().loadScripts||false;this._windowContext=null;content=Ext.DomHelper.markup(content||'');var doc=this.getDocument();if(doc){this._inUpdate=true;this.showMask();doc.open();doc.write(loadScripts===true?content:content.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,""));doc.write('<script type="text/javascript">(function(){'+"var MSIE/*@cc_on =1@*/;"+"parent.Ext.get('"+this.dom.id+"')._windowContext=MSIE?this:{eval:function(s){return eval(s);}}"+"})();<\/script>");doc.close();if(!!content.length){this.checkDOM(false,callback);}else if(callback){callback();}}
return this;},_windowContext:null,getDocument:function(){return this.getWindow().document;},getWindow:function(){var dom=this.dom;return dom?dom.contentWindow||window.frames[dom.name]:window;},print:function(){if(this._windowContext){try{var win=this.getWindow();if(Ext.isIE){win.focus();}
win.print();}catch(ex){throw'print: invalid document context';}}},destroy:function(){this.removeAllListeners();if(this.dom){this.dom[Ext.isIE?'onreadystatechange':'onload']=null;if(this.dom.src){this.dom.src='javascript:false';}}},execScript:function(block){if(this._windowContext){return this._windowContext.eval(block);}else{throw'execScript:no script context';}},showMask:function(){if(this.loadMask){var lmask=this.loadMask;lmask.masker||(lmask.masker=Ext.get(lmask.maskEl||this.wrap({tag:'div',style:{position:'relative'}})));lmask.masker.mask(lmask.msg,lmask.msgCls);}},hideMask:function(){if(this.loadMask&&this.loadMask.masker&&(!!this.dom.src.length||this._inUpdate)){this.loadMask.masker.unmask();}},loadHandler:function(e){var rstatus=this.dom.readyState||e.type;switch(rstatus){case'loading':this.showMask();break;case'load':case'complete':this.fireEvent("documentloaded",this);this.hideMask();this._inUpdate=false;break;default:}},checkDOM:function(win,callback){var n=0,win=win||this.getWindow(),manager=this;var t=function()
{var domReady=false;domReady=(win.document&&typeof win.document.getElementsByTagName!='undefined'&&(win.document.getElementsByTagName('body')[0]!=null||win.document.body!=null));if(n++<70&&!domReady)
{t.defer(10);return;}
if(callback)callback();manager.fireEvent("domready",manager);};t();}});Ext.ux.ManagedIframePanel=Ext.extend(Ext.Panel,{bodyCfg:{tag:'div',cls:'x-panel-body',children:[{tag:'iframe',frameBorder:0,width:'100%',height:'100%',cls:'x-managed-iframe'}]},defaultSrc:null,iframeStyle:{overflow:'auto',display:'block'},loadMask:false,animCollapse:false,initComponent:function(){Ext.ux.ManagedIframePanel.superclass.initComponent.call(this);this.addEvents({documentloaded:true,domready:true});if(this.defaultSrc){this.on('render',this.setSrc.createDelegate(this,[this.defaultSrc],0),this,{single:true});}},onDestroy:function(){if(this.iframe){delete this.iframe.ownerCt;Ext.destroy(this.iframe);}
Ext.ux.ManagedIframePanel.superclass.onDestroy.call(this);},onRender:function(ct,position){Ext.ux.ManagedIframePanel.superclass.onRender.call(this,ct,position);if(this.iframe=this.body.child('iframe.x-managed-iframe')){if(this.loadMask){this.loadMask=Ext.apply({msg:'Loading..',msgCls:'x-mask-loading',maskEl:this.body},this.loadMask);}
this.iframe=new Ext.ux.ManagedIFrame(this.iframe,{loadMask:this.loadMask});this.iframe.ownerCt=this;this.relayEvents(this.iframe,["documentloaded","domready"]);if(this.iframeStyle){this.iframe.applyStyles(this.iframeStyle);}}},afterRender:function(){if(this.html&&this.iframe){this.iframe.update(typeof this.html=='object'?Ext.DomHelper.markup(this.html):this.html);delete this.html;}
Ext.ux.ManagedIframePanel.superclass.afterRender.call(this);},setSrc:function(url,discardUrl){var src=url||this.defaultSrc||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:'');if(this.rendered&&this.iframe){this.iframe.setSrc(src,discardUrl);}
if(discardUrl!==true){this.defaultSrc=src;}},getState:function(){return Ext.ux.ManagedIframePanel.superclass.getState.call(this)||{};}});Ext.reg('iframepanel',Ext.ux.ManagedIframePanel);Ext.ux.ManagedIFramePortlet=Ext.extend(Ext.ux.ManagedIframePanel,{anchor:'100%',frame:true,collapsible:true,draggable:true,hideMode:'display',cls:'x-portlet'});Ext.reg('iframeportlet',Ext.ux.ManagedIFramePortlet);Ext.namespace("ux.tine");ux.tine.MediaManagerRegistry=(function(){var _instanceCount=0;var _instances={};var _instancesData={};var _actions={tree:{},view:{}};_actions.tree.refresh=new Ext.Action({id:'refresh',handler:function(){}});var prefix_mmanager='mm-main-';var prefix_browsecontainer='mm-browsecontainer-';var prefix_treepanel='mm-treepanel-';var prefix_infopanel='mm-infopanel-';var prefix_viewcontainer='mm-viewcontainer-';var prefix_dataview='mm-dataview-';var _defaultText={windowTitle:'Media Manager',viewTitle:'Available medias {path}',viewEmpty:'No media available',treeTitle:'Available folders',treeRootTitle:'Available folder',infoTitle:'Information',infoEmpty:'<span style="font-size: 10px; padding: 2px">select a folder on the left panel</span>'}
var _regions={top:'north',left:'west',right:'east',bottom:'south',north:'north',west:'west',east:'east',south:'south'};var _defaultRegion='north';var _defaultParamNames={treeShowFolder:'show',treeMode:'mode',treePath:'path',viewMode:'list',viewPath:'path'};var _defaultModes={tree:['upload','info','list'],treeDefault:'list',view:['list'],viewDefault:'list'};var _defaultConfig={treeRegion:_defaultRegion,treeUrl:'media-manager/get-media-tree.php',viewUrl:'media-manager/get-media-view.php',showFolder:'*',treeRootVisible:false,multiSelect:false,paramNames:_defaultParamNames,modes:_defaultModes,width:465,height:440,collapsible:true,title:_defaultText.windowTitle,animateTarget:null,elementTarget:null,elementTargetTpl:'{path}',closeAction:'hide'};var _defaultTemplate=new Ext.XTemplate('<tpl for=".">','<div class="thumb-wrap" id="{name}">','<div class="thumb"><img src="{preview}" class="thumb-img" title="{name}" alt="{name}"></div>','<em unselectable="on">{shortname}</em></div>','</tpl>')
var _layouts={common:{layout:'border',layoutConfig:{animate:true},items:[]},containers:{view:{id:'',region:'center',border:true,title:(new Ext.Template(_defaultText.viewTitle)).applyTemplate({path:""}),autoScroll:true,header:true,layout:'border',bodyStyle:'background-color: white',collapsible:false,tools:[{id:'refresh',handler:Ext.emptyFn}],items:[]},browser:{id:'',region:_defaultConfig.treeRegion,margins:'2 2 2 2',title:_defaultText.treeTitle,header:true,border:true,autoHeight:false,autoScroll:false,bodyStyle:'background-color: white',lines:false,collapsible:true,frame:false,layout:'border',items:[]}},components:{view:{region:'center',tpl:_defaultTemplate,autoHeight:true,autoWidth:true,singleSelect:true,margins:'2 2 2 2',overClass:'x-view-over',itemSelector:'div.thumb-wrap',emptyText:_defaultText.viewEmpty,prepareData:function(data){data.shortname=Ext.util.Format.ellipsis(data.name,15);return data;}},tree:{region:'center',id:'',margins:'2 1 2 2',title:_defaultText.treeTitle,header:false,border:false,autoHeight:false,autoScroll:true,bodyStyle:'background-color: white',lines:false,collapsible:false,frame:false,rootVisible:_defaultConfig.treeRootVisible,loader:null,root:new Ext.tree.AsyncTreeNode({text:_defaultText.treeRootTitle,expanded:true,draggable:false,id:"/"})},info:{id:'',margins:'2 2 2 0',title:_defaultText.infoTitle,header:true,border:true,autoHeight:false,autoScroll:true,bodyStyle:'background-color: white',titleCollapse:true,lines:false,collapsible:true,collapsed:true,frame:false,html:_defaultText.infoEmpty}},north:{region:'north',height:150},south:{region:'south',height:150},west:{region:'west',width:170},east:{region:'east',width:170}}
function getRegion(region){if(Ext.isEmpty(_regions[region])){return _regions[_defaultRegion];}
return _regions[region];}
function getMainLayout(){return _layouts.common;}
function getViewContainerLayout(viewcontainer_id){var viewLayout=_layouts.containers.view;viewLayout.id=viewcontainer_id;return viewLayout;}
function getBrowserContainerLayout(region,browsercontainer_id){var _region=getRegion(region);var regionLayout=_layouts[_region];var containerLayout=_layouts.containers.browser;containerLayout.id=browsercontainer_id;return Ext.apply(containerLayout,regionLayout);}
function getTreePanelLayout(){return _layouts.components.tree;}
function getInfoPanelLayout(region,infopanel_id){var _region=getRegion(region);var base=_layouts.components.info;base.id=infopanel_id;if(_region=='north'||_region=='south'){base.region='east';base.width=200;}
else{base.region='south';base.height=120;}
return base;}
function getDataViewLayout(){return _layouts.components.view;}
function getTreeMode(instanceName,mode){var obj=_instancesData[instanceName].config;return!Ext.isEmpty(mode)&&obj.modes.tree.indexOf(mode)>=0?mode:obj.modes.treeDefault;}
function getTreeUrl(instanceName){var obj=_instancesData[instanceName].config;return obj.treeUrl;}
function getTreeParams(instanceName,mode,path){var obj=_instancesData[instanceName].config;var params={};params[obj.paramNames.treeMode]=getTreeMode(instanceName,mode);params[obj.paramNames.treePath]=path;params[obj.paramNames.treeShowFolder]=Ext.isEmpty(obj.showFolder)?'*':obj.showFolder;return params;}
function buildTreeUrl(instanceName,mode,path){var obj=_instancesData[instanceName].config;var params=getTreeParams(instanceName,mode,path);return obj.treeUrl+'?'+Ext.urlEncode(params);}
function getTreeStore(instanceName){var obj=_instancesData[instanceName].config;return obj.tree.store;}
function getViewMode(instanceName,mode){var obj=_instancesData[instanceName].config;return!Ext.isEmpty(mode)&&obj.modes.view.indexOf(mode)>=0?mode:obj.modes.viewDefault;}
function getViewParams(instanceName,mode,path){var obj=_instancesData[instanceName].config;var params={};params[obj.paramNames.viewMode]=getViewMode(instanceName,mode);params[obj.paramNames.viewPath]=Ext.isEmpty(path)?'':path;return params;}
function getViewUrl(instanceName,mode,path){var obj=_instancesData[instanceName].config;return obj.viewUrl;}
function getViewStore(instanceName){var obj=_instancesData[instanceName].config;return obj.dataview.store;}
function buildViewUrl(instanceName,mode,path){var obj=_instancesData[instanceName].config;return obj.viewUrl+'?'+Ext.urlEncode(getViewParams(instanceName,mode,path));}
function registerManager(name,mediaManager){if(Ext.isEmpty(_instances[name])){_instanceCount++;_instances[name]=mediaManager;}}
function getInstance(name){return _instances[name];}
var MediaManager=function(config,instanceName){config.instanceName=instanceName;MediaManager.superclass.constructor.call(this,config);}
Ext.extend(MediaManager,Ext.Window,{currentNode:'/',instanceName:'default',animateTarget:null,elementTarget:null,initComponent:function(){MediaManager.superclass.initComponent.call(this);this.addEvents("itemSelected","itemChoosed");},load:function(mode,path){var viewcontainer=_instancesData[this.instanceName].viewcontainer;viewcontainer.setTitle((new Ext.Template(_defaultText.viewTitle)).applyTemplate({path:'from "'+path+'"'}));var dataviewInfo=_instancesData[this.instanceName].view;var config=_instancesData[this.instanceName].config;var store=dataviewInfo.store;store.baseParams=getViewParams(this.instanceName,mode,path);store.load();var viewcontainer=_instancesData[this.instanceName].viewcontainer;viewcontainer.body.mask('Loading','x-mask-loading');var view=_instancesData[this.instanceName].view.instance;var info=_instancesData[this.instanceName].info.instance;view.refresh();},listeners:{render:function(){var $this=this;var instanceName=this.instanceName;var treeInfo=_instancesData[instanceName].tree;var dataviewInfo=_instancesData[instanceName].view;var config=_instancesData[instanceName].config;var treePanel=treeInfo.instance;treePanel.on('click',this.tree_onClick.createDelegate(this));var viewcontainer=_instancesData[instanceName].viewcontainer;var viewstore=_instancesData[instanceName].view.store;var view=_instancesData[instanceName].view.instance;var info=_instancesData[instanceName].info.instance;viewstore.on('load',function(){_instancesData[instanceName].view.ready=true;viewcontainer.body.unmask();});view.on('click',function(viewObj){var records=viewObj.getSelectedRecords();if(view.multiSelect==false){records=records[0];$this.fireEvent('itemSelected',records.data)}
else{var _datas=[];for(var i in records){_datas.push(records[i].data);}
$this.fireEvent('itemSelected',_datas)}});view.on('dblclick',function(viewObj){var records=viewObj.getSelectedRecords();if(view.multiSelect==false){records=records[0].data;}
else{var _datas=[];for(var i in records){_datas.push(records[i].data);}
records=_data;}
$this.fireEvent('itemChoosed',records)
if(Ext.type($this.elementTarget)=='array'){$this.fillElementTargets($this.elementTarget,records,$this.elementTargetTpl);$this.hide();}});}},fillElementTargets:function(elementTarget,records,outputTpl){if(Ext.type(elementTarget)=='array'&&typeof(records)=='object'){var str=outputTpl||'{path}';var value=records.path;for(var idx=0;idx<elementTarget.length;idx++){var elm=Ext.get(elementTarget[idx]);if(elm){var dom=elm.dom;if(dom.nodeName=='INPUT'){dom.value=value;}
else if(dom.nodeName=='TEXTAREA'){dom.value=dom.value+value+"\n";}
else if(dom.nodeName=='SELECT'){var l=dom.options.length;for(var i=0;i<l;i++){if(dom.options[i].value==value){dom.options[i].selected=true;}}}
else{elm.update((new Ext.Template(outputTpl)).applyTemplate(records));}}}}},tree_onClick:function(node){var tree=node.getOwnerTree();var sel=tree.getSelectionModel().getSelectedNode();var s=node.parentNode;var nid='/';if(s!=null){nid=node.id;}
if(this.currentNode!=nid){this.currentNode=nid;var info=_instancesData[this.instanceName].info.instance;info.load({url:buildTreeUrl(this.instanceName,'info',nid),callback:function(){info.expand(true);}});this.load('list',nid);}}});function createMediaManager(config,instanceName){var base_id=Ext.id();var mmanager_id=prefix_mmanager+base_id;var browsecontainer_id=prefix_browsecontainer+base_id;var treepanel_id=prefix_treepanel+base_id;var infopanel_id=prefix_infopanel+base_id;var viewcontainer_id=prefix_viewcontainer+base_id;var dataview_id=prefix_dataview+base_id;var _cfg=Ext.apply(_defaultConfig,config);var layout=getMainLayout();layout.id=mmanager_id;_cfg=Ext.apply(layout,_cfg);_instancesData[instanceName]={baseId:base_id,tree:{id:treepanel_id},info:{id:infopanel_id},view:{id:dataview_id,ready:false},config:_cfg};var viewContainerLayout=getViewContainerLayout(viewcontainer_id);if(viewContainerLayout){var viewStore=new Ext.data.JsonStore({url:getViewUrl(instanceName),baseParams:getViewParams(instanceName),root:'images',fields:['name','preview','url','mime','path','previewPath','id']});var dataView=new Ext.DataView(Ext.apply(getDataViewLayout(),{id:dataview_id,store:viewStore,singleSelect:_cfg.multiSelect==false,multiSelect:_cfg.multiSelect}));viewContainerLayout.tools[0].handler=function(){if(_instancesData[instanceName].view.ready){var viewcontainer=_instancesData[instanceName].viewcontainer;viewcontainer.body.mask('Loading','x-mask-loading');var viewstore=_instancesData[instanceName].view.store;viewstore.load();var info=_instancesData[instanceName].info.instance;info.load({url:buildTreeUrl(instanceName,'info',viewstore.baseParams.path)});}}
_instancesData[instanceName].view.store=viewStore;_instancesData[instanceName].view.instance=dataView;viewContainerLayout.items.push(dataView);var viewContainer=new Ext.Panel(viewContainerLayout);_instancesData[instanceName].viewcontainer=viewContainer;_cfg.items.push(viewContainer);}
var browseContainerLayout=getBrowserContainerLayout(_cfg.treeLocation,browsecontainer_id);if(browseContainerLayout){Ext.apply(browseContainerLayout,_layouts[getRegion(_cfg.treeLocation)]);var treeLoader=new ux.tine.TreeLoader({paramName:_defaultParamNames.treePath,dataUrl:getTreeUrl(instanceName),baseParams:getTreeParams(instanceName)});var treePanelLayout=getTreePanelLayout();treePanelLayout.id=treepanel_id;treePanelLayout.loader=treeLoader;var treePanel=new Ext.tree.TreePanel(treePanelLayout);_instancesData[instanceName].tree.store=treeLoader;_instancesData[instanceName].tree.instance=treePanel;var infoPanelLayout=getInfoPanelLayout(_cfg.treeLocation,infopanel_id);var infoPanel=new Ext.Panel(infoPanelLayout);_instancesData[instanceName].info.id=infopanel_id;_instancesData[instanceName].info.instance=infoPanel;browseContainerLayout.items.push(treePanel);browseContainerLayout.items.push(infoPanel);var browseContainer=new Ext.Panel(browseContainerLayout);_instancesData[instanceName].browsecontainer=browseContainer;_cfg.items.push(browseContainer);}
_cfg.instanceName=instanceName;if(typeof(_cfg.animateTarget)=='string'){_cfg.animateTarget=Ext.get(_cfg.animateTarget);}
if(typeof(_cfg.elementTarget)=='string'&&_cfg.elementTarget!=''){_cfg.elementTarget=_cfg.elementTarget.split(';');}
var win=new MediaManager(_cfg,instanceName);return win;}
return{create:function(config,instanceName){var _name=Ext.isEmpty(instanceName)?'default':instanceName;var mmanager=getInstance(_name);if(!(mmanager instanceof MediaManager)){mmanager=createMediaManager(config,_name);registerManager(_name,mmanager);}
return mmanager;},show:function(instanceName){var _name=Ext.isEmpty(instanceName)?'default':instanceName;var mmanager=getInstance(_name);if(mmanager instanceof MediaManager){mmanager.show();}}}})();ux.tine.TreeLoader=function(config){ux.tine.TreeLoader.superclass.constructor.call(this,config);}
Ext.extend(ux.tine.TreeLoader,Ext.tree.TreeLoader,{paramName:'node',getParams:function(node){var buf=[],bp=this.baseParams;for(var key in bp){if(typeof bp[key]!="function"){buf.push(encodeURIComponent(key),"=",encodeURIComponent(bp[key]),"&");}}
buf.push(this.paramName+"=",encodeURIComponent(node.id));return buf.join("");}})
Ext.ux.Voter=function(config){Ext.ux.Voter.superclass.constructor.call(this,config);};Ext.extend(Ext.ux.Voter,Ext.Component,{defaultAutoCreate:{tag:"div"},value:0,maxStars:4,active:true,onRender:function(ct,position){this.container=ct;if(this.el){}else{var cfg=this.getAutoCreate();if(!cfg.name){cfg.name=this.name||this.id;}
this.el=ct.createChild(cfg,position);}
this.stars=new Array();for(var i=0;i<this.maxStars;i++){var title=i+1;if(this.maxStars==3){title=app.ds.priorityTypes.getAt(i).data.value;}
if(this.active){var star=this.el.createChild(['<p class="rate"><a href="#" onclick="" title="',title,'"><img width="16" height="15" src="',Ext.BLANK_IMAGE_URL,'"/></a></p>'].join(''));}else{var star=this.el.createChild(['<p class="rate"><img width="16" height="15" src="',Ext.BLANK_IMAGE_URL,'" /></p>'].join(''));}
if(this.value>i){star.addClass('rated');}
if(this.active){star.addClassOnOver("ratehover");star.hover(function(){var v=this.voter;for(var i=0;i<this.vote-1;i++){v.stars[i].addClass('ratehover');}},function(){var v=this.voter;for(var i=0;i<v.maxStars;i++){v.stars[i].removeClass('ratehover');}},star);star.vote=i+1;star.voter=this;star.first('a').on("click",function(){sendJsonRequest(this.voter.url,Ext.apply({vote:this.vote},this.params||{}),this.voter.callback,this.voter);},star);this.stars[this.stars.length]=star;}}},setValue:function(value){this.value=value;for(var i=0;i<this.stars.length;i++){this.stars[i].removeClass('rated');if(value>i){this.stars[i].addClass('rated');}}}});Ext.namespace('Ext.ux');Ext.ux.GMapPanel=Ext.extend(Ext.Panel,{initComponent:function(){Ext.applyIf(this,{plain:true,zoomLevel:3,yaw:180,pitch:0,zoom:0,gmapType:'map',border:false});Ext.ux.GMapPanel.superclass.initComponent.call(this);},afterRender:function(){var wh=this.ownerCt.getSize();Ext.applyIf(this,wh);Ext.ux.GMapPanel.superclass.afterRender.call(this);if(this.gmapType==='map'){this.gmap=new GMap2(this.body.dom);}
if(this.gmapType==='panorama'){this.gmap=new GStreetviewPanorama(this.body.dom);}
if(typeof this.addControl=='object'&&this.gmapType==='map'){this.gmap.addControl(this.addControl);}
if(typeof this.setCenter==='object'){if(typeof this.setCenter.geoCodeAddr==='string'){this.geoCodeLookup(this.setCenter.geoCodeAddr);}else{if(this.gmapType==='map'){var point=new GLatLng(this.setCenter.lat,this.setCenter.lng);this.gmap.setCenter(point,this.zoomLevel);}
if(typeof this.setCenter.marker==='object'&&typeof point==='object'){this.addMarker(point,this.setCenter.marker,this.setCenter.marker.clear);}}
if(this.gmapType==='panorama'){this.gmap.setLocationAndPOV(new GLatLng(this.setCenter.lat,this.setCenter.lng),{yaw:this.yaw,pitch:this.pitch,zoom:this.zoom});}}
GEvent.bind(this.gmap,'load',this,function(){this.onMapReady();});},onMapReady:function(){this.addMarkers(this.markers);this.addMapControls();this.addOptions();},onResize:function(w,h){if(typeof this.getMap()=='object'){this.gmap.checkResize();}
Ext.ux.GMapPanel.superclass.onResize.call(this,w,h);},setSize:function(width,height,animate){if(typeof this.getMap()=='object'){this.gmap.checkResize();}
Ext.ux.GMapPanel.superclass.setSize.call(this,width,height,animate);},getMap:function(){return this.gmap;},getCenter:function(){return this.getMap().getCenter();},getCenterLatLng:function(){var ll=this.getCenter();return{lat:ll.lat(),lng:ll.lng()};},addMarkers:function(markers){if(Ext.isArray(markers)){for(var i=0;i<markers.length;i++){var mkr_point=new GLatLng(markers[i].lat,markers[i].lng);this.addMarker(mkr_point,markers[i].marker,false,markers[i].setCenter,markers[i].listeners);}}},addMarker:function(point,marker,clear,center,listeners){Ext.applyIf(marker,G_DEFAULT_ICON);if(clear===true){this.getMap().clearOverlays();}
if(center===true){this.getMap().setCenter(point,this.zoomLevel);}
var mark=new GMarker(point,marker);if(typeof listeners==='object'){for(evt in listeners){GEvent.bind(mark,evt,this,listeners[evt]);}}
this.getMap().addOverlay(mark);},addMapControls:function(){if(this.gmapType==='map'){if(Ext.isArray(this.mapControls)){for(i=0;i<this.mapControls.length;i++){this.addMapControl(this.mapControls[i]);}}else if(typeof this.mapControls==='string'){this.addMapControl(this.mapControls);}else if(typeof this.mapControls==='object'){this.getMap().addControl(this.mapControls);}}},addMapControl:function(mc){var mcf=window[mc];if(typeof mcf==='function'){this.getMap().addControl(new mcf());}},addOptions:function(){if(Ext.isArray(this.mapConfOpts)){var mc;for(i=0;i<this.mapConfOpts.length;i++){this.addOption(this.mapConfOpts[i]);}}else if(typeof this.mapConfOpts==='string'){this.addOption(this.mapConfOpts);}},addOption:function(mc){var mcf=this.getMap()[mc];if(typeof mcf==='function'){this.getMap()[mc]();}},geoCodeLookup:function(addr){this.geocoder=new GClientGeocoder();this.geocoder.getLocations(addr,this.addAddressToMap.createDelegate(this));},addAddressToMap:function(response){if(!response||response.Status.code!=200){Ext.MessageBox.alert('Error','Unable to Locate the Address you provided');}else{place=response.Placemark[0];addressinfo=place.AddressDetails;accuracy=addressinfo.Accuracy;if(accuracy===0){Ext.MessageBox.alert('Unable to Locate Address','Unable to Locate the Address you provided');}else{if(accuracy<5){Ext.MessageBox.alert('Address Accuracy','The address provided has a low accuracy.<br><br>Level '+accuracy+' Accuracy (8 = Exact Match, 1 = Vague Match)');}else{point=new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);if(typeof this.setCenter.marker==='object'&&typeof point==='object'){this.addMarker(point,this.setCenter.marker,this.setCenter.marker.clear,true,this.setCenter.listeners);}}}}}});Ext.reg('gmappanel',Ext.ux.GMapPanel);Ext.ux.CustomCombo=Ext.extend(Ext.form.ComboBox,{findText:false,replaceText:false,initComponent:function(){Ext.ux.CustomCombo.superclass.initComponent.call(this);},setValue:function(c){Ext.ux.CustomCombo.superclass.setValue.call(this,c);if(this.findText!==false&&this.replaceText!==false)
{var text=this.lastSelectionText;if(Ext.isArray(this.findText))
{var repl;for(var i=0;i<this.findText.length;i++)
{if(Ext.isArray(this.replaceText))
repl=this.replaceText[i];else
repl=this.replaceText;try{text=text.replace(this.findText[i],repl,'gi');}catch(e){}}}
else
{text=text.replace(this.findText,this.replaceText,'gi');}
Ext.form.ComboBox.superclass.setRawValue.call(this,text);this.lastSelectionText=text;}}});Ext.reg('customcombo',Ext.ux.CustomCombo);Ext.grid.GroupSummary=function(config){Ext.apply(this,config);};Ext.extend(Ext.grid.GroupSummary,Ext.util.Observable,{init:function(grid){this.grid=grid;this.cm=grid.getColumnModel();this.view=grid.getView();var v=this.view;v.doGroupEnd=this.doGroupEnd.createDelegate(this);v.afterMethod('onColumnWidthUpdated',this.doWidth,this);v.afterMethod('onAllColumnWidthsUpdated',this.doAllWidths,this);v.afterMethod('onColumnHiddenUpdated',this.doHidden,this);v.afterMethod('onUpdate',this.doUpdate,this);v.afterMethod('onRemove',this.doRemove,this);if(!this.rowTpl){this.rowTpl=new Ext.Template('<div class="x-grid3-summary-row" style="{tstyle}">','<table class="x-grid3-summary-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr></tbody>','</table></div>');this.rowTpl.disableFormats=true;}
this.rowTpl.compile();if(!this.cellTpl){this.cellTpl=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}">','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on">{value}</div>',"</td>");this.cellTpl.disableFormats=true;}
this.cellTpl.compile();},toggleSummaries:function(visible){var el=this.grid.getGridEl();if(el){if(visible===undefined){visible=el.hasClass('x-grid-hide-summary');}
el[visible?'removeClass':'addClass']('x-grid-hide-summary');}},renderSummary:function(o,cs){cs=cs||this.view.getColumnData();var cfg=this.cm.config;var buf=[],c,p={},cf,last=cs.length-1;for(var i=0,len=cs.length;i<len;i++){c=cs[i];cf=cfg[i];p.id=c.id;p.style=c.style;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');if(cf.summaryType||cf.summaryRenderer){p.value=(cf.summaryRenderer||c.renderer)(o.data[c.name],p,o);}else{p.value='';}
if(p.value==undefined||p.value==="")p.value="&#160;";buf[buf.length]=this.cellTpl.apply(p);}
return this.rowTpl.apply({tstyle:'width:'+this.view.getTotalWidth()+';',cells:buf.join('')});},calculate:function(rs,cs){var data={},r,c,cfg=this.cm.config,cf;for(var j=0,jlen=rs.length;j<jlen;j++){r=rs[j];for(var i=0,len=cs.length;i<len;i++){c=cs[i];cf=cfg[i];if(cf.summaryType){data[c.name]=Ext.grid.GroupSummary.Calculations[cf.summaryType](data[c.name]||0,r,c.name,data);}}}
return data;},doGroupEnd:function(buf,g,cs,ds,colCount){var data=this.calculate(g.rs,cs);buf.push('</div>',this.renderSummary({data:data},cs),'</div>');},doWidth:function(col,w,tw){var gs=this.view.getGroups(),s;for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;s.firstChild.rows[0].childNodes[col].style.width=w;}},doAllWidths:function(ws,tw){var gs=this.view.getGroups(),s,cells,wlen=ws.length;for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;cells=s.firstChild.rows[0].childNodes;for(var j=0;j<wlen;j++){cells[j].style.width=ws[j];}}},doHidden:function(col,hidden,tw){var gs=this.view.getGroups(),s,display=hidden?'none':'';for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];s.style.width=tw;s.firstChild.style.width=tw;s.firstChild.rows[0].childNodes[col].style.display=display;}},refreshSummary:function(groupValue){return this.refreshSummaryById(this.view.getGroupId(groupValue));},getSummaryNode:function(gid){var g=Ext.fly(gid,'_gsummary');if(g){return g.down('.x-grid3-summary-row',true);}
return null;},refreshSummaryById:function(gid){var g=document.getElementById(gid);if(!g){return false;}
var rs=[];this.grid.store.each(function(r){if(r._groupId==gid){rs[rs.length]=r;}});var cs=this.view.getColumnData();var data=this.calculate(rs,cs);var markup=this.renderSummary({data:data},cs);var existing=this.getSummaryNode(gid);if(existing){g.removeChild(existing);}
Ext.DomHelper.append(g,markup);return true;},doUpdate:function(ds,record){this.refreshSummaryById(record._groupId);},doRemove:function(ds,record,index,isUpdate){if(!isUpdate){this.refreshSummaryById(record._groupId);}},showSummaryMsg:function(groupValue,msg){var gid=this.view.getGroupId(groupValue);var node=this.getSummaryNode(gid);if(node){node.innerHTML='<div class="x-grid3-summary-msg">'+msg+'</div>';}}});Ext.grid.GroupSummary.Calculations={'sum':function(v,record,field){return v+(record.data[field]||0);},'count':function(v,record,field,data){return data[field+'count']?++data[field+'count']:(data[field+'count']=1);},'max':function(v,record,field,data){v=record.data[field];var max=data[field+'max']===undefined?(data[field+'max']=v):data[field+'max'];return v>max?(data[field+'max']=v):max;},'min':function(v,record,field,data){v=record.data[field];var min=data[field+'min']===undefined?(data[field+'min']=v):data[field+'min'];return v<min?(data[field+'min']=v):min;},'average':function(v,record,field,data){var c=data[field+'count']?++data[field+'count']:(data[field+'count']=1);var t=(data[field+'total']=((data[field+'total']||0)+(record.data[field]||0)));return t===0?0:t/c;}}
Ext.grid.HybridSummary=Ext.extend(Ext.grid.GroupSummary,{calculate:function(rs,cs){var gcol=this.view.getGroupField();var gvalue=rs[0].data[gcol];var gdata=this.getSummaryData(gvalue);return gdata||Ext.grid.HybridSummary.superclass.calculate.call(this,rs,cs);},updateSummaryData:function(groupValue,data,skipRefresh){var json=this.grid.store.reader.jsonData;if(!json.summaryData){json.summaryData={};}
json.summaryData[groupValue]=data;if(!skipRefresh){this.refreshSummary(groupValue);}},getSummaryData:function(groupValue){var json=this.grid.store.reader.jsonData;if(json&&json.summaryData){return json.summaryData[groupValue];}
return null;}});Ext.ns('Ext.ux.grid');Ext.ux.grid.BufferView=Ext.extend(Ext.grid.GridView,{rowHeight:19,borderHeight:2,scrollDelay:100,cacheSize:20,cleanDelay:500,initTemplates:function(){Ext.ux.grid.BufferView.superclass.initTemplates.call(this);var ts=this.templates;ts.rowHolder=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"></div>');ts.rowHolder.disableFormats=true;ts.rowHolder.compile();ts.rowBody=new Ext.Template('<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr>',(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':''),'</tbody></table>');ts.rowBody.disableFormats=true;ts.rowBody.compile();},getStyleRowHeight:function(){return Ext.isBorderBox?(this.rowHeight+this.borderHeight):this.rowHeight;},getCalculatedRowHeight:function(){return this.rowHeight+this.borderHeight;},getVisibleRowCount:function(){var rh=this.getCalculatedRowHeight();var visibleHeight=this.scroller.dom.clientHeight;return(visibleHeight<1)?0:Math.ceil(visibleHeight/rh);},getVisibleRows:function(){var count=this.getVisibleRowCount();var sc=this.scroller.dom.scrollTop;var start=(sc==0?0:Math.floor(sc/this.getCalculatedRowHeight())-1);return{first:Math.max(start,0),last:Math.min(start+count+2,this.ds.getCount()-1)};},doRender:function(cs,rs,ds,startRow,colCount,stripe,onlyBody){var ts=this.templates,ct=ts.cell,rt=ts.row,rb=ts.rowBody,last=colCount-1;var rh=this.getStyleRowHeight();var vr=this.getVisibleRows();var tstyle='width:'+this.getTotalWidth()+';height:'+rh+'px;';var buf=[],cb,c,p={},rp={tstyle:tstyle},r;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];var rowIndex=(j+startRow);var visible=rowIndex>=vr.first&&rowIndex<=vr.last;if(visible){for(var i=0;i<colCount;i++){c=cs[i];p.id=c.id;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.attr=p.cellAttr="";p.value=c.renderer(r.data[c.name],p,r,rowIndex,i,ds);p.style=c.style;if(p.value==undefined||p.value===""){p.value="&#160;";}
if(r.dirty&&typeof r.modified[c.name]!=='undefined'){p.css+=' x-grid3-dirty-cell';}
cb[cb.length]=ct.apply(p);}}
var alt=[];if(stripe&&((rowIndex+1)%2==0)){alt[0]="x-grid3-row-alt";}
if(r.dirty){alt[1]=" x-grid3-dirty-row";}
rp.cols=colCount;if(this.getRowClass){alt[2]=this.getRowClass(r,rowIndex,rp,ds);}
rp.alt=alt.join(" ");rp.cells=cb.join("");buf[buf.length]=!visible?ts.rowHolder.apply(rp):(onlyBody?rb.apply(rp):rt.apply(rp));}
return buf.join("");},isRowRendered:function(index){var row=this.getRow(index);return row&&row.childNodes.length>0;},syncScroll:function(){Ext.ux.grid.BufferView.superclass.syncScroll.apply(this,arguments);this.update();},update:function(){if(this.scrollDelay){if(!this.renderTask){this.renderTask=new Ext.util.DelayedTask(this.doUpdate,this);}
this.renderTask.delay(this.scrollDelay);}else{this.doUpdate();}},doUpdate:function(){if(this.getVisibleRowCount()>0){var g=this.grid,cm=g.colModel,ds=g.store;var cs=this.getColumnData();var vr=this.getVisibleRows();for(var i=vr.first;i<=vr.last;i++){if(!this.isRowRendered(i)){var html=this.doRender(cs,[ds.getAt(i)],ds,i,cm.getColumnCount(),g.stripeRows,true);this.getRow(i).innerHTML=html;}}
this.clean();}},clean:function(){if(!this.cleanTask){this.cleanTask=new Ext.util.DelayedTask(this.doClean,this);}
this.cleanTask.delay(this.cleanDelay);},doClean:function(){if(this.getVisibleRowCount()>0){var vr=this.getVisibleRows();vr.first-=this.cacheSize;vr.last+=this.cacheSize;var i=0,rows=this.getRows();if(vr.first<=0){i=vr.last+1;}
for(var len=this.ds.getCount();i<len;i++){if((i<vr.first||i>vr.last)&&rows[i].innerHTML){rows[i].innerHTML='';}}}},layout:function(){Ext.ux.grid.BufferView.superclass.layout.call(this);this.update();}});Ext.ns('Ext.ux.form');Ext.ux.form.FileUploadField=Ext.extend(Ext.form.TextField,{buttonText:'Browse...',buttonOnly:false,buttonOffset:3,readOnly:true,autoSize:Ext.emptyFn,initComponent:function(){Ext.ux.form.FileUploadField.superclass.initComponent.call(this);this.addEvents('fileselected');},onRender:function(ct,position){Ext.ux.form.FileUploadField.superclass.onRender.call(this,ct,position);this.wrap=this.el.wrap({cls:'x-form-field-wrap x-form-file-wrap'});this.el.addClass('x-form-file-text');this.el.dom.removeAttribute('name');this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:'x-form-file',tag:'input',type:'file',size:1});var btnCfg=Ext.applyIf(this.buttonCfg||{},{text:this.buttonText});this.button=new Ext.Button(Ext.apply(btnCfg,{renderTo:this.wrap,cls:'x-form-file-btn'+(btnCfg.iconCls?' x-btn-icon':'')}));if(this.buttonOnly){this.el.hide();this.wrap.setWidth(this.button.getEl().getWidth());}
this.fileInput.on('change',function(){var v=this.fileInput.dom.value;this.setValue(v);this.fireEvent('fileselected',this,v);},this);},getFileInputId:function(){return this.id+'-file';},onResize:function(w,h){Ext.ux.form.FileUploadField.superclass.onResize.call(this,w,h);this.wrap.setWidth(w);if(!this.buttonOnly){w=this.wrap.getWidth()-this.button.getEl().getWidth()-this.buttonOffset;this.el.setWidth(w);}},onDestroy:function(){Ext.ux.form.FileUploadField.superclass.onDestroy.call(this);Ext.destroy(this.fileInput,this.button,this.wrap);},preFocus:Ext.emptyFn,getResizeEl:function(){return this.wrap;},getPositionEl:function(){return this.wrap;},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,'tl-tr',[2,0]);}});Ext.reg('fileuploadfield',Ext.ux.form.FileUploadField);Ext.form.FileUploadField=Ext.ux.form.FileUploadField;Ext.override(Ext.form.FileUploadField,{onRender:function(ct,position){Ext.form.FileUploadField.superclass.onRender.call(this,ct,position);this.wrap=this.el.wrap({cls:'x-form-field-wrap x-form-file-wrap'});this.el.addClass('x-form-file-text');this.el.dom.removeAttribute('name');this.createFileInput();var btnCfg=Ext.applyIf(this.buttonCfg||{},{text:this.buttonText});this.button=new Ext.Button(Ext.apply(btnCfg,{renderTo:this.wrap,cls:'x-form-file-btn'+(btnCfg.iconCls?' x-btn-icon':'')}));if(this.buttonOnly){this.el.hide();this.wrap.setWidth(this.button.getEl().getWidth());}
this.addFileListener();},createFileInput:function(){this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:'x-form-file',tag:'input',type:'file',size:1});},addFileListener:function(){this.fileInput.on({change:function(){var v=this.fileInput.dom.value;this.setValue(v);this.fireEvent('fileselected',this,v);},mouseover:function(){this.button.addClass(['x-btn-over','x-btn-focus'])},mouseout:function(){this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])},mousedown:function(){this.button.addClass('x-btn-click')},mouseup:function(){this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])},scope:this});},reset:function(){try{this.fileInput.removeAllListeners();this.fileInput.remove();this.createFileInput();this.addFileListener();Ext.form.FileUploadField.superclass.reset.call(this);}catch(e){}}});Ext.namespace('Ext.ux','Ext.ux.plugins');Ext.ux.plugins.HtmlEditorImageInsert=function(config){config=config||{};Ext.apply(this,config);this.init=function(htmlEditor){this.editor=htmlEditor;this.editor.on('render',onRender,this);};this.imageInsert=function(){this.dlg=new Ext.Window({layout:'fit',width:650,modal:true,closeAction:'hide',plain:true,cls:'x-image-insert-dlg',bodyStyle:'padding:5px;',buttonAlign:'center',title:'Please select the URL of the image you want to insert',items:{layout:'form',items:[this.url=new Ext.form.TextField({fieldLabel:'Url',width:300}),this.align=new Ext.form.ComboBox({fieldLabel:'Align',xtype:'combo',valueField:'value',displayField:'value',emptyText:'Select ...',editable:true,mode:'local',forceSelection:true,selectOnFocus:true,typeAhead:true,triggerAction:'all',store:new Ext.data.SimpleStore({fields:['value'],data:[['left'],['right']]})})]},buttons:[{minWidth:80,text:'OK',handler:function(){this.insertImage(this.url.getValue(),this.align.getValue())},scope:this},{minWidth:80,text:'Cancel',handler:function(){this.dlg.hide();},scope:this}]});this.dlg.show();}
this.insertImage=function(url,align){var text='<img src="'+url+'" align="'+align+'">';this.editor.relayCmd('inserthtml',text);this.dlg.hide();}
function onRender(){if(!Ext.isSafari){this.editor.tb.add({itemId:'htmlEditorImage',cls:'x-btn-icon x-edit-insertimage',enableToggle:false,scope:this,handler:function(){this.imageInsert();},clickEvent:'mousedown',tabIndex:-1});}}}
Ext.ux.GDataTableAdapter=function(config){var convert={'auto':'string','string':'string','int':'number','float':'number','boolean':'boolean','date':'date'};return{adapt:function(config){var store=Ext.StoreMgr.lookup(config.store||config.ds);var tbl=new google.visualization.DataTable();var cols=config.columns;var data=store.data.items[0].data.results;var dates=store.data.items[0].data.dates;var chartType=store.baseParams.chart_type;config.panel.visualizationPkg=chartType;tbl.addColumn('string','Date');var i=0,k=0,j=0,inf,tmp;if(chartType=='barchart'||chartType=='linechart'){Ext.each(data,function(n){tbl.addColumn('number',n.company);});if(dates.length){tbl.addRows(dates.length);}
for(i=0;i<dates.length;i++){tbl.setValue(i,0,dates[i]);for(j=0;j<data.length;j++){inf=data[j].data;tmp=-1;for(var c=0;c<inf.length;c++){if(inf[c]==dates[i]){tmp=c+1;break;}}
if(tmp>=0){tbl.setValue(i,j+1,inf[tmp]-0);}else{tbl.setValue(i,j+1,0);}}}}else{tbl.addColumn('number','Value');tbl.addColumn('string','Title');if(data.length){tbl.addRows(data.length);}
for(i=0;i<data.length;i++){tbl.setValue(i,0,data[i].company);inf=data[i].data;sum=0;for(k=1;k<inf.length;k=k+2){sum=sum+(inf[k]-0);}
tbl.setValue(i,1,sum);}}
return tbl;}};}();Ext.ux.GVisualizationPanel=Ext.extend(Ext.Panel,{visualizationAPI:'visualization',visualizationAPIVer:'1',visualizationPkgs:{'linechart':'LineChart','barchart':'BarChart','piechart':'PieChart'},visualizationPkg:'',html:'Loading...',store:null,redraw:function(){if(this.visualization){this.datatable=Ext.ux.GDataTableAdapter.adapt({store:this.store,panel:this});this.onLoadCallback(false);this.visualization.draw(this.datatable,Ext.apply({},this.visualizationCfg));}},initComponent:function(){this.delayTask=new Ext.util.DelayedTask(function(){this.initComponent();},this);if(google){this.delayTask.cancel();Ext.ux.GVisualizationPanel.superclass.initComponent.call(this);if(typeof this.visualizationPkg==='object'){Ext.apply(this.visualizationPkgs,this.visualizationPkg);for(var key in this.visualizationPkg){this.visualizationPkg=key;break;}}
google.load(this.visualizationAPI,this.visualizationAPIVer,{packages:['linechart','barchart','piechart'],callback:this.onLoadCallback.createDelegate(this,[true])});}else{this.delayTask.delay(1000);}},onLoadCallback:function(reload){if(reload){this.store.on('load',this.redraw,this);this.store.reload();}
var tableCfg={store:this.store,columns:this.columns};var cls=this.visualizationPkgs[this.visualizationPkg];if(this.body){this.body.update('Loading...');this.visualization=new google.visualization[cls](this.body.dom);var relaySelect=function(){this.fireEvent('select',this,this.visualization);};google.visualization.events.addListener(this.visualization,'select',relaySelect.createDelegate(this));this.visualization.draw(this.datatable,Ext.apply({},this.visualizationCfg));}}});Ext.reg('gvisualization',Ext.ux.GVisualizationPanel);Ext.ns('Ext.ux.grid');Ext.ux.grid.RowEditor=Ext.extend(Ext.Panel,{floating:true,shadow:false,layout:'hbox',cls:'x-small-editor',buttonAlign:'center',baseCls:'x-row-editor',elements:'header,footer,body',frameWidth:5,buttonPad:3,clicksToEdit:'auto',monitorValid:true,focusDelay:250,errorSummary:true,saveText:'Save',cancelText:'Cancel',commitChangesText:'You need to commit or cancel your changes',errorText:'Errors',defaults:{normalWidth:true},initComponent:function(){Ext.ux.grid.RowEditor.superclass.initComponent.call(this);this.addEvents('beforeedit','canceledit','validateedit','afteredit');},init:function(grid){this.grid=grid;this.ownerCt=grid;if(this.clicksToEdit===2){grid.on('rowdblclick',this.onRowDblClick,this);}else{grid.on('rowclick',this.onRowClick,this);if(Ext.isIE){grid.on('rowdblclick',this.onRowDblClick,this);}}
grid.getStore().on('remove',function(){this.stopEditing(false);},this);grid.on({scope:this,keydown:this.onGridKey,columnresize:this.verifyLayout,columnmove:this.refreshFields,reconfigure:this.refreshFields,beforedestroy:this.beforedestroy,destroy:this.destroy,bodyscroll:{buffer:250,fn:this.positionButtons}});grid.getColumnModel().on('hiddenchange',this.verifyLayout,this,{delay:1});grid.getView().on('refresh',this.stopEditing.createDelegate(this,[]));},beforedestroy:function(){this.stopMonitoring();this.grid.getStore().un('remove',this.onStoreRemove,this);this.stopEditing(false);Ext.destroy(this.btns,this.tooltip);},refreshFields:function(){this.initFields();this.verifyLayout();},isDirty:function(){var dirty;this.items.each(function(f){if(String(this.values[f.id])!==String(f.getValue())){dirty=true;return false;}},this);return dirty;},startEditing:function(rowIndex,doFocus){if(this.editing&&this.isDirty()){this.showTooltip(this.commitChangesText);return;}
if(Ext.isObject(rowIndex)){rowIndex=this.grid.getStore().indexOf(rowIndex);}
if(this.fireEvent('beforeedit',this,rowIndex)!==false){this.editing=true;var g=this.grid,view=g.getView(),row=view.getRow(rowIndex),record=g.store.getAt(rowIndex);this.record=record;this.rowIndex=rowIndex;this.values={};if(!this.rendered){this.render(view.getEditorParent());}
var w=Ext.fly(row).getWidth();this.setSize(w);if(!this.initialized){this.initFields();}
var cm=g.getColumnModel(),fields=this.items.items,f,val;for(var i=0,len=cm.getColumnCount();i<len;i++){val=this.preEditValue(record,cm.getDataIndex(i));f=fields[i];f.setValue(val);this.values[f.id]=Ext.isEmpty(val)?'':val;}
this.verifyLayout(true);if(!this.isVisible()){this.setPagePosition(Ext.fly(row).getXY());}else{this.el.setXY(Ext.fly(row).getXY(),{duration:0.15});}
if(!this.isVisible()){this.show().doLayout();}
if(doFocus!==false){this.doFocus.defer(this.focusDelay,this);}}},stopEditing:function(saveChanges){this.editing=false;if(!this.isVisible()){return;}
if(saveChanges===false||!this.isValid()){this.hide();this.fireEvent('canceledit',this,saveChanges===false);return;}
var changes={},r=this.record,hasChange=false,cm=this.grid.colModel,fields=this.items.items;for(var i=0,len=cm.getColumnCount();i<len;i++){if(!cm.isHidden(i)){var dindex=cm.getDataIndex(i);if(!Ext.isEmpty(dindex)){var oldValue=r.data[dindex],value=this.postEditValue(fields[i].getValue(),oldValue,r,dindex);if(String(oldValue)!==String(value)){changes[dindex]=value;hasChange=true;}}}}
if(hasChange&&this.fireEvent('validateedit',this,changes,r,this.rowIndex)!==false){r.beginEdit();Ext.iterate(changes,function(name,value){r.set(name,value);});r.endEdit();this.fireEvent('afteredit',this,changes,r,this.rowIndex);}else{this.fireEvent('canceledit',this,false);}
this.hide();},verifyLayout:function(force){if(this.el&&(this.isVisible()||force===true)){var row=this.grid.getView().getRow(this.rowIndex);this.setSize(Ext.fly(row).getWidth(),Ext.isIE?Ext.fly(row).getHeight()+9:undefined);var cm=this.grid.colModel,fields=this.items.items;for(var i=0,len=cm.getColumnCount();i<len;i++){if(!cm.isHidden(i)){var adjust=0;if(i===(len-1)){adjust+=3;}else{adjust+=1;}
fields[i].show();fields[i].setWidth(cm.getColumnWidth(i)-adjust);}else{fields[i].hide();}}
this.doLayout();this.positionButtons();}},slideHide:function(){this.hide();},initFields:function(){var cm=this.grid.getColumnModel(),pm=Ext.layout.ContainerLayout.prototype.parseMargins;this.removeAll(false);for(var i=0,len=cm.getColumnCount();i<len;i++){var c=cm.getColumnAt(i),ed=c.getEditor();if(!ed){ed=c.displayEditor||new Ext.form.DisplayField();}
if(i==0){ed.margins=pm('0 1 2 1');}else if(i==len-1){ed.margins=pm('0 0 2 1');}else{if(Ext.isIE){ed.margins=pm('0 0 2 0');}
else{ed.margins=pm('0 1 2 0');}}
ed.setWidth(cm.getColumnWidth(i));ed.column=c;if(ed.ownerCt!==this){ed.on('focus',this.ensureVisible,this);ed.on('specialkey',this.onKey,this);}
this.insert(i,ed);}
this.initialized=true;},onKey:function(f,e){if(e.getKey()===e.ENTER){this.stopEditing(true);e.stopPropagation();}},onGridKey:function(e){if(e.getKey()===e.ENTER&&!this.isVisible()){var r=this.grid.getSelectionModel().getSelected();if(r){var index=this.grid.store.indexOf(r);this.startEditing(index);e.stopPropagation();}}},ensureVisible:function(editor){if(this.isVisible()){this.grid.getView().ensureVisible(this.rowIndex,this.grid.colModel.getIndexById(editor.column.id),true);}},onRowClick:function(g,rowIndex,e){if(this.clicksToEdit=='auto'){var li=this.lastClickIndex;this.lastClickIndex=rowIndex;if(li!=rowIndex&&!this.isVisible()){return;}}
this.startEditing(rowIndex,false);this.doFocus.defer(this.focusDelay,this,[e.getPoint()]);},onRowDblClick:function(g,rowIndex,e){this.startEditing(rowIndex,false);this.doFocus.defer(this.focusDelay,this,[e.getPoint()]);},onRender:function(){Ext.ux.grid.RowEditor.superclass.onRender.apply(this,arguments);this.el.swallowEvent(['keydown','keyup','keypress']);this.btns=new Ext.Panel({baseCls:'x-plain',cls:'x-btns',elements:'body',layout:'table',width:(this.minButtonWidth*2)+(this.frameWidth*2)+(this.buttonPad*4),items:[{ref:'saveBtn',itemId:'saveBtn',xtype:'button',text:this.saveText,width:this.minButtonWidth,handler:this.stopEditing.createDelegate(this,[true])},{xtype:'button',text:this.cancelText,width:this.minButtonWidth,handler:this.stopEditing.createDelegate(this,[false])}]});this.btns.render(this.bwrap);},afterRender:function(){Ext.ux.grid.RowEditor.superclass.afterRender.apply(this,arguments);this.positionButtons();if(this.monitorValid){this.startMonitoring();}},onShow:function(){if(this.monitorValid){this.startMonitoring();}
Ext.ux.grid.RowEditor.superclass.onShow.apply(this,arguments);},onHide:function(){Ext.ux.grid.RowEditor.superclass.onHide.apply(this,arguments);this.stopMonitoring();this.grid.getView().focusRow(this.rowIndex);},positionButtons:function(){if(this.btns){var g=this.grid,h=this.el.dom.clientHeight,view=g.getView(),scroll=view.scroller.dom.scrollLeft,bw=this.btns.getWidth(),width=Math.min(g.getWidth(),g.getColumnModel().getTotalWidth());this.btns.el.shift({left:(width/2)-(bw/2)+scroll,top:h-2,stopFx:true,duration:0.2});}},preEditValue:function(r,field){var value=r.data[field];return this.autoEncode&&typeof value==='string'?Ext.util.Format.htmlDecode(value):value;},postEditValue:function(value,originalValue,r,field){return this.autoEncode&&typeof value=='string'?Ext.util.Format.htmlEncode(value):value;},doFocus:function(pt){if(this.isVisible()){var index=0,cm=this.grid.getColumnModel(),c;if(pt){index=this.getTargetColumnIndex(pt);}
for(var i=index||0,len=cm.getColumnCount();i<len;i++){c=cm.getColumnAt(i);if(!c.hidden&&c.getEditor()){c.getEditor().focus();break;}}}},getTargetColumnIndex:function(pt){var grid=this.grid,v=grid.view,x=pt.left,cms=grid.colModel.config,i=0,match=false;for(var len=cms.length,c;c=cms[i];i++){if(!c.hidden){if(Ext.fly(v.getHeaderCell(i)).getRegion().right>=x){match=i;break;}}}
return match;},startMonitoring:function(){if(!this.bound&&this.monitorValid){this.bound=true;Ext.TaskMgr.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this});}},stopMonitoring:function(){this.bound=false;if(this.tooltip){this.tooltip.hide();}},isValid:function(){var valid=true;this.items.each(function(f){if(!f.isValid(true)){valid=false;return false;}});return valid;},bindHandler:function(){if(!this.bound){return false;}
var valid=this.isValid();if(!valid&&this.errorSummary){this.showTooltip(this.getErrorText().join(''));}
this.btns.saveBtn.setDisabled(!valid);this.fireEvent('validation',this,valid);},lastVisibleColumn:function(){var i=this.items.getCount()-1,c;for(;i>=0;i--){c=this.items.items[i];if(!c.hidden){return c;}}},showTooltip:function(msg){var t=this.tooltip;if(!t){t=this.tooltip=new Ext.ToolTip({maxWidth:600,cls:'errorTip',width:300,title:this.errorText,autoHide:false,anchor:'left',anchorToTarget:true,mouseOffset:[40,0]});}
var v=this.grid.getView(),top=parseInt(this.el.dom.style.top,10),scroll=v.scroller.dom.scrollTop,h=this.el.getHeight();if(top+h>=scroll){t.initTarget(this.lastVisibleColumn().getEl());if(!t.rendered){t.show();t.hide();}
t.body.update(msg);t.doAutoWidth(20);t.show();}else if(t.rendered){t.hide();}},getErrorText:function(){var data=['<ul>'];this.items.each(function(f){if(!f.isValid(true)){data.push('<li>',f.getActiveError(),'</li>');}});data.push('</ul>');return data;}});Ext.preg('roweditor',Ext.ux.grid.RowEditor);Ext.ux.Spinner=Ext.extend(Ext.util.Observable,{incrementValue:1,alternateIncrementValue:5,triggerClass:'x-form-spinner-trigger',splitterClass:'x-form-spinner-splitter',alternateKey:Ext.EventObject.shiftKey,defaultValue:0,accelerate:false,constructor:function(config){Ext.ux.Spinner.superclass.constructor.call(this,config);Ext.apply(this,config);this.mimicing=false;},init:function(field){this.field=field;field.afterMethod('onRender',this.doRender,this);field.afterMethod('onEnable',this.doEnable,this);field.afterMethod('onDisable',this.doDisable,this);field.afterMethod('afterRender',this.doAfterRender,this);field.afterMethod('onResize',this.doResize,this);field.afterMethod('onFocus',this.doFocus,this);field.beforeMethod('onDestroy',this.doDestroy,this);},doRender:function(ct,position){var el=this.el=this.field.getEl();var f=this.field;if(!f.wrap){f.wrap=this.wrap=el.wrap({cls:"x-form-field-wrap"});}
else{this.wrap=f.wrap.addClass('x-form-field-wrap');}
this.trigger=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(!f.width){this.wrap.setWidth(el.getWidth()+this.trigger.getWidth());}
this.splitter=this.wrap.createChild({tag:'div',cls:this.splitterClass,style:'width:13px; height:2px;'});this.splitter.setRight((Ext.isIE)?1:2).setTop(10).show();this.proxy=this.trigger.createProxy('',this.splitter,true);this.proxy.addClass("x-form-spinner-proxy");this.proxy.setStyle('left','0px');this.proxy.setSize(14,1);this.proxy.hide();this.dd=new Ext.dd.DDProxy(this.splitter.dom.id,"SpinnerDrag",{dragElId:this.proxy.id});this.initTrigger();this.initSpinner();},doAfterRender:function(){var y;if(Ext.isIE&&this.el.getY()!=(y=this.trigger.getY())){this.el.position();this.el.setY(y);}},doEnable:function(){if(this.wrap){this.wrap.removeClass(this.field.disabledClass);}},doDisable:function(){if(this.wrap){this.wrap.addClass(this.field.disabledClass);this.el.removeClass(this.field.disabledClass);}},doResize:function(w,h){if(typeof w=='number'){this.el.setWidth(w-this.trigger.getWidth());}
this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());},doFocus:function(){if(!this.mimicing){this.wrap.addClass('x-trigger-wrap-focus');this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});this.el.on('keydown',this.checkTab,this);}},checkTab:function(e){if(e.getKey()==e.TAB){this.triggerBlur();}},mimicBlur:function(e){if(!this.wrap.contains(e.target)&&this.field.validateBlur(e)){this.triggerBlur();}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);this.el.un("keydown",this.checkTab,this);this.field.beforeBlur();this.wrap.removeClass('x-trigger-wrap-focus');this.field.onBlur.call(this.field);},initTrigger:function(){this.trigger.addClassOnOver('x-form-trigger-over');this.trigger.addClassOnClick('x-form-trigger-click');},initSpinner:function(){this.field.addEvents({'spin':true,'spinup':true,'spindown':true});this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){e.preventDefault();this.onSpinUp();},"down":function(e){e.preventDefault();this.onSpinDown();},"pageUp":function(e){e.preventDefault();this.onSpinUpAlternate();},"pageDown":function(e){e.preventDefault();this.onSpinDownAlternate();},scope:this});this.repeater=new Ext.util.ClickRepeater(this.trigger,{accelerate:this.accelerate});this.field.mon(this.repeater,"click",this.onTriggerClick,this,{preventDefault:true});this.field.mon(this.trigger,{mouseover:this.onMouseOver,mouseout:this.onMouseOut,mousemove:this.onMouseMove,mousedown:this.onMouseDown,mouseup:this.onMouseUp,scope:this,preventDefault:true});this.field.mon(this.wrap,"mousewheel",this.handleMouseWheel,this);this.dd.setXConstraint(0,0,10)
this.dd.setYConstraint(1500,1500,10);this.dd.endDrag=this.endDrag.createDelegate(this);this.dd.startDrag=this.startDrag.createDelegate(this);this.dd.onDrag=this.onDrag.createDelegate(this);},onMouseOver:function(){if(this.disabled){return;}
var middle=this.getMiddle();this.tmpHoverClass=(Ext.EventObject.getPageY()<middle)?'x-form-spinner-overup':'x-form-spinner-overdown';this.trigger.addClass(this.tmpHoverClass);},onMouseOut:function(){this.trigger.removeClass(this.tmpHoverClass);},onMouseMove:function(){if(this.disabled){return;}
var middle=this.getMiddle();if(((Ext.EventObject.getPageY()>middle)&&this.tmpHoverClass=="x-form-spinner-overup")||((Ext.EventObject.getPageY()<middle)&&this.tmpHoverClass=="x-form-spinner-overdown")){}},onMouseDown:function(){if(this.disabled){return;}
var middle=this.getMiddle();this.tmpClickClass=(Ext.EventObject.getPageY()<middle)?'x-form-spinner-clickup':'x-form-spinner-clickdown';this.trigger.addClass(this.tmpClickClass);},onMouseUp:function(){this.trigger.removeClass(this.tmpClickClass);},onTriggerClick:function(){if(this.disabled||this.el.dom.readOnly){return;}
var middle=this.getMiddle();var ud=(Ext.EventObject.getPageY()<middle)?'Up':'Down';this['onSpin'+ud]();},getMiddle:function(){var t=this.trigger.getTop();var h=this.trigger.getHeight();var middle=t+(h/2);return middle;},isSpinnable:function(){if(this.disabled||this.el.dom.readOnly){Ext.EventObject.preventDefault();return false;}
return true;},handleMouseWheel:function(e){if(this.wrap.hasClass('x-trigger-wrap-focus')==false){return;}
var delta=e.getWheelDelta();if(delta>0){this.onSpinUp();e.stopEvent();}
else
if(delta<0){this.onSpinDown();e.stopEvent();}},startDrag:function(){this.proxy.show();this._previousY=Ext.fly(this.dd.getDragEl()).getTop();},endDrag:function(){this.proxy.hide();},onDrag:function(){if(this.disabled){return;}
var y=Ext.fly(this.dd.getDragEl()).getTop();var ud='';if(this._previousY>y){ud='Up';}
if(this._previousY<y){ud='Down';}
if(ud!=''){this['onSpin'+ud]();}
this._previousY=y;},onSpinUp:function(){if(this.isSpinnable()==false){return;}
if(Ext.EventObject.shiftKey==true){this.onSpinUpAlternate();return;}
else{this.spin(false,false);}
this.field.fireEvent("spin",this);this.field.fireEvent("spinup",this);},onSpinDown:function(){if(this.isSpinnable()==false){return;}
if(Ext.EventObject.shiftKey==true){this.onSpinDownAlternate();return;}
else{this.spin(true,false);}
this.field.fireEvent("spin",this);this.field.fireEvent("spindown",this);},onSpinUpAlternate:function(){if(this.isSpinnable()==false){return;}
this.spin(false,true);this.field.fireEvent("spin",this);this.field.fireEvent("spinup",this);},onSpinDownAlternate:function(){if(this.isSpinnable()==false){return;}
this.spin(true,true);this.field.fireEvent("spin",this);this.field.fireEvent("spindown",this);},spin:function(down,alternate){var v=parseFloat(this.field.getValue());var incr=(alternate==true)?this.alternateIncrementValue:this.incrementValue;(down==true)?v-=incr:v+=incr;v=(isNaN(v))?this.defaultValue:v;v=this.fixBoundries(v);this.field.setRawValue(v);},fixBoundries:function(value){var v=value;if(this.field.minValue!=undefined&&v<this.field.minValue){v=this.field.minValue;}
if(this.field.maxValue!=undefined&&v>this.field.maxValue){v=this.field.maxValue;}
return this.fixPrecision(v);},fixPrecision:function(value){var nan=isNaN(value);if(!this.field.allowDecimals||this.field.decimalPrecision==-1||nan||!value){return nan?'':value;}
return parseFloat(parseFloat(value).toFixed(this.field.decimalPrecision));},doDestroy:function(){if(this.trigger){this.trigger.remove();}
if(this.wrap){this.wrap.remove();delete this.field.wrap;}
if(this.splitter){this.splitter.remove();}
if(this.dd){this.dd.unreg();this.dd=null;}
if(this.proxy){this.proxy.remove();}
if(this.repeater){this.repeater.purgeListeners();}}});Ext.form.Spinner=Ext.ux.Spinner;Ext.ns('Ext.ux.form');Ext.ux.form.SpinnerField=Ext.extend(Ext.form.NumberField,{actionMode:'wrap',deferHeight:true,autoSize:Ext.emptyFn,onBlur:Ext.emptyFn,adjustSize:Ext.BoxComponent.prototype.adjustSize,constructor:function(config){var spinnerConfig=Ext.copyTo({},config,'incrementValue,alternateIncrementValue,accelerate,defaultValue,triggerClass,splitterClass');var spl=this.spinner=new Ext.ux.Spinner(spinnerConfig);var plugins=config.plugins?(Ext.isArray(config.plugins)?config.plugins.push(spl):[config.plugins,spl]):spl;Ext.ux.form.SpinnerField.superclass.constructor.call(this,Ext.apply(config,{plugins:plugins}));},getResizeEl:function(){return this.wrap;},getPositionEl:function(){return this.wrap;},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,'tl-tr',[2,0]);}},validateBlur:function(){return true;}});Ext.reg('spinnerfield',Ext.ux.form.SpinnerField);Ext.form.SpinnerField=Ext.ux.form.SpinnerField;Ext.ns('Ext.ux.form');Ext.ux.form.MultiSelect=Ext.extend(Ext.form.Field,{ddReorder:false,appendOnly:false,width:100,height:100,displayField:0,valueField:1,allowBlank:true,minSelections:0,maxSelections:Number.MAX_VALUE,blankText:Ext.form.TextField.prototype.blankText,minSelectionsText:'Minimum {0} item(s) required',maxSelectionsText:'Maximum {0} item(s) allowed',delimiter:',',defaultAutoCreate:{tag:"div"},initComponent:function(){Ext.ux.form.MultiSelect.superclass.initComponent.call(this);if(Ext.isArray(this.store)){if(Ext.isArray(this.store[0])){this.store=new Ext.data.ArrayStore({fields:['value','text'],data:this.store});this.valueField='value';}else{this.store=new Ext.data.ArrayStore({fields:['text'],data:this.store,expandData:true});this.valueField='text';}
this.displayField='text';}else{this.store=Ext.StoreMgr.lookup(this.store);}
this.addEvents({'dblclick':true,'click':true,'change':true,'drop':true});},onRender:function(ct,position){Ext.ux.form.MultiSelect.superclass.onRender.call(this,ct,position);var fs=this.fs=new Ext.form.FieldSet({renderTo:this.el,title:this.legend,height:this.height,width:this.width,style:"padding:0; margin: 0;",tbar:this.tbar,bodyStyle:'overflow: auto;'});this.view=new Ext.ListView({multiSelect:true,store:this.store,columns:[{header:'Value',width:1,dataIndex:this.displayField}],hideHeaders:true});fs.add(this.view);this.view.on('click',this.onViewClick,this);this.view.on('beforeclick',this.onViewBeforeClick,this);this.view.on('dblclick',this.onViewDblClick,this);this.hiddenName=this.name||Ext.id();var hiddenTag={tag:"input",type:"hidden",value:"",name:this.hiddenName};this.hiddenField=this.el.createChild(hiddenTag);this.hiddenField.dom.disabled=this.hiddenName!=this.name;fs.doLayout();},afterRender:function(){Ext.ux.form.MultiSelect.superclass.afterRender.call(this);if(this.ddReorder&&!this.dragGroup&&!this.dropGroup){this.dragGroup=this.dropGroup='MultiselectDD-'+Ext.id();}
if(this.draggable||this.dragGroup){this.dragZone=new Ext.ux.form.MultiSelect.DragZone(this,{ddGroup:this.dragGroup});}
if(this.droppable||this.dropGroup){this.dropZone=new Ext.ux.form.MultiSelect.DropZone(this,{ddGroup:this.dropGroup});}},onViewClick:function(vw,index,node,e){this.fireEvent('change',this,this.getValue(),this.hiddenField.dom.value);this.hiddenField.dom.value=this.getValue();this.fireEvent('click',this,e);this.validate();},onViewBeforeClick:function(vw,index,node,e){if(this.disabled){return false;}},onViewDblClick:function(vw,index,node,e){return this.fireEvent('dblclick',vw,index,node,e);},getValue:function(valueField){var returnArray=[];var selectionsArray=this.view.getSelectedIndexes();if(selectionsArray.length==0){return'';}
for(var i=0;i<selectionsArray.length;i++){returnArray.push(this.store.getAt(selectionsArray[i]).get((valueField!=null)?valueField:this.valueField));}
return returnArray.join(this.delimiter);},setValue:function(values){var index;var selections=[];this.view.clearSelections();this.hiddenField.dom.value='';if(!values||(values=='')){return;}
if(!Ext.isArray(values)){values=values.split(this.delimiter);}
for(var i=0;i<values.length;i++){index=this.view.store.indexOf(this.view.store.query(this.valueField,new RegExp('^'+values[i]+'$',"i")).itemAt(0));selections.push(index);}
this.view.select(selections);this.hiddenField.dom.value=this.getValue();this.validate();},reset:function(){this.setValue('');},getRawValue:function(valueField){var tmp=this.getValue(valueField);if(tmp.length){tmp=tmp.split(this.delimiter);}
else{tmp=[];}
return tmp;},setRawValue:function(values){setValue(values);},validateValue:function(value){if(value.length<1){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}
if(value.length<this.minSelections){this.markInvalid(String.format(this.minSelectionsText,this.minSelections));return false;}
if(value.length>this.maxSelections){this.markInvalid(String.format(this.maxSelectionsText,this.maxSelections));return false;}
return true;},disable:function(){this.disabled=true;this.hiddenField.dom.disabled=true;this.fs.disable();},enable:function(){this.disabled=false;this.hiddenField.dom.disabled=false;this.fs.enable();},destroy:function(){Ext.destroy(this.fs,this.dragZone,this.dropZone);Ext.ux.form.MultiSelect.superclass.destroy.call(this);}});Ext.reg('multiselect',Ext.ux.form.MultiSelect);Ext.ux.Multiselect=Ext.ux.form.MultiSelect;Ext.ux.form.MultiSelect.DragZone=function(ms,config){this.ms=ms;this.view=ms.view;var ddGroup=config.ddGroup||'MultiselectDD';var dd;if(Ext.isArray(ddGroup)){dd=ddGroup.shift();}else{dd=ddGroup;ddGroup=null;}
Ext.ux.form.MultiSelect.DragZone.superclass.constructor.call(this,this.ms.fs.body,{containerScroll:true,ddGroup:dd});this.setDraggable(ddGroup);};Ext.extend(Ext.ux.form.MultiSelect.DragZone,Ext.dd.DragZone,{onInitDrag:function(x,y){var el=Ext.get(this.dragData.ddel.cloneNode(true));this.proxy.update(el.dom);el.setWidth(el.child('em').getWidth());this.onStartDrag(x,y);return true;},collectSelection:function(data){data.repairXY=Ext.fly(this.view.getSelectedNodes()[0]).getXY();var i=0;this.view.store.each(function(rec){if(this.view.isSelected(i)){var n=this.view.getNode(i);var dragNode=n.cloneNode(true);dragNode.id=Ext.id();data.ddel.appendChild(dragNode);data.records.push(this.view.store.getAt(i));data.viewNodes.push(n);}
i++;},this);},onEndDrag:function(data,e){var d=Ext.get(this.dragData.ddel);if(d&&d.hasClass("multi-proxy")){d.remove();}},getDragData:function(e){var target=this.view.findItemFromChild(e.getTarget());if(target){if(!this.view.isSelected(target)&&!e.ctrlKey&&!e.shiftKey){this.view.select(target);this.ms.setValue(this.ms.getValue());}
if(this.view.getSelectionCount()==0||e.ctrlKey||e.shiftKey)return false;var dragData={sourceView:this.view,viewNodes:[],records:[]};if(this.view.getSelectionCount()==1){var i=this.view.getSelectedIndexes()[0];var n=this.view.getNode(i);dragData.viewNodes.push(dragData.ddel=n);dragData.records.push(this.view.store.getAt(i));dragData.repairXY=Ext.fly(n).getXY();}else{dragData.ddel=document.createElement('div');dragData.ddel.className='multi-proxy';this.collectSelection(dragData);}
return dragData;}
return false;},getRepairXY:function(e){return this.dragData.repairXY;},setDraggable:function(ddGroup){if(!ddGroup)return;if(Ext.isArray(ddGroup)){Ext.each(ddGroup,this.setDraggable,this);return;}
this.addToGroup(ddGroup);}});Ext.ux.form.MultiSelect.DropZone=function(ms,config){this.ms=ms;this.view=ms.view;var ddGroup=config.ddGroup||'MultiselectDD';var dd;if(Ext.isArray(ddGroup)){dd=ddGroup.shift();}else{dd=ddGroup;ddGroup=null;}
Ext.ux.form.MultiSelect.DropZone.superclass.constructor.call(this,this.ms.fs.body,{containerScroll:true,ddGroup:dd});this.setDroppable(ddGroup);};Ext.extend(Ext.ux.form.MultiSelect.DropZone,Ext.dd.DropZone,{getTargetFromEvent:function(e){var target=e.getTarget();return target;},getDropPoint:function(e,n,dd){if(n==this.ms.fs.body.dom){return"below";}
var t=Ext.lib.Dom.getY(n),b=t+n.offsetHeight;var c=t+(b-t)/2;var y=Ext.lib.Event.getPageY(e);if(y<=c){return"above";}else{return"below";}},isValidDropPoint:function(pt,n,data){if(!data.viewNodes||(data.viewNodes.length!=1)){return true;}
var d=data.viewNodes[0];if(d==n){return false;}
if((pt=="below")&&(n.nextSibling==d)){return false;}
if((pt=="above")&&(n.previousSibling==d)){return false;}
return true;},onNodeEnter:function(n,dd,e,data){return false;},onNodeOver:function(n,dd,e,data){var dragElClass=this.dropNotAllowed;var pt=this.getDropPoint(e,n,dd);if(this.isValidDropPoint(pt,n,data)){if(this.ms.appendOnly){return"x-tree-drop-ok-below";}
if(pt){var targetElClass;if(pt=="above"){dragElClass=n.previousSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-above";targetElClass="x-view-drag-insert-above";}else{dragElClass=n.nextSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-below";targetElClass="x-view-drag-insert-below";}
if(this.lastInsertClass!=targetElClass){Ext.fly(n).replaceClass(this.lastInsertClass,targetElClass);this.lastInsertClass=targetElClass;}}}
return dragElClass;},onNodeOut:function(n,dd,e,data){this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,data){if(this.ms.fireEvent("drop",this,n,dd,e,data)===false){return false;}
var pt=this.getDropPoint(e,n,dd);if(n!=this.ms.fs.body.dom)
n=this.view.findItemFromChild(n);var insertAt=(this.ms.appendOnly||(n==this.ms.fs.body.dom))?this.view.store.getCount():this.view.indexOf(n);if(pt=="below"){insertAt++;}
var dir=false;if(data.sourceView==this.view){if(pt=="below"){if(data.viewNodes[0]==n){data.viewNodes.shift();}}else{if(data.viewNodes[data.viewNodes.length-1]==n){data.viewNodes.pop();}}
if(!data.viewNodes.length){return false;}
if(insertAt>this.view.store.indexOf(data.records[0])){dir='down';insertAt--;}}
for(var i=0;i<data.records.length;i++){var r=data.records[i];if(data.sourceView){data.sourceView.store.remove(r);}
this.view.store.insert(dir=='down'?insertAt:insertAt++,r);var si=this.view.store.sortInfo;if(si){this.view.store.sort(si.field,si.direction);}}
return true;},removeDropIndicators:function(n){if(n){Ext.fly(n).removeClass(["x-view-drag-insert-above","x-view-drag-insert-left","x-view-drag-insert-right","x-view-drag-insert-below"]);this.lastInsertClass="_noclass";}},setDroppable:function(ddGroup){if(!ddGroup)return;if(Ext.isArray(ddGroup)){Ext.each(ddGroup,this.setDroppable,this);return;}
this.addToGroup(ddGroup);}});Ext.namespace('Ext.ux.layout');Ext.ux.layout.CardLayout=Ext.extend(Ext.layout.CardLayout,{setActiveItem:function(item)
{item=this.container.getComponent(item);if(this.activeItem!=item){if(this.activeItem){this.activeItem.hide();}
if(this.activeItem&&!this.activeItem.hidden){return;}
this.activeItem=item;item.show();this.layout();}}});Ext.namespace('Ext.ux');Ext.ux.Wiz=Ext.extend(Ext.Window,{loadMaskConfig:{'default':'Saving...'},height:400,width:540,closable:true,resizable:false,modal:true,cards:null,previousButtonText:'&lt; Previous',nextButtonText:'Next &gt;',cancelButtonText:'Cancel',finishButtonText:'Save and Finish',headerConfig:{},cardPanelConfig:{},previousButton:null,testEmailButton:'',nextButton:null,cancelButton:null,cardPanel:null,currentCard:-1,headPanel:null,cardCount:0,initComponent:function()
{this.initButtons();this.initPanels();var title=this.title||this.headerConfig.title;title=title||"";Ext.apply(this,{title:title,layout:'border',cardCount:this.cards.length,buttons:[this.indicator,this.previousButton,this.testEmailButton,this.nextButton,this.cancelButton],items:[this.headPanel,this.cardPanel]});this.addEvents('cancel','finish');Ext.ux.Wiz.superclass.initComponent.call(this);},getWizardData:function()
{var formValues={};var cards=this.cards;for(var i=0,len=cards.length;i<len;i++){if(cards[i].form){formValues[cards[i].id]=cards[i].form.getValues(false);}else{formValues[cards[i].id]={};}}
return formValues;},switchDialogState:function(enabled,type)
{this.showLoadMask(!enabled,type);this.previousButton.setDisabled(!enabled);this.nextButton.setDisabled(!enabled);this.cancelButton.setDisabled(true);var ct=this.tools['close'];if(ct){switch(enabled){case true:this.tools['close'].unmask();break;default:this.tools['close'].mask();break;}}
this.closable=enabled;},showLoadMask:function(show,type)
{if(!type){type='default';}
if(show){if(this.loadMask==null){this.loadMask=new Ext.LoadMask(this.body);}
this.loadMask.msg=this.loadMaskConfig[type];this.loadMask.show();}else{if(this.loadMask){this.loadMask.hide();}}},initEvents:function()
{Ext.ux.Wiz.superclass.initEvents.call(this);this.on('beforeclose',this.onBeforeClose,this);this.on('close',this.onClose,this);var cards=this.cards;for(var i=0,len=cards.length;i<len;i++){cards[i].on('show',this.onCardShow,this);cards[i].on('hide',this.onCardHide,this);cards[i].on('clientvalidation',this.onClientValidation,this);}
this.cardPanel.getLayout().setActiveItem(0);cards[0].fireEvent('show',cards[0]);},initPanels:function()
{var cards=this.cards;var cardPanelConfig=this.cardPanelConfig;Ext.apply(this.headerConfig,{id:this.id+'-header-panel',steps:cards.length});this.headPanel=new Ext.ux.Wiz.Header(this.headerConfig);Ext.apply(cardPanelConfig,{layout:new Ext.ux.layout.CardLayout(),items:cards});Ext.applyIf(cardPanelConfig,{region:'center',border:false,activeItem:0});this.cardPanel=new Ext.Panel(cardPanelConfig);},getPanelsCfg:function()
{var cards=this.cards;var cardPanelConfig=this.cardPanelConfig;Ext.apply(this.headerConfig,{steps:cards.length,xtype:'wizard-header'});Ext.apply(cardPanelConfig,{layout:new Ext.ux.layout.CardLayout(),items:cards});Ext.applyIf(cardPanelConfig,{region:'center',border:false,activeItem:0,xtype:'panel'});return[this.headerCfg,cardPanelConfig];},initButtons:function()
{this.indicator=new Ext.Panel({hidden:true,html:'<div class="import-indicator">Processing, please wait...</div>'});this.previousButton=new Ext.Button({text:this.previousButtonText,disabled:true,minWidth:75,handler:this.onPreviousClick,scope:this});if(this.initialConfig.type&&this.initialConfig.type=='campaign-wizard'){this.testEmailButton=new Ext.Button({text:'Test Email',minWidth:75,hidden:true,handler:function(){this.sendTestEmail();},scope:this});}
this.nextButton=new Ext.Button({text:this.nextButtonText,minWidth:75,handler:this.onNextClick,scope:this});this.cancelButton=new Ext.Button({text:this.cancelButtonText,handler:this.onCancelClick,scope:this,minWidth:75});},onBeforeClose:function(panel)
{return this.closable;},onClose:function(panel)
{if(this.parentGrid){this.parentGrid.store.reload();}},onClientValidation:function(card,isValid)
{if(!isValid){this.nextButton.setDisabled(true);}else{this.nextButton.setDisabled(false);}},onCardHide:function(card)
{if(this.cardPanel.layout.activeItem.id===card.id){this.nextButton.setDisabled(true);}},onCardShow:function(card)
{var parent=card.ownerCt;var items=parent.items;for(var i=0,len=items.length;i<len;i++){if(items.get(i).id==card.id){break;}}
this.currentCard=i;this.headPanel.updateStep(i,card.title);if(i==len-2){this.nextButton.setText(this.finishButtonText);}else if(i==len-1){this.nextButton.setText('Close');}else{this.nextButton.setText(this.nextButtonText);}
if(card.isValid()){this.nextButton.setDisabled(false);}
if(i==0||i==len-1){this.previousButton.setDisabled(true);}else{this.previousButton.setDisabled(false);}},onCancelClick:function()
{if(this.fireEvent('cancel',this)!==false){this.close();}},onFinish:function()
{if(this.fireEvent('finish',this,this.getWizardData())!==false){this.close();}},onPreviousClick:function()
{if(this.currentCard>0){this.cardPanel.getLayout().setActiveItem(this.currentCard-1);}},onNextClick:function()
{if(this.currentCard==this.cardCount-1){this.onFinish();}else{this.cardPanel.getLayout().setActiveItem(this.currentCard+1);}}});Ext.reg('wizard',Ext.ux.Wiz);Ext.namespace('Ext.ux.Wiz');Ext.ux.Wiz.Header=Ext.extend(Ext.BoxComponent,{height:75,region:'north',title:'Wizard',steps:0,stepText:"Step {0} of {1}: {2}",autoEl:{tag:'div',cls:'ext-ux-wiz-Header',children:[{tag:'div',cls:'ext-ux-wiz-Header-title'},{tag:'div',children:[{tag:'div',cls:'ext-ux-wiz-Header-step'},{tag:'div',cls:'ext-ux-wiz-Header-stepIndicator-container'}]}]},titleEl:null,stepEl:null,imageContainer:null,indicators:null,stepTemplate:null,lastActiveStep:-1,updateStep:function(currentStep,title)
{var html=this.stepTemplate.apply({0:currentStep+1,1:this.steps,2:title});this.stepEl.update(html);if(this.lastActiveStep!=-1){this.indicators[this.lastActiveStep].removeClass('ext-ux-wiz-Header-stepIndicator-active');}
this.indicators[currentStep].addClass('ext-ux-wiz-Header-stepIndicator-active');this.lastActiveStep=currentStep;},onRender:function(ct,position)
{Ext.ux.Wiz.Header.superclass.onRender.call(this,ct,position);this.indicators=[];this.stepTemplate=new Ext.Template(this.stepText);this.stepTemplate.compile();var el=this.el.dom.firstChild;var ns=el.nextSibling;this.titleEl=new Ext.Element(el);this.stepEl=new Ext.Element(ns.firstChild);this.imageContainer=new Ext.Element(ns.lastChild);this.titleEl.update(this.title);var image=null;this.imageContainer.dom.innerHTML='';for(var i=0,len=this.steps;i<len;i++){image=document.createElement('div');image.innerHTML="&#160;";image.className='ext-ux-wiz-Header-stepIndicator';this.indicators[i]=new Ext.Element(image);this.imageContainer.appendChild(image);}}});Ext.reg('wizard-header',Ext.ux.Wiz.Header);Ext.namespace('Ext.ux.Wiz');Ext.ux.Wiz.Card=Ext.extend(Ext.FormPanel,{header:false,initComponent:function()
{this.addEvents('beforecardhide');Ext.ux.Wiz.Card.superclass.initComponent.call(this);},isValid:function()
{if(this.monitorValid){return this.bindHandler();}
return true;},bindHandler:function()
{this.form.items.each(function(f){if(!f.isValid){f.isValid=Ext.emptyFn;}});Ext.ux.Wiz.Card.superclass.bindHandler.call(this);},initEvents:function()
{Ext.ux.Wiz.Card.superclass.initEvents.call(this);this.on('beforehide',this.bubbleBeforeHideEvent,this);this.on('beforecardhide',this.isValid,this);this.on('show',this.onCardShow,this);this.on('hide',this.onCardHide,this);},bubbleBeforeHideEvent:function()
{var ly=this.ownerCt.layout;var activeItem=ly.activeItem;if(activeItem&&activeItem.id===this.id){return this.fireEvent('beforecardhide',this);}
return true;},onCardHide:function()
{if(this.monitorValid){this.stopMonitoring();}},onCardShow:function()
{if(this.monitorValid){this.startMonitoring();}}});Ext.reg('wizard-card',Ext.ux.Wiz.Card);Ext.override(Ext.form.FormPanel,{findFormComponents:function(ns,xtype,master){if(Ext.isEmpty(master)){return this.findBy(function(cmp){return cmp.isXType(xtype)&&cmp.nameSpace==ns;});}else{return this.findBy(function(cmp){return cmp.isXType(xtype)&&cmp.nameSpace==ns&&Ext.isEmpty(cmp.template);});}},aggregate:function(coll,v){if(coll===undefined||coll===null){return v;}else if(Ext.isArray(coll)){coll.push(v);return coll;}else{coll=[coll];coll.push(v);return coll;}},extract:function(ns,xtype){if(xtype==='fieldset'){var obja=[];Ext.each(this.findFormComponents(ns,xtype),function(fst){var obj={};var fs=fst.findBy(function(cmp){return cmp.isFormField;});Ext.each(fs,function(f){obj[f.name]=this.aggregate(obj[f.name],f.getValue());},this);obja.push(obj);},this);return obja;}else if(xtype==='field'){var obj={};Ext.each(this.findFormComponents(ns,xtype),function(f){obj[f.name]=this.aggregate(obj[f.name],f.getValue());},this);return obj;}},populate:function(o,ns,xtype){var findField=function(multi,name){var fields=[];if(Ext.isArray(multi)){var fs=multi;Ext.each(fs,function(field){if(Ext.isEmpty(field.template)&&field.isFormField&&(field.dataIndex==name||field.id==name||field.name==name)){fields.push(field);}},this);}else{var cntr=multi;fields=cntr.findBy(function(cmp){if(Ext.isEmpty(cmp.template)&&cmp.isFormField&&(cmp.dataIndex==name||cmp.id==name||cmp.name==name)){return true;}});}
if(fields.length>0)return fields[0];};var setValues=function(field,values){if(Ext.isEmpty(values))values='';if(!Ext.isArray(values))values=[values];var fields=[];if(Ext.isArray(field)){fields=field;}else{fields=[field];if(field.clones){fields=fields.concat(field.clones(values.length-1));}}
for(var i=0;i<values.length;i++){fields[i].setValue(values[i]);}};if(xtype==='fieldset'){if(!Ext.isArray(o))return;var array=o;var fieldsets=this.findFormComponents(ns,xtype,'master');if(fieldsets[0].clones){if(array.length==0){fieldsets[0].clones(0)}else{fieldsets=fieldsets.concat(fieldsets[0].clones(array.length-1));}}
for(var i=0;i<array.length;i++){for(name in array[i]){var field=findField(fieldsets[i],name);var values=array[i][name];if(!Ext.isEmpty(field)){setValues(field,values);}}}}else if(xtype=='field'){if(Ext.isArray(o))return;var object=o;var fields=this.findFormComponents(ns,xtype,'master');if(fields.length==0)return;for(name in object){var field=findField(fields,name);var values=object[name];if(!Ext.isEmpty(field)){setValues(field,values);}}}}});Ext.override(Ext.form.FieldSet,{dynamic:false,clones:function(card){var panel=this.ownerCt;var master=this;if(this.template){master=this.template;}
var cmps=panel.findBy(function(cmp){if(cmp.template){return cmp.template==this.template;}},{template:master});if(Ext.isEmpty(card)){return cmps;}
if(!Ext.isEmpty(card)){for(var i=cmps.length;i<card;i++){var idx=panel.items.indexOf(master);var clone=master.cloneConfig({clone:true,template:master});panel.insert(idx+1+i,clone);}
for(var i=cmps.length;i>card;i--){var fieldset=cmps[i-1];panel.remove(fieldset,true);}
cmps=panel.findBy(function(cmp){if(cmp.template){return cmp.template==this.template;}},{template:master});}
return cmps;},onRender:Ext.form.FieldSet.prototype.onRender.createInterceptor(function(ct,position){if(this.dynamic){if(this.clone){this.tools=[{id:'minus',handler:function(event,toolEl,fieldset){var panel=fieldset.ownerCt;panel.remove(fieldset,true);panel.doLayout();}}];}else{this.tools=[{id:'plus',handler:function(event,toolEl,fieldset){var cnt=fieldset.clones().length;if(!Ext.isEmpty(fieldset.maxOccurs)){if(fieldset.maxOccurs<=cnt+1){fieldset.fireEvent('maxoccurs',fieldset);return;}}
var panel=fieldset.ownerCt;fieldset.clones(cnt+1);panel.doLayout();}}];}}})});Ext.override(Ext.form.TriggerField,{alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,'tl-tr',[2+this.dicon?this.dicon.getWidth()+4:0,0]);}});Ext.override(Ext.form.Field,{dynamic:false,clones:function(card){var panel=this.ownerCt;var master=this;if(this.template){master=this.template;}
var cmps=panel.findBy(function(cmp){if(cmp.template){return cmp.template==this.template;}},{template:master});if(Ext.isEmpty(card)){return cmps;}
if(!Ext.isEmpty(card)){for(var i=cmps.length;i<card;i++){var clone=master.cloneConfig({clone:true,template:master,iconCfg:{cls:'x-tool x-tool-minus',clsOnOver:'x-tool-minus-over'},listeners:{'onIcon':{fn:function(field){var item=Ext.get(field.el.findParent('.x-form-item'));item.remove();panel.remove(field);panel.doLayout();}}}});var idx=panel.items.indexOf(master);panel.insert(idx+1+i,clone);}
for(var i=cmps.length;i>card;i--){var field=cmps[i-1];var item=Ext.get(field.el.findParent('.x-form-item'));item.remove();panel.remove(field);}
cmps=panel.findBy(function(cmp){if(cmp.template){return cmp.template==this.template;}},{template:master});}
return cmps;},onIcon:function(e,icon){this.fireEvent('onIcon',this);},getIconCt:function(el){return el.findParent('.x-form-element',5,true)||el.findParent('.x-form-field-wrap',5,true);},alignIcon:function(){if(this.isXType('combo')||this.isXType('datefield')){this.dicon.alignTo(this.el,'tl-tr',[17,3]);}else{this.dicon.alignTo(this.el,'tl-tr',[2,3]);}},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,'tl-tr',[2+this.dicon?this.dicon.getWidth()+4:0,0]);},afterRender:Ext.form.Field.prototype.afterRender.createSequence(function(){if(this.dynamic&&Ext.isEmpty(this.clone)){this.addIcon({cls:'x-tool x-tool-plus',clsOnOver:'x-tool-plus-over'});this.addListener('onIcon',function(field){var cnt=this.clones().length;if(!Ext.isEmpty(this.maxOccurs)){if(this.maxOccurs<=cnt+1){field.fireEvent('maxoccurs',this);return;}}
var panel=this.ownerCt;this.clones(cnt+1);panel.doLayout();});}else{this.addIcon(this.iconCfg);}}),addIcon:function(iconCfg){if(!this.rendered||this.preventMark||Ext.isEmpty(iconCfg)){return;}
if(!this.dicon){var elp=this.getIconCt(this.el);if(!elp){return;}
this.dicon=elp.createChild({cls:iconCfg.cls});this.dicon.setStyle({position:'absolute'})
this.dicon.addClassOnOver(iconCfg.clsOnOver);this.dicon.addListener('click',this.onIcon,this);this.alignIcon();this.on('resize',this.alignIcon,this);}}});Ext.ux.MultiSelect=Ext.extend(Ext.form.Field,{allowBlank:true,stripe:false,oddStripeColor:false,evenStripeColor:'#f1f2f4',defaultAutoCreate:{tag:'select',multiple:'multiple'},blankText:'You must select at least one option',initComponent:function(){if(this.name&&this.name.search(/\[\]/)==-1){this.name=this.name+"[]";}
Ext.ux.MultiSelect.superclass.initComponent.call(this);this.addEvents({'selectionchange':true});},initEvents:function(){Ext.ux.MultiSelect.superclass.initEvents.call(this);this.selected=new Array();if(this.transform){this.allowDomMove=false;var s=Ext.getDom(this.transform);if(!this.store){this.mode='local';var d=[],opts=s.options;for(var i=0,len=opts.length;i<len;i++){var o=opts[i];var value=(Ext.isIE?o.getAttributeNode('value').specified:o.hasAttribute('value'))?o.value:o.text;if(o.selected){this.selected.push({value:value,index:i});}
d.push([value,o.text]);}
this.store=new Ext.data.SimpleStore({'id':0,fields:['value','text'],data:d});for(var i=0,len=opts.length;i<len;i++){var o=opts[i];if(o.selected){this.selected.push(this.store.getAt(i));}}
this.valueField='value';this.displayField='text';}
s.name=Ext.id();if(!this.lazyRender){this.target=true;this.el=Ext.DomHelper.insertBefore(s,this.autoCreate||this.defaultAutoCreate);Ext.removeNode(s);this.render(this.el.parentNode);}else{Ext.removeNode(s);}}
if(!this.valueField){this.valueField=this.displayField;}
if(this.store){this.bindStore(this.store,true);}else{}
this.el.on('change',this.onSelectionChange,this);},onRender:function(ct,position){Ext.ux.MultiSelect.superclass.onRender.call(this,ct,position);this.el.dom.setAttribute('multiple','multiple');},bindStore:function(store,initial){if(this.store&&!initial){this.store.un('beforeload',this.onBeforeLoad,this);this.store.un('load',this.onLoad,this);this.store.un('loadexception',this.collapse,this);if(!store){this.store=null;}}
if(store){this.store=Ext.StoreMgr.lookup(store);this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('load',this.onLoad,this);this.store.on('loadexception',this.collapse,this);}},onDestroy:function(){this.bindStore(null);Ext.ux.MultiSelect.superclass.onDestroy.call(this);},onResize:function(){Ext.ux.MultiSelect.superclass.onResize.call(this,arguments);},onDisable:function(){Ext.ux.MultiSelect.superclass.onDisable.call(this,arguments);},onBeforeLoad:function(){this.selected=new Array();this.el.innerHTML='';},onLoad:function(){if(this.store.getCount()>0){for(var i=0,len=this.store.getCount();i<len;i++){style='';if(this.stripe&&this.evenStripeColor&&(i+1)%2==0){style='background-color:'+this.evenStripeColor+';';}else if(this.stripe&&this.oddStripeColor&&(i+1)%2!=0){style='background-color:'+this.oddStripeColor+';';}
var record=this.store.getAt(i);var option=document.createElement("OPTION");option.text=record.data[this.displayField];option.value=record.data[this.valueField]
if(Ext.isIE){document.getElementById(Ext.get(this.el).id).add(option);}
else{document.getElementById(Ext.get(this.el).id).add(option,null);}}}},onSelectionChange:function(){ob=Ext.get(this.el).dom;this.clearInvalid();this.selected=new Array();for(var i=0;i<ob.options.length;i++){if(ob.options[i].selected){this.selected.push(this.store.getAt(i));}}
this.fireEvent('selectionchange',this,this.selected);},getSelected:function(){return this.selected;},clearSelection:function(){ob=Ext.get(this.el).dom;this.selected=new Array();for(var i=0;i<ob.options.length;i++){if(ob.options[i].selected){ob.options[i].selected=false;}}}});Ext.reg('multiselect',Ext.ux.MultiSelect);Ext.apply(Ext.DataView.prototype,{deselect:function(node,suppressEvent){if(this.isSelected(node)){var node=this.getNode(node);this.selected.removeElement(node);if(this.last==node.viewIndex){this.last=false;}
Ext.fly(node).removeClass(this.selectedClass);if(!suppressEvent){this.fireEvent('selectionchange',this,this.selected.elements);}}}});Ext.namespace('Ext.ux.Andrie');Ext.ux.Andrie.Select=function(config){if(config.transform&&typeof config.multiSelect=='undefined'){var o=Ext.getDom(config.transform);config.multiSelect=(Ext.isIE?o.getAttributeNode('multiple').specified:o.hasAttribute('multiple'));}
config.hideTrigger2=config.hideTrigger2||config.hideTrigger;Ext.ux.Andrie.Select.superclass.constructor.call(this,config);}
Ext.extend(Ext.ux.Andrie.Select,Ext.form.ComboBox,{multiSelect:false,minLength:0,minLengthText:'Minimum {0} items required',maxLength:Number.MAX_VALUE,maxLengthText:'Maximum {0} items allowed',clearTrigger:true,history:false,historyMaxLength:0,separator:',',displaySeparator:',',valueArray:[],rawValueArray:[],initComponent:function(){this.triggerConfig={tag:'span',cls:'x-form-twin-triggers',cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]};Ext.ux.Andrie.Select.superclass.initComponent.call(this);if(this.multiSelect){this.typeAhead=false;this.editable=false;this.triggerAction='all';this.selectOnFocus=false;}
if(this.history){this.forceSelection=false;}
if(this.value){this.setValue(this.value);}},hideTrigger1:true,getTrigger:Ext.form.TwinTriggerField.prototype.getTrigger,initTrigger:Ext.form.TwinTriggerField.prototype.initTrigger,trigger1Class:'x-form-clear-trigger',trigger2Class:'x-form-arrow-trigger',onTrigger2Click:function(){this.onTriggerClick();},onTrigger1Click:function(){this.clearValue();},initList:function(){if(!this.list){var cls='x-combo-list';this.list=new Ext.Layer({shadow:this.shadow,cls:[cls,this.listClass].join(' '),constrain:false});var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setWidth(lw);this.list.swallowEvent('mousewheel');this.assetHeight=0;if(this.title){this.header=this.list.createChild({cls:cls+'-hd',html:this.title});this.assetHeight+=this.header.getHeight();}
this.innerList=this.list.createChild({cls:cls+'-inner'});this.innerList.on('mouseover',this.onViewOver,this);this.innerList.on('mousemove',this.onViewMove,this);this.innerList.setWidth(lw-this.list.getFrameWidth('lr'))
if(this.pageSize){this.footer=this.list.createChild({cls:cls+'-ft'});this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight();}
if(!this.tpl){this.tpl='<tpl for="."><div class="'+cls+'-item">{'+this.displayField+'}</div></tpl>';}
this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,multiSelect:this.multiSelect,simpleSelect:true,overClass:cls+'-cursor',selectedClass:this.selectedClass,itemSelector:this.itemSelector||'.'+cls+'-item'});this.view.on('click',this.onViewClick,this);this.view.on('beforeClick',this.onViewBeforeClick,this);this.bindStore(this.store,true);if(this.valueArray.length){this.selectByValue(this.valueArray);}
if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:'se'});this.resizer.on('resize',function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight;this.listWidth=w;this.innerList.setWidth(w-this.list.getFrameWidth('lr'));this.restrictHeight();},this);this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom',this.handleHeight+'px');}}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(e){this.inKeyMode=true;this.hoverPrev();},"down":function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode=true;this.hoverNext();}},"enter":function(e){if(this.isExpanded()){this.inKeyMode=true;var hoveredIndex=this.view.indexOf(this.view.lastItem);this.onViewBeforeClick(this.view,hoveredIndex,this.view.getNode(hoveredIndex),e);this.onViewClick(this.view,hoveredIndex,this.view.getNode(hoveredIndex),e);}else{this.onSingleBlur();}
return true;},"esc":function(e){this.collapse();},"tab":function(e){this.collapse();return true;},"home":function(e){this.hoverFirst();return false;},"end":function(e){this.hoverLast();return false;},scope:this,doRelay:function(foo,bar,hname){if(hname=='down'||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}
if(hname=='enter'||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments);}
return true;},forceKeyDown:true});this.queryDelay=Math.max(this.queryDelay||10,this.mode=='local'?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this);}
if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this);}
if(!this.multiSelect){if(this.forceSelection){this.on('blur',this.doForce,this);}
this.on('focus',this.onSingleFocus,this);this.on('blur',this.onSingleBlur,this);}
this.on('change',this.onChange,this);},doForce:function(){if(this.el.dom.value.length>0){if(this.el.dom.value==this.emptyText){this.clearValue();}
else if(!this.multiSelect){this.el.dom.value=this.lastSelectionText===undefined?'':this.lastSelectionText;this.applyEmptyText();}}},onLoad:function(){if(!this.hasFocus){return;}
if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select();}
this.selectByValue(this.value,true);}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay);}}}else{this.onEmptyResults();}},onSelect:function(record,index){if(this.fireEvent('beforeselect',this,record,index)!==false){this.addValue(record.data[this.valueField||this.displayField]);this.fireEvent('select',this,record,index);if(!this.multiSelect){this.collapse();}}},onSingleFocus:function(){this.oldValue=this.getRawValue();},onSingleBlur:function(){var r=this.findRecord(this.displayField,this.getRawValue());if(r){this.select(this.store.indexOf(r));return;}
if(String(this.oldValue)!=String(this.getRawValue())){this.setValue(this.getRawValue());this.fireEvent('change',this,this.oldValue,this.getRawValue());}
this.oldValue=String(this.getRawValue());},onChange:function(){if(!this.clearTrigger){return;}
if(this.getValue()!=''){this.triggers[0].show();}else{this.triggers[0].hide();}},collapse:function(){this.hoverOut();Ext.ux.Andrie.Select.superclass.collapse.call(this);},expand:function(){Ext.ux.Andrie.Select.superclass.expand.call(this);this.hoverFirst();},onViewOver:function(e,t){if(this.inKeyMode){return;}},onViewBeforeClick:function(vw,index,node,e){this.preClickSelections=this.view.getSelectedIndexes();},onViewClick:function(vw,index,node,e){if(typeof index!='undefined'){var arrayIndex=this.preClickSelections.indexOf(index);if(arrayIndex!=-1&&this.multiSelect){this.removeValue(this.store.getAt(index).data[this.valueField||this.displayField]);if(this.inKeyMode){this.view.deselect(index,true);}
this.hover(index,true);}else{var r=this.store.getAt(index);if(r){if(this.inKeyMode){this.view.select(index,true);}
this.onSelect(r,index);this.hover(index,true);}}}
if(vw!==false){this.el.focus();}},addValue:function(v){if(!this.multiSelect){this.setValue(v);return;}
if(v instanceof Array){v=v[0];}
v=String(v);if(this.valueArray.indexOf(v)==-1){var text=v;var r=this.findRecord(this.valueField||displayField,v);if(r){text=r.data[this.displayField];if(this.view){this.select(this.store.indexOf(r));}}else if(this.forceSelection){return;}
var result=Ext.apply([],this.valueArray);result.push(v);var resultRaw=Ext.apply([],this.rawValueArray);resultRaw.push(text);v=result.join(this.separator||',');var res=new Array();var resRaw=new Array();for(var i=0;i<result.length;i++){if(result[i]){res.push(result[i]);resRaw.push(resultRaw[i]);}}
result=res;resultRaw=resRaw;text=resultRaw.join(this.displaySeparator||this.separator||',');this.commonChangeValue(v,text,result,resultRaw);}},removeValue:function(v){if(v instanceof Array){v=v[0];}
v=String(v);if(this.valueArray.indexOf(v)!=-1){var text=v;var r=this.findRecord(this.valueField||displayField,v);if(r){text=r.data[this.displayField];if(this.view){this.deselect(this.store.indexOf(r));}}else if(this.forceSelection){return;}
var result=Ext.apply([],this.valueArray);result.remove(v);var resultRaw=Ext.apply([],this.rawValueArray);resultRaw.remove(text);v=result.join(this.separator||',');text=resultRaw.join(this.displaySeparator||this.separator||',');this.commonChangeValue(v,text,result,resultRaw);}},setValue:function(v){var result=[],resultRaw=[];if(!(v instanceof Array)){if(this.separator&&this.separator!==true){v=v.split(String(this.separator));}else{v=[v];}}
else if(!this.multiSelect){v=v.slice(0,1);}
for(var i=0,len=v.length;i<len;i++){var value=v[i];var text=value;if(this.valueField){if(isNaN(value)){var r=this.findRecord(this.displayField,value);}else{var r=this.findRecord(this.valueField,value);}
if(r){text=r.data[this.displayField];value=r.data[this.valueField];}else if(this.forceSelection){continue;}}
result.push(value);resultRaw.push(text);}
var res=new Array();var resRaw=new Array();for(var i=0;i<result.length;i++){if(result[i]){res.push(result[i]);resRaw.push(resultRaw[i]);}}
result=res;resultRaw=resRaw;v=result.join(this.separator||',');text=resultRaw.join(this.displaySeparator||this.separator||',');this.commonChangeValue(v,text,result,resultRaw);if(this.history&&!this.multiSelect&&this.mode=='local'){this.addHistory(this.valueField?this.getValue():this.getRawValue());}
if(this.view){this.view.clearSelections();this.selectByValue(this.valueArray);}},commonChangeValue:function(v,text,result,resultRaw){this.lastSelectionText=text;this.valueArray=result;this.rawValueArray=resultRaw;if(this.hiddenField){this.hiddenField.value=v;}
Ext.form.ComboBox.superclass.setValue.call(this,text);this.value=v;if(this.oldValueArray!=this.valueArray){this.fireEvent('change',this,this.oldValueArray,this.valueArray);}
this.oldValueArray=Ext.apply([],this.valueArray);},validateValue:function(value){if(!Ext.ux.Andrie.Select.superclass.validateValue.call(this,value)){return false;}
if(this.valueArray.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false;}
if(this.valueArray.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}
return true;},clearValue:function(){this.commonChangeValue('','',[],[]);if(this.view){this.view.clearSelections();}
Ext.ux.Andrie.Select.superclass.clearValue.call(this);},reset:function(){if(this.view){this.view.clearSelections();}
Ext.ux.Andrie.Select.superclass.reset.call(this);},getValue:function(asArray){if(asArray){return typeof this.valueArray!='undefined'?this.valueArray:[];}
return Ext.ux.Andrie.Select.superclass.getValue.call(this);},getRawValue:function(asArray){if(asArray){return typeof this.rawValueArray!='undefined'?this.rawValueArray:[];}
return Ext.ux.Andrie.Select.superclass.getRawValue.call(this);},select:function(index,scrollIntoView){this.selectedIndex=index;if(!this.view){return;}
this.view.select(index,this.multiSelect);if(scrollIntoView!==false){var el=this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el,false);}}},deselect:function(index,scrollIntoView){this.selectedIndex=index;this.view.deselect(index,this.multiSelect);if(scrollIntoView!==false){var el=this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el,false);}}},selectByValue:function(v,scrollIntoView){this.hoverOut();if(v!==undefined&&v!==null){if(!(v instanceof Array)){v=[v];}
var result=[];for(var i=0,len=v.length;i<len;i++){var value=v[i];var r=this.findRecord(this.valueField||this.displayField,value);if(r){this.select(this.store.indexOf(r),scrollIntoView);result.push(value);}}
return result.join(',');}
return false;},selectFirst:function(){var ct=this.store.getCount();if(ct>0){this.select(0);}},selectLast:function(){var ct=this.store.getCount();if(ct>0){this.select(ct);}},hover:function(index,scrollIntoView){if(!this.view){return;}
this.hoverOut();var node=this.view.getNode(index);this.view.lastItem=node;Ext.fly(node).addClass(this.view.overClass);if(scrollIntoView!==false){var el=this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el,false);}}},hoverOut:function(){if(!this.view){return;}
if(this.view.lastItem){Ext.fly(this.view.lastItem).removeClass(this.view.overClass);delete this.view.lastItem;}},hoverNext:function(){if(!this.view){return;}
var ct=this.store.getCount();if(ct>0){if(!this.view.lastItem){this.hover(0);}else{var hoveredIndex=this.view.indexOf(this.view.lastItem);if(hoveredIndex<ct-1){this.hover(hoveredIndex+1);}}}},hoverPrev:function(){if(!this.view){return;}
var ct=this.store.getCount();if(ct>0){if(!this.view.lastItem){this.hover(0);}else{var hoveredIndex=this.view.indexOf(this.view.lastItem);if(hoveredIndex!=0){this.hover(hoveredIndex-1);}}}},hoverFirst:function(){var ct=this.store.getCount();if(ct>0){this.hover(0);}},hoverLast:function(){var ct=this.store.getCount();if(ct>0){this.hover(ct);}},addHistory:function(value){if(!value.length){return;}
var r=this.findRecord(this.valueField||this.displayField,value);if(r){this.store.remove(r);}else{var o={};if(this.valueField){o[this.valueField]=value;}
o[this.displayField]=value;r=new this.store.reader.recordType(o);}
this.store.clearFilter();this.store.insert(0,r);this.pruneHistory();},pruneHistory:function(){if(this.historyMaxLength==0){return;}
if(this.store.getCount()>this.historyMaxLength){var overflow=this.store.getRange(this.historyMaxLength,this.store.getCount());for(var i=0,len=overflow.length;i<len;i++){this.store.remove(overflow[i]);}}}});Ext.reg('select',Ext.ux.Andrie.Select);Ext.ux.SlidingTabPanel=Ext.extend(Ext.TabPanel,{initTab:function(item,index){Ext.ux.SlidingTabPanel.superclass.initTab.call(this,item,index);var p=this.getTemplateArgs(item);if(!this.slidingTabsID)this.slidingTabsID=Ext.id();new Ext.ux.DDSlidingTab(p,this.slidingTabsID,{tabpanel:this});}});Ext.ux.DDSlidingTab=Ext.extend(Ext.dd.DDProxy,{constructor:function(){Ext.ux.DDSlidingTab.superclass.constructor.apply(this,arguments);this.setYConstraint(0,0,0);this.tabpanel=this.config.tabpanel;this.slideDuration=this.tabpanel.slideDuration;if(!this.slideDuration)this.slideDuration=.1;},handleMouseDown:function(e,oDD){if(this.primaryButtonOnly&&e.button!=0)return;if(this.isLocked())return;this.DDM.refreshCache(this.groups);var pt=new Ext.lib.Point(Ext.lib.Event.getPageX(e),Ext.lib.Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);}}},startDrag:function(x,y){Ext.dd.DDM.useCache=false;this.proxyWrapper=Ext.get(this.getDragEl());this.proxyWrapper.update();this.proxyWrapper.applyStyles('z-index:1001;border:0 none;');this.proxyWrapper.addClass('tab-proxy');this.stripWrap=this.proxyWrapper.insertHtml('afterBegin','<div class="x-tab-strip x-tab-strip-top"></div>',true);this.dragEl=this.stripWrap.insertHtml('afterBegin','<div></div>',true);this.tab=Ext.get(this.getEl());this.tab.applyStyles('visibility:hidden;');this.dragEl.insertHtml('afterBegin',this.tab.dom.innerHTML,false);this.dragEl.dom.className=this.tab.dom.className;var panelWidth=this.tabpanel.el.getWidth();var panelX=this.tabpanel.el.getX();var tabX=this.tab.getX();var tabWidth=this.tab.getWidth();var left=tabX-panelX;var right=panelX+panelWidth-tabX-tabWidth;this.resetConstraints();this.setXConstraint(left,right);},onDragOver:function(e,targetId){e.stopEvent();var target=Ext.get(targetId);var targetWidth=target.getWidth();var targetX=target.getX();var targetMiddle=targetX+(targetWidth/2);var elX=this.tab.getX();var dragX=this.proxyWrapper.getX();var dragW=this.proxyWrapper.getWidth();if(dragX<targetX&&((dragX+dragW)>targetMiddle)){if(target.next()!=this.tab){target.applyStyles('visibility:hidden;');this.tab.insertAfter(target);this.targetProxy=this.createSliderProxy(targetX,target);if(!this.targetProxy.hasActiveFx())this.animateSliderProxy(target,this.targetProxy,elX);}}
if(dragX>targetX&&(dragX<targetMiddle)){if(this.tab.next()!=target){target.applyStyles('visibility:hidden;');this.tab.insertBefore(target);this.targetProxy=this.createSliderProxy(targetX,target);if(!this.targetProxy.hasActiveFx())this.animateSliderProxy(target,this.targetProxy,elX);}}},animateSliderProxy:function(target,targetProxy,elX){targetProxy.shift({x:elX,easing:'easeOut',duration:this.slideDuration,callback:function(){targetProxy.remove();target.applyStyles('visibility:visible;');},scope:this});},createSliderProxy:function(targetX,target){var sliderWrapperEl=Ext.getBody().insertHtml('afterBegin','<div class="tab-proxy" style="position:absolute;visibility:visible;z-index:999;left:'+targetX+'px;"></div>',true);sliderWrapperEl.stripWrapper=sliderWrapperEl.insertHtml('afterBegin','<div class="x-tab-strip x-tab-strip-top"></div>',true);sliderWrapperEl.dragEl=sliderWrapperEl.stripWrapper.insertHtml('afterBegin','<div></div>',true);sliderWrapperEl.dragEl.update(target.dom.innerHTML);sliderWrapperEl.dragEl.dom.className=target.dom.className;var h=parseInt(target.getTop(false));sliderWrapperEl.setTop(h)
return sliderWrapperEl;},onDragDrop:function(e,targetId){e.stopEvent();},endDrag:function(e){var elX=this.tab.getX();this.proxyWrapper.applyStyles('visibility:visible;');this.proxyWrapper.shift({x:elX,easing:'easeOut',duration:this.slideDuration,callback:function(){this.proxyWrapper.applyStyles('visibility:hidden;');this.tab.applyStyles('visibility:visible;');this.stripWrap.remove();this.dragEl.remove();if(!this.targetProxy)return;this.targetProxy.stripWrapper.remove();this.targetProxy.dragEl.remove();},scope:this});Ext.dd.DDM.useCache=true;}});Ext.ux.ProcessIndicator=function(){var originalText,originalClass;this.init=function(btn){originalText=btn.getText();originalClass=btn.iconCls;btn.on('beforeprocess',function(e,node){btn.setText('Processing');btn.setIconClass('icon-indicator');});btn.on('afterprocess',function(e,node){btn.setText(originalText);btn.setIconClass(originalClass);});}};Ext.namespace('Ext.ux.form');Ext.ux.form.SuperBoxSelect=function(config){Ext.ux.form.SuperBoxSelect.superclass.constructor.call(this,config);this.addEvents('beforeadditem','additem','newitem','beforeremoveitem','removeitem','clear');};Ext.ux.form.SuperBoxSelect=Ext.extend(Ext.ux.form.SuperBoxSelect,Ext.form.ComboBox,{allowAddNewData:false,backspaceDeletesLastItem:true,classField:null,clearBtnCls:'',extraItemCls:'',extraItemStyle:'',expandBtnCls:'',fixFocusOnTabSelect:true,forceFormValue:true,itemDelimiterKey:Ext.EventObject.ENTER,navigateItemsWithTab:true,pinList:true,preventDuplicates:true,queryValuesDelimiter:'|',queryValuesIndicator:'valuesqry',removeValuesFromStore:true,renderFieldBtns:true,stackItems:false,styleField:null,supressClearValueRemoveEvents:false,validationEvent:'blur',valueDelimiter:',',initComponent:function(){Ext.apply(this,{items:new Ext.util.MixedCollection(false),usedRecords:new Ext.util.MixedCollection(false),addedRecords:[],remoteLookup:[],hideTrigger:true,grow:false,resizable:false,multiSelectMode:false,preRenderValue:null});if(this.transform){this.doTransform();}
if(this.forceFormValue){this.items.on({add:this.manageNameAttribute,remove:this.manageNameAttribute,clear:this.manageNameAttribute,scope:this});}
Ext.ux.form.SuperBoxSelect.superclass.initComponent.call(this);if(this.mode==='remote'&&this.store){this.store.on('load',this.onStoreLoad,this);}
if(this.valuesType){if(this.valuesType=='beats'){if(!app.beatsWindow){app.beatsWindow=new Ext.sv.UI.BeatsWindow();}
app.beatsWindow.setField(this);this.window=app.beatsWindow;this.store=app.ds.beats;this.store=app.ds.beats;}}},onRender:function(ct,position){var h=this.hiddenName;this.hiddenName=null;Ext.ux.form.SuperBoxSelect.superclass.onRender.call(this,ct,position);this.hiddenName=h;this.manageNameAttribute();var extraClass=(this.stackItems===true)?'x-superboxselect-stacked':'';if(this.renderFieldBtns){extraClass+=' x-superboxselect-display-btns';}
this.el.removeClass('x-form-text').addClass('x-superboxselect-input-field');this.wrapEl=this.el.wrap({tag:'ul'});this.outerWrapEl=this.wrapEl.wrap({tag:'div',cls:'x-form-text x-superboxselect '+extraClass});this.inputEl=this.el.wrap({tag:'li',cls:'x-superboxselect-input'});if(this.renderFieldBtns){this.setupFieldButtons().manageClearBtn();}
this.setupFormInterception();},onStoreLoad:function(store,records,options){var q=options.params[this.queryParam]||store.baseParams[this.queryParam]||"",isValuesQuery=options.params[this.queryValuesIndicator]||store.baseParams[this.queryValuesIndicator];if(this.removeValuesFromStore){this.store.each(function(record){if(this.usedRecords.containsKey(record.get(this.valueField))){this.store.remove(record);}},this);}
if(isValuesQuery){var params=q.split(this.queryValuesDelimiter);Ext.each(params,function(p){this.remoteLookup.remove(p);var rec=this.findRecord(this.valueField,p);if(rec){this.addRecord(rec);}},this);if(this.setOriginal){this.setOriginal=false;this.originalValue=this.getValue();}}
if(q!==''&&this.allowAddNewData){Ext.each(this.remoteLookup,function(r){if(typeof r=="object"&&r[this.displayField]==q){this.remoteLookup.remove(r);if(records.length&&records[0].get(this.displayField)===q){this.addRecord(records[0]);return;}
var rec=this.createRecord(r);this.store.add(rec);this.addRecord(rec);this.addedRecords.push(rec);(function(){if(this.isExpanded()){this.collapse();}}).defer(10,this);return;}},this);}
var toAdd=[];if(q===''){Ext.each(this.addedRecords,function(rec){if(this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))){return;}
toAdd.push(rec);},this);}else{var re=new RegExp(Ext.escapeRe(q)+'.*','i');Ext.each(this.addedRecords,function(rec){if(this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))){return;}
if(re.test(rec.get(this.displayField))){toAdd.push(rec);}},this);}
this.store.add(toAdd);this.store.sort(this.displayField,'ASC');if(this.store.getCount()===0&&this.isExpanded()){this.collapse();}},doTransform:function(){var s=Ext.getDom(this.transform),transformValues=[];if(!this.store){this.mode='local';var d=[],opts=s.options;for(var i=0,len=opts.length;i<len;i++){var o=opts[i],oe=Ext.get(o),value=oe.getAttributeNS(null,'value')||'',cls=oe.getAttributeNS(null,'className')||'',style=oe.getAttributeNS(null,'style')||'';if(o.selected){transformValues.push(value);}
d.push([value,o.text,cls,typeof(style)==="string"?style:style.cssText]);}
this.store=new Ext.data.SimpleStore({'id':0,fields:['value','text','cls','style'],data:d});Ext.apply(this,{valueField:'value',displayField:'text',classField:'cls',styleField:'style'});}
if(transformValues.length){this.value=transformValues.join(',');}},setupFieldButtons:function(){this.buttonWrap=this.outerWrapEl.createChild({cls:'x-superboxselect-btns'});this.buttonClear=this.buttonWrap.createChild({tag:'div',cls:'x-superboxselect-btn-clear '+this.clearBtnCls});this.buttonExpand=this.buttonWrap.createChild({tag:'div',cls:'x-superboxselect-btn-expand '+this.expandBtnCls});this.initButtonEvents();return this;},initButtonEvents:function(){this.buttonClear.addClassOnOver('x-superboxselect-btn-over').on('click',function(e){e.stopEvent();if(this.disabled){return;}
this.clearValue();this.el.focus();},this);this.buttonExpand.addClassOnOver('x-superboxselect-btn-over').on('click',function(e){e.stopEvent();if(this.disabled){return;}
if(this.valuesType){e.stopEvent();this.window.show();this.window.field=this;this.window.valuesTreePanel.setValues(this.getValue());return;}
if(this.isExpanded()){this.multiSelectMode=false;}else if(this.pinList){this.multiSelectMode=true;}
this.onTriggerClick();},this);},removeButtonEvents:function(){this.buttonClear.removeAllListeners();this.buttonExpand.removeAllListeners();return this;},clearCurrentFocus:function(){if(this.currentFocus){this.currentFocus.onLnkBlur();this.currentFocus=null;}
return this;},initEvents:function(){var el=this.el;el.on({click:this.onClick,focus:this.clearCurrentFocus,blur:this.onBlur,keydown:this.onKeyDownHandler,keyup:this.onKeyUpBuffered,scope:this});this.on({collapse:this.onCollapse,expand:this.clearCurrentFocus,scope:this});this.wrapEl.on('click',this.onWrapClick,this);this.outerWrapEl.on('click',this.onWrapClick,this);this.inputEl.focus=function(){el.focus();};Ext.ux.form.SuperBoxSelect.superclass.initEvents.call(this);Ext.apply(this.keyNav,{tab:function(e){if(this.fixFocusOnTabSelect&&this.isExpanded()){e.stopEvent();el.blur();this.onViewClick(false);this.focus(false,10);return true;}
this.onViewClick(false);if(el.dom.value!==''){this.setRawValue('');}
return true;},down:function(e){if(!this.isExpanded()&&!this.currentFocus){this.onTriggerClick();}else{this.inKeyMode=true;this.selectNext();}},enter:function(){}});},onClick:function(){this.clearCurrentFocus();this.collapse();this.autoSize();},beforeBlur:Ext.form.ComboBox.superclass.beforeBlur,onFocus:function(){this.outerWrapEl.addClass(this.focusClass);Ext.ux.form.SuperBoxSelect.superclass.onFocus.call(this);},onBlur:function(){this.outerWrapEl.removeClass(this.focusClass);this.clearCurrentFocus();if(this.el.dom.value!==''){this.applyEmptyText();this.autoSize();}
Ext.ux.form.SuperBoxSelect.superclass.onBlur.call(this);},onCollapse:function(){this.view.clearSelections();this.multiSelectMode=false;},onWrapClick:function(e){e.stopEvent();this.collapse();this.el.focus();this.clearCurrentFocus();if(this.valuesType){this.window.field=this;this.window.show();this.window.valuesTreePanel.setValues(this.getValue());}},markInvalid:function(msg){var elp,t;if(!this.rendered||this.preventMark){return;}
this.outerWrapEl.addClass(this.invalidClass);msg=msg||this.invalidText;switch(this.msgTarget){case'qtip':Ext.apply(this.el.dom,{qtip:msg,qclass:'x-form-invalid-tip'});Ext.apply(this.wrapEl.dom,{qtip:msg,qclass:'x-form-invalid-tip'});if(Ext.QuickTips){Ext.QuickTips.enable();}
break;case'title':this.el.dom.title=msg;this.wrapEl.dom.title=msg;this.outerWrapEl.dom.title=msg;break;case'under':if(!this.errorEl){elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;break;}
this.errorEl=elp.createChild({cls:'x-form-invalid-msg'});this.errorEl.setWidth(elp.getWidth(true)-20);}
this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case'side':if(!this.errorIcon){elp=this.getErrorCt();if(!elp){this.el.dom.title=msg;break;}
this.errorIcon=elp.createChild({cls:'x-form-invalid-icon'});}
this.alignErrorIcon();Ext.apply(this.errorIcon.dom,{qtip:msg,qclass:'x-form-invalid-tip'});this.errorIcon.show();this.on('resize',this.alignErrorIcon,this);break;default:t=Ext.getDom(this.msgTarget);t.innerHTML=msg;t.style.display=this.msgDisplay;break;}
this.fireEvent('invalid',this,msg);},clearInvalid:function(){if(!this.rendered||this.preventMark){return;}
this.outerWrapEl.removeClass(this.invalidClass);switch(this.msgTarget){case'qtip':this.el.dom.qtip='';this.wrapEl.dom.qtip='';break;case'title':this.el.dom.title='';this.wrapEl.dom.title='';this.outerWrapEl.dom.title='';break;case'under':if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this);}
break;case'side':if(this.errorIcon){this.errorIcon.dom.qtip='';this.errorIcon.hide();this.un('resize',this.alignErrorIcon,this);}
break;default:var t=Ext.getDom(this.msgTarget);t.innerHTML='';t.style.display='none';break;}
this.fireEvent('valid',this);},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,'tl-tr',[Ext.isIE?5:2,3]);}},expand:function(){if(this.isExpanded()||!this.hasFocus){return;}
this.list.alignTo(this.outerWrapEl,this.listAlign).show();this.innerList.setOverflow('auto');Ext.getDoc().on({mousewheel:this.collapseIf,mousedown:this.collapseIf,scope:this});this.fireEvent('expand',this);},restrictHeight:function(){var inner=this.innerList.dom,st=inner.scrollTop,list=this.list;inner.style.height='';var pad=list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight,h=Math.max(inner.clientHeight,inner.offsetHeight,inner.scrollHeight),ha=this.getPosition()[1]-Ext.getBody().getScroll().top,hb=Ext.lib.Dom.getViewHeight()-ha-this.getSize().height,space=Math.max(ha,hb,this.minHeight||0)-list.shadowOffset-pad-5;h=Math.min(h,space,this.maxHeight);this.innerList.setHeight(h);list.beginUpdate();list.setHeight(h+pad);list.alignTo(this.outerWrapEl,this.listAlign);list.endUpdate();if(this.multiSelectMode){inner.scrollTop=st;}},validateValue:function(val){if(this.items.getCount()===0){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}
this.clearInvalid();return true;},manageNameAttribute:function(){if(this.items.getCount()===0&&this.forceFormValue){this.el.dom.setAttribute('name',this.hiddenName||this.name);}else{this.el.dom.removeAttribute('name');}},setupFormInterception:function(){var form;this.findParentBy(function(p){if(p.getForm){form=p.getForm();}});if(form){var formGet=form.getValues;form.getValues=function(asString){this.el.dom.disabled=true;var oldVal=this.el.dom.value;this.setRawValue('');var vals=formGet.call(form);this.el.dom.disabled=false;this.setRawValue(oldVal);if(this.forceFormValue&&this.items.getCount()===0){vals[this.name]='';}
return asString?Ext.urlEncode(vals):vals;}.createDelegate(this);}},onResize:function(w,h,rw,rh){var reduce=Ext.isIE6?4:Ext.isIE7?1:Ext.isIE8?1:0;if(this.wrapEl){this._width=w;this.outerWrapEl.setWidth(w-reduce);if(this.renderFieldBtns){reduce+=(this.buttonWrap.getWidth()+20);this.wrapEl.setWidth(w-reduce);}}
Ext.ux.form.SuperBoxSelect.superclass.onResize.call(this,w,h,rw,rh);this.autoSize();},onEnable:function(){Ext.ux.form.SuperBoxSelect.superclass.onEnable.call(this);this.items.each(function(item){item.enable();});if(this.renderFieldBtns){this.initButtonEvents();}},onDisable:function(){Ext.ux.form.SuperBoxSelect.superclass.onDisable.call(this);this.items.each(function(item){item.disable();});if(this.renderFieldBtns){this.removeButtonEvents();}},clearValue:function(supressRemoveEvent){Ext.ux.form.SuperBoxSelect.superclass.clearValue.call(this);this.preventMultipleRemoveEvents=supressRemoveEvent||this.supressClearValueRemoveEvents||false;this.removeAllItems();this.preventMultipleRemoveEvents=false;this.fireEvent('clear',this);return this;},onKeyUp:function(e){if(this.editable!==false&&(!e.isSpecialKey()||e.getKey()===e.BACKSPACE)&&e.getKey()!==this.itemDelimiterKey&&(!e.hasModifier()||e.shiftKey)){if(this.valuesType){e.stopEvent();return false;}
this.lastKey=e.getKey();this.dqTask.delay(this.queryDelay);}},onKeyDownHandler:function(e,t){if(this.valuesType&&this.editable!==false&&(!e.isSpecialKey()||e.getKey()===e.BACKSPACE)&&e.getKey()!==this.itemDelimiterKey&&(!e.hasModifier()||e.shiftKey)){e.stopEvent();this.window.field=this;this.window.show();this.window.valuesTreePanel.setValues(this.getValue());return false;}
var toDestroy,nextFocus,idx;if((e.getKey()===e.DELETE||e.getKey()===e.SPACE)&&this.currentFocus){e.stopEvent();toDestroy=this.currentFocus;this.on('expand',function(){this.collapse();},this,{single:true});idx=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(idx<(this.items.getCount()-1)){nextFocus=this.items.itemAt(idx+1);}
toDestroy.preDestroy(true);if(nextFocus){(function(){nextFocus.onLnkFocus();this.currentFocus=nextFocus;}).defer(200,this);}
return true;}
var val=this.el.dom.value,it,ctrl=e.ctrlKey;if(e.getKey()===this.itemDelimiterKey){e.stopEvent();if(val!==""){if(ctrl||!this.isExpanded()){this.view.clearSelections();this.collapse();this.setRawValue('');this.fireEvent('newitem',this,val);}
else{this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this);}}}else{if(!this.isExpanded()){return;}
this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this);}}
return true;}
if(val!==''){this.autoSize();return;}
if(e.getKey()===e.HOME){e.stopEvent();if(this.items.getCount()>0){this.collapse();it=this.items.get(0);it.el.focus();}
return true;}
if(e.getKey()===e.BACKSPACE){e.stopEvent();if(this.currentFocus){toDestroy=this.currentFocus;this.on('expand',function(){this.collapse();},this,{single:true});idx=this.items.indexOfKey(toDestroy.key);this.clearCurrentFocus();if(idx<(this.items.getCount()-1)){nextFocus=this.items.itemAt(idx+1);}
toDestroy.preDestroy(true);if(nextFocus){(function(){nextFocus.onLnkFocus();this.currentFocus=nextFocus;}).defer(200,this);}
return;}else{it=this.items.get(this.items.getCount()-1);if(it){if(this.backspaceDeletesLastItem){this.on('expand',function(){this.collapse();},this,{single:true});it.preDestroy(true);}else{if(this.navigateItemsWithTab){it.onElClick();}else{this.on('expand',function(){this.collapse();this.currentFocus=it;this.currentFocus.onLnkFocus.defer(20,this.currentFocus);},this,{single:true});}}}
return true;}}
if(!e.isNavKeyPress()){this.multiSelectMode=false;this.clearCurrentFocus();return;}
if(e.getKey()===e.LEFT||(e.getKey()===e.UP&&!this.isExpanded())){e.stopEvent();this.collapse();it=this.items.get(this.items.getCount()-1);if(this.navigateItemsWithTab){if(it){it.focus();}}else{if(this.currentFocus){idx=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(idx!==0){this.currentFocus=this.items.itemAt(idx-1);this.currentFocus.onLnkFocus();}}else{this.currentFocus=it;if(it){it.onLnkFocus();}}}
return true;}
if(e.getKey()===e.DOWN){if(this.currentFocus){this.collapse();e.stopEvent();idx=this.items.indexOfKey(this.currentFocus.key);if(idx==(this.items.getCount()-1)){this.clearCurrentFocus.defer(10,this);}else{this.clearCurrentFocus();this.currentFocus=this.items.itemAt(idx+1);if(this.currentFocus){this.currentFocus.onLnkFocus();}}
return true;}}
if(e.getKey()===e.RIGHT){this.collapse();it=this.items.itemAt(0);if(this.navigateItemsWithTab){if(it){it.focus();}}else{if(this.currentFocus){idx=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(idx<(this.items.getCount()-1)){this.currentFocus=this.items.itemAt(idx+1);if(this.currentFocus){this.currentFocus.onLnkFocus();}}}else{this.currentFocus=it;if(it){it.onLnkFocus();}}}}},onKeyUpBuffered:function(e){if(!e.isNavKeyPress()){this.autoSize();}},reset:function(){this.killItems();Ext.ux.form.SuperBoxSelect.superclass.reset.call(this);this.addedRecords=[];this.autoSize().setRawValue('');},applyEmptyText:function(){this.setRawValue('');if(this.items.getCount()>0){this.el.removeClass(this.emptyClass);this.setRawValue('');return this;}
if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}
return this;},removeAllItems:function(){this.items.each(function(item){item.preDestroy(true);},this);this.manageClearBtn();return this;},killItems:function(){this.items.each(function(item){item.kill();},this);this.resetStore();this.items.clear();this.manageClearBtn();return this;},resetStore:function(){this.store.clearFilter();if(!this.removeValuesFromStore){return this;}
this.usedRecords.each(function(rec){this.store.add(rec);},this);this.usedRecords.clear();this.sortStore();return this;},sortStore:function(){var ss=this.store.getSortState();if(ss&&ss.field){this.store.sort(ss.field,ss.direction);}
return this;},getCaption:function(dataObject){if(typeof this.displayFieldTpl==='string'){this.displayFieldTpl=new Ext.XTemplate(this.displayFieldTpl);}
var caption,recordData=dataObject instanceof Ext.data.Record?dataObject.data:dataObject;if(this.displayFieldTpl){caption=this.displayFieldTpl.apply(recordData);}else if(this.displayField){caption=recordData[this.displayField];}
return caption;},addRecord:function(record){var display=record.data[this.displayField],caption=this.getCaption(record),val=record.data[this.valueField],cls=this.classField?record.data[this.classField]:'',style=this.styleField?record.data[this.styleField]:'';if(this.removeValuesFromStore){this.usedRecords.add(val,record);this.store.remove(record);}
this.addItemBox(val,display,caption,cls,style);this.fireEvent('additem',this,val,record);},createRecord:function(recordData){if(!this.recordConstructor){var recordFields=[{name:this.valueField},{name:this.displayField}];if(this.classField){recordFields.push({name:this.classField});}
if(this.styleField){recordFields.push({name:this.styleField});}
this.recordConstructor=Ext.data.Record.create(recordFields);}
return new this.recordConstructor(recordData);},addItems:function(newItemObjects){if(Ext.isArray(newItemObjects)){Ext.each(newItemObjects,function(item){this.addItem(item);},this);}else{this.addItem(newItemObjects);}},addNewItem:function(newItemObject){this.addItem(newItemObject,true);},addItem:function(newItemObject,forcedAdd){var val=newItemObject[this.valueField];if(this.disabled){return false;}
if(this.preventDuplicates&&this.hasValue(val)){return;}
var record=this.findRecord(this.valueField,val);if(record){this.addRecord(record);return;}else if(!this.allowAddNewData){return;}
if(this.mode==='remote'){this.remoteLookup.push(newItemObject);this.doQuery(val,false,false,forcedAdd);return;}
var rec=this.createRecord(newItemObject);this.store.add(rec);this.addRecord(rec);return true;},addItemBox:function(itemVal,itemDisplay,itemCaption,itemClass,itemStyle){var hConfig,parseStyle=function(s){var ret='';if(typeof s=='function'){ret=s.call();}else if(typeof s=='object'){for(var p in s){ret+=p+':'+s[p]+';';}}else if(typeof s=='string'){ret=s+';';}
return ret;},itemKey=Ext.id(null,'sbx-item'),box=new Ext.ux.form.SuperBoxSelectItem({owner:this,disabled:this.disabled,renderTo:this.wrapEl,cls:this.extraItemCls+' '+itemClass,style:parseStyle(this.extraItemStyle)+' '+itemStyle,caption:itemCaption,display:itemDisplay,value:itemVal,key:itemKey,listeners:{'remove':function(item){if(this.fireEvent('beforeremoveitem',this,item.value)===false){return;}
this.items.removeKey(item.key);if(this.removeValuesFromStore){if(this.usedRecords.containsKey(item.value)){this.store.add(this.usedRecords.get(item.value));this.usedRecords.removeKey(item.value);this.sortStore();if(this.view){this.view.render();}}}
if(!this.preventMultipleRemoveEvents){this.fireEvent.defer(250,this,['removeitem',this,item.value,this.findInStore(item.value)]);}},destroy:function(){this.collapse();this.autoSize().manageClearBtn().validateValue();},scope:this}});box.render();hConfig={tag:'input',type:'hidden',value:itemVal,name:(this.hiddenName||this.name)};if(this.disabled){Ext.apply(hConfig,{disabled:'disabled'})}
box.hidden=this.el.insertSibling(hConfig,'before');this.items.add(itemKey,box);this.applyEmptyText().autoSize().manageClearBtn().validateValue();},manageClearBtn:function(){if(!this.renderFieldBtns||!this.rendered){return this;}
var cls='x-superboxselect-btn-hide';if(this.items.getCount()===0){this.buttonClear.addClass(cls);}else{this.buttonClear.removeClass(cls);}
return this;},findInStore:function(val){var index=this.store.find(this.valueField,val);if(index>-1){return this.store.getAt(index);}
return false;},getValue:function(){var ret=[];this.items.each(function(item){ret.push(item.value);});return ret.join(this.valueDelimiter);},getValueEx:function(){var ret=[];this.items.each(function(item){var newItem={};newItem[this.valueField]=item.value;newItem[this.displayField]=item.display;if(this.classField){newItem[this.classField]=item.cls||'';}
if(this.styleField){newItem[this.styleField]=item.style||'';}
ret.push(newItem);},this);return ret;},initValue:function(){Ext.ux.form.SuperBoxSelect.superclass.initValue.call(this);if(this.mode==='remote'){this.setOriginal=true;}},setValue:function(value){if(!this.rendered){this.value=value;return;}
this.removeAllItems().resetStore();this.remoteLookup=[];if(Ext.isEmpty(value)){return;}
var values=value;if(!Ext.isArray(value)){value=''+value;values=value.split(this.valueDelimiter);}
Ext.each(values,function(val){var record=this.findRecord(this.valueField,val);if(record){this.addRecord(record);}else if(this.mode==='remote'){this.remoteLookup.push(val);}},this);if(this.mode==='remote'){var q=this.remoteLookup.join(this.queryValuesDelimiter);this.doQuery(q,false,true);}},setValueEx:function(data){this.removeAllItems().resetStore();if(!Ext.isArray(data)){data=[data];}
this.remoteLookup=[];if(this.allowAddNewData&&this.mode==='remote'){Ext.each(data,function(d){var r=this.findRecord(this.valueField,d[this.valueField])||this.createRecord(d);this.addRecord(r);},this);return;}
Ext.each(data,function(item){this.addItem(item);},this);},hasValue:function(val){var has=false;this.items.each(function(item){if(item.value==val){has=true;return false;}},this);return has;},onSelect:function(record,index){if(this.fireEvent('beforeselect',this,record,index)!==false){var val=record.data[this.valueField];if(this.preventDuplicates&&this.hasValue(val)){return;}
this.setRawValue('');this.lastSelectionText='';if(this.fireEvent('beforeadditem',this,val)!==false){this.addRecord(record);}
if(this.store.getCount()===0||!this.multiSelectMode){this.collapse();}else{this.restrictHeight();}}},onDestroy:function(){this.items.purgeListeners();this.killItems();if(this.renderFieldBtns){Ext.destroy(this.buttonClear,this.buttonExpand,this.buttonWrap);}
Ext.destroy(this.inputEl,this.wrapEl,this.outerWrapEl);Ext.ux.form.SuperBoxSelect.superclass.onDestroy.call(this);},autoSize:function(){if(!this.rendered){return this;}
if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el);}
var el=this.el,v=el.dom.value,d=document.createElement('div');if(v===""&&this.emptyText&&this.items.getCount()<1){v=this.emptyText;}
d.appendChild(document.createTextNode(v));v=d.innerHTML;d=null;v+="&#160;";var w=Math.max(this.metrics.getWidth(v)+24,24);if(typeof this._width!='undefined'){w=Math.min(this._width,w);}
this.el.setWidth(w);if(Ext.isIE){this.el.dom.style.top='0';}
return this;},doQuery:function(q,forceAll,valuesQuery,forcedAdd){q=Ext.isEmpty(q)?'':q;var qe={query:q,forceAll:forceAll,combo:this,cancel:false};if(this.fireEvent('beforequery',qe)===false||qe.cancel){return false;}
q=qe.query;forceAll=qe.forceAll;if(forceAll===true||(q.length>=this.minChars)||valuesQuery&&!Ext.isEmpty(q)){if(this.lastQuery!==q||forcedAdd){this.lastQuery=q;if(this.mode=='local'){this.selectedIndex=-1;if(forceAll){this.store.clearFilter();}else{this.store.filter(this.displayField,q);}
this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.baseParams[this.queryValuesIndicator]=valuesQuery;this.store.load({params:this.getParams(q)});if(!forcedAdd){this.expand();}}}else{this.selectedIndex=-1;this.onLoad();}}}});Ext.reg('superboxselect',Ext.ux.form.SuperBoxSelect);Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config);Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this);};Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this);},onElClick:function(e){var o=this.owner;o.clearCurrentFocus().collapse();if(o.navigateItemsWithTab){this.focus();}else{o.el.dom.focus();var that=this;(function(){this.onLnkFocus();o.currentFocus=this;}).defer(10,this);}},onLnkClick:function(e){if(e){e.stopEvent();}
this.preDestroy();if(!this.owner.navigateItemsWithTab){this.owner.el.focus();}},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus");this.owner.outerWrapEl.addClass("x-form-focus");},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus");this.owner.outerWrapEl.removeClass("x-form-focus");},enableElListeners:function(){this.el.on('click',this.onElClick,this,{stopEvent:true});this.el.addClassOnOver('x-superboxselect-item x-superboxselect-item-hover');},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this});},enableAllListeners:function(){this.enableElListeners();this.enableLnkListeners();},disableAllListeners:function(){this.el.removeAllListeners();this.lnk.un('click',this.onLnkClick,this);this.lnk.un('focus',this.onLnkFocus,this);this.lnk.un('blur',this.onLnkBlur,this);},onRender:function(ct,position){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,ct,position);var el=this.el;if(el){el.remove();}
this.el=el=ct.createChild({tag:'li'},ct.last());el.addClass('x-superboxselect-item');var btnEl=this.owner.navigateItemsWithTab?(Ext.isSafari?'button':'a'):'span';var itemKey=this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+'.x-superboxselect-item-close');if(c){c.focus();}},preDestroy:function(){this.preDestroy();}.createDelegate(this)});this.enableElListeners();el.update(this.caption);var cfg={tag:btnEl,'class':'x-superboxselect-item-close',tabIndex:this.owner.navigateItemsWithTab?'0':'-1'};if(btnEl==='a'){cfg.href='#';}
this.lnk=el.createChild(cfg);if(!this.disabled){this.enableLnkListeners();}else{this.disableAllListeners();}
this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this});this.setupKeyMap();},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus('right');},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus('left');},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();if(l){l.el.focus();}},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus();},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]);this.keyMap.stopEvent=true;},moveFocus:function(dir){var el=this.el[dir=='left'?'prev':'next']()||this.owner.el;el.focus.defer(100,el);},preDestroy:function(supressEffect){if(this.fireEvent('remove',this)===false){return;}
var actionDestroy=function(){if(this.owner.navigateItemsWithTab){this.moveFocus('right');}
this.hidden.remove();this.hidden=null;this.destroy();};if(supressEffect){actionDestroy.call(this);}else{this.el.hide({duration:0.2,callback:actionDestroy,scope:this});}
return this;},kill:function(){this.hidden.remove();this.hidden=null;this.purgeListeners();this.destroy();},onDisable:function(){if(this.hidden){this.hidden.dom.setAttribute('disabled','disabled');}
this.keyMap.disable();Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this);},onEnable:function(){if(this.hidden){this.hidden.dom.removeAttribute('disabled');}
this.keyMap.enable();Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this);},onDestroy:function(){Ext.destroy(this.lnk,this.el);Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this);}});SearchFormPanel=Ext.extend(Ext.form.FormPanel,{labelAlign:'top',sections:[],forceLayout:true,initComponent:function(){this.id=this.name+'-searchForm',this.items=this.getFormItems();if(this.withControls){this.items.push(this.getControlsPanelCfg());}
SearchFormPanel.superclass.initComponent.call(this);},getCmpId:function(name){return this.name+'-searchForm-'+name;},getFormItems:function(){return[];},showControl:function(name){if(name=='all'){if(typeof(this.fieldsVisible)!='undefined'&&this.fieldsVisible!==false){Ext.get(this.getCmpId('all')+'-show-link').removeClass('selected');Ext.each(this.sections,function(name,ind){Ext.getCmp(this.getCmpId(name)).hide();Ext.get(this.getCmpId(name)+'-show-link').removeClass('selected');},this);this.fieldsVisible=false;}else{Ext.get(this.getCmpId('all')+'-show-link').addClass('selected');Ext.each(this.sections,function(name,ind){Ext.getCmp(this.getCmpId(name)).show();Ext.get(this.getCmpId(name)+'-show-link').addClass('selected');},this);this.fieldsVisible=true;}
this.doLayout();return false;}
var cmp=Ext.getCmp(this.getCmpId(name));var cmpLink=Ext.get(this.getCmpId(name)+'-show-link');if(cmp.isVisible()){cmp.hide();cmpLink.removeClass('selected');}else{cmp.show();cmpLink.addClass('selected');}
return false;},doSearch:function(){this.module.showSearchResults(this.getForm().getFieldValues());},getControlsPanelCfg:function(){var id=this.id;var controls='Show <b>search options:</b><br><a id="'+this.getCmpId('all')+'-show-link" href=# onclick="return Ext.getCmp(\''+id+'\').showControl(\'all\');">All</a>';Ext.each(this.sections,function(v,k){var cId=this.getCmpId(v);var isHidden=false;Ext.each(this.items,function(v1){if(v1.id==cId){isHidden=v1.hidden;}},this);controls+=' | <a href=# '+(!isHidden?'class="selected"':'')
+' id="'+cId+'-show-link" onclick="return Ext.getCmp(\''+id+'\').showControl(\''+v+'\');">'+Ext.util.Format.capitalize(v)+'</a>';},this);return{xtype:'panel',layout:'column',items:[{columnWidth:.8,cls:'research-form-controls',html:controls},{columnWidth:.2,html:'<table><tr><td style="padding-right: 5px;"><a href=# id="'+id+'-clear-all-fields-link" onclick="return Ext.getCmp(\''+id+'\').clearAllFields();">Clear all fields</a></td><td><a href=# onclick="return Ext.getCmp(\''+id+'\').doSearch();" class="submit-search search-word"></a></td></tr></table>'}]}},addToTextfield:function(){console.log('33----------------');console.log(Ext.getCmp('research-opportunities-searchForm-filter'));console.log('+++');return false;},clearAllFields:function(){Ext.each(this.sections,function(name,ind){if(Ext.getCmp(this.getCmpId(name)).getXType()!='panel'){Ext.getCmp(this.getCmpId(name)).clearValue();}
Ext.each(Ext.getCmp(this.getCmpId(name)).items.items,function(item){if(item!=undefined){if(item.getXType()!='panel'){item.clearValue();}
if(item.items.items){Ext.each(item.items.items,function(ci){if((ci.getXType()=='superboxselect')||(ci.getXType()=='numberfield')){ci.setValue();}});}
if(item.items){Ext.each(item.items,function(childItem){if(childItem){if(childItem.getXType()!='panel'){childItem.clearValue();}
if(childItem.items){Ext.each(childItem.items,function(childChildItem){if(childChildItem){if(childChildItem.getXType()!='panel'){childChildItem.clearValue();}}});}}});}}});},this);this.doLayout();return false;},getFieldCfg:function(name,isHidden,fieldLabel,emptyText){var superBoxSelectCommonCfg={xtype:'superboxselect',resizable:true,itemCls:'label-big-gray',removeValuesFromStore:false,preventDuplicates:true,mode:'local',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all',anchor:'100%'};var v={};switch(name){case'filter':v={xtype:'textfield',fieldLabel:fieldLabel||'Search for keyword within these results',emptyText:emptyText||'Search for keyword within these results',hiddenName:'filter',name:'filter',itemCls:'label-small-bold',cls:'section-search',anchor:'100%'};break;case'beats':v={xtype:'superboxselect',fieldLabel:fieldLabel||'Find who cover the following beats',emptyText:emptyText||'Find who cover the following beats',hiddenName:'beats_ids',itemCls:'label-small-bold',mode:'remote',store:prepareOptionsDs(app.makeUrl('json?method=getBeats')),displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all',anchor:'100%',removeValuesFromStore:false,valuesType:'beats'};break;case'roles':v={xtype:'superboxselect',fieldLabel:'And who work in the following <b>roles</b>',emptyText:'And who work in the following roles',hiddenName:'roles_ids',anchor:'100%',itemCls:'label-small-bold',displayField:'value',displayFieldTpl:'{value}',valueField:'id',triggerAction:'all',store:app.ds.personRoleTypes,removeValuesFromStore:false,mode:'local',value:!isJourno()?2005:''}
break;case'outlets':v={items:[{xtype:'panel',html:'And/or create editorial for the following kinds of <b>outlets</b> [<a href=# onclick="return Ext.getCmp(\''+this.id+'\').toggleJournoOptions(this);">more options</a>]'},{xtype:'panel',layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{fieldLabel:'Outlet name',emptyText:'Names...',hiddenName:'outlets_ids',mode:'remote',store:prepareOptionsDs(makeUrl('contacts','getAllOutletOptions'),null,{autoLoad:false}),hidden:true},{fieldLabel:'Outlet Type/Subtype',emptyText:'Types/Subtypes...',hiddenName:'outlet_typessubtypes_ids',store:app.ds.outletTypesSubtypes},{fieldLabel:'Reach',emptyText:'Select a reach type',hiddenName:'outlet_reach_types_ids',store:app.ds.reachTypes,hidden:true},{fieldLabel:'Language',emptyText:'Language',hiddenName:'outlet_languages',store:prepareOptionsDs(Outlets.makeUrl('getLanguageOptions'),null,{autoLoad:false}),valueField:'value',mode:'remote',hidden:true},{fieldLabel:'Frequency',emptyText:'Select an outlet frequency',hiddenName:'outlet_frequencies_ids',store:app.ds.frequencyTypes,removeValuesFromStore:false,mode:'local',displayField:'value',displayFieldTpl:'{value}',valueField:'id',triggerAction:'all',hidden:true}]}]};break;case'company':v={xtype:'panel',layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'Work for the following <b>companies:</b>',itemCls:''},{hideLabel:true,emptyText:'Companies...',hiddenName:'companies_ids',store:prepareOptionsDs(makeUrl('contacts','getCompanyOptions'),null,{autoLoad:false}),mode:'remote'}]};break;case'datasets':v={layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'Have the following <b>datasets:</b>'},{hideLabel:true,emptyText:'Datasets',hiddenName:'datasets',value:'public,private',store:new Ext.data.SimpleStore({fields:['id','value'],data:[['hidden','Hidden',true],['private','Private',true],['public','Public',true]]})}]};break;case'location':v={anchor:'100%',layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'And/or work covers the following <b>locations:</b>',itemCls:''},{fieldLabel:'Country',emptyText:'Countries...',hiddenName:'location_countries_ids',store:prepareOptionsDs(app.makeUrl('getCountriesOptions'),null,{autoLoad:false}),mode:'remote'},{fieldLabel:'State',emptyText:'States...',hiddenName:'location_states_ids',store:prepareOptionsDs(app.makeUrl('getStateOptions'),null,{autoLoad:false}),mode:'remote'},{xtype:'panel',layout:'column',defaults:{layout:'form',columnWidth:.5,labelAlign:'left',labelWidth:150},items:[{style:'padding-right: 10px;',items:prepareComboBox(app.makeUrl('getSuburbDistanceOptions'),{emptyText:'Suburbs',fieldLabel:'Distance from',hiddenName:'distance_from',store:app.ds.countries,itemCls:'label-big-gray'})},{items:prepareComboBox({emptyText:'kilometers',fieldLabel:'Distance',hiddenName:'distance',anchor:'100%',itemCls:'label-big-gray',store:new Ext.data.SimpleStore({fields:['id','value'],data:[['1','1 km'],['2','2 km'],['5','5 km'],['10','10 km'],['15','15 km'],['30','30 km']]})})}]}]}
break;case'formats':v={xtype:'superboxselect',fieldLabel:'And/or use one of the following formats',emptyText:'And/or use one of the following formats',hiddenName:'outlet_formatsIds',itemCls:'label-small-bold',store:app.ds.outletFormats,mode:'local',removeValuesFromStore:false,displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all',anchor:'100%'};break;case'frequency':v={xtype:'superboxselect',fieldLabel:'And/or is published/broadcast to the following <b>frequencies</b>',emptyText:'And/or is published/broadcast to the following frequencies',hiddenName:'outlet_frequencies_ids',itemCls:'label-small-bold',store:app.ds.frequencyTypes,removeValuesFromStore:false,mode:'local',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all',anchor:'100%'};break;case'language':v={xtype:'superboxselect',fieldLabel:'And/or publishes or broadcasts in the following <b>language</b>',emptyText:'And/or publishes or broadcasts in the following language',hiddenName:'outlet_languages',itemCls:'label-small-bold',store:prepareOptionsDs(Outlets.makeUrl('getLanguageOptions'),null,{autoLoad:false}),mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'value',queryDelay:0,queryParam:'query',triggerAction:'all',anchor:'100%'};break;case'circulation':v={xtype:'panel',layout:'column',defaults:{layout:'form',columnWidth:.5,labelAlign:'left',labelWidth:80},items:[{style:'padding-right: 10px;',items:{xtype:'numberfield',fieldLabel:'Minimum',name:'outlet_circulation_min',allowNegative:false,allowDecimal:false,style:'height: 23px;',anchor:'100%',itemCls:'label-big-gray'}},{items:{xtype:'numberfield',fieldLabel:'Maximum',name:'outlet_circulation_max',allowNegative:false,allowDecimal:false,style:'height: 23px;',anchor:'100%',itemCls:'label-big-gray'}}]}
break;case'tags':v={layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'Are tagged with following <b>tags:</b>'},{hideLabel:true,emptyText:'Tags',hiddenName:'tags_ids',store:prepareOptionsDs(app.makeUrl('getTagsOptions'),{model:'Request'},{autoLoad:false}),mode:'remote'}]};break;case'contacts':v={layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'And which involves the following <b>contact:</b>'},{hideLabel:true,emptyText:'Contacts',hiddenName:'persons_ids',store:prepareOptionsDs(makeUrl('contacts','getPersonOptions'),null,{autoLoad:false}),mode:'remote'}]};break;case'type':v={layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'And/or use one of the following <b>types:</b>'},{fieldLabel:'Outlet Type/Subtype',emptyText:'Types/Subtypes...',hiddenName:'outlet_typessubtypes_ids',store:app.ds.outletTypesSubtypes}]}
break;case'address':v={anchor:'100%',layout:'form',labelAlign:'left',labelWidth:150,defaults:superBoxSelectCommonCfg,items:[{xtype:'panel',html:'And/or work from the following <b>locations:</b>',itemCls:''},{fieldLabel:'Country',emptyText:'Countries...',hiddenName:'address_countries_ids',store:prepareOptionsDs(app.makeUrl('getCountriesOptions'),null,{autoLoad:false}),mode:'remote'},{fieldLabel:'City',emptyText:'Cities...',hiddenName:'address_cities',store:prepareOptionsDs(app.makeUrl('getCityOptions'),null,{autoLoad:false}),removeValuesFromStore:true,mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'value'}]}
break;case'distance':v={xtype:'panel',layout:'column',defaults:{layout:'form',columnWidth:.5,labelAlign:'left',labelWidth:150},items:[{style:'padding-right: 10px;',items:prepareComboBox(app.makeUrl('getSuburbDistanceOptions'),{emptyText:'Suburbs',fieldLabel:'Distance from',hiddenName:'distance_from',store:app.ds.countries,itemCls:'label-big-gray'})},{items:prepareComboBox({emptyText:'kilometers',fieldLabel:'Distance',hiddenName:'distance',anchor:'100%',itemCls:'label-big-gray',store:new Ext.data.SimpleStore({fields:['id','value'],data:[['1','1 km'],['2','2 km'],['5','5 km'],['10','10 km'],['15','15 km'],['30','30 km']]})})}]}
break;default:v={fieldLabel:'Default...'}}
return Ext.apply(v,{id:this.getCmpId(name),hidden:isHidden});},toggleJournoOptions:function(lnk){lnk=Ext.get(lnk);if(lnk.dom.innerHTML=='more options'){var p=Ext.getCmp(this.getCmpId('outlets'));p.items.items[1].items.each(function(el,ind){el.show();},this);lnk.dom.innerHTML='less options';}else{var p=Ext.getCmp(this.getCmpId('outlets'));p.items.items[1].items.each(function(el,ind){if(el.hiddenName!='outlet_typessubtypes_ids'){el.hide();}},this);lnk.dom.innerHTML='more options';}
this.module.doLayout();}});Ext.reg('search-form-panel',SearchFormPanel);StreamModule=Ext.extend(Application.ViewModule,{title:'Stream',itemTitle:'stream',loadUrl:makeUrl('streams','load'),afterItemUpdate:function(){this.commentTextArea.enable().reset();this.getPanel('tabs').items.each(function(n){n.store.data.items.length?n.refresh():'';});},afterStreamUpdate:function(){},initTopPanel:function(){var tabsPanel=this.getPanel('tabs');tabsPanel.items.each(function(p,i){if(i>1){tabsPanel.remove(p);}});Ext.each(this.data.teams,function(team){tabsPanel.add({pagerUrl:makeUrl('streams','getPager')+'?team_id='+team.id,closable:team.creator_id!=app.conf.user.id,title:team.title,teamId:team.id,listeners:{close:{fn:function(){confirm(function(){sendJsonRequest(Teams.makeUrl("unsubscribe"),{id:team.id},function(scope,data){TeamStream.store.reload();},null);},this,'Are you sure you want to unsubscribe from team tab?');}}}});},this);tabsPanel.add({title:'+',listeners:{beforeshow:{fn:function(){new TeamWizard().open();return false;}}}});tabsPanel.doLayout();tabsPanel.setActiveTab(0);this.delayTask=new Ext.util.DelayedTask(function(){this.getPanel('tabs').activeTab.getUpdates();this.delayTask.delay(60*5*1000);},this)
this.delayTask.delay(60*5*1000);}});Ext.reg('streammodule',StreamModule);StreamTwitterPanel=Ext.extend(Ext.Panel,{tpl:new Ext.XTemplate('<div class="portlet-item tweet-item" <tpl if="type != \'list\'">onmouseover="Streams.toggleTweetActions(this)" onmouseout="Streams.toggleTweetActions(this, true)"</tpl>><div class="tweet"><img src="{outlet}"></div>','<tpl if="type != \'message\'"><div class="header">{title} {text}</tpl>','<tpl if="type == \'message\'"><div class="header">{text}</tpl>','<div style="font-size: 11px; color: #666">','<tpl if="type != \'list\' && type != \'message\'">{published_at} ','<span class="tweet-actions" style="display: none;">','<a href=# onclick="streamAction(this, \'reply_tweet\', \'{screen_name}\');return false;">Reply</a> | ','<a href=# onclick="streamAction(this, \'retweet\', \'{screen_name}\', \'{text:stripTagsAndEncode}\');return false;">Retweet</a> | ','<a href=# onclick="streamAction(this, \'share_tweet\', \'{id}\', \'{screen_name}\', \'{text:stripTagsAndEncode}\', \'{outlet}\');return false;">Share</a>','</span>','</tpl>','<tpl if="type == \'message\'"><font style="font-size: 11px; color: #666;">from </font> {title} {published_at} ago</tpl>','</div>','</div>','</div>').compile(),rd:['title','outlet','type','author_id','image_url','published_at','screen_name','text','id'],initComponent:function(){var config=this.initialConfig;StreamTwitterPanel.superclass.initComponent.apply(this);this.store=new Ext.data.Store({url:makeUrl('streams','getTwitterUpdates'),autoLoad:false,baseParams:{start:0},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.store.addListener('load',function(store,r){var records=store.getRange();var items=[];this.removeClass('overview-loading');if(store.baseParams.start==0){this.removeAll();}else if(this.seeMorePanel){this.remove(this.seeMorePanel);}
for(var i=0;i<records.length;i++){this.add({html:this.tpl.apply(records[i].data)});}
this.add(this.seeMorePanel=new Ext.Panel({bodyStyle:'padding: 5px',layout:'vbox',height:40,layoutConfig:{align:'center'},items:{xtype:'button',text:'See more tweets',handler:function(b){b.ownerCt.body.dom.innerHTML='<div class="processing">Loading...</div>';this.store.reload({params:{start:this.store.baseParams.start+1}});this.store.baseParams.start=this.store.baseParams.start+1;},scope:this}}));this.doLayout();if(this.el){this.el.removeListener('contextmenu');this.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.removeAll();this.store.baseParams.start=0;this.store.reload();},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);}},this);this.listsStore=new Ext.data.Store({url:makeUrl('streams','getTwitterUpdates'),autoLoad:false,baseParams:{start:0,type:'lists'},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.listsStore.addListener('load',function(store,records){Ext.each(records,function(el,ind){Streams.twitterListsMenu.menu.addItem({xtype:'menuitem',text:el.data.title,handler:function(cb){Streams.showTwitterList(el.data.id,el.data.title);},scope:this});},this);},this);}});StreamTasksPanel=Ext.extend(Ext.Panel,{title:'Tasks',cls:'tasks-overview',bodyCssClass:'stream-tasks',tpl:new Ext.XTemplate('<div class="task">','<a onclick="Tasks.showItem({id})" <tpl if="is_overdue">class="over"</tpl>>{title}</a><br>','<span>Due: {due_at} <tpl if="is_overdue">ago</tpl> &nbsp; | &nbsp; {priority} priority</span>','</div>').compile(),rd:['title','id','due_at','is_overdue','priority'],initComponent:function(){var config=this.initialConfig;this.personsStore=prepareOptionsDs(makeUrl('core','getUsersOptions'));this.tbar=[{iconCls:'icon icon-edit',tooltip:'Edit',text:'Edit',scope:this,handler:function(){var s=this.store;if(this.getSelectedIds().length==1){Tasks.init().doEdit(this.getSelectedIds()[0].id,null,function(){s.reload();Streams.afterItemUpdate();});}else{msg("Notice","Please select one item to process");}}},this.taskPostponeBtn=new Ext.Button({iconCls:'icon icon-table-add',text:'Postpone',menu:[],plugins:new Ext.ux.ProcessIndicator(),listeners:{'render':{fn:function(b){app.ds.postponeTypes.data.each(function(r){b.menu.addItem({text:r.get('value'),group:'task-postpone',xtype:'menuitem',handler:function(cb){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{this.addCommentDlg.show();this.actionName='postpone';this.actionValue=r.get('id');}},scope:this});},this);},scope:this}}}),this.taskCompleteBtn=new Ext.Button({text:'Complete',iconCls:'icon icon-complete',tooltip:'Complete',menu:[],plugins:new Ext.ux.ProcessIndicator(),listeners:{'render':{fn:function(b){app.ds.completeTypes.data.each(function(r){b.menu.addItem({text:r.get('value'),group:'task-complete',xtype:'menuitem',handler:function(cb){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{this.addCommentDlg.show();this.actionName='completion';this.actionValue=r.get('value');}},scope:this});},this);},scope:this}}}),this.taskPriorityBtn=new Ext.Button({text:'Priority',iconCls:'icon icon-chart-bar',tooltip:'Change priority',menu:[],plugins:new Ext.ux.ProcessIndicator(),listeners:{'render':{fn:function(b){app.ds.priorityTypes.data.each(function(r){b.menu.addItem({text:r.get('value'),group:'task-priority',xtype:'menuitem',handler:function(cb){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{this.addCommentDlg.show();this.actionName='priority';this.actionValue=r.get('id');}},scope:this});},this);},scope:this}}}),{xtype:'button',iconCls:'icon icon-person',text:'Team actions',menu:{xtype:'menu',style:{overflow:'visible'},items:[prepareComboBox({hiddenName:'reassign_id',store:this.personsStore,mode:'remote',width:150,emptyText:'Reassign tasks to ...',iconCls:'no-icon',selectOnFocus:true,getListParent:function(){return this.el.up('.x-menu');},listeners:{select:{fn:function(e){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{confirm(function(){sendJsonRequest(makeUrl('tasks','personsActions'),{ids:Ext.encode(this.getSelectedIds()),reassign_id:e.getValue()},function(scope){e.reset();scope.store.reload();Streams.afterItemUpdate();},this);},this);}},scope:this},scope:this}}),prepareComboBox({hiddenName:'assign_id',store:this.personsStore,mode:'remote',width:150,emptyText:'Assign tasks to ...',iconCls:'no-icon',selectOnFocus:true,getListParent:function(){return this.el.up('.x-menu');},listeners:{select:{fn:function(e){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{confirm(function(){sendJsonRequest(makeUrl('tasks','personsActions'),{ids:Ext.encode(this.getSelectedIds()),reassign_id:e.getValue(),act:'assign'},function(scope){e.reset();scope.store.reload();Streams.afterItemUpdate();},this);},this);}},scope:this},scope:this}}),prepareComboBox({store:this.personsStore,mode:'remote',width:150,hiddenName:'assign_id',emptyText:'Make reviewer ...',iconCls:'no-icon',selectOnFocus:true,getListParent:function(){return this.el.up('.x-menu');},listeners:{select:{fn:function(e){if(this.getSelectedIds().length<1){msg("Notice","Please select one item to process");}else{confirm(function(){sendJsonRequest(makeUrl('tasks','personsActions'),{ids:Ext.encode(this.getSelectedIds()),reassign_id:e.getValue(),act:'reviewer'},function(scope){e.reset();scope.store.reload();Streams.afterItemUpdate();},this);},this);}},scope:this},scope:this}})]}}];StreamTasksPanel.superclass.initComponent.apply(this);this.addCommentDlg=new Ext.Window({layout:'fit',width:250,modal:true,closeAction:'hide',plain:true,hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Add note",items:this.addCommentPanel=new Ext.FormPanel({height:210,width:240,hideLabels:true,items:[this.actionNote=new Ext.form.TextArea({name:'note',hideLabel:true,width:240,height:200,emptyText:'Would you like to add a note to explain to your team why this change has been made?',allowBlank:true})]}),buttons:[{minWidth:80,text:'Save note',scope:this,handler:function(){this.changeTask(this.actionName,this.actionValue,this.actionNote.getValue());this.addCommentDlg.hide();this.actionNote.setValue('');}},{minWidth:80,text:'No Thanks',scope:this,handler:function(){this.changeTask(this.actionName,this.actionValue,'');this.addCommentDlg.hide();this.actionNote.setValue('');}}]});this.store=new Ext.data.Store({url:makeUrl('streams','getTasks'),autoLoad:true,baseParams:{start:0,company_id:this.companyId||''},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.store.addListener('load',function(store,r){var records=store.getRange();var items=[];this.removeAll();for(var i=0;i<records.length;i++){this.add({layout:'hbox',items:[{xtype:'checkbox',width:20,value:records[i].get('id')},{html:this.tpl.apply(records[i].data),flex:1}]});}
this.doLayout();},this);},getSelectedIds:function(){var ids=[];Ext.each(this.findByType('checkbox'),function(n){if(n.checked){ids.push({id:n.value});}});return ids;},changeTask:function(type,value,comment){var url='';if(type=='completion'){url=makeUrl('tasks','complete');this.taskCompleteBtn.fireEvent('beforeprocess');}else if(type=='priority'){url=makeUrl('tasks','changePriority');this.taskPriorityBtn.fireEvent('beforeprocess');}else if(this.actionName=='postpone'){url=makeUrl('tasks','postpone');this.taskPostponeBtn.fireEvent('beforeprocess');}
sendJsonRequest(url,{ids:Ext.encode(this.getSelectedIds()),value:value,comment:comment},function(scope){scope.store.reload();Streams.afterItemUpdate();if(type=='postpone'){scope.taskPostponeBtn.fireEvent('afterprocess');}else if(type=='completion'){scope.taskCompleteBtn.fireEvent('afterprocess');}else if(type=='priority'){scope.taskPriorityBtn.fireEvent('afterprocess');}},this);}});StreamTeamsPanel=Ext.extend(Ext.Panel,{tpl:new Ext.XTemplate('<div class="portlet-item tweet-item">','<table><tr>','<td>','<div class="tweet"><img src="{image_url_tweet}"></div>','</td>','<td width="100%">','<a onclick="showContact({contact_id})" href="#" style="font-weight: bold;">{name}</a><br>','Working on <a href="#" onclick="Tasks.showMain({subtype: \'team\', usersId: {person_id}})" style="font-weight: bold;">{tasks_count} task<tpl if="tasks_count != 1">s</tpl></a> <tpl if="overdue_tasks_count != 0"><span style="color: #ff0000;">({overdue_tasks_count} overdue)</span></tpl><br>','<b>Teams: </b><tpl for="teams">{team_title}<tpl if="xindex != xcount">, </tpl></tpl>','<hr style="margin-bottom: 0px;">','</td>','</tr></table>','</div>').compile(),rd:['id','image_url_tweet','contact_id','person_id','name','tasks_count','overdue_tasks_count','teams','current_team_title'],initComponent:function(){var config=this.initialConfig;StreamTeamsPanel.superclass.initComponent.apply(this);this.store=new Ext.data.Store({url:makeUrl('teams','getTeamMembers'),autoLoad:false,baseParams:{team_id:Ext.state.Manager.get("manage-team")?Ext.state.Manager.get("manage-team").team_id:''},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.store.addListener('load',function(store,r){var records=store.getRange();var items=[];this.removeClass('overview-loading');this.removeAll();for(var i=0;i<records.length;i++){if(i==0){this.add({html:'<div style="padding: 5px 5px 0px 5px;"><h2>'+(records[i].data.current_team_title?records[i].data.current_team_title:'All team members')+'</h2><hr></div>'});}
this.add({html:this.tpl.apply(records[i].data)});}
this.doLayout();if(this.el){this.el.removeListener('contextmenu');this.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.removeAll();this.store.reload();},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);}},this);this.teamsStore=new Ext.data.Store({url:makeUrl('teams','getTeams'),autoLoad:false,reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.teamsStore.addListener('load',function(store,records){Streams.viewTeamsMenu.menu.removeAll();Streams.viewTeamsMenu.menu.addItem({xtype:'menuitem',text:'All My Team',handler:function(cb){Streams.showSelectedTeam('');},scope:this});Ext.each(records,function(el,ind){Streams.viewTeamsMenu.menu.addItem({xtype:'menuitem',text:el.json.title,handler:function(cb){Streams.showSelectedTeam(el.json.id);},scope:this});},this);},this);this.accountTeamsStore=new Ext.data.Store({url:makeUrl('teams','getAccountTeams'),autoLoad:false,reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.accountTeamsStore.addListener('load',function(store,records){Streams.teamRequestMenu.menu.removeAll();Ext.each(records,function(el,ind){Streams.teamRequestMenu.menu.addItem({xtype:'menuitem',text:el.json.title,handler:function(cb){sendJsonRequest(makeUrl('teams','teamMemberRequest'),{team_id:el.json.id});},scope:this});},this);},this);}});var Teams=new Application.Module({title:'Your teams',name:'teams',initParams:function(){this.rd=[{name:'id'},{name:'creator_name'},{name:'creator_contact_id'},{name:'title'},{name:'team'},{name:'users_emails'},{name:'users'}];this.cm=[new Ext.grid.CheckboxSelectionModel(),{header:"Title",dataIndex:'title',width:300},{header:"Creator",dataIndex:'creator_name',width:200}];},afterItemUpdate:function(){TeamStream.store.reload();},doEdit:function(btn,grid){var m=grid.getSelections();if(m.length!=1){msg("Notice","Please select one item to edit");return;}
new TeamWizard(m[0].get("id"),grid).open();},doAdd:function(btn,grid){new TeamWizard(null,grid).open();},showMain:function(){this.showFilteredGrid({sortInfo:{field:"name",direction:"DESC"},summary:'users_emails'});}});TeamStreamModule=Ext.extend(Application.ViewModule,{title:'Team Stream',itemTitle:'stream',parentModule:Teams,loadUrl:makeUrl('teams','loadStream'),objId:1,initParams:function(){this.rd=['status','user_id','logo_url','title','teams'];this.itemTopTpl=new Ext.XTemplate('<tpl for=".">','<table cellspacing=0 cellpadding=0 border=0 width="100%"><tr valign="top">','<td width="125px" align="middle" class="item-image">','<table cellspacing=0 cellpadding=0 border=0><tr valign="middle"><td align="center" width="105px" height="105px"><img src="{logo_url}"></td></tr></table>','</td>','<td align="left" class="item-actions">','<h1>{title}</h1><h2 id="team-stream-item-action-title">Share note with your team</h2>','<div class="x-clear"></div>','<div style="padding-right: 45px;">','<div id="team-stream-textarea-div"></div>','<div id="team-stream-textarea-autocomplete" class="stream-autocomplete"></div>','<input type="hidden" id="team-stream-autocomplete-contacts" value="">','<input type="hidden" id="team-stream-autocomplete-contacts-ids" value="">','<input type="hidden" id="team-stream-autocomplete-contacts-types" value="">','<div id="team-stream-textarea-pointer" class="textarea-pointer" style="backgound-position: -950px top;"></div>','</div>','<table cellpadding=0 cellspacing=0 border=0 width="100%"><tr valign="top"><td align="left">','<div class="item-actions">','<input type="hidden" name="item_action" id="team-stream-item-action" value="note">','<a href=# class="item-action-link ico-new-pencil bold" act="note" onclick="setItemAction(this, \'team-stream\', \'note\')">Note</a>','<tpl if="this.isHaveModule(\'tasks\')">','<a href=# class="item-action-link ico-new-task" act="task" onclick="setItemAction(this, \'team-stream\', \'task\')">Task</a>','</tpl>','</div>','</td><td align="right" style="padding-right: 30px;">','<input type="button" id="team-stream-comment-submit"><div class="processing" style="display: none;">Processing...</div>','</td></tr></table>','</td>','</tr></table>','</tpl>',{isHaveModule:function(name){return app.isHaveModule(name);}});},afterItemUpdate:function(){this.commentTextArea.enable().reset();this.getPanel('tabs').items.each(function(n){n.refresh();});},afterStreamUpdate:function(){},showMain:function(){var items=[{pagerUrl:makeUrl('streams','getPager')+'?team_id=all',title:'All My Team'},{pagerUrl:makeUrl('streams','getPager')+'?team_id=my',title:'My Stream'}];this.bottomPanel=this.getPanel('bottom');this.bottomPanel.add({xtype:'tabpanel',id:'team-stream-tabs-panel',activeTab:0,layoutOnTabChange:true,defaults:{xtype:'streampanel',plain:true,bodyBorder:false},items:items});this.bottomPanel.doLayout();},initTopPanel:function(){var tabsPanel=this.getPanel('tabs');tabsPanel.items.each(function(p,i){if(i>1){tabsPanel.remove(p);}});Ext.each(this.data.teams,function(team){tabsPanel.add({pagerUrl:makeUrl('streams','getPager')+'?team_id='+team.id,closable:team.creator_id!=app.conf.user.id,title:team.title,listeners:{close:{fn:function(){confirm(function(){sendJsonRequest(Teams.makeUrl("unsubscribe"),{id:team.id},function(scope,data){TeamStream.store.reload();},null);},this,'Are you sure you want to unsubscribe from team tab?');}}}});},this);tabsPanel.add({title:'+',listeners:{beforeshow:{fn:function(){new TeamWizard().open();return false;}}}});tabsPanel.doLayout();tabsPanel.setActiveTab(0);this.delayTask=new Ext.util.DelayedTask(function(){this.getPanel('tabs').activeTab.getUpdates();this.delayTask.delay(60*5*1000);},this)
this.delayTask.delay(60*5*1000);}});Ext.reg('teamstreammodule',TeamStreamModule);TeamWizard=function(teamId,grid){this.objId=teamId;this.grid=grid;Teams.init();this.store=new Ext.data.Store({url:makeUrl('teams','load'),autoLoad:false,reader:new Ext.data.JsonReader({},Teams.rd),listeners:{'load':{fn:function(grid,records){this.data=records[0].data;Ext.each(this.cards,function(c){c.getForm().setValues(this.data);},this);this.show();this.nextButton.enable();},scope:this}}});var config={title:(this.objId?'Edit':'Add New')+' Team Tab',width:800,height:(Ext.getBody().getSize().height-100),cls:'wiz',headerConfig:{title:'<div class="sprite sprite-releases">&nbsp;</div><h1>'+(this.objId?'Edit':'Add New')+' Team Tab</h1>'},cardPanelConfig:{defaults:{baseCls:'x-small-editor',bodyStyle:'padding:20px',border:false,autoScroll:true}},open:function(){if(this.objId){this.store.load({params:{id:this.objId}});}else{this.show();}},onNextClick:function(){if(this.currentCard==this.cards.length-2){var data={};Ext.each(this.cards,function(e,i){Ext.apply(data,e.form.getValues(false));});this.cards[0].form.submit({url:makeUrl('teams','update'),params:{id:this.objId},success:function(form,action){msg('Notification',action.result.info);this.cardPanel.getLayout().setActiveItem(this.currentCard+1);try{if(Ext.getCmp('stream-module-teams-panel')){Streams.teamsPanel.teamsStore.reload();Streams.showSelectedTeam(this.objId);}
app.getMainPanel().get(1).store.reload();this.grid.store.reload();}catch(e){}},failure:function(form,action){var errorStr='';Ext.each(action.result.errors,function(f){if(f.msg!=undefined){errorStr+='<br/><b>'+f.id+'</b>: '+f.msg;}});Ext.MessageBox.alert('Error Message',action.result.errorInfo+errorStr);},scope:this});}else{if(this.currentCard==this.cardCount-1){this.onFinish();}else{this.cardPanel.getLayout().setActiveItem(this.currentCard+1);}}},cards:[new Ext.ux.Wiz.Card({title:'Details',xtype:'wizard-card',monitorValid:true,labelAlign:'top',autoScroll:true,defaults:{xtype:'panel',labelSeparator:'',allowBlank:false},items:[{cls:'title pb20',html:'Please add basic details and press \'Next\' at the bottom of this page'},{name:'title',fieldLabel:'Tab Title',xtype:'textfield',itemCls:'label'},{cls:'big',html:'This tab is for following users'},this.teamUsers=new DynamicFieldsPanel({fields:[getRemoteComboOptions(makeUrl('core','getUsersOptions'),{hideLabel:true,fieldLabel:'User',hiddenName:"user_id[]"})],addNote:'Add user',listeners:{render:{fn:function(){if(this.objId){Ext.each(this.store.data.items[0].data.users,function(n){this.teamUsers.appendField([[n.id,n.value]]);},this);}else{this.teamUsers.appendField([[app.conf.user.id,app.conf.user.person]])}},scope:this}}})]}),new Ext.ux.Wiz.Card({title:'Finished',monitorValid:true,items:[{border:false,cls:'title pb20',html:'Congratulations! Team tab has been '+(this.objId?'updated':'created')+' successully!'}]})]};TeamWizard.superclass.constructor.call(this,config);};Ext.extend(TeamWizard,Ext.ux.Wiz,{});StreamNotificationsPanel=Ext.extend(Ext.Panel,{title:'Notifications',tbar:[],tpl:new Ext.XTemplate('<div class="portlet-item stream-item notification-item <tpl if="unreaded">notification-item-unreaded</tpl>">','<div class="ico-new ico-new-task"></div><div class="title" style="padding-right: 20px;">{message}</div>','<div class="item-info"><div class="note" style="padding-right: 20px;">{note} <tpl if="note_full"><a href=# onclick="streamAction(this, \'show_more\'); return false;">Show more</a></tpl></div><tpl if="note_full"><div class="note note-full" style="display: none;">{note_full}</div></tpl>','{created_at} ago - ','<a href=# onclick="streamAction(this, \'delete_notification\', \'{notification_id}\')">Delete</a>','</div>','</div>').compile(),rd:['id','icon','message','created_at','user_pic','actions','comments','comments_count','note','note_full','type_id','is_private','time','unreaded','notification_id'],initComponent:function(){var config=this.initialConfig;StreamNotificationsPanel.superclass.initComponent.apply(this);var settings=app.conf.activityNotifications.split(',');this.getTopToolbar().add({text:'Mark All Read',iconCls:'icon icon-tick',handler:function(){sendJsonRequest(app.makeUrl("notificationsRead"),{},function(scope,data){app.notificationsStore.load();scope.store.load();},this);},scope:this},{text:'Customise',iconCls:'icon icon-cog',menu:{defaults:{xtype:'menucheckitem',handler:this.setNotification.createDelegate(this)},items:[{text:'Activities Notifications',initValue:'activities',checked:settings.indexOf('activities')>=0,disabled:true},{text:'Task Notifications',initValue:'tasks',checked:settings.indexOf('tasks')>=0}]}},{text:'Delete All Notifications',iconCls:'icon icon-delete',handler:function(){sendJsonRequest(app.makeUrl("deleteAllNotifications"),{},function(scope,data){app.notificationsStore.load();scope.store.load();},this);},scope:this});this.getTopToolbar().doLayout();this.store=new Ext.data.Store({url:makeUrl('streams','getNotifications'),autoLoad:false,baseParams:{start:0},reader:new Ext.data.JsonReader({totalProperty:"totalCount",root:"results",id:"id"},this.rd)});this.store.addListener('load',function(store,r){var records=store.getRange();var items=[];this.removeClass('overview-loading');if(store.baseParams.start==0){this.removeAll();}else if(this.seeMorePanel){this.remove(this.seeMorePanel);}
for(var i=0;i<records.length;i++){this.add({html:this.tpl.apply(records[i].data)});}
this.doLayout();if(this.el){this.el.removeListener('contextmenu');this.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.removeAll();this.store.baseParams.start=0;this.store.reload();},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);}},this);},setNotification:function(p1,p2){sendJsonRequest(app.makeUrl("setNotificationsSettings"),{type:p1.initValue,enabled:!p1.checked},function(scope,data){app.notificationsStore.load();scope.store.load();},this);}});var Inbox=new Application.Module({title:'Distributions',itemName:'message',name:'inbox',overviewFields:['drafts','recent','by_company','updates'],isHavePreview:true,initParams:function(){this.rd=['id','title','type_id','user_id','type','body','importance_id','importance','to_emails','is_archived','reply_to_id','pitch_type_id','pitch_type','contact','contact_id','is_exclusive','rate_id','rate','company_id','company','replies','to','readed','attachments','is_shared',{name:'created_at',type:'date',dateFormat:app.conf.dtFormat},{name:'is_exclusive',type:'bool'}];this.cm=[new Ext.grid.CheckboxSelectionModel(),{header:"Sent By",dataIndex:'contact',width:200},{header:"Send To",dataIndex:'to',width:200,renderer:function(v,p,record){if(v&&typeof(v)=='object'){var result='';for(var i=0;i<v.length;i++){var r=v[i];if((record.data.user_id==app.conf.user.id)||(r.user_id==app.conf.user.id||!record.data.is_exclusive)){result+=r.contact+(i<v.length-1?', ':'');}}
return result;}
return v;}},{id:"title",header:"Subject",dataIndex:'title',width:300,renderer:function(v,p,record){return record.data.readed?v:'<b>'+v+'</b>';}},{header:"Type",dataIndex:'type',width:120},{header:"Importance",dataIndex:'importance',width:100},{header:"Sent at",dataIndex:'created_at',width:120,renderer:dtRenderer}];this.cmSent=[new Ext.grid.CheckboxSelectionModel(),{header:"Send To",dataIndex:'to',width:200,renderer:function(val,p,record){if(val&&typeof(val)=='object'){var result='';for(var i=0;i<val.length;i++){var r=val[i];if((record.data.user_id==app.conf.user.id)||(r.user_id==app.conf.user.id||!record.data.is_exclusive)){result+=r.contact+(i<val.length-1?', ':'');}}
return result;}
return val;}},{header:"Sent By",dataIndex:'contact',width:200},{id:"title",header:"Subject",dataIndex:'title',width:300,renderer:function(v,p,record){return record.data.readed?v:'<b>'+v+'</b>';}},{header:"Importance",dataIndex:'importance',width:100},{header:"Sent at",dataIndex:'created_at',width:120,renderer:dtRenderer}];this.previewTpl=new Ext.XTemplate('<tpl for=".">','<div class="post-data">','<span class="post-date">{created_at:dtRenderer}</span>','<h3 class="post-title">{title}</h3>','<h4 class="post-author">{contact}</h4></div>','<div class="post-fields">','<b>Type</b><span>{type}</span>','<div class="x-clear"></div>','<b>Importance</b><span>{importance}</span>','<div class="x-clear"></div>','<tpl if="this.isUserMessage(user_id) == true">','<b>Not Reveal all recipients</b><span>{is_exclusive:booleanRenderer}</span>','<div class="x-clear"></div>','<b>Is archived</b><span>{is_archived:booleanRenderer}</span>','<div class="x-clear"></div>','</tpl>','<tpl if="this.isPitch(type_id) == true">','<b>Pitch type</b><span>{pitch_type}</span>','<div class="x-clear"></div>','<b>Company</b><span>{company}</span>','<div class="x-clear"></div>','<b>Is exclusive</b><span>{is_exclusive:booleanRenderer}</span>','<div class="x-clear"></div>','</tpl>','<hr>','{body}','<div class="x-clear"></div>','</div>','</tpl>',{isUserMessage:function(user_id){return user_id==app.conf.user.id;},isPitch:function(type_id){return type_id==5502;}}).compile();this.itemPreviewTpl=new Ext.XTemplate('<tpl for=".">','<div class="message">','<div class="header">','<h3 class="title">{title}</h3>','<div style="float: left; padding-left: 30px; line-height: 20px;">Sent by: {contact} &nbsp; On: {created_at:dtRenderer}</div><div class="x-clear"></div>','<div style="padding-left: 30px; line-height: 20px;">To: &nbsp; ','<tpl if="this.isObject(to)">','<tpl for="to">','<tpl if="this.isShow(user_id, parent.user_id, parent.is_exclusive) == true">','<tpl if="xindex!=1">, &nbsp; </tpl>','{contact}','</tpl>','</tpl>','</tpl>','<tpl if="!this.isObject(to)">','{to}','</tpl>','</div>','<tpl if="attachments!=\'\'"><div style="float:right;line-height: 20px;">{attachments}</div><div class="x-clear"></div></tpl>','</div>','<div class="body" id="message-body-{id}">','{body}','</div>','</div>','</tpl>',{isShow:function(contact_user_id,user_id,is_exclusive){return((user_id==app.conf.user.id)||(contact_user_id==app.conf.user.id||!is_exclusive));},isObject:function(to){return(typeof(to)=='object');}}).compile();this.itemRepliesTpl=new Ext.XTemplate('<tpl for=".">','<tpl for="replies">','<tpl if="id &gt; 0">','<div class="reply">','<div class="header">','<div class="arrow-collapse" onclick="Inbox.toggleBody(this,\'reply-{id}\')"><img src="/images/icons/bullet_arrow_down.gif"></div>','<span><b>{title}</b> &nbsp; &nbsp; Sent by: {contact} &nbsp; On: {created_at:dtRenderer} &nbsp; To: ','<tpl if="this.isObject(to)">','<tpl for="to">','<tpl if="this.isShow(user_id, parent.user_id, parent.is_exclusive) == true">','<tpl if="xindex!=1">, &nbsp; </tpl>','{contact}','</tpl>','</tpl>','</tpl>','<tpl if="!this.isObject(to)">','{to}','</tpl>','</span><div class="x-clear"></div>','</div>','<div class="body" id="message-body-reply-{id}">','{body}','</div>','</div>','</tpl>','</tpl>','</tpl>',{isShow:function(contact_user_id,user_id,is_exclusive){return((user_id==app.conf.user.id)||(contact_user_id==app.conf.user.id||!is_exclusive));},isObject:function(to){return(typeof(to)=='object');}}).compile();this.overviewTpl=new Ext.XTemplate('<tpl for=".">','<table border=0 cellpadding=0 cellspacing=0 width="100%"><tr valign="top">','<td width="50%">','<div class="overview-container">','<div class="block-title sprite sprite-inbox"><h1>Draft distributions</h1><hr/></div>','<tpl for="drafts">','<div class="updates-item">','<a href=# class="title" onclick="new EmailCampaignWizard(null, null, {id}).open();return false;">{title}</a><br>','<span class="item-info" style="font-style: normal;">Created {created_at}<tpl if="company_contact_id"> for <a href=# onclick="showCompany({company_contact_id});return false;">{company}</a></tpl></span>','</div>','<tpl if="xindex!=xcount"><hr></tpl></tpl>','<tpl if="drafts.length == 0">No draft distributions.</tpl>','</div>','<div class="overview-container">','<div class="block-title sprite sprite-clock"><h1>Recent distributions</h1><hr/></div>','<tpl if="recent.length == 0">No recent distributions.</tpl>','<tpl for="recent">','<div class="updates-item">','<a href=# class="title" onclick="Mailings.showItem({id});return false;">{title}</a><br>','<span class="item-info" style="font-style: normal;">{type} sent {mailed_at}<tpl if="company_contact_id"> for <a href=# onclick="showCompany({company_contact_id});return false;">{company}</a></tpl></span>','</div>','<tpl if="xindex!=xcount"><hr></tpl>','</tpl>','</div>','<div class="overview-container">','<div class="block-title sprite sprite-folder"><h1>Distributions by Company</h1><hr/></div>','<tpl if="by_company.length == 0">No distributions by company.</tpl>','<tpl for="by_company">','<tpl if="mailings.length != 0">','<table cellpadding=0 cellspacing=0 border=0 class="item" width="100%" <tpl if="xindex==xcount">style="border-bottom: none;"</tpl>><tr valign="top">','<td class="image" width="52px"><img src="{image_url}" border=0 /></td>','<td class="content">','<a href=# class="item-headline" onclick="showCompany({company_contact_id})">{company}</a>','<div class="summary">','<tpl for="mailings">','<div class="articleTitle"><a href=# onclick="new EmailCampaignWizard(null, null, {id}).open();return false;">{title}</a><br></div>','</tpl>','</div>','</td>','</tr></table><tpl if="xindex!=xcount"><hr></tpl>','</tpl>','</tpl>','</div>','</td><td>','<div class="overview-container" style="padding: 10px;">','<div class="overview-search-form">','<div class="block-title sprite sprite-search"><h1>Find Emails</h1><hr></div>','<div class="inputs">','<label for="inbox_search_by_name">Find lists with this <b>text</b> in the description or title</label><br>','<input class="x-form-text x-form-field w250" name="inbox_search_by_name" id="inbox_search_by_name" type="text" /><br><br>','<label for="inbox_search_by_company">And/or for this <b>company</b> (eg. MediaConnect Australia)</label><br>','<div id="inbox_search_by_company"></div><br>','<label for="inbox_search_by_journo">And/or related to the <b>journalist/editor</b></label><br>','<input class="x-form-text x-form-field w250" name="inbox_search_by_journo" id="inbox_search_by_journo" type="text" /><br><br>','</div>','<div class="x-small-editor" id="inbox_submit_search" style="float: right; padding-top: 23px;"></div>','</div>','</div>','<div class="overview-container tools-block">','<div class="block-title sprite sprite-tools"><h1>Tools & Assistance</h1><hr/></div>','<div class="updates-item">','<div class="portlet-item" style="padding: 2px 0;"><div class="ico-new ico-new-add"></div><a href=# onclick="Inbox.showCompose();return false;" class="title">Compose Email</a></div>','<div class="summary">Click here to compose an email to an individual or group using our simple email form</div>','</div><hr>','<div class="updates-item">','<div class="portlet-item" style="padding: 2px 0;"><div class="ico-new ico-new-tools"></div><a href=# onclick="new EmailCampaignWizard().open();return false;" class="title">New Distribution</a></div>','<div class="summary">Click here to create a new email distribution, with our distribution wizard. Using this tool you can track opens, clicks and bounce backs</div>','</div>','</div>','<div class="overview-container">','<div class="block-title sprite sprite-stream"><h1>Distribution Updates</h1><hr/></div>','<tpl for="updates">','<div class="updates-item">','<div class="portlet-item"><div class="ico-new ico-new-{icon}"></div>{message} <span class="item-info">{created_at} ago</span>',this.activityTpl,'</div>','</div><tpl if="xindex!=xcount"><hr></tpl>','</tpl>','</div>','</td>','</tr></table>','</tpl>').compile();this.contactsStore=prepareDs(this.makeUrl("getListEmails"),[{name:'title'}],false);if(app.isHaveModule('inbox')){Pitches.init();Notifications.init();Mailings.init();}},initFilters:function(){return[prepareComboBox(makeUrl('contacts','getPeopleContactOptions'),{emptyText:'All Contacts',labelName:'Contacts',hiddenName:'contact',valueField:'value',displayField:'value',forceSelection:false,allowBlank:true}),prepareComboBox({emptyText:'All messages',labelName:'Type',hiddenName:'type',hidden:true,store:new Ext.data.SimpleStore({fields:['id','value'],data:[['inbox','Inbox'],['sent','Sent'],['pitches','Pitches'],['my','My'],['shared','Shared']]})})]},initForm:function(){return{defaults:{bodyStyle:'padding:10px; position:relative;'},fileUpload:true,autoScroll:true,items:[this.formTabsPanel=new Ext.TabPanel({xtype:'tabpanel',activeTab:0,height:400,layoutOnTabChange:true,autoScroll:true,items:[{title:'Message',autoScroll:true,layout:'form',autoHeight:true,defaults:{bodyStyle:'position:relative;'},items:[this.toField=new Ext.form.TextArea({name:'to_id',growMin:300,preventScrollbars:true,fieldLabel:'To',name:"to_id",id:'inbox-message-to-field',allowBlank:false}),prepareComboBox(makeUrl("lists","getListOptions"),{fieldLabel:'List',id:'inbox-compose-list-field',listeners:{"select":{fn:function(combo,record,index){this.contactsStore.load({params:{list_id:combo.getValue()},scope:this,callback:function(records,options,success){var v=[];for(var i=0;i<records.length;i++){v.push(records[i].get("title"));}
this.toField.setValue(v.join(','));}});},scope:this}}}),this.subjectField=new Ext.form.TextField({fieldLabel:'Subject',name:'title',allowBlank:false}),this.bodyEditor=new Ext.form.HtmlEditor({name:'body',width:600,height:300,hideLabel:true,labelWidth:0,labelSeparator:'',plugins:new Ext.ux.plugins.HtmlEditorImageInsert()}),getComboOptions({fieldLabel:'Importance',hiddenName:"importance_id",allowBlank:false,store:app.ds.importanceTypes,value:4803}),{fieldLabel:'Reveal all recipients',xtype:'checkbox',name:'is_exclusive',inputValue:'1'},{fieldLabel:'Is shared',xtype:'checkbox',name:'is_shared',inputValue:'1'}]},{title:'Attachments',autoScroll:true,layout:'form',autoHeight:true,defaults:{bodyStyle:'padding:10px; position:relative;'},items:this.attachments=new DynamicFieldsPanel({height:300,bodyStyle:"border: none",style:"border: none",fields:[{xtype:'fileuploadfield',fieldLabel:'Attachment',name:"attachment",allowBlank:true}]})}]})]}},showCompose:function(emails,releaseBody,subject){var cfg={id:'inbox-compose-panel',overflow:'hidden',autoScroll:true,layout:'border',items:[{id:'inbox-compose-top-panel',region:'north',split:true,collapsible:false,height:260,bodyStyle:"background-color: #e9f2fc; padding: 10px;",layoutConfig:{labelWidth:0,hideLabels:true,labelStyle:'border 1px solid RED; width: 0;'}},{layout:'fit',region:'center',autoScroll:true,id:'inbox-compose-center-panel'}]};app.showModulePanel(cfg,function(){app.getMainPanel().add(new EmailModule(Ext.apply({emails:emails,releaseBody:releaseBody,name:'inbox-compose',subject:subject},cfg)));app.getMainPanel().activate(cfg.id)},this);},showNotifications:function(){Notifications.doAdd();},getGridPanelCfg:function(cfg){var result={isHaveEdit:false,groupField:'',autoExpandColumn:'title',sortInfo:{field:'created_at',direction:"DESC"},dblclickShow:true,headerAddons:[(isJourno()?{iconCls:'icon icon-page-go',text:'MakeLead',handler:function(){this.selectionAction('Do you really want to make leads from selected messages?',function(){this.sendJsonRequest(this.module.makeUrl('makeLead'),{ids:this.selectedIdsToJson()});});}}:''),{iconCls:'icon icon-email-edit',text:'Reply',handler:function(){this.selectionAction(null,function(){var d=this.getSelections()[0].data;this.module.doAdd(d.id,d.contact,d.contact_id,null,d.title);});}},{iconCls:'icon icon-email-go',text:'Forward',handler:function(){this.selectionAction(null,function(){var d=this.getSelections()[0].data;this.module.doAdd(null,null,null,d.body,d.title);});}},{text:'Mark as read',iconCls:'icon icon-tick',tooltip:'Mark as read',handler:function(){this.selectionAction(null,function(){this.sendJsonRequest(app.makeUrl('markReaded'),{ids:this.selectedIdsToJson(),type:'message'});});}},{text:'Mark all read',iconCls:'icon icon-tick',tooltip:'Mark all read',handler:function(){this.sendJsonRequest(app.makeUrl('markReaded'),{all:1,type:'message'});}},{text:'Archive',iconCls:'icon icon-accept',tooltip:'Mark message archived',handler:function(){this.selectionAction('Do you really want to mark messages archived?',function(){this.sendJsonRequest(this.module.makeUrl('archive'),{ids:this.selectedIdsToJson()});});}},{text:'Share',iconCls:'icon icon-accept',tooltip:'Mark message shared',handler:function(){this.selectionAction('Do you really want to mark messages shared?',function(){this.sendJsonRequest(this.module.makeUrl('share'),{ids:this.selectedIdsToJson()});});}},{text:'Delete',iconCls:'icon icon-delete',tooltip:'Delete messages',handler:function(){this.selectionAction('Do you really want to delete selected messages?',function(){this.sendJsonRequest(this.module.makeUrl('delete'),{ids:this.selectedIdsToJson()});});}}],summary:'body'};return Ext.apply(cfg||{},result);},showMain:function(){this.showFilteredGrid(this.getGridPanelCfg());},showAllMy:function(){this.showFilteredGrid(this.getGridPanelCfg({title:'All My Messages',baseParams:{type:'my'}}),'my');},showSent:function(){this.showFilteredGrid(this.getGridPanelCfg({title:'Sent',baseParams:{type:'sent'}}),'sent');},showPitches:function(){this.showFilteredGrid(this.getGridPanelCfg({title:'Pitches',baseParams:{type:'pitches'}}),'pitches');},showShared:function(){this.showFilteredGrid(this.getGridPanelCfg({title:'Shared',baseParams:{type:'shared'}}),'shared');},initDialog:function(){this.dlg=new Ext.Window({layout:'fit',width:850,modal:true,closeAction:'hide',plain:true,id:this.name+'-dlg',bodyStyle:'padding:5px;',buttonAlign:'center',title:"Send message",items:this.formPanel=new Ext.form.FormPanel(this.initForm()),buttons:[{minWidth:80,text:'Send Message',handler:this.send.createDelegate(this)}]});},previewItem:function(id,data,panel){if(data.readed==false){sendJsonRequest(app.makeUrl('markReaded'),{id:data.id,type:'message'});}
data.readed=true;this.previewTpl.overwrite(panel.body,data);},send:function(){var form=this.formPanel.getForm();if(form.isValid()){form.submit({url:makeUrl("inbox","sendEmail"),params:{reply_to_id:this.toMessage},waitMsg:'Message sending now...',reset:true,failure:function(form,action){Ext.MessageBox.alert('Error Message',action.result.errorInfo);},success:function(form,action){msg('Notification',action.result.info);if(this.items[this.toMessage]){this.items[this.toMessage].repliesView.store.reload();}
this.toMessage=0;this.getDialog().hide();},scope:this});}},showItem:function(id,data,grid){var cfg={layout:'border',title:'Thread',bodyStyle:'background-color: #fff',tbar:new Ext.Toolbar({height:26,items:[]}),id:'inbox-item-'+id+'-panel',items:[{region:'north',id:'inbox-item-'+id+'-center-panel',height:370,split:true,collapseMode:'mini',closable:false},{collapsible:true,region:'center',title:'Message history',id:'inbox-item-'+id+'-bottom-panel'}]};app.showModulePanel(cfg,function(){this.retrieveItemData(id,function(p){app.getMainPanel().add(new InboxThreadModule(Ext.apply(cfg,{name:'inbox-item-'+id,objId:id,data:Ext.util.JSON.decode(p.responseText)[0]})));app.getMainPanel().activate(cfg.id);});},this);},LinkInterceptor:{render:function(p){p.body.on({'mousedown':function(e,t){},'click':function(e,t){var el=Ext.get(t);if(el){var ch=el.dom.attributes.getNamedItem('onclick');if(ch&&(ch.nodeValue.indexOf('Inbox.')!=-1||ch.nodeValue.indexOf('showContact(')!=-1)){return}}
t.target='_blank';e.stopEvent();window.open(t.href);},delegate:'a'});}},toggleBody:function(el2,id){if(el2){var el=Ext.get(el2.id).first();if(el.dom.src=='/images/icons/bullet_arrow_down.gif'){el.dom.src='/images/icons/bullet_arrow_right.gif';}else{el.dom.src='/images/icons/bullet_arrow_down.gif';}
el.repaint();Ext.get('message-body-'+id).enableDisplayMode().toggle(true);}},doAdd:function(toMessage,toContact,toContactId,forwardBody,forwardSubject,toList){var dlg=this.getDialog();dlg.action="create";if(toMessage){dlg.setTitle('Reply '+this.itemName);}else if(forwardBody){dlg.setTitle('Forward '+this.itemName);}else{dlg.setTitle('Create '+this.itemName);}
try{this.formPanel.findByType('tabpanel')[0].setActiveTab(0);}catch(e){}
try{this.resetForm();}catch(e){}
dlg.objId='';dlg.show();this.setFormDefaults();if(toContact){this.toField.setValue(toContact);}
if(toList){var cmp=Ext.getCmp('inbox-compose-list-field');}
if(toMessage){this.toMessage=toMessage;if(forwardSubject.substr(0,4)!='Re: '){forwardSubject='Re: '+forwardSubject;}
this.subjectField.setValue(forwardSubject)}
if(forwardBody){this.bodyEditor.setValue(forwardBody);if(forwardSubject.substr(0,5)!='Fwd: '){forwardSubject='Fwd: '+forwardSubject;}
this.subjectField.setValue(forwardSubject)
dlg.doLayout();}},setFormDefaults:function(){this.attachments.appendField();makeAutocomplete(Ext.getDom('inbox-message-to-field'),makeUrl("core","getAllUsersOptions"));},resetForm:function(){this.formPanel.getForm().reset();this.attachments.reset();},make:function(id,type,scope){this.init();this.objId=id;this.objType=type;this.scope=scope;this.getDialog().setTitle('Create message');this.getDialog().action="create";this.resetForm();this.getDialog().show();this.setFormDefaults();},showMailings:function(){Mailings.showMain();},initOverviewElements:function(){this.overviewCompaniesCombo=prepareComboBox(makeUrl('contacts','getCompanyOptions'),{emptyText:'All companies',hiddenName:"inbox_search_company",allowBlank:true,renderTo:'inbox_search_by_company',width:296,style:{width:'296px'},typeAhead:true});new Ext.Button({minWidth:60,text:'Search',scope:this,renderTo:'inbox_submit_search',handler:function(){var filt=Ext.get("inbox_search_by_name").getValue();var journo=Ext.get("inbox_search_by_journo").getValue();var company_id=this.overviewCompaniesCombo.getValue();var company=this.overviewCompaniesCombo.getRawValue();if(filt||company_id||journo){Lists.init().showFilteredGrid(Lists.getGridPanelCfg({pagerUrl:makeUrl("lists","getPager"),title:filt||journo||company,baseParams:{filter:filt,company_id:company_id,journo:journo}}),'by-filter');}}});},showSearchResults:function(sparams){if(!this.grid){this.showMain();}
var grid=this.grid;grid.setFilter('type','');try{grid.reconfigure(s,this.cm);}catch(e){};this.archiveBtn.show();this.activateMainPanel('Search results');grid.setFilters(sparams);grid.applyFilters();}});EmailModule=Ext.extend(Application.Module,{parentModule:Inbox,name:'compose',id:'inbox-compose-panel',title:"Compose email",hideLabels:false,layout:"border",labelWidth:120,tbar:{height:25,items:[{iconCls:'icon icon-email-go',text:'Send',handler:function(){var form=Ext.getCmp('compose-email-form-panel').getForm();if(form.isValid()){form.submit({url:makeUrl("inbox","sendEmail"),params:{test:'test',html_body:Ext.getCmp('compose-email-html-body').getValue(),text_body:Ext.getCmp('compose-email-text-body').getValue()},waitMsg:'Email sending now...',reset:true,failure:function(form,action){Ext.MessageBox.alert('Error Message',action.result.errorInfo);},success:function(form,action){msg('Notification',action.result.info);app.getMainPanel().remove('inbox-compose-panel');},scope:this});}},scope:this},{iconCls:'icon icon-cancel',text:'Discard',handler:function(){Ext.MessageBox.confirm('Message','Do you really want to cancel email? Changes will not be saved.',function(btn){if(btn=="yes"){app.getMainPanel().remove('inbox-compose-panel');}},this);},scope:this}]},showMain:function(){this.doLayout();this.getPanel('top').add(this.createFormPanel=new Ext.form.FormPanel({id:'compose-email-form-panel',bodyStyle:"background-color: #e9f2fc;",layoutConfig:{labelWidth:0,hideLabels:true,labelStyle:'border 1px solid RED; width: 0;'},items:[this.toField=new Ext.form.TextArea({name:'to_id',grow:false,hideLabels:false,preventScrollbars:true,style:'border: none',fieldLabel:'To',name:'emails_to',id:'inbox-email-to-field',allowBlank:false,listeners:{'render':{fn:function(e){makeAutocomplete(e.el.dom,makeUrl("core","getAllUsersOptions"));}}}}),this.listsField=prepareComboBox(makeUrl("lists","getListOptions"),{fieldLabel:'List',width:400,listeners:{"select":{fn:function(combo,record,index){this.emailsStore.load({params:{list_id:combo.getValue()},scope:this,callback:function(records,options,success){var v='';for(var i=0;i<records.length;i++){if(i>0){v+=",";}
v+=records[i].get("email");}
this.toField.setValue(v);}});},scope:this}}}),{fieldLabel:'Subject',name:'subject',allowBlank:false,xtype:'textfield',width:300,value:this.subject||''},new Ext.form.RadioGroup({cls:"inbox-email-types",fieldLabel:'Type',inputType:'radio',columns:[80,80,80],items:[{id:'contact-email-type-html',name:"email_type",inputValue:'html',boxLabel:'HTML',hideLabel:true,labelSeparator:'',checked:true,listeners:{'check':{fn:function(box,isChecked){if(isChecked){Ext.getCmp("contact-email-type-text").setValue("");Ext.getCmp("contact-email-type-multi").setValue("");this.textEditorPanel.hide();this.htmlEditorPanel.show();}},scope:this}}},{id:'contact-email-type-text',name:"email_type",inputValue:'text',boxLabel:'Text',hideLabel:true,labelSeparator:'',listeners:{'check':{fn:function(box,isChecked){if(isChecked){Ext.getCmp("contact-email-type-html").setValue("");Ext.getCmp("contact-email-type-multi").setValue("");this.textEditorPanel.show();this.htmlEditorPanel.hide();}},scope:this}}},{id:'contact-email-type-multi',name:"email_type",inputValue:'multi-part',boxLabel:'Multi-part',hideLabel:true,labelSeparator:'',listeners:{'check':{fn:function(box,isChecked){if(isChecked){Ext.getCmp("contact-email-type-html").setValue("");Ext.getCmp("contact-email-type-text").setValue("");this.textEditorPanel.hide();this.htmlEditorPanel.show();}},scope:this}}}]}),{fieldLabel:'Is shared',xtype:'checkbox',name:'is_shared',inputValue:'1'},this.attachments=new DynamicFieldsPanel({autoHeight:true,width:570,cls:'inbox-email-attachments',addButtonText:'Add Attachment',layoutConfig:{labelWidth:120,bodyStyle:'background-color: #e9f2fc;',labelStyle:'border 1px solid RED;'},fields:[{fieldLabel:'Attachment',labelWidth:140,xtype:'fileuploadfield',style:'background-color: #e9f2fc;',bodyStyle:"background-color: #e9f2fc;",allowBlank:true}]})]}));this.getPanel('center').add(this.htmlEditorPanel=new Ext.Panel({layout:'fit',items:[this.htmlBody=new Ext.form.HtmlEditor({id:'compose-email-html-body',name:'html_body'})]}),this.textEditorPanel=new Ext.Panel({layout:'fit',hidden:true,items:[this.textBody=new Ext.form.TextArea({id:'compose-email-text-body',name:'text_body',grow:true,growMin:300,preventScrollbars:true,style:'border: none'})]}));if(this.emails){try{this.toField.setValue(this.emails)}catch(ex){this.toField.setValue(this.emails);}}
if(this.releaseBody){this.htmlBody.setValue(this.releaseBody);this.textBody.setValue(this.releaseBody);}
if(this.listId){this.listsField.setBothValue(this.listId,this.list);this.listsField.fireEvent('select',this.listsField);}}});IntroProfessionalWizard=Ext.extend(Ext.ux.Wiz,{initComponent:function(){Ext.apply(this,this.initialConfig);this.items=[{xtype:'dataview',store:this.store=prepareDs(makeUrl("contacts","getContactForIntroduction"),['img_src'],true,15538)}];var config={title:'Orientation Guide',width:800,height:(Ext.getBody().getSize().height-100),cls:'wiz',headerConfig:{title:'<div class="wizard-influencing-logo">&nbsp;</div><h1>Welcome to Influencing</h1>Professional Edition',height:90},cardPanelConfig:{defaults:{baseCls:'x-small-editor',bodyStyle:'padding:20px',border:false,autoScroll:true}},cards:[new Ext.ux.Wiz.Card({title:'Welcome',xtype:'wizard-card',monitorValid:true,labelAlign:'top',fileUpload:true,autoScroll:true,defaults:{xtype:'panel',labelSeparator:''},items:[{cls:'title pb20',html:'Hi '+app.conf.user.person+',<br><br>'+'Welcome abroad, as a new user of our Influencing PR platform.<br><br>'+'You are currently a user of our <b>Professional Edition</b> under the <b>'+app.conf.account.name+'</b> account.<br><br>'+'We\'d like to take a couple of minutes to introduce to the Influencing platform and tell you aboult the key features and modules. With Influencing, you can:<br><br>'+'<b>Maintain your Influencing profile - </b>help journalists find you when they need you<br>'+'<b>Set up an online newsroom for your clients - </b>this enables you to post releases and images<br>'+'<b>Post a new press-release - </b>extend your distribution via our <i>PRWire</i> network<br>'+'<b>Import or build a media list - </b>get your contacts out of spreadsheets so they are easier to manage<br>'+'<b>Search for publicity opportunities - </b>identify forward features that are applicable to you<br>'+'<b>Distribute your releases - </b>easily send releases and track the results.<br><br>'+'If you\'d like to watch a general overview of the Influencing platform, please play this video below.<br><br>'+'<div class="updates-item" style="text-align: center;"><iframe src="http://player.vimeo.com/video/20631142?byline=0&amp;portrait=0&amp;color=59a5d1" width="400" height="225" frameborder="0"></iframe></div>'+'On the next page, we\'d like to introduce you to our team and the people you can connect with if you ever have any troubles or questions.'}]}),new Ext.ux.Wiz.Card({title:'Our Team',monitorValid:true,defaults:{xtype:'panel',labelSeparator:''},disabled:false,items:[{cls:'title pb20',html:'Influencing is operated by MediaConnect Australia and we pride ourselves on delivering the best possible customer service. If you\'re ever experiencing difficulty or have a question please call us on <b>+61 2 9894 6277</b> or send us a support email to <a href="mailto:support@mediaconnect.com.au" style="color: #666666;"><b>support@mediaconnect.com.au</b></a>.<br>'+'<br>However, you should also feel free to contact any of our managers directly if you feel that there\'s anything at all that we can help you with.<br>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=15538')+'"></td>'+'<td align="left">'+'<b>Patricia Istiphan - Community and Support Manager</b><br>'+'"If you have any enquiries about using the Influencing service don\'t afraid to call. I can either walk through waht you\'re trying to archieve, or it might take sense to do a web meeting to demonstrate the process to you."<br>'+'<b>Email: </b><a href="mailto:patricia@mediaconnect.com.au">patricia@mediaconnect.com.au</a>'+'</td></tr></table>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=13747')+'"></td>'+'<td align="left">'+'<b>Philip Sim - Chief Executive Officer</b><br>'+'"I\'m the founder and CEO of MediaConnect. We\'ve built our service around feedback from our clients, so if you\'ve got any feedback or suggestions please get in touch."<br>'+'<b>Email: </b><a href="mailto:philip@mediaconnect.com.au">philip@mediaconnect.com.au</a>'+'</td></tr></table>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=43282')+'"></td>'+'<td align="left">'+'<b>Jessica Fairclough - Client Account manager</b><br>'+'"As your account manager, give me a call whenever you have any enquiries related to your account subscription. If you\'d like to change your edition or have any questions about your subscriprion please contact me."<br>'+'<b>Email: </b><a href="mailto:jessica@mediaconnect.com.au">jessica@mediaconnect.com.au</a>'+'</td></tr></table>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=15424')+'"></td>'+'<td align="left">'+'<b>Tiffany Blatchford - Database Manager</b><br>'+'"As manager of MediaConnect\'s database team, it\'s my job to make sure our contact and database information is accurate and comprehensive. If you spot any inaccuracies or information that is missing, don\'t hesitate to let me know and we\'ll address it immediately."<br>'+'<b>Email: </b><a href="mailto:tiffany@mediaconnect.com.au">tiffany@mediaconnect.com.au</a>'+'</td></tr></table>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=31286')+'"></td>'+'<td align="left">'+'<b>Allie Coyne - Editor</b><br>'+'"As Editor of MediaConnect\'s websites, it\'s my job to know everything that is going on in Australian and New Zealand media and PR industries. If you have a PR story related to your company or a media tip-off, I\'d love to hear from you."<br>'+'<b>Email: </b><a href="mailto:allie@mediaconnect.com.au">allie@mediaconnect.com.au</a>'+'</td></tr></table>'},{cls:'title pb10',html:'<table cellspacing=0 cellpadding=0 border=0><tr valign="top"><td align="left" width="110px"><img src="'+makeUrl('home','getAvatar?id=21178')+'"></td>'+'<td align="left">'+'<b>Donna Sim - Accounts & General Manager</b><br>'+'"I\'m the person who sends the invoices :-) So if you ever have any enquiries about billing or the status of your account, please let me know."<br>'+'<b>Email: </b><a href="mailto:donna@mediaconnect.com.au">donna@mediaconnect.com.au</a>'+'</td></tr></table>'}]}),new Ext.ux.Wiz.Card({title:'The Basics',xtype:'wizard-card',monitorValid:true,labelAlign:'top',fileUpload:true,autoScroll:true,defaults:{xtype:'panel',labelSeparator:''},items:[{cls:'title pb20',html:'We\'ve tried hard to make navigating around Influencing simple and intuitive. However, there are a couple of basic navigation aids we\'d like to make you aware of which will make it quicker for you to find your way around.<br><br>'+'On the <b>left hand side</b> is the <b>navigation menu</b>. Click and expand these links to give you access to all the of the different modules and features of the sites.<br><br>'+'Influencing makes use of <b>tabs</b>, which will open up when you click on a new link. This enables you to work on multiple screens without navigating back and forth. When you\'re finished working with a tab, just close it and you\'ll go back to what you were working on.<br><br>'+'If you\'re looking for journalist details or other information, the easiest option is to use the <b>global search bar</b>, which by default is set to search for contacts but click one of other links to search other areas of the site.<br><br>'+'In the <b>right hand corner of the home page</b> you\'ll find a Tools section which gives you quick access to the most of used features of the site as well as instructional videos. Once you\'ve got the hand of things you might want to shrink this section as it can always be expanded when you need it.<br><br>'+'And finally, you\'ll notice a tab called <b>Team Stream</b>. This works like an internal Facebook stream, bringing together all the notes, tasks and activities your team members are entering into your account. All notes and account details can only be seen in your Team Stream and are encrypted at a database to ensure security.<br><br>'+'<b>Click the video below to watch a one-minute guide to navigating around the Influencing platform</b><br><br>'+'<div class="updates-item" style="text-align: center;"><iframe src="http://player.vimeo.com/video/20631142?byline=0&amp;portrait=0&amp;color=59a5d1" width="400" height="225" frameborder="0"></iframe></div>'+'<br><br>On the next page, we\'ll make sure that your account is set-up properly and help you add the information that you\'ll need to make most effective use of Influencing'}]}),new Ext.ux.Wiz.Card({title:'The Basics',xtype:'wizard-card',monitorValid:true,labelAlign:'top',fileUpload:true,autoScroll:true,defaults:{xtype:'panel',labelSeparator:''},items:[{cls:'title pb20',html:'Congratulations, you\'ve completed our <i>Influencing</i> Orientation Guide. Remember, don\'t hesitate to call us if you still find yourself having issues and understanding how something works.<br><br>'}]})]};Ext.apply(this,config);ContactWizard.superclass.initComponent.apply(this);},open:function(){this.show();},onNextClick:function(){if(this.currentCard==this.cardCount-2){this.cardPanel.getLayout().setActiveItem(this.currentCard+1);this.nextButton.setText('Close');}else if(this.currentCard==this.cardCount-1){this.onFinish();}else{this.cardPanel.getLayout().setActiveItem(this.currentCard+1);this.nextButton.setText('Next &gt;');}}});var Streams=new Application.Module({title:'Activity Streams',name:'streams',selectedTeamId:null,section:'wip',iconCls:'ico-module-tasks',initParams:function(){this.rd=['status','user_id','logo_url','title','teams'];var actions=[];if(!isJourno()){actions.push('<input type="hidden" name="item_action" id="stream-module-item-action" value="note">','<a href=# class="item-action-link ico-new-pencil bold" act="note" onclick="setItemAction(this, \'stream-module\', \'note\')">Note</a>');if(app.isHaveModule('tasks')){actions.push('<a href=# class="item-action-link ico-new-task" act="task" onclick="setItemAction(this, \'stream-module\', \'task\')">Task</a>');}}else{actions.push('<input type="hidden" name="item_action" id="stream-module-item-action" value="question">','<a href=# class="item-action-link ico-new-question bold" act="question" onclick="setItemAction(this, \'stream-module\', \'question\')">Question</a>','<a href=# class="item-action-link ico-new-requests" act="request" onclick="setItemAction(this, \'stream-module\', \'request\')">Request</a>');}
actions.push('<a href=# id="stream-tweet-link" class="item-action-link ico-new-twitter" act="tweet" onclick="setItemAction(this, \'stream-module\', \'tweet\')">Tweet</a>');actions=actions.join('');this.itemTopTpl=new Ext.XTemplate('<tpl for=".">','<table cellspacing=0 cellpadding=0 border=0 width="100%"><tr valign="top">','<td width="125px" align="middle" class="item-image">','<table cellspacing=0 cellpadding=0 border=0><tr valign="middle"><td align="center" width="105px" height="105px"><img src="{logo_url}"></td></tr></table>','</td>','<td align="left" class="item-actions">','<h1>{title}</h1><h2 id="stream-module-item-action-title">',(isJourno()?'Ask a question':''),'</h2>','<div class="x-clear"></div>','<div style="padding-right: 45px;">','<div id="stream-module-textarea-div"></div>','<div id="stream-module-textarea-autocomplete" class="stream-autocomplete"></div>','<input type="hidden" id="stream-module-autocomplete-contacts" value="">','<input type="hidden" id="stream-module-autocomplete-contacts-ids" value="">','<input type="hidden" id="stream-module-autocomplete-contacts-types" value="">','<div id="stream-module-textarea-pointer" class="textarea-pointer" style="backgound-position: -950px top;"></div>','</div>','<table cellpadding=0 cellspacing=0 border=0 width="100%"><tr valign="top"><td align="left">','<div class="item-actions">',actions,'</div>','</td><td align="right" style="padding-right: 30px;">','<input type="button" id="stream-module-comment-submit"><div class="processing" style="display: none;">Processing...</div>','</td></tr></table>','</td>','</tr></table>','</tpl>');this.requestDlgCfg={height:310,id:'streams-request-dlg',title:"Confirm Request",items:{xtype:'form',hideLabels:true,items:[{name:'subject',xtype:'textarea',cls:'bold',hideLabel:true,height:50,allowBlank:false},{name:'description',hideLabel:true,xtype:'textarea',height:130,value:'',emptyText:'Please add more detail for your request here. The more detail you add, the better responses will be.'},{xtype:'datefield',name:'deadline_at',emptyText:'Deadline for responses (Click icon for calendar)'},getRemoteComboOptions(makeUrl('contacts','getOutletOptions'),{hiddenName:"outlet_id",emptyText:'Outlet or publication story is for (optional)'})]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('request').close();}},{minWidth:120,text:'Add request',scope:this,handler:function(){var dlg=this.getDlg('request');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("requests","create"),Ext.apply(form.getFieldValues(),{deadline_at:dlg.get(0).get(2)}),function(scope,data){scope.commentTextArea.enable().reset();scope.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.close();}else{msg('Incorrect input','Please, input required fields');}}}]};this.taskDlgCfg={height:410,id:'streams-task-dlg',title:"Confirm task",listeners:{'show':{fn:function(dlg){if(isJourno()){dlg.get(0).get(5).hide();}else{dlg.get(0).get(5).show();}},scope:this},scope:this},items:{xtype:'form',hideLabels:true,autoScroll:true,items:[{name:'title',xtype:'textarea',cls:'bold',hideLabel:true,height:50,allowBlank:false},{name:'description',hideLabel:true,xtype:'textarea',height:130,value:'',emptyText:'Please add more detail for your task here.'},{xtype:'datefield',name:'end_date',emptyText:'Due Date (Click icon for calendar)'},getRemoteComboOptions(makeUrl('core','getUsersOptions'),{hiddenName:"assigned",emptyText:'Assign this task too'}),getRemoteComboOptions(makeUrl('core','getTaskTypes'),{hiddenName:"type_id",emptyText:'Task type'}),{xtype:'superboxselect',fieldLabel:'This task relates to',emptyText:'Contacts...',resizable:true,minChars:2,name:'related_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',baseParams:{contactsOnly:true},url:makeUrl('core','getAllAutocompleteOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query'},{xtype:'superboxselect',fieldLabel:'Share this with',emptyText:'Share this with...',resizable:true,minChars:2,name:'teams_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllTeamsOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,value:0,queryParam:'query',triggerAction:'all'},{xtype:'hidden',name:'company_id'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('task').close();}},{minWidth:120,text:'Add task',scope:this,handler:function(){var dlg=this.getDlg('task');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("tasks","create"),Ext.apply(form.getFieldValues(),{end_date:dlg.get(0).get(2).getSubmitValue()}),function(scope,data){if(scope&&scope.commentTextArea){scope.commentTextArea.enable().reset();scope.afterItemUpdate();}
try{Streams.tasksPanel.store.reload();app.notificationsStore.reload();Ext.getCmp('wip-panel').wipOverviewStore.reload();}catch(e){}},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.close();}else{msg('Incorrect input','Please, input required fields');}}}]};this.noteDlgCfg={height:370,id:'streams-note-dlg',title:"Confirm note",items:{xtype:'form',labelAlign:'top',autoScroll:true,defaults:{hideLabel:true},items:[{name:'note',xtype:'textarea',cls:'bold',height:130,value:'',emptyText:'Please add more detail for your note here.'},getComboOptions({hiddenName:"type_id",store:app.ds.activityTypes}),getComboOptions({store:app.ds.minuteStore,name:'time_spent',valueField:'value',emptyText:'Time spend on task'}),{xtype:'superboxselect',fieldLabel:'This note relates to',emptyText:'Contacts, tasks, distributions, requests...',resizable:true,minChars:2,name:'related_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllAutocompleteOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all'},{xtype:'superboxselect',fieldLabel:'Share this with',emptyText:'Share this with...',resizable:true,minChars:2,name:'teams_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllTeamsOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('note').close();}},{minWidth:120,text:'Add note',scope:this,handler:function(){var dlg=this.getDlg('note');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;var params=dlg.scope.data?{object_id:dlg.scope.data.object_id,object_type:dlg.scope.data.objType}:{};params.autocomplete_contacts=Ext.encode(s.acObjects);sendJsonRequest(makeUrl("activities","create"),Ext.apply(params,form.getFieldValues()),function(scope,data){scope.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});app.notificationsStore.reload();dlg.close();}else{msg('Incorrect input','Please, input required fields');}}},{minWidth:120,text:'Update note',scope:this,hidden:true,handler:function(){var dlg=this.getDlg('note');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("activities","update"),Ext.apply({id:dlg.itemId},form.getFieldValues()),function(scope,data){scope.store.baseParams.last_id='';scope.scrollerPanel.removeAll();Streams.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.close();}else{msg('Incorrect input','Please, input required fields');}}}]};this.tweetDlg=new Ext.Window({layout:'fit',width:350,modal:true,height:178,closeAction:'hide',id:'streams-tweet-dlg',plain:true,hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Confirm Tweet",scope:this,items:{xtype:'form',hideLabels:true,items:[{name:'status',xtype:'textarea',cls:'bold',hideLabel:true,height:50,allowBlank:false},{xtype:'checkbox',name:'is_share',boxLabel:'Share this tweet with my team',inputValue:1,checked:true},{xtype:'superboxselect',fieldLabel:'Share this with',emptyText:'Share this with...',resizable:true,minChars:2,name:'teams_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllTeamsOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,value:0,queryParam:'query',triggerAction:'all'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.tweetDlg.hide().get(0).getForm().reset();}},{minWidth:120,text:'Add tweet',scope:this,handler:function(){var dlg=this.tweetDlg,form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("streams","updateTwitter"),form.getFieldValues(),function(scope,data){if(scope.commentTextArea){scope.commentTextArea.enable().reset();}
scope.afterItemUpdate();Streams.twitterPanel.store.reload();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.hide();form.reset();}else{msg('Incorrect input','Please, input required fields');}}}]});this.activityRelationsDlgCfg={height:150,id:'streams-tag-dlg',title:"Edit relations",items:{xtype:'form',labelAlign:'top',autoScroll:true,defaults:{hideLabel:true},items:[{xtype:'superboxselect',fieldLabel:'This activity relates to',emptyText:'Contacts, tasks, distributions, requests...',resizable:true,minChars:2,name:'related_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllAutocompleteOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all'},{xtype:'superboxselect',fieldLabel:'Share this with',emptyText:'Share this with...',resizable:true,minChars:2,name:'teams_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllTeamsOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,value:0,queryParam:'query',triggerAction:'all'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('activity').close();}},{minWidth:120,text:'Update relations',scope:this,handler:function(){var dlg=this.getDlg('activity');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("activities","updateRelations"),Ext.apply({id:dlg.itemId},form.getFieldValues()),function(scope,data){Streams.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.close();}else{msg('Incorrect input','Please, input required fields');}}}]};this.pitchDlg=new Ext.Window({layout:'fit',width:350,modal:true,height:280,closeAction:'hide',plain:true,id:'streams-pitch-dlg',hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Log a pitch",items:{xtype:'form',hideLabels:true,items:[{name:'note',xtype:'textarea',cls:'bold',hideLabel:true,height:160,allowBlank:false},{xtype:'superboxselect',fieldLabel:'This pitch relates to',emptyText:'Contacts, tasks, distributions, requests...',resizable:true,minChars:2,name:'related_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllAutocompleteOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all'},{xtype:'hidden',name:'type_id',value:2208},{xtype:'hidden',name:'object_id'},{xtype:'hidden',name:'object_type',value:'contact'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('pitch').hide().get(0).getForm().reset();}},{minWidth:120,text:'Pitch',scope:this,handler:function(){var dlg=this.getDlg('pitch');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;var params=dlg.scope.data?{object_id:dlg.scope.data.object_id,object_type:dlg.scope.data.objType}:{};params.autocomplete_contacts=Ext.encode(s.acObjects);sendJsonRequest(makeUrl("activities","create"),Ext.apply(params,form.getFieldValues()),function(scope,data){scope.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.hide().get(0).getForm().reset();}else{msg('Incorrect input','Please, input required fields');}}}]});this.enquiryDlg=new Ext.Window({layout:'fit',width:350,modal:true,height:280,closeAction:'hide',plain:true,id:'streams-enquiry-dlg',hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Log an enquiry",items:{xtype:'form',hideLabels:true,items:[{name:'note',xtype:'textarea',cls:'bold',hideLabel:true,height:160,allowBlank:false},{xtype:'superboxselect',fieldLabel:'This enquiry relates to',emptyText:'Contacts, tasks, distributions, requests...',resizable:true,minChars:2,name:'related_ids',removeValuesFromStore:false,preventDuplicates:true,store:{autoLoad:false,autoDestroy:true,xtype:'arraystore',url:makeUrl('core','getAllAutocompleteOptions'),idIndex:0,fields:[{name:'id'},{name:'value'}]},mode:'remote',displayField:'value',displayFieldTpl:'{value}',valueField:'id',queryDelay:0,queryParam:'query',triggerAction:'all'},{xtype:'hidden',name:'type_id',value:2272},{xtype:'hidden',name:'object_id'},{xtype:'hidden',name:'object_type',value:'contact'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('enquiry').hide().get(0).getForm().reset();}},{minWidth:120,text:'Send',scope:this,handler:function(){var dlg=this.getDlg('enquiry');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;var params=dlg.scope.data?{object_id:dlg.scope.data.object_id,object_type:dlg.scope.data.objType}:{};params.autocomplete_contacts=Ext.encode(s.acObjects);sendJsonRequest(makeUrl("activities","create"),Ext.apply(params,form.getFieldValues()),function(scope,data){scope.afterItemUpdate();},s,function(scope){scope.commentTextArea.setValue().enable();});dlg.hide().get(0).getForm().reset();}else{msg('Incorrect input','Please, input required fields');}}}]});this.pressReleaseDlg=new Ext.Window({layout:'fit',width:450,modal:true,height:120,closeAction:'hide',plain:true,id:'streams-release-dlg',hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center',title:"Release",items:{xtype:'form',labelAlign:'top',items:[{name:'headline',fieldLabel:'Headline',xtype:'textfield',allowBlank:false},{xtype:'hidden',name:'contact_id'}]},buttons:[{minWidth:80,text:'Cancel',scope:this,handler:function(){this.getDlg('release').hide().get(0).getForm().reset();}},{minWidth:120,text:'Save',scope:this,handler:function(){var dlg=this.getDlg('release');var form=dlg.get(0).getForm();if(form.isValid()){var s=dlg.scope;sendJsonRequest(makeUrl("releases","create"),form.getFieldValues(),function(scope,data){Releases.init().showItem(data[0].id,data[0]);},s,function(scope){});if(s){s.commentTextArea.setValue().enable();}
dlg.hide().get(0).getForm().reset();}else{msg('Incorrect input','Please, input required fields');}}}]});},getDlg:function(type,itemId,streamPanel){var cfg={};switch(type){case'tweet':return this.tweetDlg;break;case'note':cfg=this.noteDlgCfg;cfg.buttons[1].hidden=false;cfg.buttons[2].hidden=true;break;case'task':cfg=this.taskDlgCfg;break;case'request':cfg=this.requestDlgCfg;break;case'activity':cfg=this.activityRelationsDlgCfg;break;case'pitch':return this.pitchDlg;break;case'enquiry':return this.enquiryDlg;break;case'release':return this.pressReleaseDlg;break;}
if(itemId&&type=='note'){cfg.itemId=itemId;if(streamPanel){cfg.scope=streamPanel;}
cfg.buttons[1].hidden=true;cfg.buttons[2].hidden=false;}else if(itemId&&type=='activity'){cfg.itemId=itemId;if(streamPanel){cfg.scope=streamPanel;}}else{cfg.itemId='';}
var cmp=Ext.getCmp(cfg.id);return cmp?cmp:new Ext.Window(Ext.apply(cfg,{layout:'fit',width:350,modal:true,closeAction:'close',plain:true,hidden:true,bodyStyle:'padding:5px;',buttonAlign:'center'}));},twitterReload:function(){this.sendJsonRequest(this.makeUrl("checkTwitterAuth"),null,function(scope,data){var p=Ext.getCmp('stream-module-twitter-check-panel');if(!p||!p.rendered){return;}
var text='';if(data.info.auth!=false){scope.userLoggedTwitter=true;scope.twitterFeedPanel.getTopToolbar().show();scope.twitterPanel.store.reload();text='You are logged into twitter as <a target=_blank href="http://twitter.com/'+data.info.screen_name+'">'+data.info.screen_name+'</a></td><td><a href="#" onclick="Streams.twitterLogout()">logout</a>';scope.delayTask.delay(130*1000);}else{scope.userLoggedTwitter=false;scope.twitterFeedPanel.getTopToolbar().hide();text='Please click this <a target="_blank" href="'+data.info.url+'">log-in link</a>, where you will be re-directed to Twitter\'s own authentication procedure. Please press Allow and you will be returned to this page and you will be able to view your Twitter stream, tweet and share other tweets with your team. Your username and password is never stored with this site.';if(app.conf.environment=='prod'){scope.delayTask.delay(10*1000);}}
p.update('<table><tr><td><div class="ico-new ico-new-twitter"></div></td><td width="100%" style="font-size:12px">'+text+'</td></tr></table>');});},teamsReload:function(){Streams.teamsFeedPanel.getTopToolbar().show();Streams.teamsPanel.store.reload();},twitterLogout:function(){this.sendJsonRequest(this.makeUrl("logoutTwitterAuth"),null,function(scope,data){scope.twitterReload();});},showOverview:function(activateOnLoad){if(activateOnLoad){app.getMainPanel().activate('streams-overview-panel');Ext.getCmp("streams-module-tabs-panel").setActiveTab(activateOnLoad);return;}
var cfg={parentModule:this,name:'stream-module',objId:1,closable:true,layout:"border",border:false,id:"streams-overview-panel",xtype:'streammodule',title:'Loading',items:[{region:'east',width:380,split:true,xtype:'tabpanel',activeTab:0,stateful:true,id:'streams-module-tabs-panel',stateEvents:['tabchange'],getState:function(){return{tab:this.getActiveTab().id}},applyState:function(state){this.setActiveTab(state.tab);},listeners:{'tabchange':{fn:function(tabPanel,newTab){if(newTab.id=='stream-module-tasks-panel'||newTab.id=='stream-module-notifications-panel'){newTab.store.reload();}
newTab.doLayout();},scope:this},scope:this},items:[this.notificationsPanel=new StreamNotificationsPanel({id:"stream-module-notifications-panel",autoScroll:true,stateful:true,autoWidth:true,listeners:{'afterrender':{fn:function(cmp){cmp.el.removeListener('contextmenu');cmp.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.notificationsPanel.removeAll();this.notificationsPanel.store.reload({params:{start:0}});},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);},scope:this},scope:this}}),this.twitterFeedPanel=new Ext.Panel({id:"stream-module-twitter-panel",title:'Twitter',autoScroll:true,stateful:true,defaults:{autoWidth:true,autoHeight:true},tbar:{hidden:true,items:[{text:'Post Tweet',cls:'twitter-buttons',scope:this,handler:function(){var dlg=this.getDlg('tweet');dlg.setTitle('Post a tweet');dlg.get(0).get(0).setValue('');dlg.get(0).get(1).setValue(false);dlg.get(0).get(1).hide();dlg.scope=this;dlg.show();}},{text:'Updates',cls:'twitter-buttons',pressed:true,toggleGroup:'twitter',scope:this,handler:function(btn){btn.setText('Updates');this.twitterPanel.store.baseParams.start=0;this.twitterPanel.store.baseParams.list_id='';this.twitterPanel.store.reload({params:{type:''}});this.twitterPanel.removeAll();this.twitterPanel.addClass("overview-loading");}},{text:'Inbox',cls:'twitter-buttons',toggleGroup:'twitter',scope:this,handler:function(){this.twitterPanel.store.baseParams.start=0;this.twitterPanel.store.reload({params:{type:'inbox'}});this.twitterPanel.removeAll();this.twitterPanel.addClass("overview-loading");}},{text:'@Mentions',cls:'twitter-buttons',toggleGroup:'twitter',scope:this,handler:function(){this.twitterPanel.store.baseParams.start=0;this.twitterPanel.store.reload({params:{type:'mentions'}});this.twitterPanel.removeAll();this.twitterPanel.addClass("overview-loading");}},this.twitterListsMenu=new Ext.Button({text:'Lists',cls:'twitter-buttons',scope:this,menu:[]})]},items:[{id:'stream-module-twitter-check-panel'},this.twitterPanel=new StreamTwitterPanel({id:'stream-module-twitter-feed-panel',cls:'preview'})],listeners:{'render':{fn:function(store,r){this.twitterReload();this.twitterPanel.listsStore.reload();},scope:this}}}),this.tasksPanel=new StreamTasksPanel({id:"stream-module-tasks-panel",autoScroll:true,stateful:true,autoWidth:true,listeners:{'afterrender':{fn:function(cmp){cmp.el.removeListener('contextmenu');cmp.el.on('contextmenu',function(e,node,d){e.stopEvent();if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({items:[{iconCls:'icon icon-refresh',text:'Refresh',handler:function(){this.tasksPanel.removeAll();this.tasksPanel.store.reload({params:{start:0}});},scope:this}]});}
this.contextMenu.showAt(e.getXY());},this);},scope:this},scope:this}}),this.teamsFeedPanel=new Ext.Panel({id:"stream-module-teams-panel",title:'Teams',autoScroll:true,stateful:true,defaults:{autoWidth:true,autoHeight:true},tbar:{hidden:true,items:[this.viewTeamsMenu=new Ext.Button({text:'View teams',cls:'twitter-buttons',scope:this,menu:[]}),{text:'New team',cls:'twitter-buttons',scope:this,handler:function(btn){new TeamWizard().open();}},this.teamRequestMenu=new Ext.Button({text:'Team request',cls:'twitter-buttons',scope:this,menu:[]}),{text:'Manage Teams',cls:'twitter-buttons',scope:this,handler:function(){Teams.showMain();}}]},items:[{id:'stream-module-teams-check-panel'},this.teamsPanel=new StreamTeamsPanel({id:'stream-module-teams-feed-panel',cls:'preview'})],listeners:{'render':{fn:function(store,r){this.teamsReload();this.teamsPanel.teamsStore.reload();this.teamsPanel.accountTeamsStore.reload();},scope:this}}})]},{region:'center',overflow:'hidden',autoScroll:true,bodyBorder:false,layout:'border',id:"stream-module-center-panel",split:false,items:[{id:"stream-module-top-panel",region:'north',split:false,collapsible:false,height:148},{tbarCfg:{style:'display: none'},cls:'item-tabs-panel',region:'center',split:false,id:"stream-module-tabs-panel",xtype:'tabpanel',layoutOnTabChange:true,listeners:{tabchange:{fn:function(tabPanel,newTab){var title=Ext.get('stream-module-item-action-title');if(newTab.teamId){this.selectedTeamId=newTab.teamId;title.update('Share note with '+newTab.title+' team');}else{this.selectedTeamId=null;if(newTab.title.indexOf('All')+1){title.update('Share note with all team members');}else{title.update('Take note for my viewing only');}}},scope:this}},defaults:{xtype:'streampanel',plain:true,bodyBorder:false},items:[{pagerUrl:makeUrl('streams','getPager')+'?team_id=all',title:'All My Team'},{pagerUrl:makeUrl('streams','getPager')+'?team_id=my',title:'My Stream'}]}]}]};this.showPanel(cfg);this.delayTask=new Ext.util.DelayedTask(function(){this.twitterReload();},this)},afterItemUpdate:function(){if(this.getPanel('overview')){this.getPanel('overview').afterItemUpdate();}},toggleTweetActions:function(e,isOut){var el=Ext.get(e);var actionsSpan=el.child('span');if(actionsSpan){if(isOut){if(actionsSpan.isVisible()){actionsSpan.hide();}}else{if(!actionsSpan.isVisible()){actionsSpan.show();}}}},showTwitterList:function(listId,listName){var btn=this.twitterFeedPanel.toolbars[0].items.items[1];btn.setText('Updates [list: '+listName+']');this.twitterPanel.removeAll();this.twitterPanel.addClass("overview-loading");btn.toggle(true);this.twitterPanel.store.reload({params:{list_id:listId,type:''}});},showSelectedTeam:function(teamId){this.teamsPanel.removeAll();this.teamsPanel.addClass("overview-loading");this.teamsPanel.store.reload({params:{team_id:teamId}});Ext.state.Manager.set('manage-team',{team_id:teamId});}});
