﻿
Ext.namespace("Credit360","Credit360.Portlets");PortalTab=function(config){PortalTab.superclass.constructor.call(this,config);}
Ext.extend(PortalTab,Ext.ux.Portal,{layout:'column',border:false,autoHeight:true,initialised:false,loadMask:new Ext.LoadMask(Ext.getBody(),{msg:__tr('Please wait...')}),scriptLoader:null,addPortlet:function(p,colIdx){var pos=0;if(p.columnNum){colIdx=p.columnNum;}
if(p.pos){pos=p.pos;}
p.readOnly=!this.isOwner;p.ownerTabId=this.tabId;var cls=eval(p.typeName);if(!cls){if(!this.loadScripts(p)){throw"scripts loaded, but "+p.typeName+" cannot be created";}
return;}
var portletInstance=new cls(p);portletInstance.collapsed=false;var column=this.items.itemAt(colIdx);column.insert(pos,portletInstance);column.doLayout();portletInstance.renderPortlet();portletInstance.expand();this.assignResizer(portletInstance);},assignResizer:function(portlet){var resizer=new Ext.Resizable(portlet.getEl(),{handles:'s',minHeight:100,maxHeight:1000,pinned:false,animate:true,transparent:true,resizedPortlet:portlet});portlet.resizer=resizer;resizer.on('resize',function(el,w,h,e){var portlet=el.resizedPortlet
portlet.state.portletHeight=h;portlet.setHeight(h);if(this.isOwner==false){Credit360.Page.showMessage(__tr('You aren\'t the owner of this tab. Settings will be lost after page refresh'));}else{HomeHandler.saveState(portlet.tabPortletId,portlet.state,function(){},this);}},this);},changeLayout:function(layout){var columnSizings={"NarrowWide":[.3,.7],"Full":[1],"WideNarrow":[.7,.3],"NarrowWideNarrow":[.2,.6,.2],"EvenTriple":[.33,.34,.33],"EvenDouble":[.5,.5]};var selectedSizing=columnSizings[layout];var columns=this.items.items;var columnsLength=columns.length;if(selectedSizing.length>columns.length){for(var i=columns.length;i<selectedSizing.length;i++){this.items.add(new Ext.ux.PortalColumn({style:"padding: 5px 5px"}));}}else if(selectedSizing.length<columnsLength){var portletsToMove=[];for(var i=selectedSizing.length;i<columnsLength;i++){var columnPortlets=this.items.itemAt(i)
for(var j=0;j<columnPortlets.items.length;j++){var portlet=columnPortlets.items.itemAt(j);portlet.columnNum=0;portletsToMove.push(portlet);portlet.el.dom.parentNode.removeChild(portlet.el.dom)}}
for(var i=columnsLength-1;i>=selectedSizing.length;i--){this.items.removeAt(i);}
for(var i=0;i<portletsToMove.length;i++){this.items.items[0].add(portletsToMove[i]);}}
for(var i=0;i<columns.length;i++){columns[i].columnWidth=selectedSizing[i];}
this.tabLayout=layout;this.doLayout();},loadScripts:function(p){return this.scriptLoader.addPortlet(p);},onPortletScriptLoaded:function(portlets){for(var i=0;i<portlets.length;++i){this.addPortlet(portlets[i],0);}},initPortlets:function(portlets){if(this.initialised){return;}
this.initialised=true;var columnSizings={"NarrowWide":[.3,.7],"Full":[1],"WideNarrow":[.7,.3],"NarrowWideNarrow":[.2,.6,.2],"EvenTriple":[.33,.34,.33],"EvenDouble":[.5,.5]}
var selectedSizing=columnSizings[this.initialConfig.tabLayout];var columns=[];for(var i=0;i<selectedSizing.length;i++){columns.push({style:"padding: 5px 5px",columnWidth:selectedSizing[i]});}
var allPortlets=[];for(var i=0;i<portlets.length;i++){var p=portlets[i];p.readOnly=!this.isOwner;p.ownerTabId=this.tabId;if(p.columnNum>=columns.length){p.columnNum=0;}
var cls=eval(p.typeName);if(!cls){if(!this.loadScripts(p)){throw"scripts loaded, but "+p.typeName+" cannot be created";}
continue;}
var portletInstance=new cls(p);if(!columns[p.columnNum].items){columns[p.columnNum].items=[];}
columns[p.columnNum].items.push(portletInstance);allPortlets.push(portletInstance);}
for(var i=0;i<columns.length;i++){this.add(columns[i]);}
this.doLayout();for(var i=0;i<allPortlets.length;i++){allPortlets[i].renderPortlet();this.assignResizer(allPortlets[i])}
this.on('drop',function(e){if(e.columnIndex!=e.panel.columnNum||e.position!=e.panel.pos){var dropColumnPortlets=this.items.itemAt(e.columnIndex);var portletsArr=[];var positionsArr=[];var pNames=[];e.panel.columnNum=e.columnIndex;e.panel.pos=e.position;for(var i=0;i<dropColumnPortlets.items.length;i++)
{var portlet=dropColumnPortlets.items.itemAt(i);portletsArr.push(portlet.tabPortletId);}
if(this.isOwner==false){Credit360.Page.showMessage(__tr('You aren\'t the owner of this tab. Settings will be lost after page refresh'));}else{HomeHandler.updatePosition(this.tabId,e.columnIndex,portletsArr,function(o){},this);}};this.doLayout.defer(200,this);},this);}});