Ext.namespace("Wiz","Wiz.model","Wiz.util","Wiz.view","Wiz.view.grid");Ext.enableListenerCollection=true;function popup(A,B){win=window.open(A,B,"toolbar=1, location=1, directories=1, status=1, menubar=1, scrollbars=1, resizable=1, width=1000, height=700");win.focus();return false}var gridLoading=false;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(A,B){this.portal=A;Ext.dd.ScrollManager.register(A.body);Ext.ux.Portal.DropZone.superclass.constructor.call(this,A.bwrap.dom,B);A.body.ddScrollConfig=this.ddScrollConfig};Ext.extend(Ext.ux.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:true,increment:200},createEvent:function(A,D,C,B,F,E){return{portal:this.portal,panel:C.panel,columnIndex:B,column:F,position:E,data:C,source:A,rawEvent:D,status:this.dropAllowed}},notifyOver:function(Q,O,R){var D=O.getXY(),A=this.portal,J=Q.proxy;if(!this.grid){this.grid=this.getGrid()}var B=A.body.dom.clientWidth;if(!this.lastCW){this.lastCW=B}else{if(this.lastCW!=B){this.lastCW=B;A.doLayout();this.grid=this.getGrid()}}var C=0,H=this.grid.columnX,I=false;for(var M=H.length;C<M;C++){if(D[0]<(H[C].x+H[C].w)){I=true;break}}if(!I){C--}var L,G=false,F=0,P=A.items.itemAt(C),K=P.items.items;for(var M=K.length;F<M;F++){L=K[F];var N=L.el.getHeight();if(N!==0&&(L.el.getY()+(N/2))>D[1]){G=true;break}}var E=this.createEvent(Q,O,R,C,P,G&&L?F:P.items.getCount());if(A.fireEvent("validatedrop",E)!==false&&A.fireEvent("beforedragover",E)!==false){J.getProxy().setWidth("auto");if(L){J.moveProxy(L.el.dom.parentNode,G?L.el.dom:null)}else{J.moveProxy(P.el.dom,null)}this.lastPos={c:P,col:C,p:G&&L?F:false};this.scrollPos=A.body.getScroll();A.fireEvent("dragover",E);return E.status}else{return E.status}},notifyOut:function(){delete this.grid},notifyDrop:function(H,D,C){delete this.grid;if(!this.lastPos){return }var F=this.lastPos.c,B=this.lastPos.col,G=this.lastPos.p;var A=this.createEvent(H,D,C,B,F,G!==false?G:F.items.getCount());if(this.portal.fireEvent("validatedrop",A)!==false&&this.portal.fireEvent("beforedrop",A)!==false){H.proxy.getProxy().remove();H.panel.el.dom.parentNode.removeChild(H.panel.el.dom);if(G!==false){F.insert(G,H.panel)}else{F.add(H.panel)}F.doLayout();this.portal.fireEvent("drop",A);var I=this.scrollPos.top;if(I){var E=this.portal.body.dom;setTimeout(function(){E.scrollTop=I},10)}}delete this.lastPos},getGrid:function(){var A=this.portal.bwrap.getBox();A.columnX=[];this.portal.items.each(function(B){A.columnX.push({x:B.el.getX(),w:B.el.getWidth()})});return A}});Ext.ux.PortalColumn=Ext.extend(Ext.Container,{layout:"fit",autoEl:"div",defaultType:"widget",cls:"x-portal-column"});Ext.reg("portalcolumn",Ext.ux.PortalColumn);Ext.override(Ext.Component,{printCSS:null,printWidth:8.5,printHeight:11,printStyle:false,printEl:function(A){this.el.print(Ext.isEmpty(A)?this.initialConfig:A)},printBody:function(A){this.body.print(Ext.isEmpty(A)?this.initialConfig:A)}});Ext.override(Ext.Element,{printCSS:null,printWidth:8.5,printHeight:11,printStyle:false,print:function(D){Ext.apply(this,D);var F=Ext.get(this.id).dom;var H=document.getElementById("printcontainer");var A=document.getElementById("printframe");var G='<link rel="stylesheet" type="text/css" href="{0}" />';var B="";var C;for(var E=0;E<F.attributes.length;E++){if(this.printStyle?this.printStyle:F.attributes[E].name.toLowerCase()!="style"){B+=String.format('{0}="{1}" ',F.attributes[E].name,F.attributes[E].value)}}C=String.format("<DIV {0}>{1}</DIV>",B,F.innerHTML);if(H==null){H=document.createElement("div");H.setAttribute("style","visibility:hidden;overflow:hidden;width:0px;height:0px;");H.setAttribute("id","printcontainer");F.appendChild(H);if(Ext.isIE){H.style.display="none";H.style.overflow="hidden";H.style.width="0px";H.style.height="0px"}}if(A!=null){H.removeChild(A);A=null}A=document.createElement("iframe");A.setAttribute("id","printframe");A.setAttribute("name","printframe");A.setAttribute("style",String.format("visibility:hidden;margin:0px;padding:0px;width:{0}in;height:{1}in;",this.printWidth,this.printHeight));H.appendChild(A);if(Ext.isIE){A.style.width=String.format("{0}in",this.printWidth);A.style.height=String.format("{0}in",this.printHeight);A.style.margin="0px";A.style.padding="0px";C+='<script type="text/javascript">document.execCommand("print", false, null);<\/script>'}else{C+='<script type="text/javascript">window.print();<\/script>'}A.contentWindow.document.open();if(!Ext.isEmpty(this.printCSS)){A.contentWindow.document.write(String.format(G,this.printCSS))}A.contentWindow.document.write(C);A.contentWindow.document.close()}});Wiz.DataHandler=function(){this.addEvents({sentQuery:true,gotResponse:true,gotServerErrorResponse:true});Wiz.DataHandler.superclass.constructor.call(this)};Ext.extend(Wiz.DataHandler,Ext.util.Observable,{sendQuery:function(B,A){log.profile("sendQuery");Ext.Ajax.request({url:B,success:this._handleQuerySuccess,failure:this._handleQueryFailure,scope:this,disableCaching:true,autoAbort:true,timeout:60000,moreSubqueriesComing:A});this.fireEvent("sentQuery",B)},_handleQuerySuccess:function(B,A){log.profile("sendQuery");var C=B.responseXML;this.fireEvent("gotResponse",C,A.url,A.moreSubqueriesComing)},_handleQueryFailure:function(B,A){log.profile("sendQuery");this.fireEvent("gotServerErrorResponse",B.status);if(!isDefined(this.mbox)){this.loadingMgr=new Ext.WindowGroup();this.loadingMgr.zseed="80000";var C="";if(B.status==500){C="The system encountered an error while trying to respond to your request."}else{C="The server does not seem to be responding in a timely manner at the moment."}this.mbox=new Ext.Window({title:"We are unable to fulfill your request...",width:500,height:165,closable:false,modal:true,manager:this.loadingMgr,resizeable:false,draggable:false,items:[{xtype:"simpleComponent",text:"&nbsp;&nbsp;"+C+" Please try again later.<br /><br />&nbsp;&nbsp;If this problem persists please contact the administrator.<br /><br />&nbsp;&nbsp;Error code: "+B.status+"<br /><br />"},{cls:"failureOkButton",xtype:"button",text:"&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;",handler:function(){this.mbox.hide()},scope:this,style:"position:relative; right: 220px; top: 10px;"}]})}this.mbox.show()}});var appLoaded=false;Wizard=function(){if(location.search.length>0&&location.hash.length===0){var A=location.protocol+"//"+location.host+location.pathname+"#"+location.search;location=A;return }this.controller=new Wiz.Controller({discoveryUrl:"discover",mappingId:"wizard",mappingVersion:"1",mappingConfigUrl:"discover/mapping?id=wizard&version=1",clientConfigUrl:"etc/ClientConfig.xml",hasMetadataUrl:"etc/MetadataExists.json",deferInitialization:true});this.controller.on("viewInitialized",function(){Ext.Fx.syncFx();var D=Ext.get("loading");D.hide();var C=Ext.get("loading-mask");C.fadeOut({remove:false,duration:0.5,endOpacity:0.75});C.fadeOut({remove:false,duration:0.5,endOpacity:0.5});C.fadeOut({remove:false,duration:0.5,endOpacity:0.25});C.fadeOut({remove:false,duration:0.5,endOpacity:0});var B=new Ext.util.DelayedTask(function(){var E=Ext.get("loadingContainer");E.remove()},this);B.delay(2000);appLoaded=true});this.controller.initialize()};function initApp(){window.wiz=new Wizard()}Wiz.BookmarkManager=function(A){A=A||{};Ext.apply(this,A);this.addEvents("urlModified");if(!this.initialState){this.initialState=this.getCurrentBookmarkState()}this.lastKnownState=this.initialState;if(!this.pollDelay){this.pollDelay=300}if(Ext.isIE){if(!this.historyFrame){this.historyFrame="history"}this.updateHistoryIframe(this.lastKnownState);this.ieMonitorTask=new Ext.util.DelayedTask(this._monitorIE,this)}else{this.monitorUrlTask=new Ext.util.DelayedTask(this.monitorUrl,this)}this.hashIndex=0};Ext.extend(Wiz.BookmarkManager,Ext.util.Observable,{navigate:function(A){if(A!==this.lastKnownState){if(Ext.isIE){this.lastKnownState=A}else{this.lastKnownState=A;location.hash=A;log.info("URL: "+location)}}},getCurrentBookmarkState:function(){if(Ext.isIE){var A=location.href.split("#");if(A.length>1){return"#"+A[1]}return""}return location.hash},startUrlMonitor:function(){if(Ext.isIE){this._monitorIE()}else{this.monitorUrl()}},monitorUrl:function(){var A=this.getCurrentBookmarkState();if(this.lastKnownState!==A){this.fireEvent("urlModified",A)}this.monitorUrlTask.delay(this.pollDelay)},isModelUpdated:function(B,A){return B==A},isUpdatedUrlByUser:function(B,A){return B==A},isBackButtonByUser:function(B,A){return B==A},_monitorIE:function(){var B=this.getCurrentBookmarkState();var A=this.getIframeCurrentState();if(!(B==A&&B==this.lastKnownState)){if(this.isModelUpdated(B,A)){location.hash=this.lastKnownState;this.updateHistoryIframe(this.lastKnownState)}else{if(this.isUpdatedUrlByUser(A,this.lastKnownState)){this.updateHistoryIframe(B);this.lastKnownState=B;this.fireEvent("urlModified",B)}else{if(this.isBackButtonByUser(B,this.lastKnownState)){location.hash=A;this.lastKnownState=A;this.fireEvent("urlModified",A)}}}}this.ieMonitorTask.delay(this.pollDelay)},getIframeCurrentState:function(){var D=this.getHistoryIframeDoc();var A=D.getElementById("state");var C=A.innerText;var B=A?C:null;return B},updateHistoryIframe:function(B){log.info("URL: "+location);var A='<html><body><div id="state">'+B+"</div></body></html>";try{var D=this.getHistoryIframeDoc();D.open("javascript:'<html></html>'");D.write(A);D.close();return true}catch(C){return false}},getHistoryIframeDoc:function(){return document.getElementById(this.historyFrame).contentWindow.document}});function isDefined(A){return(A!==undefined&&A!==null)}(function(){var H="ajaxlog";var J="dummy/?";var G=20;var L="debug";var C="warn";var I="info";var D="error";var A="profile";var F=0;var O=new Array(G);var N={};window[H]={debug:function(P){K(L,P)},warn:function(P){K(C,P)},info:function(P){K(I,P)},error:function(P){K(D,P)},profile:function(P){E(P)}};function E(P){var Q=new Date();if(P==undefined||P==""){K(A,"error: Please specify a label for your profile statement")}else{if(N[P]){K(A,[P,": ",Q-N[P],"ms"].join(""));delete N[P]}else{N[P]=Q;K(A,P)}}}function B(){var P=M();Ext.Ajax.request({url:J+P})}function M(){var Q="";var P=0;for(P=F;P<G;P++){Q=Q+"&"+O[P]}for(P=0;P<F;P++){Q=Q+"&"+O[P]}return Q}function K(P,Q){O[F]=P+": "+Q;F++;if(F>=G){F=0;B()}}})();(function(){var NAMESPACE="log";var defaultLoggers=[{name:"bblog",doLogging:true,doProfile:false,startProfile:"profile",endProfile:"profile"},{name:"console",doLogging:true,doProfile:false,startProfile:"time",endProfile:"timeEnd"},{name:"ajaxlog",doLogging:true,doProfile:true,startProfile:"profile",endProfile:"profile"}];var initialized=false;var loggers=[];var fcns={};var profileStart;var profileEnd=function(msg){};var profilers={};window[NAMESPACE]={init:function(initLogger){init(initLogger)},debug:function(msg){dispatch("debug",msg)},warn:function(msg){dispatch("warn",msg)},info:function(msg){dispatch("info",msg)},error:function(msg){dispatch("error",msg)},profile:function(msg){dispatchProfile(msg)},startProfile:function(msg){dispatchStartProfile(msg)},endProfile:function(msg){dispatchEndProfile(msg)}};function init(initLoggers){if(initialized){log.warn("(Log)already initialized");return }for(var ii=0;ii<initLoggers.length;ii++){var loggerDef=initLoggers[ii];if(isValidDefinition(loggerDef)){loggers.push(loggerDef)}}initialized=true}function isValidDefinition(loggerDef){if(!isDefined(loggerDef.name)||!(isDefined(loggerDef.doLogging)||isDefined(loggerDef.doProfile))){return false}return true}function dispatch(fcn,msg){if(!initialized){init(defaultLoggers)}if(isDefined(fcns[fcn])){fcns[fcn](msg)}else{var evalString=[];evalString.push("var v = function(msg) {");for(var i=0;i<loggers.length;i++){var loggerDef=loggers[i];if(!loggerDef.doLogging){continue}var proceed=true;eval("if (typeof("+loggerDef.name+') == "undefined") { proceed = false; }');if(!proceed){continue}eval("var logger = "+loggerDef.name+";");if(isDefined(logger[fcn])){evalString.push(loggerDef.name);evalString.push(".");evalString.push(fcn);evalString.push("(msg);")}}evalString.push("}");eval(evalString.join(""));fcns[fcn]=v;v(msg)}}function dispatchProfile(msg){if(!initialized){init(defaultLoggers)}if(isDefined(profilers[msg])){dispatchProfileEnd(msg)}else{dispatchProfileStart(msg)}}function dispatchProfileStart(msg){if(isDefined(profilers[msg])){return }else{if(isDefined(profileStart)){profilers[msg]=msg;profileStart(msg)}else{var start=[];var end=[];start.push("profileStart = function(msg) {");end.push("profileEnd = function(msg) {");for(var i=0;i<loggers.length;i++){var loggerDef=loggers[i];var proceed=true;eval("if (typeof("+loggerDef.name+') == "undefined") { proceed = false; }');if(!proceed){continue}if(loggerDef.doProfile){start.push(loggerDef.name);start.push(".");start.push(loggerDef.startProfile);start.push("(msg);");end.push(loggerDef.name);end.push(".");end.push(loggerDef.endProfile);end.push("(msg);")}}start.push("}");end.push("}");eval(start.join(""));eval(end.join(""));profilers[msg]=msg;profileStart(msg)}}}function dispatchProfileEnd(msg){if(isDefined(profilers[msg])){profileEnd(msg);delete profilers[msg]}}})();Wiz.ConfigHandler=function(A){A=A||{};if(!isDefined(A.discoveryUrl)){throw new Error("Wiz.ConfigHandler object requires the discovery service url!")}if(!isDefined(A.mappingId)){throw new Error("Wiz.ConfigHandler object requires a mappingId!")}if(!isDefined(A.mappingVersion)){throw new Error("Wiz.ConfigHandler object requires the mapping version!")}Ext.apply(this,A);this.addEvents("configLoading","configLoaded")};Ext.extend(Wiz.ConfigHandler,Ext.util.Observable,{DISCOVERYURL_CONFIGS:"/configs",NOCODEUNIQUETREE:0,load:function(){this.fireEvent("configLoading");this.wizardConfig={modelConfig:{},datasetSelectorConfig:{},viewConfig:{},datasetConfig:{}};this._loadHasMetadataStore()},_loadHasMetadataStore:function(){this.wizardConfig.modelConfig.hasMetadataStore=new Ext.data.JsonStore({autoLoad:true,url:this.hasMetadataUrl,fields:[]});this.wizardConfig.modelConfig.hasMetadataStore.on("load",function(B,A,C){this._loadConfigs()},this)},_loadConfigs:function(){Ext.Ajax.request({url:this.discoveryUrl+this.DISCOVERYURL_CONFIGS,disableCaching:false,callback:this._configsLoadHandler,scope:this})},_configsLoadHandler:function(P,M,E){log.profile("(ConfigHandler)_configsLoadHandler");var C=Ext.util.JSON.decode(E.responseText);this.groupCoordMap=new Ext.util.MixedCollection(false);var K=this._getClientConfig(C.ClientConfig);var B=C.DotStatMapping;var H=new Ext.util.MixedCollection(false);var N=new Ext.util.MixedCollection(false);var F=new Ext.util.MixedCollection(false);H.addAll(B.datasetCoordMap);N.addAll(B.datasetExclusionsMap);F.addAll(B.exclusionCoordMap);var D={datasetPriorityArray:B.datasetPriority,datasetSelectorExclusions:N,datasetCoordMap:H,groupCoordMap:this.groupCoordMap,exclusionCoordMap:F};var I=Wiz.util.UrlUtil.getInitialQueryCoords();var L=new Wiz.model.DatasetSelector(D);var A=false;var G=null;if(isDefined(I)){this._applyGroupCoordMap(I);A=Wiz.util.UrlUtil.isQueryMembersValid(I,K.coreMemberMap,K.optMemberMap);G=L.getDataset(I.initialQueryCoords)}if(!A||!isDefined(G)){this.invalidBookmarkReceived=true;I=Wiz.util.UrlUtil.parseInitialQuery("")}else{this.invalidBookmarkReceived=false}var J={aggregateList:C.Aggregates,coreMemberMap:K.coreMemberMap,optMemberMap:K.optMemberMap,dimensions:this._setupDimensions(K.coreMemberMap.getRange(0,K.coreMemberMap.getCount()-1),B.DimensionLabels),optDimensions:this._setupDimensions(K.optMemberMap.getRange(0,K.optMemberMap.getCount()-1),B.DimensionLabels),defaultQueryCoords:K.coreMemberDefaults,initialDataLayout:I.initialDataLayout,datasetSelector:L,dataLayoutDefaults:K.dataLayoutDefaults,datasetDownloadURLs:K.datasetDownloadURLs,datasetDotStatURLS:K.datasetDotStatURLS,datasetsWithMicrodata:B.datasetsWithMicrodata,datasetLabels:K.datasetLabels,defaultIsProjectLevelData:I.isProjectLevelData,projectLevelDataset:B.projectLevelDataset,initialQuery:I,selectionPriority:K.defaultSelectionPriority};Ext.apply(this.wizardConfig.modelConfig,J);var O;if(isDefined(this.wizardConfig.modelConfig.initialQuery.initialQueryCoords)&&this.wizardConfig.modelConfig.initialQuery.initialQueryCoords.length>0){O=true}else{O=false}this.wizardConfig.viewConfig={appDataDescription:K.appDataDescription,coreWidgetDefs:K.coreWidgetDefs,optWidgetDefs:K.optWidgetDefs,displayDataImmediately:O};log.profile("(ConfigHandler)_configsLoadHandler");this.fireEvent("configLoaded",this.wizardConfig)},_applyGroupCoordMap:function(B){var A=new Ext.util.MixedCollection(false,function(C){return C.toString()});A.addAll(B.initialQueryCoords);A.each(function(H,C,G){if(H.isGroup()){var F=this.groupCoordMap.get(H);for(var D=0;D<F.length;D++){var E=F[D];if(!this.coords.containsKey(E.toString())){B.initialQueryCoords.push(E)}}}},{coords:A,query:B,groupCoordMap:this.groupCoordMap})},_getClientConfig:function(B){var A=this._getDataSetConfig(B.DataLayout);var D=this._getWidgetDefinitions(B.Widgets.CoreWidgets,B.Widgets.DefaultMemberPriority);var C=this._getWidgetDefinitions(B.Widgets.OptionWidgets,B.Widgets.DefaultMemberPriority);return{appDataDescription:B.Data.Description,dataLayoutDefaults:A.dataLayoutDefaults,datasetLabels:A.dataSetLabels,datasetSelectorExclusions:A.datasetSelectorExclusions,datasetDownloadURLs:A.datasetDownloadURLs,datasetDotStatURLS:A.datasetDotStatURLS,coreWidgetDefs:D.widgets,coreMemberMap:D.mcMap,coreMemberDefaults:D.defaultMembers,optWidgetDefs:C.widgets,optMemberMap:C.mcMap,defaultSelectionPriority:B.Widgets.DefaultMemberPriority}},_getDataSetConfig:function(A){var K=[];var E=[];var D=[];var G=[];for(var H=A.length-1;H>=0;H--){var N=A[H];var B=N.Code;var C=[];var I=N.Rows;for(var L=0;L<I.length;L++){C.push(I[L].Code)}var F=[];var P=N.Columns;for(var M=0;M<P.length;M++){F.push(P[M].Code)}var Q=[];var O=N.Filters;for(var R=0;R<O.length;R++){var J=new Wiz.util.Coord(O[R].Code,"0");Q.push(J)}D[B]=Ext.util.Format.trim(N.DownloadURL);G[B]=Ext.util.Format.trim(N.DotStatURL);K[B]=N.Label;E[B]=new Wiz.view.DataLayout({dataset:B,rows:C,columns:F,filters:Q,hideRowsWithNoData:N.HideRowsWithNoData})}return{dataSetLabels:K,dataLayoutDefaults:E,datasetDownloadURLs:D,datasetDotStatURLS:G}},_getWidgetDefinitions:function(B,D){var F=new Ext.util.MixedCollection(false,function(X){return X.getMemberCode()});defaultMembers=[];var O=[];for(var S=B.length-1;S>=0;S--){var H=B[S];var N=H.Label;var V;if(isDefined(H.Priority)){V=H.Priority}else{V=D}var K=H.DatasetCode;var T=H.DimensionCode;var Q=""+H.SelectionRequired;if((!isDefined(K))||(""===K)){Q="true"}var R=H.MemberTree;var W=this._getMemberCoordTree(R,T,F,defaultMembers,V);var U=null;var G=H.SearchBox;if(isDefined(G)){U=G.DefaultText}var A=H.MemberBrowser;var I=[];if(isDefined(A)){for(var P=0;P<A.length;P++){var L=A[P];var M;if(isDefined(L.Priority)){M=L.Priority}else{M=V}I[P]=this._getMemberCoordTree(L,T,F,defaultMembers,M);I[P].label=L.Label}}var C=H.YearSelector;var J=null;if(isDefined(C)){J=this._getMemberCoordTree(C,T,F,defaultMembers,V)}var E={label:N,datasetCode:K,selectionRequired:Q,dimensionCode:T,quickPicksTree:W,searchBoxLabel:U,memberBrowserTree:I,yearSelector:J};O.push(E)}return{mcMap:F,defaultMembers:defaultMembers,widgets:O}},_getMemberCoordTree:function(E,C,J,I,F){if(!isDefined(E)){return null}var K=new Wiz.model.CoordTree();var A=E.MemberGroup;if(!isDefined(A)){A=E.Member;if(!isDefined(A)){return null}}for(var D=0,H=A.length;D<H;D++){var G=A[D];var B=this._getMemberCoordNode(G,C,J,I,F);K.appendNode(B)}K.dimensionCode=C;return K},_getMemberCoordNode:function(E,F,Q,M,K){var B=E.Code;var O=false;if(!B&&E.GroupingCode){B=Wiz.util.GROUP_IDENTIFIER+E.GroupingCode;O=true}var P=K;if(E.Priority){P=E.Priority}var L;if(B){L=new Wiz.util.Coord(F,B,O,P);if(!Q.containsKey(L.toString())){var H=new Wiz.model.Member({coord:L,label:E.Label,metadataExists:false,priority:P});Q.add(L.toString(),H)}}else{B="nocode"+this.NOCODEUNIQUETREE++;L=new Wiz.util.Coord(F,B,false,P)}var C=[];var I=E.Member;if(I){var N=[];for(var G=0;G<I.length;G++){var J=I[G];var A=this._getMemberCoordNode(J,F,Q,M,P);C.push(A);N.push(A.coord)}if(L.isGroup()){this.groupCoordMap.add(L,N)}}if(M&&E.IsDefault){M.push(new Wiz.util.Coord(F,B,O,P))}var D=new Wiz.model.CoordNode({coord:L,children:C,label:E.Label,isDefault:E.IsDefault});return D},_setupDimensions:function(C,D){var J=[];var G=[];for(var E=0,H=C.length;E<H;E++){var F=C[E].getDimensionCode();var B=C[E];var I=J.indexOf(F);if(-1===I){I=J.length;J[I]=F;G[I]=[]}G[I].push(B)}var A=new Ext.util.MixedCollection(false);for(var E=0;E<J.length;E++){A.add(""+J[E],new Wiz.model.Dimension({code:J[E],members:G[E],label:D[J[E]]}))}return A}});Wiz.Controller=function(A){this.bookmark=location.hash;A=A||{};Ext.apply(this,A);this.addEvents("viewInitialized");this.configHandler=new Wiz.ConfigHandler({discoveryUrl:this.discoveryUrl,mappingId:this.mappingId,mappingVersion:this.mappingVersion,defaultQuery:this.defaultQuery,clientConfigUrl:this.clientConfigUrl,hasMetadataUrl:this.hasMetadataUrl});this.configHandler.on("configLoaded",this._initialize,this);if(!this.deferInitialization){this.configHandler.load()}this.bookmarkManager=new Wiz.BookmarkManager({pollDelay:100,historyFrame:"history"})};Ext.extend(Wiz.Controller,Ext.util.Observable,{initialize:function(){this.configHandler.load()},_initialize:function(A){if(this.configHandler.invalidBookmarkReceived){this.displayInvalidBookmarkError()}this.configHandler.un("configLoaded",this._initialize,this);this.configHandler=null;this.model=new Wiz.model.Model(A.modelConfig);this.view=new Wiz.view.View(A.viewConfig,this.model);this.view.on("initComplete",function(){this.fireEvent("viewInitialized")},this);this.view.initialize();this.dataHandler=new Wiz.DataHandler();this.dataHandler.on("gotResponse",function(D,C,B){this.model.updateQueryResults(D,B);if(!B){this.view.indicateDataLoadingFinished()}},this);this.dataHandler.on("gotServerErrorResponse",function(){this.view.indicateDataLoadingFinished();this.view.resetLayout()},this);this.view.on("clickedDisplayData",function(){this.model.validateAndUpdateDataLayout()},this);this.view.on("clickLoadPageData",this._sendQueryForData,this);this.view.on("showCoreDimensions",function(){this.view.showCoreDimensions()},this);this.view.on("gridRequiresMoreData",this._sendQueryForData,this);this.view.on("gridLayoutComplete",function(B){var C=(this.model.datasetLocked===true?this.model.dataset:false);var D=Wiz.util.UrlUtil.updateBookmarkUrl(B,C);this.bookmarkManager.navigate(D)},this);this.bookmarkManager.on("urlModified",this.loadNewBookmark,this);this.view.on("resetQueryClicked",function(){this.model.reset()},this);this.model.on("reset",function(){var B=Wiz.util.UrlUtil.getBookmarkUrlFromModel(this.model);this.bookmarkManager.navigate("#?"+B)},this);if(this.model.defaultIsProjectLevelData){this.model.forceDataset(this.model.projectLevelDataset,false)}if(this.view.displayDataImmediately){this.displayGrid()}this.bookmarkManager.startUrlMonitor()},displayGrid:function(){if(this.view.optWidgetsRendered){this.view.displayDataGrid()}else{var A=new Ext.util.DelayedTask(this.displayGrid,this);A.delay(500)}},loadNewBookmark:function(A){if(A=="#"){location=location.pathname;return }var B;if(A.length>0){B=Wiz.util.UrlUtil.parseInitialQuery(A)}else{location=location.pathname;return }if(Wiz.util.UrlUtil.isQueryMembersValid(B,this.model.coreMemberMap,this.model.optMemberMap)){this.model.updateFromBookmark(B)}else{this.displayInvalidBookmarkError()}},_handleQueryResponse:function(){if(this.currentQuery<this.queryUrlArray.length){this.dataHandler.on("gotResponse",this.handlerFn,this,{single:true})}else{return }var A=false;if(this.currentQuery+1<this.queryUrlArray.length){A=true}this.dataHandler.sendQuery(this.queryUrlArray[this.currentQuery++],A)},_sendQueryForData:function(B){this.view.indicateDataLoading();var A=1;this.dataHandler.on("gotResponse",this._handleQueryResponse,{queryUrlArray:B,currentQuery:A,dataHandler:this.dataHandler,handlerFn:this._handleQueryResponse},{single:true});var C=false;if(B.length>1){C=true}this.dataHandler.sendQuery(B[0],C)},displayInvalidBookmarkError:function(){Ext.MessageBox.show({title:"Page not found",msg:'We apologize, but the page you are trying to access cannot be found. This could be because:<br /><div style="padding-left: 30px; padding-right: 30px;"><li>You might have typed or copied the web address incorrectly.</li><li>The bookmarked data might have been changed, moved, deleted, or be unavailable.</li></div><br /><br />Please try one of the following options:<div style="padding-left: 30px; padding-right: 30px;"><li>If you typed or copied the page address in the address bar, please verify that it is spelled correctly.</li><li>If you used a bookmark to access this page, please return to the OECD wizard and use the interface to find the data you are looking for.</li></div><br /><br />The selections have been reset to either their default or previously selected values.',buttons:Ext.Msg.OK,minWidth:350})}});Wiz.model.CoordTree=function(A){A=A||{};A.nodes=A.nodes||[];Ext.apply(this,A)};Wiz.model.CoordTree.prototype={getNodes:function(){return this.nodes||null},setNodes:function(A){this.nodes=A},appendNode:function(A){this.nodes.push(A)}};Wiz.model.CoordNode=function(A){A=A||{};if(A.coord===undefined){throw new Error("CoordNode object requires the coord parameter!")}if(A.children===undefined){A.children=[]}Ext.apply(this,A)};Wiz.model.CoordNode.prototype={hasChildren:function(){return(this.children.length>0)},getCoord:function(){return this.coord},getChildren:function(){return this.children},appendChild:function(A){this.children.push(A)}};Wiz.model.Dimension=function(B){B=B||{};if(!B.members){throw new Error("Dimension object requires members!")}if(!B.code){throw new Error("Dimension object requires the code parameter!")}Ext.apply(this,B);for(var C=0,A=this.members.length;C<A;C++){this.members[C].on("select",function(D){if(this.eventsEnabled){this.fireEvent("memberSelected",this.code,D)}},this);this.members[C].on("deselect",function(D){if(this.eventsEnabled){this.fireEvent("memberDeselected",this.code,D)}},this)}this.addEvents("memberSelected","memberDeselected");Wiz.model.Dimension.superclass.constructor.call(this);this.eventsEnabled=true};Ext.extend(Wiz.model.Dimension,Ext.util.Observable,{getDimensionCode:function(){return this.code},getLabel:function(){return this.label},getMembers:function(){return this.members},getSelectedMembers:function(){var C=new Array();for(var B=0,A=this.members.length;B<A;B++){if(this.members[B].isSelected()){C.push(this.members[B])}}return C},getEnabledOrDisabledMembers:function(B){var D=new Array();for(var C=0,A=this.members.length;C<A;C++){if(this.members[C].isDisabled()!=B){D.push(this.members[C])}}return D},getEnabledMembers:function(){return this.getEnabledOrDisabledMembers(true)},getDisabledMembers:function(){return this.getEnabledOrDisabledMembers(false)},getSelectedCoords:function(){var C=new Array();for(var B=0,A=this.members.length;B<A;B++){if(this.members[B].isSelected()){C.push(this.members[B].getCoord())}}return C},deselectAllMembers:function(){for(var B=0,A=this.members.length;B<A;B++){if(this.members[B].isSelected()){this.members[B].setSelected(false)}}},deselectAllMembersAndSelectSingleMember:function(C){for(var B=0,A=this.members.length;B<A;B++){if(this.members[B].isSelected()&&(C.getCoord().toString!==this.members[B].getCoord().toString())){this.members[B].setSelected(false)}}C.setSelected(true)},suspendEvents:function(){this.eventsEnabled=false},resumeEvents:function(){this.eventsEnabled=true},isSuspended:function(){return !this.eventsEnabled},hasMetadata:function(){return this.metadataExists},setHasMetadata:function(A){this.metadataExists=A}});Wiz.model.DatasetSelector=function(A){A=A||{};if(!isDefined(A.datasetCoordMap)){throw new Error("DatasetSelector requires the datasetCoordMap parameter!")}if(!isDefined(A.datasetSelectorExclusions)){throw new Error("DatasetSelector requires the datasetSelectorExclusions parameter!")}if(!isDefined(A.datasetPriorityArray)){throw new Error("DatasetSelector requires the datasetPriorityArray parameter!")}if(!isDefined(A.exclusionCoordMap)){throw new Error("DatasetSelector requires the exclusionCoordMap parameter!")}Ext.apply(this,A);this.forcedDataset=undefined;this.validDatasetsCache=new Ext.util.MixedCollection(false);this.validCoordsCache=new Ext.util.MixedCollection(false)};Wiz.model.DatasetSelector.prototype={getDataset:function(A){this._updateValidDatasetsAndCoords(A);if(this.validDatasets.length>0){return this.validDatasets[0]}return null},isDatasetValidForCoords:function(E,C){var G=this.datasetCoordMap.get(E);var B=this.datasetSelectorExclusions.get(E);var D=true;for(var A=C.length-1;A>=0&&D;A--){var F=C[A];if((!B||B.indexOf(F.dim)===-1)&&!F.isGroup()){if((G.indexOf(F.toString())===-1)){D=false}}}return D},getInvalidCoordsForDataset:function(E,D){var G=this.datasetCoordMap.get(E);var C=this.datasetSelectorExclusions.get(E);var A=[];for(var B=D.length-1;B>=0;B--){var F=D[B];if((!C||C.indexOf(F.dim)===-1)&&!F.isGroup()){if((G.indexOf(F.toString())===-1)){A.push(F)}}}return A},isCoordValidForDataset:function(D,C){var B=this.datasetCoordMap.get(C);var A=this.datasetSelectorExclusions.get(C);if(A.indexOf(D.dim)!=-1||B.indexOf(D.toString())!==-1){return true}if(D.isGroup()){return this._isGroupSelectable(D)}return false},isCoordValidForCurrentDatasets:function(B,A){if(this.excludedDims.indexOf(B.dim)!==-1||this.validCoordsArray.indexOf(B.toString())!=-1){return true}if(B.isGroup()){return this._isGroupSelectable(B,A)}if(isDefined(A)&&B.priority>A){return true}return false},_isGroupSelectable:function(E,B){if(!this.groupCoordMap){return false}else{var A=this.groupCoordMap.get(E);for(var C=0;C<A.length;C++){var D=A[C];if(!this.forcedDataset){if(!this.isCoordValidForCurrentDatasets(D,B)){return false}}else{return this.isCoordValidForDataset(D,this.forcedDataset)}}return true}},_updateValidDatasetsAndCoords:function(C){this.validDatasets=this.validDatasetsCache.get(C);if(!this.validDatasets){this.validDatasets=[];this.excludedDims=[];for(var F=0;F<this.datasetPriorityArray.length;F++){var D=this.datasetPriorityArray[F];var B=this.datasetSelectorExclusions.get(D);if(this.isDatasetValidForCoords(D,C)){this.validDatasets.push(D);if(undefined!=B){for(var E=0;E<B.length;E++){if(this.excludedDims.indexOf(B[E])===-1){this.excludedDims.push(B[E])}}}}}this.validDatasetsCache.add(C,this.validDatasets)}this.validCoordsArray=this.validCoordsCache.get(C);if(!this.validCoordArray){this.validCoordsArray=[];for(var A=this.validDatasets.length-1;A>=0;A--){this.validCoordsArray=this.validCoordsArray.concat(this.datasetCoordMap.get(this.validDatasets[A]))}this.validCoordsCache.add(C,this.validCoordsArray)}},updateValidCoordsArray:function(A){this.validCoordsArray=this.datasetCoordMap.get(A);this.excludedDims=this.datasetSelectorExclusions.get(A)}};var MEMBER_SELECT_EVENT=0;var MEMBER_DESELECT_EVENT=1;var MEMBER_ENABLE_EVENT=2;var MEMBER_DISABLE_EVENT=3;Wiz.model.Member=function(A){A=A||{};if(!A.coord){throw new Error("Member object requires the coord parameter!")}if(!A.label){throw new Error("Member object requires the label parameter!")}A.disabled=A.disabled===true;A.selected=A.selected===true;Ext.apply(this,A);this.addEvents("memberStateChanged","metadataUpdated");Wiz.model.Member.superclass.constructor.call(this);this.eventsEnabled=true};Ext.extend(Wiz.model.Member,Ext.util.Observable,{setSelected:function(A){if((A!==undefined&&A!==null&&(typeof A==="boolean"))&&this.selected!==A&&!this.disabled){this.selected=A;if(this.eventsEnabled){if(A){this.fireEvent("memberStateChanged",this,MEMBER_SELECT_EVENT)}else{this.fireEvent("memberStateChanged",this,MEMBER_DESELECT_EVENT)}}}},setEnabled:function(A){if(A!==undefined&&A!==null&&(typeof A==="boolean")&&A==this.disabled){if(this.eventsEnabled){if(A){this.disabled=!A;this.fireEvent("memberStateChanged",this,MEMBER_ENABLE_EVENT)}else{if(this.selected){this.setSelected(false)}this.disabled=!A;this.fireEvent("memberStateChanged",this,MEMBER_DISABLE_EVENT)}}}},getCoord:function(){return this.coord},getDimensionCode:function(){return this.coord.dim},getMemberCode:function(){return this.coord.member},getLabel:function(){return this.label},isSelected:function(){return this.selected},isDisabled:function(){return this.disabled},hasMetadata:function(){return this.metadataExists},setHasMetadata:function(A){this.metadataExists=A;this.fireEvent("metadataUpdated",A)},suspendEvents:function(){this.eventsEnabled=false},resumeEvents:function(){this.eventsEnabled=true},toString:function(){return"Member "+this.coord+": "+this.label+"(enabled="+!this.isDisabled()+",selected="+this.isSelected()+")"},isImpliedForDataset:function(B){var A=this.impliedMappings.indexOf(B);if(A!==-1){if(B===this.impliedMappings[A]){return true}}return false}});Wiz.model.Model=function(A){A=A||{};Ext.apply(this,A);this.addEvents("beforeDatasetChange","datasetChanged","datasetLocked","datasetUnlocked","selectionsUpdated","coreSelectionsUpdated","optionalSelectionsUpdated","reset","layoutUpdated","resultsUpdated","processedSelectionsChanged","directTableAccess");Wiz.model.Model.superclass.constructor.call(this);this.dataset=null;this.queryResults=new Ext.util.MixedCollection(false);this.datasetLocked=false;if(this.initialQuery.initialQueryCoords.length===0){this.initialQuery.initialQueryCoords=this.defaultQueryCoords}this.pendingOptionalSelections=[];this._initMemberEvents();this.updateFromBookmark(this.initialQuery);if(this.initialDataLayout.columns.length===0||this.initialDataLayout.rows.length===0){this.initialDataLayout=this.dataLayoutDefaults[this.dataset]}else{this.initialDataLayout.dataset=this.dataset}this.dataLayout=this.initialDataLayout;this._initMetadataFlag(true)};Ext.extend(Wiz.model.Model,Ext.util.Observable,{updateQueryResults:function(D,B){var C=D.getElementsByTagName("Datum");this.queryResults.clear();var A=this._parseQueryResults(C);this.queryResults=A;this.fireEvent("resultsUpdated",A,B)},_parseQueryResults:function(G){var C=new Ext.util.MixedCollection(false);for(var B=0;B<G.length;B++){var A=G[B];var F=A.getAttribute("Coord").split("+");var E=A.getAttribute("Value");var D=A.getAttribute("Coord");var H=Wiz.util.Coord.canonicalizeValueCoord(D);if(!C.containsKey(H)){C.add(H,E)}}return C},_initMemberEvents:function(){var A=this.getCoreMembers();for(var B=A.length-1;B>=0;B--){var C=A[B];this.on("coreSelectionsUpdated",function(){var D=this.member.getCoord();if(!this.model.isCoordValidForCurrentDatasets(D)){if(!this.member.isDisabled()){this.member.setEnabled(false)}}else{if(this.member.isDisabled()){this.member.setEnabled(true)}}},{model:this,member:C});this.on("datasetLocked",function(){var D=this.member.getCoord();if(!this.model.isCoordValidForCurrentDatasets(D)){if(!this.member.isDisabled()){this.member.setEnabled(false)}}else{if(this.member.isDisabled()){this.member.setEnabled(true)}}},{model:this,member:C});this.on("datasetUnlocked",function(){this.model.datasetSelector.forcedDataset=undefined;var D=this.member.getCoord();if(!this.model.isCoordValidForCurrentDatasets(D)){if(!this.member.isDisabled()){this.member.setEnabled(false)}}else{if(this.member.isDisabled()){this.member.setEnabled(true)}}},{model:this,member:C})}},getDimension:function(A){return this.dimensions.key(A+"")},getOptionalDimension:function(A){return this.optDimensions.key(A+"")},getOptRequiredDims:function(){var C=[];if(this.optionalDimSelectionRequiredMap){var A=this.optionalDimSelectionRequiredMap.get(this.getCurrentDataset());if(A){for(var B=A.length-1;B>=0;B--){var D=this.getOptionalDimension(A[B]);C.push(D)}}}return C},_getCoreRequiredDims:function(){var A=[];this.dimensions.each(function(D,B,C){this.push(D)},A);return A},_getRequiredDimsWithNoSelection:function(B){var A=[];var C=B?this.getOptRequiredDims():this._getCoreRequiredDims();if(C){for(var D=C.length-1;D>=0;D--){var E=C[D].getSelectedMembers();if((!E)||E.length===0){A.push(C[D])}}}return A},getDatasetLabel:function(A){return this.datasetLabels[A]},getMember:function(A){var B=this.coreMemberMap.get(A.toString());if(B===undefined){B=this.optMemberMap.get(A.toString())}return B},getOptionalMember:function(A){return this.optMemberMap.get(A.toString())},getCoreMembers:function(){return this.coreMemberMap.getRange(0,this.coreMemberMap.getCount()-1)},getOptionalMembers:function(){return this.optMemberMap.getRange(0,this.optMemberMap.getCount()-1)},clearOptionalSelections:function(){var B=this.getOptionalMembers();for(var C=B.length-1;C>=0;C--){var A=B[C];if(A.isSelected()){A.setSelected(false)}}},getSelectedCoreCoords:function(){var D=[];var C=this.getCoreMembers();for(var B=C.length-1;B>=0;B--){var A=C[B];if(A.isSelected()){D.push(A.getCoord())}}return D},getSelectedOptionalCoords:function(){var D=[];var B=this.getOptionalMembers();for(var C=B.length-1;C>=0;C--){var A=B[C];if(A.isSelected()){D.push(A.getCoord())}}return D},isCoordValidForCurrentDatasets:function(A){if(!this.datasetLocked){return this.datasetSelector.isCoordValidForCurrentDatasets(A,this.selectionPriority)}else{return this.datasetSelector.isCoordValidForDataset(A,this.dataset)}},reset:function(){var A=this._getMemberChangeCollectionFromCoordArray(this.defaultQueryCoords);this._setModelState(A);this.dataLayout=this.dataLayoutDefaults[this.dataset];this.fireEvent("reset")},directTableAccess:function(C){var B=this.datasetSelector.datasetCoordMap.get(C).concat(this.datasetSelector.exclusionCoordMap.get(C));var A=this._getMemberChangeCollectionFromCoordArray(B);this._setModelState(A);this.fireEvent("directTableAccess",this)},_deselectAllCoreMembers:function(){var C=this.getCoreMembers();for(var B=0,A=C.length;B<A;B++){if(C[B].isSelected){C[B].setSelected(false);C[B].setEnabled(true)}}},_hasAtLeastOneSelectedMemberForDimension:function(C){var B=this.getSelectedCoreCoords();for(var A=0;A<B.length;A++){if(B[A].dim==C){return true}}return false},validateAndUpdateDataLayout:function(){var A=this.getCurrentDataset();if(A!==this.dataLayout.dataset){var B=this.dataLayoutDefaults[A];if(B){B.dataset=A;this.updateDataLayout(B)}else{}}else{this.updateDataLayout()}},updateDataLayout:function(A){if(A){this.dataLayout=A;this.fireEvent("layoutUpdated",A)}else{this.fireEvent("layoutUpdated",this.dataLayout)}},getCurrentDataset:function(){return this.dataset},getDataSetLabel:function(A){return this.dataSets.get(A).label},_initMetadataFlag:function(E){if(E){this.datasetsWithMetadata=[]}var C=this.dataset;if(!this.membersWithMetadataMap){this.membersWithMetadataMap=new Ext.util.MixedCollection(false)}var L=this.membersWithMetadataMap.clone();this.membersWithMetadataMap.clear();for(var G=0;G<this.hasMetadataStore.getTotalCount();G++){var H=this.hasMetadataStore.getAt(G);var B=H.json;var J=B.split(":");if(E&&J.length===1){this.datasetsWithMetadata[J[0]]=true}if(J[0]!==C){continue}if(J.length==2){var D=this.getDimension(J[1]);if(D){D.metadataExists=true}var A=this.getOptionalDimension(J[1]);if(A){A.metadataExists=true}}else{if(J.length==3){var I=Wiz.util.Coord.valueOf(J[1]+"_"+J[2]);var F=this.getMember(I);if(F){F.setHasMetadata(true);this.membersWithMetadataMap.add(I,F);L.remove(F)}}}}var K=L.eachKey(function(N,M){M.setHasMetadata(false)},this)},hasMetadata:function(C,B){if(!B){B=this.dataset}var I=[];I.push(B);var H=C.getCoord();I.push(H.dim);I.push(H.member);var E=I.join(":");for(var D=0,G=this.hasMetadataStore.getTotalCount();D<G;D++){var F=this.hasMetadataStore.getAt(D);var A=F.json;if(A==E){return true}}return false},hasDatasetMetadata:function(A){return this.datasetsWithMetadata[A]===true},hasMicrodata:function(A){return isDefined(this.datasetsWithMicrodata[A])},getProjectLevelDatasetCode:function(){var A="";for(var B in this.datasetsWithMicrodata){A=B;break}return A},appHasMicrodata:function(){var B=false;for(var A in this.datasetsWithMicrodata){B=true;break}return B},_setModelState:function(A){if(this.datasetLocked){this.releaseDataset(true)}this._deselectAllCoreMembers();this.clearOptionalSelections();this._updateMembers(A,true,false)},updateFromBookmark:function(C){var B=C.initialQueryCoords;var A=this._getMemberChangeCollectionFromCoordArray(B);this._setModelState(A);if(C.initialDataLayout){this.dataLayout=C.initialDataLayout;if(!C.initialDataLayout.dataset){this.dataLayout.dataset=this.getCurrentDataset()}}if(isDefined(C.lockedDataset)&&C.lockedDataset.length>0){this.forceDataset(C.lockedDataset,false)}this.fireEvent("directTableAccess",this)},updateMembers:function(B){var A=true;this._updateMembers(B,false,true)},updateOptionalWidgetMembers:function(B){var A=true;if(!this.pendingOptionalSelections.length>0){this._updateMembers(B,false,true)}else{this.commitOptionalMemberSelections()}},_updateMembers:function(G,E,F){if(isDefined(this.dataset)&&isDefined(G.selections)&&G.selections.length>0){var A=this._getSelectionPriority(G);if(A>this.selectionPriority){if(!this.datasetSelector.isDatasetValidForCoords(this.dataset,G.selections)){var C=this.datasetSelector.getDataset(G.selections);var B=this.datasetSelector.getInvalidCoordsForDataset(C,this.getSelectedCoreCoords());G.deselections=G.deselections.concat(B)}}}if(!isDefined(E)){E=false}if(!isDefined(F)){F=true}var D=true;if(G.getOptionalSelectionChangeCount()>0){this.pendingOptionalSelections=G.optionalSelections;this.pendingOptionalDeselections=G.optionalDeselections}if(G.getCoreSelectionChangeCount()>0){D=this._updateCoreMemberSelections(G.selections,G.deselections,{commitCallbackFnc:this.commitDatasetChange.createDelegate(this),honorDatasetLock:F,skipWarnings:E})}if(D){this.commitOptionalMemberSelections()}},_getSelectionPriority:function(E){var B=this.selectionPriority;var D=E.selections;for(var A=0;A<D.length;A++){var C=D[A];if(C.priority>B){B=C.priority}}return B},commitOptionalMemberSelections:function(){this._updateOptionalMemberSelections(this.pendingOptionalSelections,this.pendingOptionalDeselections);this.pendingOptionalSelections=[];this.pendingOptionalSelections=[]},commitDatasetChange:function(){if(this._commitPendingCoreMemberSelections()){this._commitPendingDatasetChange(this.pendingDataset)}this.pendingDataset=null},_commitPendingCoreMemberSelections:function(){if(this.fireEvent("beforeSelectionsUpdated")===false){this.pendingSelections=null;this.pendingDeselections=null;return false}for(var D=0,B=this.pendingSelections.length;D<B;D++){var C=this.getMember(this.pendingSelections[D]);C.setSelected(true)}for(var F=0,A=this.pendingDeselections.length;F<A;F++){var E=this.getMember(this.pendingDeselections[F]);E.setSelected(false)}this._updatePriority();this.fireEvent("selectionsUpdated");this.fireEvent("coreSelectionsUpdated");return true},_commitPendingDatasetChange:function(A){var B=this.dataset;this.dataset=A;log.info("(Model)changed to dataset: "+A);this.fireEvent("datasetChanged",B,A);this._initMetadataFlag()},_updatePriority:function(){var B=-1;var F=this.dimensions;var E=[];E.selected=[];this.dimensions.each(function(I,G,H){var J;this.selected=this.selected.concat(I.getSelectedMembers())},E);var C=E.selected;for(var A=0;A<C.length;A++){var D=C[A].priority;if(D>B){B=D}}this.selectionPriority=B},_updateCoreMemberSelections:function(G,H,I){if(!isDefined(I.honorDatasetLock)){I.honorDatasetLock=true}if(!isDefined(I.skipWarnings)){I.skipWarnings=false}this.pendingSelections=G;this.pendingDeselections=H;var C=this.getSelectedCoreCoords();var A=this._updateCoordArray(C,G,H);var F;var B=false;if(I.honorDatasetLock&&this.datasetLocked){F=this.dataset}else{if(!I.honorDatasetLock&&this.datasetLocked){F=this.datasetSelector.getDataset(A);this.pendingDataset=F;I.commitCallbackFnc();B=true}else{F=this.datasetSelector.getDataset(A)}}if(!B){var E=this.dataset!==F;if(E){var D=this.dataset;this.pendingDataset=F;if(!I.skipWarnings){if(this.fireEvent("beforeDatasetChange",D,F,I.commitCallbackFnc)===false){return false}}else{if(this.datasetLocked){I.commitCallbackFnc()}}this._commitPendingDatasetChange(this.pendingDataset);this._commitPendingCoreMemberSelections()}else{this._commitPendingCoreMemberSelections();return true}}return false},_updateOptionalMemberSelections:function(G,D){for(var E=0,B=G.length;E<B;E++){var C=this.getOptionalMember(G[E]);C.setSelected(true)}if(D){for(var H=0,A=D.length;H<A;H++){var F=this.getOptionalMember(D[H]);F.setSelected(false)}}this.fireEvent("selectionsUpdated");this.fireEvent("optionalSelectionsUpdated")},forceDataset:function(A,B){this.pendingDataset=A;if(B){this.fireEvent("beforeDatasetChange",this.dataset,A,this.commitForcedDatasetChange.createDelegate(this),B)}else{this.commitForcedDatasetChange()}},commitForcedDatasetChange:function(){this.datasetSelector.forcedDataset=this.pendingDataset;this._commitPendingDatasetChange(this.pendingDataset);this.datasetLocked=true;this.fireEvent("datasetLocked",this.pendingDataset);this.datasetSelector.updateValidCoordsArray(this.pendingDataset);this.pendingDataset=null},releaseDataset:function(A){this._updateCoreMemberSelections([],[],{commitCallbackFnc:this.commitReleaseDataset.createDelegate(this),honorDatasetLock:false,skipWarnings:A})},commitReleaseDataset:function(){var A=this.dataset;this.datasetSelector.forcedDataset=undefined;this._commitPendingDatasetChange(this.pendingDataset);this.pendingDataset=null;this.datasetLocked=false;this.fireEvent("datasetUnlocked",A)},_getMemberChangeCollectionFromCoordArray:function(C){var A=new Wiz.util.MemberChangeCollection();for(var B=0;B<C.length;B++){var E=C[B];if(E instanceof String){E=Wiz.util.Coord.valueOf(E)}var D=this.coreMemberMap.get(E);if(D){A.selectMember(D.getCoord())}else{D=this.optMemberMap.get(E);if(!D){continue}A.selectOptionalMember(D.getCoord())}}return A},_updateCoordArray:function(F,H,B){var I=F.concat([]);for(var D=0,E=B.length;D<E;D++){I.remove(B[D])}for(var C=0,A=H.length;C<A;C++){var G=H[C];if(I.indexOf(G)===-1){I.push(G)}}return I},moveAggregrateMembersToFront:function(E){if(!isDefined(this.aggregateList)){return E}var B=[];var A=[];for(var C=0;C<E.length;C++){var D=E[C];if(this._isAggregate(D)){B.push(D)}else{A.push(D)}}return B.concat(A)},_isAggregate:function(B){var A=B.getCoord().toString();if(this.aggregateList.indexOf(A)!==-1){return true}return false},getSelectedDimensionMembers:function(A){var D=[];var C=this.getDimension(A);var B=this.getOptionalDimension(A);if(C){D=C.getSelectedMembers()}if(B){D=D.concat(B.getSelectedMembers())}return D}});Wiz.util.MemberChangeCollection=function(){this.selections=[];this.deselections=[];this.optionalSelections=[];this.optionalDeselections=[]};Wiz.util.MemberChangeCollection.prototype={SELECTCORE:0,DESELECTCORE:1,OPTIONALSELECT:4,OPTIONALDESELECT:5,selectMember:function(A){this._changeMember(this.SELECTCORE,A)},deselectMember:function(A){this._changeMember(this.DESELECTCORE,A)},selectOptionalMember:function(A){this._changeMember(this.OPTIONALSELECT,A)},deselectOptionalMember:function(A){this._changeMember(this.OPTIONALDESELECT,A)},getCoreSelectionChangeCount:function(){return this.selections.length+this.deselections.length},getOptionalSelectionChangeCount:function(){return this.optionalSelections.length+this.optionalDeselections.length},_changeMember:function(C,B){var D,A;switch(C){case this.SELECTCORE:D=this.selections;A=this.deselections;break;case this.DESELECTCORE:D=this.deselections;A=this.selections;break;case this.OPTIONALSELECT:D=this.optionalSelections;A=this.optionalDeselections;break;case this.OPTIONALDESELECT:D=this.optionalDeselections;A=this.optionalSelections;break}A.remove(B);D.push(B)}};Wiz.util.SearchUtil={};Wiz.util.SearchUtil.containsSearchText=function(C){var A=false;var D=/[a-zA-Z]/;var B=/[0-9]/;if(D.test(C)||B.test(C)){A=true}return A};Wiz.util.SearchUtil.parseNewKeywords=function(E){var C=[];var B="";var A=false;var D=false;for(var F=0;F<E.length;F++){if(E.charAt(F)==" "||E.charAt(F)=="+"){if(A){B+=E.charAt(F)}else{if(B.length>0){C.push(B);B=""}}}else{if(E.charAt(F)=='"'){if(!A){A=true}else{D=true}}else{B+=E.charAt(F)}if(D){C.push(B);B="";A=false;D=false}}}if(B.length>0){C.push(B)}return C};Wiz.util.SearchUtil.mergeKeywordArrays=function(E,F){var B=[];for(var D=0;D<E.length;D++){var C=false;for(var A=0;A<F.length;A++){if(E[D].indexOf(F[A])==0&&E[D].length==F[A].length){C=true}}if(!C){B.push(E[D])}}for(var A=0;A<F.length;A++){B.push(F[A])}return B};Wiz.util.SearchUtil.createNewKeywordString=function(A){var C="";for(var B=0;B<A.length;B++){C+=A[B];if(B<A.length-1){C+="+"}}return C};Wiz.util.SearchUtil.recreateSearchTextFieldString=function(B){var D="";for(var C=0;C<B.length;C++){var A=B[C];A=unescape(A);if(A.indexOf(" ")>0){A='"'+A+'"'}D+=A;if(C<B.length-1){D+=" "}}return D};Ext.apply(Ext.form.VTypes,{microdataSearchKeywordsText:"This field should only contain letters, numbers, spaces, +, - and _",microdataSearchKeywords:function(A){var B=/^[\"\ \+\-_a-zA-Z0-9]*$/;return B.test(A)}});Wiz.util.UrlUtil={URL_DIM_MEMBER_DELIMITER:":",URL_MEMBER_DELIMITER:",",URL_PARAM_DELIMITER:"+",YEARDIM:"6"};Wiz.util.UrlUtil.getInitialQueryCoords=function(){return Wiz.util.UrlUtil.parseInitialQuery(Wiz.util.UrlUtil.extractQueryString())};Wiz.util.UrlUtil.parseInitialQuery=function(E){var B=this.getUrlParam("q",E);var F=Wiz.util.UrlUtil.getCoordsFromParam(B);var G=this.getUrlParam("x",E);var J;if(G.length===0){J=[]}else{J=G.split(",")}var C=this.getUrlParam("y",E);var A;if(C.length===0){A=[]}else{A=C.split(",")}var I=this.getUrlParam("f",E);var D=Wiz.util.UrlUtil.getFiltersFromParam(I,F);var K=(this.getUrlParam("hrwnd",E)=="true");var L=(this.getUrlParam("lock",E));var H=new Wiz.view.DataLayout({rows:J,columns:A,filters:D,hideRowsWithNoData:K});return{initialQueryCoords:F,axisDimensions:{x:J,y:A},initialDataLayout:H,lockedDataset:L}};Wiz.util.UrlUtil.getFiltersFromParam=function(I,D){var C=[];if(isDefined(I)&&""!=I){var J=I.split(",");for(var F=0;F<J.length;F++){var G=J[F].split(":");var E=[];for(var B=D.length-1;B>=0;B--){var H=D[B];if(H.dim==G[0]){E.push(H.member)}}var K;if(isDefined(G[1])&&G[1]!=="0"){K=G[1]}else{K="0"}var A=new Wiz.util.Coord(G[0],K);C.push(A)}}return C};Wiz.util.UrlUtil.getCoordsFromParam=function(B){var J=[];if(isDefined(B)&&""!=B){var A=B.split("+");for(var D=0;D<A.length;D++){var K=A[D];var G=K.split(":");var L=G[0];var F=G[1].split(",");for(var C=0;C<F.length;C++){var I=F[C];var H=false;if(-1!==I.indexOf(Wiz.util.GROUP_IDENTIFIER)){H=true}var E=new Wiz.util.Coord(L,I,H);J.push(E)}}}return J};Wiz.util.UrlUtil.getMemberFromCoordsForDimension=function(B,C){var D=null;if(isDefined(B)&&isDefined(C)){for(var A=0;A<B.length;A++){if(B[A].dim==C){D=B[A].member;break}}}return D};Wiz.util.UrlUtil.getBaseUrl=function(B){var A=B.split("?")[0];return A};Wiz.util.UrlUtil.getParamArrayFromUrl=function(E){var B=[];var D=E.indexOf("?")>0?E.split("?")[1]:E;if(isDefined(D)&&D.length>0){var A=D.split("&");for(var C=0;C<A.length;C++){B.push({key:A[C].split("=")[0],value:A[C].split("=")[1]})}}return B};Wiz.util.UrlUtil.rebuildUrlFromParamArray=function(C,A){var D="";for(var B=0;B<A.length;B++){if(B>0){D+="&"}D+=A[B].key+"="+A[B].value}return C+"?"+D};Wiz.util.UrlUtil.getUrlParam=function(C,E){var A="";var B=Wiz.util.UrlUtil.getParamArrayFromUrl(E);for(var D=0;D<B.length;D++){if(B[D].key==C){A=B[D].value;break}}return A};Wiz.util.UrlUtil.hasUrlParam=function(B,E){var D=false;var A=Wiz.util.UrlUtil.getParamArrayFromUrl(E);for(var C=0;C<A.length;C++){if(A[C].key==B){D=true;break}}return D};Wiz.util.UrlUtil.updateUrlParam=function(B,F,D){var E=Wiz.util.UrlUtil.getBaseUrl(F);var A=Wiz.util.UrlUtil.getParamArrayFromUrl(F);for(var C=0;C<A.length;C++){if(A[C].key==B){A[C].value=D;break}}return Wiz.util.UrlUtil.rebuildUrlFromParamArray(E,A)};Wiz.util.UrlUtil.appendUrlParam=function(B,E,D){var C=Wiz.util.UrlUtil.getBaseUrl(E);var A=Wiz.util.UrlUtil.getParamArrayFromUrl(E);A.push({key:B,value:D});return Wiz.util.UrlUtil.rebuildUrlFromParamArray(C,A)};Wiz.util.UrlUtil.appendOrUpdateUrlParam=function(A,C,B){if(Wiz.util.UrlUtil.hasUrlParam(A,C)){return Wiz.util.UrlUtil.updateUrlParam(A,C,B)}else{return Wiz.util.UrlUtil.appendUrlParam(A,C,B)}};Wiz.util.UrlUtil.removeUrlParam=function(B,F){var C=[];var E=Wiz.util.UrlUtil.getBaseUrl(F);var A=Wiz.util.UrlUtil.getParamArrayFromUrl(F);for(var D=0;D<A.length;D++){if(A[D].key!=B){C.push(A[D])}}return Wiz.util.UrlUtil.rebuildUrlFromParamArray(E,C)};Wiz.util.UrlUtil.queryStringExists=function(){if(document.location.toString().indexOf("?")>0){return true}return false};Wiz.util.UrlUtil.extractQueryString=function(){var B="";if(Wiz.util.UrlUtil.queryStringExists()){var A=document.location.toString();B=A.substring(A.indexOf("?")+1,A.length)}return B};Wiz.util.UrlUtil.getUrlFromModel=function(H){var A="data/";A+="?q=";var I=H.dataLayout;for(var G=0;G<I.filters.length;G++){var E=I.filters[G].dim;var B=I.filters[G].member;if(B=="0"){B=H.getSelectedDimensionMembers(E)[0].getMemberCode()}A+=E+Wiz.util.UrlUtil.URL_DIM_MEMBER_DELIMITER+B+Wiz.util.UrlUtil.URL_PARAM_DELIMITER}var D=[];D=D.concat(I.rows);D=D.concat(I.columns);for(var G=0;G<D.length;G++){var J=H.getSelectedDimensionMembers(D[G]);J=H.moveAggregrateMembersToFront(J);var F=[];for(var C=0;C<J.length;C++){F[C]=J[C].getMemberCode()}if(D[G]==Wiz.util.UrlUtil.YEARDIM){F=F.reverse()}if(G!==0){A+=Wiz.util.UrlUtil.URL_PARAM_DELIMITER}A+=D[G];A+=Wiz.util.UrlUtil.URL_DIM_MEMBER_DELIMITER;A+=F.join(Wiz.util.UrlUtil.URL_MEMBER_DELIMITER)}A+="&ds="+H.dataset;A+="&f=xml&m=wizard&v=1_1";return A};Wiz.util.UrlUtil.getBookmarkUrl=function(B){var A="q=";for(var C=0;C<B.length;C++){A+=B[C].dim+":"+B[C].member;if(C<(B.length-1)){A+="+"}}};Wiz.util.UrlUtil.getBookmarkUrlFromModel=function(D){var C=Wiz.util.UrlUtil.getAxisUrlFromModel(D);C+="&q=";var F=D.dimensions.items;var A=false;for(var E=F.length-1;E>=0;E--){var G=F[E];var H=G.getSelectedMembers();if(H.length>0){if(A){C+="+"}C+=G.code+":";for(var B=H.length-1;B>=0;B--){C+=H[B].coord.member;if(B>0){C+=","}}A=true}}F=D.optDimensions.items;if(F.length>0){for(var E=F.length-1;E>=0;E--){var G=F[E];var H=G.getSelectedMembers();if(H.length>0){if(A){C+="+"}C+=G.code+":";for(var B=H.length-1;B>=0;B--){C+=H[B].coord.member;if(B>0){C+=","}}A=true}}}if(D.isProjectLevelData){C+="&p=true"}return C};Wiz.util.UrlUtil.getAxisUrlFromModel=function(D){var C="";var F=D.dataLayout;var B=false;if(F.rows.length>0&&F.rows[0]!==""){B=true}var A=false;if(F.columns.length>0&&F.columns[0]!==""){A=true}var G=false;if(F.filters.length>0&&F.filters[0]!==""){G=true}if(B){C+="x=";for(var E=0;E<F.rows.length;E++){C+=F.rows[E];if(E<F.rows.length-1){C+=","}}}if(B&&A){C+="&"}if(A){C+="y=";for(var E=0;E<F.columns.length;E++){C+=F.columns[E];if(E<F.columns.length-1){C+=","}}}if(G&&((B&&!A)||(A))){C+="&"}if(G){C+="f=";for(var E=0;E<F.filters.length;E++){C+=F.filters[E].dim+":"+F.filters[E].member;if(E<F.filters.length-1){C+=","}}}return C};Wiz.util.UrlUtil.extractBookmarkBaseURL=function(A){var B=A;var C=A.indexOf("#");if(C<=0){C=A.indexOf("?")}if(C>0){B=A.substring(0,C)}return B};Wiz.util.UrlUtil.updateBookmarkUrl=function(D,C){var A="#?"+D;if(C){A+="&lock="+C}var B=location.hash;return A};Wiz.util.UrlUtil.isQueryMembersValid=function(C,A,F){for(var D=C.initialQueryCoords.length-1;D>=0;D--){var E=C.initialQueryCoords[D];var B=false;if(A.containsKey(E)){B=true}else{if(F.containsKey(E)){B=true}else{return false}}}return true};Wiz.util.Coord=function(A,C,D,B){this.dim=A;this.member=C;this.priority=B;this._isGroup=false;if(D!==undefined&&D!==null){this._isGroup=D}this._stringCache=this.dim+"_"+this.member};Wiz.util.Coord.prototype={toCoreMemberDomId:function(){return"m_"+this.toString()},toOptionMemberDomId:function(){return"om_"+this.toString()},isGroup:function(){return this._isGroup},toString:function(){return this._stringCache}};Wiz.util.GROUP_IDENTIFIER="G";Wiz.util.Coord.valueOf=function(B,C){var D="_";if(B.indexOf("_")===-1){D=":"}var A=B.split(D);var E=isDefined(A[1])&&(-1!==A[1].indexOf(Wiz.util.GROUP_IDENTIFIER));return new Wiz.util.Coord(A[0],A[1],E)};Wiz.util.Coord.parseCoord=function(D){var B;var C;var A=D.split("_");if(A.length==2){B=A[0];C=A[1]}else{if(A.length>=3){B=A[1];C=A[2]}}return B+"_"+C};Wiz.util.Coord.canonicalizeValueCoord=function(H){var A=",";if(H.indexOf("+")!=-1){A="+"}var I=H.split(A);var L=new Array(I.length);for(var C=I.length-1;C>=0;C--){var G=I[C];L[G.split(":")[0]]=G}var D=[];D.push("v+");for(var B=0,F=L.length;B<F;B++){var J=L[B];if(J===undefined){continue}var K=J.split(":");D.push(K.join("_"));D.push("-")}var E=D.join("");return E.substring(0,E.length-1)};Wiz.util.Coord.convertToMicrodataCoord=function(B){var A=B.substring(2,B.length);A=A.replace(/_/g,":");A=A.replace(/-/g,"+");return A};Wiz.util.PagePicker={PAGE_PICKER_MAX_VISIBLE:10};Wiz.util.PagePicker.getPagePickerForHideRows=function(F,D,K,M,B,H){if(D.getCount()<2){return }var R=D.get(F);var I=new Wiz.view.SimpleContainer({id:M,cls:"pagePicker",autoWidth:true,style:"margin-top: 8px; margin-bottom: 4px;"});I.add({xtype:"simpleComponent",elType:"span",html:"<span>Page <strong>"+(D.indexOf(F)+1)+"</strong></span>",cls:"pageNumber pageCount"});if(F!==0){var C=Wiz.util.PagePicker.getPageNumberEl("<< First",0,F,false,B,H,0);I.add(C);var J=D.indexOf(F);var O=D.itemAt(J-1);var L=Wiz.util.PagePicker.getPageNumberEl("<",F,-1,false,B,H,O);I.add(L)}var Q=D.getRange(0,D.getCount());for(var N=0;N<Q.length;N++){var P=Q[N];var E=Wiz.util.PagePicker.getPageNumberEl(""+(N+1),N,D.indexOf(F),(N==P&&N==K-1),B,H,D.get(N));I.add(E)}if(F!=D.last()){var J=D.indexOf(F);var G=D.itemAt(J+1);var A=Wiz.util.PagePicker.getPageNumberEl(">",F,-1,false,B,H,G);I.add(A)}return I};Wiz.util.PagePicker.getPagePicker=function(K,G,D,O,J){if(G===1||G===0){return }var B=new Wiz.view.SimpleContainer({id:D,cls:"pagePicker",autoWidth:true,style:"margin-top: 8px; margin-bottom: 4px;"});var M;if((Wiz.util.PagePicker.PAGE_PICKER_MAX_VISIBLE-1)%2===0){M=Wiz.util.PagePicker.PAGE_PICKER_MAX_VISIBLE-1/2}else{M=Wiz.util.PagePicker.PAGE_PICKER_MAX_VISIBLE/2}var L=K-M;var I=K+M;if(L<0){I=I+Math.abs(L);L=0;if(I>=G){I=G}}else{if(I>=G){L=L-(I-(G));I=G}}if(L<0){L=0}B.add({xtype:"simpleComponent",elType:"span",html:"<span>Page <strong>"+(K+1)+"</strong> of <strong>"+G+"</strong></span>",cls:"pageNumber pageCount"});if(K!==0){var C=Wiz.util.PagePicker.getPageNumberEl("<< First",0,K,false,O,J);B.add(C)}for(var H=L;H<I;H++){if(L===H&&L!==K){var A=Wiz.util.PagePicker.getPageNumberEl("<",K-1,K,false,O,J);B.add(A)}if(L===H&&L>0){B.add({xtype:"simpleComponent",elType:"span",text:"...",cls:"pageNumber dotPage"})}var N=Wiz.util.PagePicker.getPageNumberEl(""+(H+1),H,K,(H==K&&H==G-1),O,J);B.add(N);if(H+1===I&&I<G){B.add({xtype:"simpleComponent",elType:"span",text:"...",cls:"pageNumber dotPage"})}if(H+1===I&&H!==K){var E=Wiz.util.PagePicker.getPageNumberEl(">",K+1,K,false,O,J);B.add(E)}}if(K!==G-1){var F=Wiz.util.PagePicker.getPageNumberEl("Last >>",G-1,K,true,O,J);B.add(F)}return B};Wiz.util.PagePicker.getPagePickerWithPageInput=function(H,C,G,E,B){var A=Wiz.util.PagePicker.getPagePicker(H,C,G,E,B);if(A!=undefined){var D=new Wiz.view.SimpleComponent({elType:"span",html:"<span>Go To Page:</span>",cls:"pageNumber pageCount goToPage"});A.add(D);var F=new Ext.form.TextField({id:"goToPage",width:30,allowBlank:true,enableKeyEvents:true,blankText:""});A.add(F);D.on("click",Wiz.util.PagePicker.pagePickerHandler,{component:B,container:A,handler:E,pageCount:C})}return A};Wiz.util.PagePicker.pagePickerHandler=function(){var C=this.container.findById("goToPage");var D=C.getValue();var A=/^[\"0-9]*$/;if(D!=""&&A.test(D)){if(D>0&&D<this.pageCount){var B=this.handler.createDelegate({component:this.component,index:D-1});B()}else{Wiz.view.View.displayMessage("Page Picker Error","'"+D+"' is not in range 1-"+this.pageCount,350,Ext.Msg.OK)}}else{Wiz.view.View.displayMessage("Page Picker Error","'"+D+"' is not a number",350,Ext.Msg.OK)}};Wiz.util.PagePicker.getPageNumberEl=function(G,C,F,I,H,E,D){if(!isDefined(D)){D=C}var J="pageNumber";var A=F===C;if(A){J+=" currentPage"}else{J+=" otherPage"}if(I){J+=" lastPage"}var B=new Wiz.view.SimpleComponent({elType:"span",text:G,cls:J});if(!A){B.on("click",H,{component:E,index:D})}return B};var uniqueID=0;Wiz.view.AllTablesPopup=function(A){A=A||{};Ext.apply(this,A);this.addEvents("searchEntireMicrodataClicked");this.init()};Ext.extend(Wiz.view.AllTablesPopup,Ext.util.Observable,{init:function(){this.popupWin=new Ext.Window({title:"See All Datasets",width:800,height:460,closeAction:"hide",resizable:false,constrainHeader:true,modal:true,style:"margin: 8px",autoScroll:false,items:this.getPanels()})},getPanels:function(){var A=this.getTextPanels();A.push(this.getSearchMicrodataPanel());A.push(this.getCancelPanel());return A},getSearchMicrodataPanel:function(){this.searchTextField=new Ext.form.TextField({id:"allTablesSearchMicrodataTextField",emptyText:"Search Aid Activities",allowBlank:false,width:200,enableKeyEvents:true,vtype:"microdataSearchKeywords"});var B=new Ext.Button({xtype:"button",id:"narrowSearchButton",text:"Search"});var A=new Wiz.view.SimpleContainer({header:false,id:"allTablesSearchMicrodataPanel",cls:"allTablesSearchMicrodataPanel",autoScroll:false,border:false,items:[this.searchTextField,B],hidden:!this.model.appHasMicrodata(),autoScroll:false});B.on("click",function(){if(this.searchTextField.validate()){this.searchMicrodata()}},this);return A},getCancelPanel:function(){var A=new Ext.Button({xtype:"button",id:"allTablesCancelButton",cls:"allTablesCancelButton",text:"Cancel"});var B=new Wiz.view.SimpleContainer({header:false,id:"allTablesCancelPanel",cls:"allTablesCancelPanel",autoScroll:false,border:false,items:[A]});A.on("click",function(){this.popupWin.hide()},this);return B},getTextPanels:function(){var B=[];var H=new Wiz.view.SimpleContainer({header:false,id:"allTables_headerPanel",cls:"alltablesHeader",collapsible:false,autoScroll:false,border:false,items:[{xtype:"simpleContainer",id:"allTables_headerPanel_text",autoScroll:false,items:[{xtype:"simpleComponent",cls:"allTablesDotStatCSVHeader",autoScroll:false},{xtype:"simpleComponent",cls:"allTablesDotStatHeader",autoScroll:false},{xtype:"simpleComponent",cls:"allTablesWizardHeader",autoScroll:false},{xtype:"simpleComponent",html:"&nbsp;",autoScroll:false}]}]});B.push(H);this.dotStatRedirectFn=[];var G=this.model.datasetSelector.datasetPriorityArray.length;for(var C=0;C<G;C++){var A=this.model.datasetSelector.datasetPriorityArray[C];var F="alltables";if(C==G-1){F="alltableslast"}var D=new Wiz.view.SimpleContainer({header:false,id:A+"_TextPanel",collapsible:false,cls:F,autoScroll:false,border:false,items:[{xtype:"simpleContainer",id:A+"_Text",autoScroll:false,items:[{xtype:"simpleComponent",cls:"allTableDownloadCsv",text:"Download CSV",handler:function(K,J,I){window.location=this.model.datasetDownloadURLs[this.datasetCode]},scope:{datasetCode:A,model:this.model,tablePopup:this},autoScroll:false},{xtype:"simpleComponent",cls:"viewTableDotStat",text:"View Dataset",handler:function(K,J,I){Ext.Msg.show({title:"External link confirmation",msg:"By following this link, you will be leaving the QWIDS. Are you sure you want to do this?",buttons:Ext.Msg.YESNO,fn:function(L){if(L=="yes"){window.location=this.model.datasetDotStatURLS[this.datasetCode]}},scope:this,animEl:"elId",icon:Ext.MessageBox.QUESTION})},scope:{datasetCode:A,model:this.model,tablePopup:this},autoScroll:false},{xtype:"simpleComponent",cls:"viewTable",text:"View Dataset",handler:function(K,J,I){this.tablePopup.popupWin.hide();this.model.directTableAccess(this.datasetCode)},scope:{datasetCode:A,model:this.model,tablePopup:this},autoScroll:false},{xtype:"simpleComponent",html:this._getDataSetLabel(A),autoScroll:false}]}]});B.push(D)}var E=new Wiz.view.SimpleContainer({header:false,id:"allTables_footerPanel",cls:"alltablesFooter",collapsible:false,autoScroll:false,border:false,items:[{xtype:"simpleContainer",id:"allTables_footerPanel_text",autoScroll:false,items:[{xtype:"simpleComponent",cls:"allTablesDotStatCSVFooter",autoScroll:false},{xtype:"simpleComponent",cls:"allTablesDotStatFooter",autoScroll:false},{xtype:"simpleComponent",cls:"allTablesWizardFooter",autoScroll:false},{xtype:"simpleComponent",html:"&nbsp;",autoScroll:false}]}]});B.push(E);return B},searchMicrodataFromField:function(A){if(A.getKey()==A.RETURN){if(this.searchTextField.validate()){this.searchMicrodata()}}},searchMicrodata:function(){var B=Wiz.util.SearchUtil.parseNewKeywords(this.searchTextField.getValue());var A=Wiz.util.SearchUtil.createNewKeywordString(B);this.fireEvent("searchEntireMicrodataClicked",A);this.popupWin.hide();this.searchTextField.clearInvalid();this.searchTextField.reset()},show:function(){this.popupWin.show()},_getDataSetLabel:function(B){var A=this.model.getDatasetLabel(B);if(undefined===A){return B}else{return A}}});Wiz.view.AllTablesPopup.showWin=function(){if(!isDefined(window.allTablesPopup)){window.allTablesPopup=new Wiz.view.AllTablesPopup({model:window.wiz.controller.model,view:window.wiz.controller.view});window.allTablesPopup.on("searchEntireMicrodataClicked",function(A){this.openSearchEntireMicrodataResultsWindow(A)},window.wiz.controller.view)}window.allTablesPopup.show();window.allTablesPopup.searchTextField.getEl().on("keydown",window.allTablesPopup.searchMicrodataFromField,window.allTablesPopup)};Wiz.view.View=function(B,A){B=B||{};var C;if(!isDefined(A)){throw new Error("View requires a model object!")}if(!isDefined(B.coreWidgetDefs)){throw new Error("View requires core widget definitions!")}if(!isDefined(B.optWidgetDefs)){throw new Error("View requires optional widget defintions!")}Ext.apply(this,B);this.model=A;this.addEvents("clickedDisplayData","resetQueryClicked","layoutComplete","filterChange","gridLayoutComplete","gridRequiresMoreData","clickLoadPageData","initComplete");this.wizardDataText="What type of "+this.appDataDescription+" data are you looking for?";this.coreWidgetArray=[];this.panelDimensionMap=new Ext.util.MixedCollection(false);Wiz.view.View.superclass.constructor.call(this);this.eventsEnabled=true;this.dataLoading=null;this.datasetToOptWidgetMap=new Ext.util.MixedCollection(false,function(D){return D.definition.datasetCode});this.datasetToOptWidgetDefaultSelectionsMap=new Ext.util.MixedCollection(false);this.on("layoutComplete",function(){this._renderWidgets();this.fireEvent("initComplete");log.profile("layoutComplete")},this);this.model.on("reset",function(){this.updateOptWidgets(this.model.dataset)},this);this.model.on("beforeDatasetChange",function(F,H,E,G){var D=true;if(isDefined(G)){D=G}if(D){this._showSwitchingWarning(E)}else{E()}return false},this);this.model.on("datasetChanged",function(E,D){this.updateOptWidgets(D,E)},this);this.model.on("directTableAccess",function(){this._onDisplayDataClicked()},this)};Ext.extend(Wiz.view.View,Ext.util.Observable,{initialize:function(){var A=new Ext.util.DelayedTask(this._initializeLayout,this);A.delay(500)},suspendEvents:function(){this.eventsEnabled=false},resumeEvents:function(){this.eventsEnabled=true},_initializeLayout:function(){this.projectLevelDataCheckbox=new Ext.form.Checkbox({id:"force_CRS_SMPL",name:this.model.getProjectLevelDatasetCode(),boxLabel:"Show project-level data and/or detailed sector level data (CRS)",checked:(this.model.datasetLocked&&this.model.getProjectLevelDatasetCode()===this.model.dataset)});this.projectLevelDataCheckbox.on("enable",Wiz.view.Checkbox.updateLabelHandler,{checkBox:this.projectLevelDataCheckbox,enable:true});this.projectLevelDataCheckbox.on("disable",Wiz.view.Checkbox.updateLabelHandler,{checkBox:this.projectLevelDataCheckbox,enable:false});this.projectLevelDataInfo=new Wiz.view.SimpleComponent({cls:"projectLevelDataIcon",overCls:"mouseover"});this.projectLevelDataInfo.on("click",function(){Wiz.view.View.displayMessage("Project Level Data","<p>Project-level data are extracted from the DAC’s Creditor Reporting System (CRS). The CRS database is the internationally recognised source of data on the geographical and sectoral breakdown of aid. The data cover ODA commitments <span class='smallMessageText'>(as of 1995)</span> and disbursements <span class='smallMessageText'>(as of 2002)</span> from  donors.</p><p>&nbsp;</p><p>QWIDS allows you to view and download the individual activities and search through the descriptive information available. See the <a href='about.html' target='_blank'>'About'</a> section for further information.</p>",350,Ext.Msg.OK)});this.page=new Ext.Panel({region:"center",minWidth:1000,autoScroll:true,id:"wizardContainer",layout:"anchor",monitorResize:true,header:false,items:[{xtype:"panel",id:"headerPanel",contentEl:"pageHeader",border:false,header:false},{xtype:"panel",id:"dataSelectionPanel",layout:"anchor",monitorResize:true,frame:true,cls:"subsection coresection",collapsible:false,header:false,items:[{xtype:"panel",header:false,border:false,autoWidth:true,items:[{xtype:"simpleComponent",text:this.wizardDataText,cls:"sectionHeaderText"},{id:"allDatasets",xtype:"simpleComponent",html:'<div class="seeAllDatasetsText">See All Datasets</div><div class="seeAllDatasetsIcon"></div>',cls:"seeAllDatasets"},{id:"showHideCore",header:false,border:false,cls:"cursorPointer",width:200,layout:"card",activeItem:0,items:[{id:"hideCore",xtype:"simpleComponent",handleMouseEvents:false,cls:"showHideToggle",html:'<span class="sectionActionLink">Hide Data Selection</span><span class="toggleIcon">&nbsp;</span>'},{id:"showCore",xtype:"simpleComponent",handleMouseEvents:false,cls:"showHideToggle",html:'<span class="sectionActionLink">Show Data Selection</span><span class="toggleIcon">&nbsp;</span>'}]}]},{xtype:"portal",layoutConfig:{scrollOffset:19},id:"corePortal",header:false,collapsible:false,autoScroll:false,border:false,style:"margin: 5px",monitorResize:true},{xtype:"simpleComponent",text:"Reset All Selections",id:"resetLink",cls:"fakeLink resetSelectionsLink",handler:this._onResetQueryClicked,scope:this},{id:"projectLevelData",xtype:"simpleContainer",hidden:!this.model.appHasMicrodata(),items:[this.projectLevelDataInfo,this.projectLevelDataCheckbox]},{border:false,header:false,html:'<div class="divider"><img src="images/s.gif" width="1px" height="1px" border="0" /></div>'},{xtype:"panel",id:"optPanel",border:false,header:false,layout:"anchor",monitorResize:true,cls:"subsection optsection",collapsible:false,items:[{xtype:"panel",header:false,border:false,autoWidth:true,items:[{id:"showHideOpt",header:false,border:false,cls:"cursorPointer",width:320,layout:"card",activeItem:1,items:[{id:"hideOpt",xtype:"simpleComponent",handleMouseEvents:false,cls:"showHideToggle",html:'<span class="sectionActionLink">Hide Additional Data Selection Options</span><span class="toggleIcon">&nbsp;</span>'},{id:"showOpt",xtype:"simpleComponent",handleMouseEvents:false,cls:"showHideToggle",html:'<span class="sectionActionLink">Show Additional Data Selection Options</span><span class="toggleIcon">&nbsp;</span>'}]}]},{id:"optContents",frame:false,header:false,border:false,autoWidth:true,monitorResize:true,xtype:"panel",items:[{xtype:"panel",id:"noOptSelectionsPanel",header:false,border:false,html:'<p class="greyText">No data selection options available for this selection.</p>',hidden:true,style:"margin-left: 8px"},{xtype:"portal",layoutConfig:{scrollOffset:19},monitorResize:true,id:"optPortal",header:false,collapsible:false,autoScroll:false,border:false,style:"margin: 5px"}]}]}]},{xtype:"panel",id:"displayDataPanel",border:false,html:'<div id="dataLoading" style="visibility: hidden"/>',items:{xtype:"button",id:"displayDataButton",text:"Display the Data",disabledClass:"displayDisabled",cls:"displayDataButton",handler:function(){this._onDisplayDataClicked()},scope:this}},{xtype:"panel",id:"gridPanel",hidden:true,hideMode:"offsets",header:false,collapsible:true,hideCollapseTool:true,cls:"subsection gridsection",autoHeight:true,autoWidth:true,frame:true,items:[{xtype:"panel",header:false,border:false,autoWidth:true,items:[{header:false,border:false,cls:"sectionButtons",width:470,items:[{xtype:"simpleComponent",id:"printData",width:"auto",handleMouseEvents:false,cls:"sectionButton printDataButton",text:"Print Data"},{xtype:"simpleComponent",id:"changeLayout",width:"auto",handleMouseEvents:false,cls:"sectionButton changeLayoutButton",text:"Change Data Layout"},{xtype:"simpleComponent",id:"bookmarkData",width:"auto",handleMouseEvents:false,cls:"sectionButton bookmarkDataButton",text:"Bookmark Data"},{xtype:"simpleComponent",id:"csvGridExport",width:"auto",handleMouseEvents:false,cls:"sectionButton csvExportButton",text:"Export As CSV"}]},{xtype:"simpleComponent",text:"Data Results",cls:"sectionHeaderText"}]},{style:"margin-left: 8px; margin-right: 8px;",xtype:"gridWidget",id:"dataGrid",model:this.model,autoWidth:true,autoHeight:true}]},{xtype:"simpleComponent",id:"copyright",html:'<div class="copyright"><p>&copy; <a href="http://www.oecd.org" onclick="return popup(this.href, \'child\');">OECD</a>. All rights reserved. <a href="http://www.oecd.org/document/0,3343,en_2649_201185_1899066_1_1_1_1,00.html" onclick="return popup(this.href, \'child\');">Terms &amp; Conditions</a> | <a href="http://www.oecd.org/document/0,3343,en_2649_201185_1899048_1_1_1_1,00.html" onclick="return popup(this.href, \'child\');">Privacy Policy</a></p></div>'}],border:false,defaults:{style:"margin: 0px 30px 10px 30px"}});this.viewport=new Ext.Viewport({layout:"border",items:this.page});var A=new Ext.util.DelayedTask(this.viewport.doLayout,this);A.delay(10);var B=new Ext.util.DelayedTask(function(){var D=this.page.findById("dataGrid");D.on("readyForMoreData",function(G){this.fireEvent("gridRequiresMoreData",G)},this);D.on("rebuildLayoutComplete",function(G){this.fireEvent("gridLayoutComplete",G)},this);D.on("clickedLoadPage",function(G){this.fireEvent("clickLoadPageData",G)},this);var C=this.page.findById("allDatasets");C.getEl().on("click",function(){this._onSeeAllTablesClicked()},this);this.page.findById("csvGridExport").on("click",function(){window.location=this._generateExportCsvUrl()},this);this.page.findById("bookmarkData").on("click",function(){this._showBookmarkPopup()},this);this.page.findById("changeLayout").on("click",function(){if(!isDefined(this.tableDesigner)){this.tableDesigner=new Wiz.view.TableDesigner({model:this.model})}this.tableDesigner.show()},this);this.page.findById("printData").on("click",function(){if(isDefined(this.printContainer)){this.printContainer.destroy()}this.printContainer=new Ext.Panel({id:"printContents",header:false,border:false,title:false,items:[{xtype:"panel",header:false,border:false,html:'<div class="pageHeaderDetails" id="printPageHeader">'+document.getElementById("pageHeaderDetails").innerHTML+"</div>"},{xtype:"panel",id:"printTable",html:'<table id="gridTable">'+document.getElementById("gridTable").innerHTML+"</table>"}],visibility:"hidden",renderTo:document.body});this.printContainer.getEl().print({printCSS:"css/wizard-base.css"})},this);this._collapseOptions(false);this.resumeEvents();var F=this.viewport.findById("showHideCore");F.getEl().on("click",function(){if(this.container.getLayout().activeItem.id==="showCore"){this.view._expandCoreWidgets(true)}else{this.view._collapseCoreWidgets(true)}},{container:F,view:this});var E=this.viewport.findById("showHideOpt");E.getEl().on("click",function(){if(this.container.getLayout().activeItem.id==="showOpt"){this.view._expandOptions(true)}else{this.view._collapseOptions(true)}},{container:E,view:this});this.model.on("datasetLocked",function(H){var G=this.page.findById("force_"+H);if(isDefined(G)){G.setValue(true)}},this);this.model.on("datasetUnlocked",function(H){var G=this.page.findById("force_"+H);if(isDefined(G)){G.setValue(false)}},this);this.projectLevelDataCheckbox.model=this.model;this.projectLevelDataCheckbox.el.on("click",function(){var G=this.el.dom.checked;this.el.dom.checked=!G;if(G){this.model.forceDataset(this.name,true)}else{this.model.releaseDataset()}},this.projectLevelDataCheckbox);this.fireEvent("layoutComplete")},this);B.delay(400)},displayDataGrid:function(){this._onDisplayDataClicked()},_renderWidgets:function(){this._renderWidgetComponents(this.page.findById("corePortal"),this.coreWidgetDefs);var A=new Ext.util.DelayedTask(function(){this._renderWidgetComponents(this.page.findById("optPortal"),this.optWidgetDefs);this.updateOptWidgets(this.model.dataset)},this);A.delay(10)},_renderWidgetComponents:function(K,D){if(!isDefined(D)||D.length===0){return }var N=null;var P=1/D.length;var C="widget_";var O=false;if(isDefined(D[0].datasetCode)){O=true;C+="opt_"}else{N=260;C+="core_"}var A=null;if(O){var G=new Ext.util.MixedCollection(false);A=new Ext.util.MixedCollection(false);for(var Q=D.length-1;Q>=0;Q--){var H=A.get(D[Q].datasetCode);if(!H){H=0}++H;A.add(D[Q].datasetCode,H);if("true"==D[Q].selectionRequired){var L=G.get(D[Q].datasetCode);if(!L){L=[]}L.push(D[Q].dimensionCode);G.add(D[Q].datasetCode,L)}}this.model.optionalDimSelectionRequiredMap=G}for(var S=D.length-1;S>=0;S--){var T="padding: 5px 5px 5px 0px";if(S===0){T="padding: 5px 0px 5px 0px"}var U=C+S;if(O){P=1/A.get(D[S].datasetCode);var R=false;if(this.model.dataset!==D[S].datasetCode){R=true}}var B=new Ext.ux.PortalColumn({id:"col_"+U,columnWidth:P,style:T,monitorResize:true,layout:"fit",items:{xtype:"widget",id:U,definition:D[S],model:this.model,height:N,autoHeight:O,autoWidth:true,cls:"widget"},hidden:R});K.add(B);if(O){var J=D[S].datasetCode;var M=this.datasetToOptWidgetMap.get(J);if(!isDefined(M)){M=[]}var E=B.findById(U);M.push(B);this.datasetToOptWidgetMap.add(J,M);var F=this.datasetToOptWidgetDefaultSelectionsMap.get(J);if(!isDefined(F)){F=[]}var I=E.defaultCoords;F=F.concat(I);this.datasetToOptWidgetDefaultSelectionsMap.add(J,F)}else{this.coreWidgetArray.push(B.findById(U))}}K.doLayout()},_onMultipleOptionalMembersSelected:function(A){var B=new Wiz.util.MemberChangeCollection();B.optionalSelections=A;this.model.updateOptionalWidgetMembers(B)},_onOptionalSelectChange:function(C,A){var B=new Wiz.util.MemberChangeCollection();if(A){B.selectOptionalMember(C)}else{B.deselectOptionalMember(C)}this.model.updateMembers(B)},updateOptWidgets:function(G,B){var I=this.page.findById("optPortal");if(isDefined(B)){var J=this.datasetToOptWidgetMap.get(B);if(isDefined(J)){for(var C=0;C<J.length;C++){J[C].hide()}}this.model.clearOptionalSelections()}var L=this.datasetToOptWidgetMap.get(G);var K=0;if(isDefined(L)){this.page.findById("noOptSelectionsPanel").hide();for(var A=0;A<L.length;A++){L[A].show();var F=L[A].findById(L[A].id.substring(4,L[A].id.length));F.on("heightChange",function(N){var P=this.page.findById("optContents").body.id;var O=this.panelDimensionMap.get(P);if(O.height<N){this.panelDimensionMap.removeKey(P);var Q={height:N,width:O.width};this.panelDimensionMap.add(P,Q);this._expandPanelBody(this.page.findById("optContents").body,true,N)}},this);var E=L[A].getEl().getHeight();if(E>K){K=E}}this._onMultipleOptionalMembersSelected(this.datasetToOptWidgetDefaultSelectionsMap.get(G))}else{this.page.findById("noOptSelectionsPanel").show();K=this.page.findById("noOptSelectionsPanel").getEl().getHeight()}I.doLayout();var D=this.page.findById("optContents").body.id;var H=this.panelDimensionMap.get(D);this.panelDimensionMap.removeKey(D);var M={height:K,width:H.width};this.panelDimensionMap.add(D,M);if(!this.optionsCollapsed){this._expandOptions(true)}this.model.commitOptionalMemberSelections();this.optWidgetsRendered=true},indicateDataLoading:function(){Ext.get("gridLoadingContainer").show()},indicateDataLoadingFinished:function(){Ext.get("gridLoadingContainer").hide()},_onDisplayDataClicked:function(){var A=this.model._getRequiredDimsWithNoSelection(false);var C=this.model._getRequiredDimsWithNoSelection(true);if(this._isDisplayDataEnabled(A,C)){this._collapseCoreWidgets(true);this._collapseOptions(true);this.indicateDataLoading();this.page.findById("gridPanel").show();this.fireEvent("clickedDisplayData");gridLoading=true;this.viewport.doLayout()}else{this._showDisabledDisplayDataPopup(A,C)}if(!this.refreshDataButtonActive){var B=this.viewport.findById("displayDataButton");B.setText("Refresh Data");this.refreshDataButtonActive=true}},_isDisplayDataEnabled:function(B,A){return(!(undefined===B)&&(B.length===0)&&!(undefined===A)&&(A.length===0))},_showDisabledDisplayDataPopup:function(A,C){var B="<p>You need to make one selection from the following option(s):<p><p>&nbsp;</p>";if((!(undefined===A))&&A.length>0){B+="<p><b>Required Options: </b></p>";B+=this._getFormattedDimensionLabelList(A)}if((!(undefined===C))&&C.length>0){B+="<p><b>Additional Data Selection Options: </b></p>";B+=this._getFormattedDimensionLabelList(C)}Ext.MessageBox.show({title:"Please Check your Selections",msg:B,buttons:Ext.Msg.OK,minWidth:450,cls:"display-data-disabled-popup"})},_getFormattedDimensionLabelList:function(C){var A="";for(var B=0;B<C.length;B++){A+="<p>- "+C[B].label+"<p>"}return A},_onResetQueryClicked:function(){this.projectLevelDataCheckbox.setValue(this.model.defaultIsProjectLevelData);this.resetLayout();this.fireEvent("resetQueryClicked")},_onSeeAllTablesClicked:function(){Wiz.view.AllTablesPopup.showWin()},openSearchEntireMicrodataResultsWindow:function(B){var A="microdata.html?mds="+B+"&f=json";Wiz.view.View.openWin(A)},_collapsePanelBody:function(C,B){var A=B===true;var D=this.panelDimensionMap.key(C.id);if(!isDefined(D)){D={height:C.getHeight(),width:C.getWidth()};this.panelDimensionMap.add(C.id,D)}if(A){C.scale(C.getWidth(),0)}else{C.setHeight(0)}},_expandPanelBody:function(E,D,C){var B=D===true;var F=this.panelDimensionMap.key(E.id);if(!isDefined(F)){F={height:E.getHeight(),width:E.getWidth()};this.panelDimensionMap.add(E.id,F)}var A=F.height;if(isDefined(C)){A=C}if(B){E.scale(E.getWidth(),F.height)}else{E.setHeight(A)}},_collapseOptions:function(A){var C=this.page.findById("showHideOpt");var B=C.getLayout();B.setActiveItem(1);this._collapsePanelBody(this.page.findById("optContents").body,A);this.optionsCollapsed=true},_expandOptions:function(B){var D=this.page.findById("showHideOpt");var C=D.getLayout();C.setActiveItem(0);var A=this.page.findById("optContents");this._expandPanelBody(A.body,B);this.optionsCollapsed=false},_collapseCoreWidgets:function(B){var E=this.page.findById("showHideCore");var D=E.getLayout();D.setActiveItem(1);E.doLayout();if(isDefined(this.coreWidgetArray)){for(var C=0,A=this.coreWidgetArray.length;C<A;C++){this._collapsePanelBody(this.coreWidgetArray[C].body,B)}}},_expandCoreWidgets:function(B){var E=this.page.findById("showHideCore");var D=E.getLayout();D.setActiveItem(0);if(isDefined(this.coreWidgetArray)){for(var C=0,A=this.coreWidgetArray.length;C<A;C++){this._expandPanelBody(this.coreWidgetArray[C].body,B)}}},resetLayout:function(){this._hideGridPanel();var B=this.page.findById("showHideCore");B.getLayout().setActiveItem(0);this._expandCoreWidgets(true);this._collapseOptions(true);var A=this.viewport.findById("displayDataButton");A.setText("Display the Data");this.refreshDataButtonActive=false},updateOptionalAndXY:function(A,B){this.updateOptWidgets(A,B)},_hideGridPanel:function(){this.page.findById("dataGrid").clearGrid();this.page.findById("gridPanel").hide()},_showGridPanel:function(){this.page.findById("gridPanel").show()},_showSwitchingWarning:function(A){if(!isDefined(this.optionsPopup)){this.optionsPopup=new Wiz.view.OptionsPopup({model:this.model,view:this})}this.optionsPopup.show(A)},_showBookmarkPopup:function(){if(!isDefined(this.mbox)){this.loadingMgr=new Ext.WindowGroup();this.loadingMgr.zseed="80000";if(Ext.isIE){window.external.AddFavorite(window.location.href,"International Development Statistics")}else{var A="Please use your browser to bookmark this page.";if(window.sidebar){A="Please use your browser to bookmark this page by: <br /><br /> 1) Clicking <b>Bookmarks</b> from the navigation bar <br /> 2) Click <b>Bookmark this page</b><br /><br />"}else{if(Ext.isGecko){A="Please use your browser to bookmark this page by: <br /><br /> 1) Clicking <b>Bookmarks</b> from the navigation bar <br /> 2) Click <b>Bookmark this page</b><br /><br />"}else{if(Ext.isSafari){A="Please use your browser to bookmark this page by: <br /><br /> 1) Clicking <b>Bookmarks</b> from the navigation bar <br /> 2) Click <b>Add Bookmark</b><br /><br />"}}}this.mbox=new Ext.Window({title:"Bookmark Data",width:300,height:160,closable:false,modal:true,manager:this.loadingMgr,resizeable:false,draggable:false,items:[{xtype:"simpleComponent",text:A},{cls:"okayButtonRight",xtype:"button",text:"&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;",handler:function(){this.mbox.hide()},scope:this,style:"position:relative; right: 120px; top: 10px;"}]});this.mbox.show()}}},_generateExportCsvUrl:function(){var B=Wiz.util.UrlUtil.getUrlFromModel(this.model);B=B.replace(/f=xml/,"f=csv");var A=Wiz.util.UrlUtil.getAxisUrlFromModel(this.model);A=A.replace(/f=/,"filter=");B+="&"+A;if(this.model.dataLayout.hideRowsWithNoData){B+="&h=true"}return B}});Wiz.view.View.openWin=function(B){if(isDefined(B)){var A=window.open(B);if(A!==null){A.model=window.wiz.controller.model;A.focus()}return false}};Wiz.view.View.displayMessage=function(D,C,A,B){Ext.MessageBox.show({title:D,msg:C,buttons:B,minWidth:A})};Wiz.view.SimpleContainer=Ext.extend(Ext.Container,{baseCls:"w-scon",elements:"body",deferHeight:true,initComponent:function(){Wiz.view.SimpleContainer.superclass.initComponent.call(this);this.addEvents("bodyresize")},createElement:function(A,C){if(this[A]){C.appendChild(this[A].dom);return }if(A==="bwrap"||this.elements.indexOf(A)!=-1){if(this[A+"Cfg"]){this[A]=Ext.fly(C).createChild(this[A+"Cfg"])}else{var B=document.createElement("div");B.className=this[A+"Cls"];this[A]=Ext.get(C.appendChild(B))}}},onRender:function(B,A){Wiz.view.SimpleContainer.superclass.onRender.call(this,B,A);this.el=B.createChild({id:this.id,cls:this.baseCls},A);this.body=this.el;var C=this.el,D=C.dom;if(this.cls){this.el.addClass(this.cls)}if(this.overCls){this.el.addClassOnOver(this.overCls)}}});Ext.reg("simpleContainer",Wiz.view.SimpleContainer);var uniqueID=0;Wiz.view.OptionsPopup=function(A){A=A||{};Ext.apply(this,A);this.init()};Ext.extend(Wiz.view.OptionsPopup,Ext.util.Observable,{init:function(){this.textPanel=new Ext.Panel({header:false,border:false,html:"<p>Your choice will change the source of data. As a result some of your previous selections could be lost.</p>"});this.dontShowOptionsPopupCheckbox=new Ext.form.Checkbox({id:"dontShowOptionsPopupCheckbox",boxLabel:"Don't show this message to me again in this session"});this.dontShowOptionsPopupCheckbox.on("check",function(B,A){this.suppressOptionsPopupWarning=A},this);this.cancelSelectionButton=new Ext.Button({id:"cancelSelectionButton",text:"Cancel Last Selection",cls:"displayDataButton",handler:function(){this.popupWin.hide()},scope:this});this.continueButton=new Ext.Button({id:"continueButton",text:"Continue",cls:"displayDataButton",handler:function(){this.commitCallbackFnc();this.popupWin.hide()},scope:this});this.sessionCheckBoxPanel=new Ext.Panel({id:"conflictingSelectionCheckBox",items:this.dontShowOptionsPopupCheckbox});this.popupWin=new Ext.Window({title:"Selection Option:",width:460,height:190,closeAction:"hide",closable:false,resizable:false,modal:true,style:"margin: 8px",autoScroll:true,items:[this.textPanel,this.sessionCheckBoxPanel,this.continueButton,this.cancelSelectionButton]})},show:function(A){if(!isDefined(A)){}this.commitCallbackFnc=A;if(this.suppressOptionsPopupWarning){this.commitCallbackFnc()}else{this.popupWin.show()}}});Wiz.view.YearSelector=function(B){B=B||{};Ext.apply(this,B);this.mostRecentYearCoord=this.yearStore.getAt(this.yearStore.find("label",this.mostRecentYear)).get("coord");this.addEvents("multipleChecked","multipleUnchecked","updateLabel","mostRecentYearCheckboxClicked");this.ignoreMemberSelects=false;this.dimension=this.model.getDimension(this.dimensionCode);this.dimension.on("memberSelected",function(E,F){if(!this.ignoreMemberSelects){if(this._memberNotInRange(F)){this._updateYearSelects()}this._updateMostRecentYear(this.yearFromInput.getValue(),this.yearToInput.getValue())}},this);this.dimension.on("memberDeselected",function(E,F){if(!this.ignoreMemberSelects){this._updateYearSelects();this._updateMostRecentYear(this.yearFromInput.getValue(),this.yearToInput.getValue())}},this);var A=false;if(this.dimension.getSelectedMembers().length===1){A=this.model.getMember(this.mostRecentYearCoord).isSelected()}this.mostRecentYearCheckBox=new Ext.form.Checkbox({boxLabel:"Most recent year only ("+this.mostRecentYear+")",checked:A});this.yearFromInput=new Ext.form.ComboBox({tpl:new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">',"<span>{label}</span>",'<tpl if="hasMetadata">','<span id="yf-md-{coord}" class="metadataIcon inDropdown" onclick="Wiz.view.MetadataPopup.show(\''+this.model.getCurrentDataset(),"','{coord}'",')">&nbsp;&nbsp;&nbsp;&nbsp;</span>',"</tpl>",'<tpl if="!hasMetadata">','<span id="yf-md-{coord}" class="metadataIcon inDropdown hidden" onclick="Wiz.view.MetadataPopup.show(\''+this.model.getCurrentDataset(),"','{coord}'",')">&nbsp;&nbsp;&nbsp;&nbsp;</span>',"</tpl>","</div>","</tpl>"),id:"yearFromCombo",store:this.yearStore,displayField:"label",valueField:"label",typeAhead:true,mode:"local",triggerAction:"all",emptyText:"",selectOnFocus:true,width:70,allowBlank:true,hideMode:"offsets",lazyInit:false,fieldLabel:"to",forceSelection:true});this.yearToInput=new Ext.form.ComboBox({tpl:new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">',"<span>{label}</span>",'<tpl if="hasMetadata">','<span id="yt-md-{coord}" class="metadataIcon inDropdown" onclick="Wiz.view.MetadataPopup.show(\''+this.model.getCurrentDataset(),"','{coord}'",')">&nbsp;&nbsp;&nbsp;&nbsp;</span>',"</tpl>",'<tpl if="!hasMetadata">','<span id="yt-md-{coord}" class="metadataIcon inDropdown hidden" onclick="Wiz.view.MetadataPopup.show(\''+this.model.getCurrentDataset(),"','{coord}'",')">&nbsp;&nbsp;&nbsp;&nbsp;</span>',"</tpl>","</div>","</tpl>"),id:"yearToCombo",store:this.yearStore,displayField:"label",valueField:"label",typeAhead:true,mode:"local",triggerAction:"all",emptyText:"",selectOnFocus:true,width:70,allowBlank:true,hideMode:"offsets",lazyInit:false,forceSelection:true});this.metadataIconFrom=new Wiz.view.SimpleComponent({id:"meta_year_from",cls:"metadataIcon inYearField",overCls:"mouseover",hideMode:"offsets"});this.metadataIconFrom.on("click",function(){var E=this.yearStore.find("label",this.yearFromInput.getValue());var F=this.yearStore.getAt(E).data.coord;Wiz.view.MetadataPopup.show(this.model.getCurrentDataset(),F.toString())},this);this.metadataIconTo=new Wiz.view.SimpleComponent({id:"meta_year_to",cls:"metadataIcon inYearField",overCls:"mouseover",hideMode:"offsets"});this.metadataIconTo.on("click",function(){var E=this.yearStore.find("label",this.yearToInput.getValue());var F=this.yearStore.getAt(E).data.coord;Wiz.view.MetadataPopup.show(this.model.getCurrentDataset(),F.toString())},this);this.yearStore.each(function(E){var F=this.model.getMember(E.data.coord);F.on("metadataUpdated",function(G){var H=Ext.get("yf-md-"+this.coord);if(G){H.show()}else{H.hide()}var I=this.combo.getValue();if(this.coord.toString().indexOf(I)!==-1){if(G){this.comboIcon.show()}else{this.comboIcon.hide()}}},{coord:E.data.coord,comboIcon:this.metadataIconFrom,combo:this.yearFromInput});F.on("metadataUpdated",function(G){var H=Ext.get("yt-md-"+this.coord);if(G){H.show()}else{H.hide()}var I=this.combo.getValue();if(this.coord.toString().indexOf(I)!==-1){if(G){this.comboIcon.show()}else{this.comboIcon.hide()}}},{coord:E.data.coord,comboIcon:this.metadataIconTo,combo:this.yearToInput})},this);var C=function(E){if(E){this.show()}else{this.hide()}};this.yearFromInput.on("select",function(G,E,F){this._validateYearFrom();this._newSelectionMade();var H=this.model.getMember(E.data.coord);if(H.hasMetadata()){this.metadataIconFrom.show()}else{this.metadataIconFrom.hide()}if(isDefined(this.yearFromSelectedMember)){this.yearFromSelectedMember.un("metadataUpdated",C,this.metadataIconFrom)}H.on("metadataUpdated",C,this.metadataIconFrom);this.yearFromSelectedMember=H},this);this.yearToInput.on("select",function(G,E,F){this._validateYearTo();this._newSelectionMade();var H=this.model.getMember(E.data.coord);if(H.hasMetadata()){this.metadataIconTo.show()}else{this.metadataIconTo.hide()}if(isDefined(this.yearToSelectedMember)){this.yearToSelectedMember.un("metadataUpdated",C,this.metadataIconTo)}H.on("metadataUpdated",C,this.metadataIconTo);this.yearToSelectedMember=H},this);this.checkboxContainer=new Wiz.view.SimpleContainer({cls:"checkboxContainer",items:[this.mostRecentYearCheckBox]});this.mostRecentYearCheckBox.on("check",function(){this._toggleMostRecentYear(this.mostRecentYearCheckBox.checked);if(this.mostRecentYearCheckBox.checked){this.checkboxContainer.addClass("highlighted")}else{this.checkboxContainer.removeClass("highlighted")}this.fireEvent("mostRecentYearCheckboxClicked")},this);this.model.on("reset",function(){this.fireEvent("updateLabel")},this);Wiz.view.YearSelector.superclass.constructor.call(this);this.add(this.checkboxContainer);this.add(Wiz.view.Widget.getDividerPanel());this.add(this.yearFromInput);this.add(this.metadataIconFrom);var D=new Wiz.view.SimpleComponent({cls:"toLabel",text:"to"});this.add(D);this.add(this.yearToInput);this.add(this.metadataIconTo);this._updateYearSelects();this._updateMostRecentYear(this.yearFromInput.getValue(),this.yearToInput.getValue())};Ext.extend(Wiz.view.YearSelector,Ext.Panel,{_toggleMostRecentYear:function(A){this.ignoreMemberSelects=true;if(A){this.dimension.deselectAllMembersAndSelectSingleMember(this.model.getMember(this.mostRecentYearCoord))}else{this.dimension.deselectAllMembers()}this.ignoreMemberSelects=false;this._updateYearSelects();this.fireEvent("updateLabel")},_updateYearSelects:function(){var A=this.dimension.getSelectedMembers();if(this._isRange(A)){this.yearToInput.setValue(A[0].getMemberCode());this.yearFromInput.setValue(A[A.length-1].getMemberCode());this.metadataIconTo.setVisible(A[0].hasMetadata());this.metadataIconFrom.setVisible(A[A.length-1].hasMetadata())}else{this.yearFromInput.setValue("");this.yearToInput.setValue("");this.metadataIconFrom.hide();this.metadataIconTo.hide()}},_resetSelectionBoxes:function(){this.yearToInput.setValue("");this.yearFromInput.setValue("");this._updateMostRecentYear("","")},_isRange:function(C){var B=false;if(C.length>0){B=true;var D=parseInt(C[0].getMemberCode());var A=1;while(B&&A<C.length){var E=parseInt(C[A].getMemberCode());if(E==(D-1)){D=E}else{B=false}A++}}return B},_validateYearFrom:function(){if(this.yearToInput.getValue()===""){this.yearToInput.setValue(this.yearFromInput.getValue())}else{if(this.yearToInput.getValue()<this.yearFromInput.getValue()){this.yearToInput.setValue(this.yearFromInput.getValue())}else{this.yearToInput.clearInvalid();this.yearFromInput.clearInvalid()}}},_validateYearTo:function(){if(this.yearFromInput.getValue()===""){this.yearFromInput.setValue(this.yearToInput.getValue())}else{if(this.yearFromInput.getValue()>this.yearToInput.getValue()){this.yearFromInput.setValue(this.yearToInput.getValue())}else{this.yearToInput.clearInvalid();this.yearFromInput.clearInvalid()}}},_newSelectionMade:function(){if(this.yearFromInput.isValid()&&this.yearToInput.isValid()){this.yearStore.clearFilter(false);var A=this.yearFromInput.getValue();var D=this.yearToInput.getValue();var G=this.yearStore.find("label",A);var B=this.yearStore.find("label",D);var C=this.yearStore.getRange(G,B);var I=[];for(var E=0,H=C.length;E<H;E++){I.push(C[E].get("coord"))}this.dimension.suspendEvents();this.dimension.deselectAllMembers();this.dimension.resumeEvents();this._updateMostRecentYear(A,D);var F=new Wiz.util.MemberChangeCollection();F.selections=I;this.model.updateMembers(F);this.fireEvent("updateLabel")}},_updateMostRecentYear:function(B,A){this.mostRecentYearCheckBox.suspendEvents();if(B==this.mostRecentYear&&A==this.mostRecentYear){this.mostRecentYearCheckBox.setValue(true);this.checkboxContainer.addClass("highlighted")}else{this.mostRecentYearCheckBox.setValue(false);this.checkboxContainer.removeClass("highlighted")}this.mostRecentYearCheckBox.resumeEvents()},_memberNotInRange:function(D){var A=parseInt(D.getMemberCode());var C=parseInt(this.yearFromInput.getValue());var B=parseInt(this.yearToInput.getValue());return !(C<=A&&A<=B)}});Wiz.view.Checkbox=function(A){A=A||{};if(!isDefined(A.border)){A.border=false}Ext.apply(this,A);this.addEvents("beforeCheck");this.name=this.member.getCoord().toString();this.boxLabel=this.member.getLabel();if(isDefined(this.depth)){this.cls="indentLevel"+this.depth}if(!this.member.isDisabled()){this.disabled=false}else{this.disabled=true}Wiz.view.Checkbox.superclass.constructor.call(this);this.on("beforerender",function(B){this.setValue(B.member.selected)});this.on("enable",Wiz.view.Checkbox.updateLabelHandler,{checkBox:this,enable:true});this.on("disable",Wiz.view.Checkbox.updateLabelHandler,{checkBox:this,enable:false});this.member.on("memberStateChanged",function(C,B){switch(B){case MEMBER_SELECT_EVENT:this.setValue(true);break;case MEMBER_DESELECT_EVENT:this.setValue(false);break;case MEMBER_ENABLE_EVENT:this.enable();break;case MEMBER_DISABLE_EVENT:this.disable();break}},this)};Ext.extend(Wiz.view.Checkbox,Ext.form.Checkbox,{setIndentationLevel:function(A){this.addClass("indentLevel"+A)},toString:function(){return"Checkbox: "+this.member.getCoord()}});Ext.override(Wiz.view.Checkbox,{onClick:function(){var C=function(G,K,J){var F=J.get(G);if(isDefined(F)){for(var H=0;H<F.length;H++){var I=F[H];K.push(I);C(I.toString(),K,J)}}};if(this.el.dom.checked!=this.checked){var B=this.el.dom.checked;this.el.dom.checked=!this.el.dom.checked;if(this.fireEvent("beforeCheck",this.member)===false){return }var A=new Wiz.util.MemberChangeCollection();if(B){A.selections=this.coordArray}else{var E=[];C(this.parentKey,E,this.coordParentMap);if(isDefined(E)&&E.length>0){A.deselections=this.coordArray.concat(E)}else{A.deselections=this.coordArray}}var D=this.model.updateMembers(A)}}});Wiz.view.Checkbox._appendGroupChildrenFromNode=function(E,C,A){var B=A.children;for(var D=0;D<B.length;D++){var F=B[D];C.push(F.coord);if(F.coord.isGroup()){E(E,C,F)}}};Wiz.view.Checkbox.updateLabelHandler=function(){if(this.checkBox.rendered){if(this.enable){this.checkBox.container.removeClass("labelDisabled")}else{this.checkBox.container.addClass("labelDisabled")}}};Wiz.view.Checkbox.renderCheckboxTree=function(C,E,B,H){var A=[];var I=Wiz.view.Checkbox._renderCheckboxTreeRecursive;for(var D=0,G=C.length;D<G;D++){A=A.concat(I(C[D],E,0,B,H))}var F=new Wiz.view.SimpleContainer({header:false,items:A,border:false,style:"margin-left: 5px"});return F};Wiz.view.Checkbox._renderCheckboxTreeRecursive=function(S,D,R,H,G,J){var M=Wiz.view.Checkbox._renderCheckboxTreeRecursive;var A=Wiz.view.Checkbox._appendGroupChildrenFromNode;var N=S.coord;var B=D.getMember(N);var L=[];if(!isDefined(B)){L.push(new Ext.form.Label({text:S.label}))}else{var K={};if(isDefined(J)){var Q=H.get(N.toString());if(!isDefined(Q)){Q=[];H.add(N.toString(),Q)}Q.push(J)}if(N.isGroup()){var E=[];A(A,E,S);E.push(N);K=new Wiz.view.Checkbox({id:"gcb_"+N.toString(),member:B,depth:R,model:D,coordArray:E,parentKey:N.toString(),coordParentMap:H})}else{K=new Wiz.view.Checkbox({member:B,depth:R,model:D,coordArray:[N],parentKey:N.toString(),coordParentMap:H})}var C=new Wiz.view.SimpleComponent({id:"meta_"+N.toString(),cls:"metadataIcon inCoreWidget",handleMouseEvents:false,hideMode:"offsets",handler:function(){Wiz.view.MetadataPopup.show(D.getCurrentDataset(),S.coord.toString())}});if(!B.hasMetadata()){C.hide()}B.on("metadataUpdated",function(T){if(T){this.show()}else{this.hide()}},C);if(G){var I=new Wiz.view.SimpleContainer({cls:"checkboxContainer",items:[K,C]})}else{var I=new Wiz.view.SimpleContainer({cls:"checkboxContainer",items:[C,K]})}L.push(I)}if(S.children.length>0){var F=S.children;for(var O=0,P=F.length;O<P;O++){if(N.isGroup()){L=L.concat(M(F[O],D,R+1,H,G,N))}else{L=L.concat(M(F[O],D,R+1,H,G))}}}return L};Wiz.view.WidgetLabel=function(A){A=A||{};Ext.apply(this,A);this.addEvents("zeroSelections","moreThanZeroSelections");this.dimensionArray=[];this.model.on("selectionsUpdated",function(){this._updateSelectionLabel()},this)};Ext.extend(Wiz.view.WidgetLabel,Ext.util.Observable,{addDimension:function(A){if(-1===this.dimensionArray.indexOf(A)){this.dimensionArray.push(A)}},update:function(){this._updateSelectionLabel()},_updateSelectionLabel:function(){var D=[];for(var A=0;A<this.dimensionArray.length;A++){D=D.concat(this.dimensionArray[A].getSelectedMembers())}var C="";if(D.length===0){C=Wiz.view.Widget.NO_SELECTION_TEXT;this.fireEvent("zeroSelections")}else{this.fireEvent("moreThanZeroSelections");if(D.length===1){C=D[0].label}else{C=D.length+" Selected"}}var B=this.currentSelectionLabel.getEl();B.innerHTML=C}});Wiz.view.Widget=function(C){this.eventsEnabled=true;C=C||{};Ext.apply(this,C);this.addEvents("heightChange","memberSelectChange","multipleSelectChange","optionalSelectChange");this.title=this.definition.label;this.currentSelectionLabel=new Ext.Toolbar.TextItem(Wiz.view.Widget.NO_SELECTION_TEXT);var I=[];var L=false;this.defaultCoords=[];this.selectedMembers=new Ext.util.MixedCollection();this.isOptionalWidget=isDefined(this.definition.datasetCode);this.widgetLabel=new Wiz.view.WidgetLabel({currentSelectionLabel:this.currentSelectionLabel,model:this.model});if(this.isOptionalWidget){this.widgetLabel.addDimension(this.model.getOptionalDimension(this.definition.dimensionCode))}else{this.widgetLabel.addDimension(this.model.getDimension(this.definition.dimensionCode))}this.on("render",function(){var M=new Ext.util.DelayedTask(function(){this.widgetLabel.update()},this);M.delay(100)},this);this.model.on("datasetLocked",function(){this.update()},this.widgetLabel);if("true"==this.definition.selectionRequired){var B="";if(this.isOptionalWidget){B+=this.definition.datasetCode+"_"}B+=this.definition.dimensionCode+"_widgetNotificationText";var F="Please make at least one selection from this option.";var D=new Wiz.view.SimpleComponent({id:B,header:false,text:F,cls:"widget-notification-text",hidden:true});this.widgetLabel.on("zeroSelections",function(){this.show()},D);this.widgetLabel.on("moreThanZeroSelections",function(){this.hide()},D);I.push(D)}if(isDefined(this.definition.quickPicksTree)){if(!this.isOptionalWidget){var G=this._renderQuickpicks();if(isDefined(G)){I.push(G);L=true}}else{var E=this._renderMemberTree();if(isDefined(E)){I.push(E);L=true}}}var K=this._renderYearSelector();if(isDefined(K)){if(L){I.push(Wiz.view.Widget.getDividerPanel())}I.push(K);L=true}var H=this._renderMemberBrowser();if(isDefined(H)){for(var A=0;A<H.length;A++){if(L){I.push(Wiz.view.Widget.getDividerPanel())}I.push(H[A])}L=true}var J=this._renderSearchBox();if(isDefined(J)){if(L){I.push(Wiz.view.Widget.getDividerPanel())}I.push(J);L=true}this.tbar=this._createCurrentSelectionLabelToolbar(this.currentSelectionLabel,H);if(I.length===0){this.html="<div>Nothing Defined!</div>"}else{this.itemContainer=new Ext.Panel({items:I,style:"margin: 5px"});this.items=this.itemContainer}Wiz.view.Widget.superclass.constructor.call(this)};Ext.extend(Wiz.view.Widget,Ext.Panel,{anchor:"100%",frame:true,collapsible:false,draggable:false,cls:"x-portlet",suspendEvents:function(){this.eventsEnabled=false},resumeEvents:function(){this.eventsEnabled=true},_createCurrentSelectionLabelToolbar:function(B,D){var E=[];E.push(B);if(isDefined(D)&&D.length==1){var A=new Ext.Button({xtype:"button",cls:"selectionBrowseButton",overCls:"selectionBrowseButton",handleMouseEvents:false,enableToggle:false,allowDepress:false});A.on("click",function(){this.fireEvent("click")},D[0]);E.push(A)}var C=new Ext.Toolbar({items:E,cls:"currentSelectionBox"});return C},_renderQuickpicks:function(){if(!isDefined(this.definition.quickPicksTree)){return undefined}var G=this.definition.quickPicksTree.nodes;var H=false;var A=Wiz.view.Checkbox.renderCheckboxTree(G,this.model,new Ext.util.MixedCollection(false),H);for(var E=0;E<A.items.length;E++){var B=A.items.get(E);for(var D=0;D<B.items.length;D++){var I=B.items.get(D);if(isDefined(I.member)){var C=I;C.on("render",function(J){if(J.getEl().dom.checked){this.checkboxContainer.addClass("highlighted")}else{this.checkboxContainer.removeClass("highlighted")}J.on("check",function(K,L){if(J.getEl().dom.checked){this.checkboxContainer.addClass("highlighted")}else{this.checkboxContainer.removeClass("highlighted")}},this)},{checkboxContainer:B})}}}var F=new Wiz.view.SimpleContainer({header:false,items:A});return F},_renderSearchBox:function(){if(!isDefined(this.definition.searchBoxLabel)||this.searchBoxLabel===""){return }var D=new Ext.form.ComboBox({id:"search_"+this.definition.dimensionCode,cls:"searchBox",displayField:"label",selectOnFocus:true,emptyText:this.definition.searchBoxLabel,mode:"local",hideTrigger:true,width:130});var C=this.model.dimensions.get(this.definition.dimensionCode);var A=C.getMembers();for(var B=0;B<A.length;B++){A[B].on("deselect",function(E){if(this.getValue()==E.getLabel()){this.clearValue()}},D)}this.model.on("reset",function(){this.clearValue()},D);D.on("focus",function(G){if(isDefined(G.store)){G.store.removeAll()}else{G.store=new Ext.data.SimpleStore({fields:["label","code"]})}var J=this.model.dimensions.get(this.definition.dimensionCode);var M=J.getEnabledMembers();var F=Ext.data.Record.create([{name:"label"},{name:"code"}]);var H=[];for(var K=0;K<M.length;K++){var I=M[K].getLabel();var L=M[K].getCoord();var E=L.toCoreMemberDomId();if(I!==null&&E!==null&&!L.isGroup()){H.push(new F({label:I,code:E}))}}G.store.add(H);G.store.sort("label","ASC")},this);D.on("select",function(I,E,F){var H=E.get("code");var K=Wiz.util.Coord.valueOf(Wiz.util.Coord.parseCoord(H));var J=this.model.getMember(K);var G=J.isSelected();if(!G){this._onMemberSelectChange(K,true)}D.selectText()},this);D.on("change",function(J,I,E){var F=J.store.find("label",new RegExp("^"+I+"$","i"));if(F!=-1){var H=J.store.getAt(F).get("code");var K=Wiz.util.Coord.parseCoord(H);var G=this.model.getMember(K).isSelected();if(!G){this._onMemberSelectChange(K,true)}}},this);return D},_renderMemberBrowser:function(){if(!isDefined(this.definition.memberBrowserTree)||this.definition.memberBrowserTree.length===0){return undefined}var D=[];for(var B=0;B<this.definition.memberBrowserTree.length;B++){var E=this.definition.dimensionCode;if(this.definition.memberBrowserTree.length>1){E+="_"+B}var C=new Wiz.view.Browser({coordTree:this.definition.memberBrowserTree[B],model:this.model,dimension:this.model.getDimension(this.definition.dimensionCode),windowCoord:E});if(isDefined(this.yearSelector)){C.on("updatingMultipleMembers",function(){this.ignoreMemberSelects=true},this.yearSelector);C.on("doneUpdatingMultipleMembers",function(){this.ignoreMemberSelects=false;this._updateYearSelects()},this.yearSelector)}var A=new Wiz.view.SimpleComponent({id:"browse_"+E,text:this.definition.memberBrowserTree[B].label,cls:"browseButton fakeLink"});A.on("click",function(){this.show()},C);D.push(A)}return D},_renderYearSelector:function(){if(!isDefined(this.definition.yearSelector)||this.definition.yearSelector.length===0){return }var D=this.definition.dimensionCode;var B=this._generateYearRange(this.definition.yearSelector.nodes);var A=B.getAt(0);this.yearSelector=new Wiz.view.YearSelector({mostRecentYear:A.get("label"),yearStore:B,model:this.model,cls:"yearSelector",dimensionCode:D});this.yearSelector.on("multipleChecked",function(E){this.fireEvent("multipleSelectChange",E,true)},this);this.yearSelector.on("multipleUnchecked",function(E){this.fireEvent("multipleSelectChange",E,false)},this);this.yearSelector.on("updateLabel",function(){this.widgetLabel.update()},this);this.yearSelector.on("mostRecentYearCheckboxClicked",function(){this.model.fireEvent("processedSelectionsChanged")},this);var C=new Wiz.view.SimpleContainer({header:false,items:[this.yearSelector]});return C},_generateYearRange:function(B){var A=new Ext.data.SimpleStore({fields:["label","coord","hasMetadata"]});var C=[];for(i=0;i<B.length;i++){var D=this.model.getMember(B[i].getCoord());C[i]=[D.getLabel(),D.getCoord(),D.hasMetadata()]}A.loadData(C);return A},_renderMemberTree:function(){var D=[];if(!isDefined(this.definition.quickPicksTree)){return undefined}var B=new Ext.tree.TreeNode({expandable:false,expanded:true});var C=this.definition.quickPicksTree.nodes;this._appendMemberTreeNodes(B,C,1);var A=new Ext.tree.TreePanel({animate:true,autoScroll:false,containerScroll:false,rootVisible:false});A.setRootNode(B);return A},_onOptionalTreeExpand:function(A){if(A.rendered){this.fireEvent("heightChange",this.getInnerHeight()+this.getFrameHeight()+10)}},_appendMemberTreeNodes:function(I,C,B){if(!isDefined(C)||!isDefined(C.length)){return undefined}for(var F=0;F<C.length;F++){var E=this.model.getMember(C[F].coord);var D=C[F].isDefault;if(D){this.defaultCoords.push(C[F].coord)}var J=C[F].label;var H=(B<2);var K=undefined;var L=undefined;var G=undefined;var A=false;if(E){K=E.isSelected();G=E.getCoord();A=this.model.hasMetadata(E,this.definition.datasetCode);if(K){L="highlighted"}}treeNode=new Ext.tree.TreeNode({text:J,checked:K,id:C[F].coord.toString(),hasMetadata:A,coord:G,model:this.model,uiProvider:Ext.ux.SimpleTreeNodeUI,expanded:H,cls:L});treeNode.on("checkchange",function(M,N){this._onOptionalSelectChange(Wiz.util.Coord.valueOf(M.id),N);if(-1!==M.id.indexOf(Wiz.util.GROUP_IDENTIFIER)){this._toggleChildNodes(M,N)}if(!N&&isDefined(M.parentNode)){this._uncheckGroupParentNodes(M)}if(N){M.ui.addClass("highlighted")}else{M.ui.removeClass("highlighted")}},this);treeNode.on("expand",this._onOptionalTreeExpand,this);treeNode.on("click",function(M){var N=!M.attributes.checked;M.ui.toggleCheck(N);M.attributes.checked=N;M.fireEvent("checkchange",M,N)},this);if(isDefined(E)){E.on("memberStateChanged",function(O,M){switch(M){case MEMBER_SELECT_EVENT:if(this.rendered){var N=this.ui.checkbox.checked;if(!N){this.suspendEvents();this.ui.toggleCheck(true);this.ui.addClass("highlighted");this.resumeEvents()}}else{this.attributes.checked=true}break;case MEMBER_DESELECT_EVENT:if(this.rendered){var N=this.ui.checkbox.checked;if(N){this.suspendEvents();this.ui.toggleCheck(false);this.ui.removeClass("highlighted");this.resumeEvents()}}else{this.attributes.checked=false}break;case MEMBER_ENABLE_EVENT:if(this.ui.checkbox.disabled){this.suspendEvents();this.enable();this.resumeEvents()}break;case MEMBER_DISABLE_EVENT:if(!this.ui.checkbox.disabled){this.suspendEvents();this.disable();this.resumeEvents()}break}},treeNode)}I.appendChild(treeNode);if(C[F].hasChildren()){this._appendMemberTreeNodes(treeNode,C[F].getChildren(),B+1)}}},_toggleChildNodes:function(B,C){if(isDefined(B.childNodes)&&isDefined(B.childNodes.length)){for(var A=0;A<B.childNodes.length;A++){B.fireEvent("checkchange",B.childNodes[A],C);this._toggleChildNodes(B.childNodes[A],C)}}},_uncheckGroupParentNodes:function(A){if(isDefined(A.parentNode)){if(-1!==A.parentNode.id.indexOf(Wiz.util.GROUP_IDENTIFIER)){this._onOptionalSelectChange(Wiz.util.Coord.valueOf(A.parentNode.id),false)}this._uncheckGroupParentNodes(A.parentNode)}},_onMemberSelectChange:function(C,A){var B=new Wiz.util.MemberChangeCollection();if(A){B.selectMember(C)}else{B.deselectMember(C)}this.model.updateMembers(B)},_onOptionalSelectChange:function(C,A){var B=new Wiz.util.MemberChangeCollection();if(A){B.selectOptionalMember(C)}else{B.deselectOptionalMember(C)}this.model.updateMembers(B)}});Ext.reg("widget",Wiz.view.Widget);Wiz.view.Widget.getDividerPanel=function(){return new Ext.Panel({header:false,html:'<div class="divider"><img src="images/s.gif" width="1px" height="1px" border="0" /></div>'})};Wiz.view.Widget.NO_SELECTION_TEXT="No Selection";Wiz.view.Widget.SELECTION_TEXT="Selected";Ext.ux.SimpleTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{onDblClick:function(A){},renderElements:function(C,H,G,I){this.indentMarkup=C.parentNode?C.parentNode.ui.getChildIndent():"";var D=typeof H.checked=="boolean";var B=['<li class="x-tree-node"><div ext:tree-node-id="',C.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable checkboxContainer ',H.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="',H.icon||this.emptyIcon,'" class="x-tree-node-icon',(H.icon?" x-tree-node-inline-icon":""),(H.iconCls?" "+H.iconCls:""),'" unselectable="on" />',D?('<input class="x-tree-node-cb" name="'+H.coord+'" type="checkbox" '+(H.checked?'checked="checked" />':"/>")):"",' <span unselectable="on">',C.text,"</span> ",(H.hasMetadata?"<span class='metadataIcon'>&nbsp;&nbsp;&nbsp;&nbsp;</span>":""),"</div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");var A;if(I!==true&&C.nextSibling&&(A=C.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",A,B)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",G,B)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var F=this.elNode.childNodes;this.indentNode=F[0];this.ecNode=F[1];this.iconNode=F[2];var E=3;if(D){this.checkbox=F[3];E++}if(H.hasMetadata){this.metadataIcon=Ext.get(this.elNode.lastChild);this.metadataIcon.on("click",function(){Wiz.view.MetadataPopup.show(this.model.getCurrentDataset(),this.coord.toString())},H);this.metadataIcon.on("mouseover",function(){this.addClass("mouseover")});this.metadataIcon.on("mouseout",function(){this.removeClass("mouseover")})}this.anchor=F[E];this.textNode=F[E].firstChild}});Ext.reg("simpleTreeNodeUI",Ext.ux.SimpleTreeNodeUI);var uniqueID=0;var browserCount=0;var browserGroupCount=0;Wiz.view.Browser=function(A){A=A||{};var B={model:A.model,dimension:A.dimension,windowCoord:A.windowCoord};Ext.apply(B,A.coordTree);Ext.apply(this,B);this.firstTime=true;this.firstShowLoading=true;this.memberInfoPanelBaseHeight=56;this.memberInfoPanelExpandedHeight=100;this.addEvents("show","updatingMultipleMembers","doneUpdatingMultipleMembers");this.coordGroupMap=new Ext.util.MixedCollection(false);this.on("show",function(){if(this.firstTime){this.initialize();this.firstTime=false}var C=this.model.getDimension(this.dimensionCode).getDisabledMembers();if(C.length>0){this._showHideDisabledMemberInfo(true)}else{this._showHideDisabledMemberInfo(false)}},this)};Ext.extend(Wiz.view.Browser,Ext.util.Observable,{_showLoading:function(){if(!isDefined(this.loadingWin)){this.loadingMgr=new Ext.WindowGroup();this.loadingMgr.zseed="50000";this.loadingWin=new Ext.Window({id:"loading_window_"+this.windowCoord,html:'<img class="loading_icon" style="float:left" src="images/blue-loading.gif"/><div class="loadingMessage">Loading... </div>',width:220,height:60,closable:false,modal:true,manager:this.loadingMgr,resizeable:false,cls:"loading_window",draggable:false})}this.loadingWin.show();this.loadingWin.center();this.loadingWin.setActive(true);this.loadingWin.toFront()},_hideLoading:function(){this.loadingWin.hide()},initialize:function(){this._showLoading();this.memberGrid=this._getMemberGrid();var B=this.win.findById("memberGridPanel");B.add(this.memberGrid);B.doLayout();var C=this.memberGrid.getSelectionModel();var A=new Ext.util.DelayedTask(function(){this.memberDetailPanels=this._getMemberDetailPanels();var D=this.win.findById("memberDetailsPanel");C.on("rowselect",function(K,J,G){var H=G.get("coord");var F=this.mdp.items.items[J];if(!F.rendered){this.browser._showLoading();browserGroupCount++;log.info("(Browser)loading windowCoord/group: "+this.browser.windowCoord+"/"+J);log.info("(Browser)browser group count is "+browserGroupCount)}this.mdp.on("afterlayout",function(){var L=new Ext.util.DelayedTask(function(){this.browser._hideLoading()},this);L.delay(100)},this);var I=new Ext.util.DelayedTask(function(){this.mdp.getLayout().setActiveItem(J);this.mdp.doLayout(true)},this);I.delay(100)},{mdp:D,browser:this});this.memberDetailPanels.reverse();for(var E=this.memberDetailPanels.length-1;E>=0;E--){D.add(this.memberDetailPanels[E])}C.selectFirstRow()},this);A.delay(10);browserCount++;log.info("(Browser)browser count is "+browserCount)},initView:function(){this.win=new Ext.Window({id:"browse_window_"+this.windowCoord,title:this.label,layout:"border",width:800,height:400,closeAction:"hide",modal:true,draggable:true,hideBorders:true,resizable:true,constrainHeader:true,border:false,cls:"browseWindow",items:[{id:"memberGridPanel",autoScroll:true,xtype:"panel",region:"west",layout:"fit",width:370,margin:{right:5}},{id:"memberDetailsPanel",region:"center",layout:"card",activeItem:0,layoutConfig:{deferredRender:true}},{id:"memberInfoPanel",style:"padding-top: 8px; padding-bottom: 8px",cls:"mbSouthPanel",xtype:"panel",region:"south",height:this.memberInfoPanelBaseHeight,border:false,header:false,items:[{id:"browse_window_ok_"+this.windowCoord,xtype:"button",text:"&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;",cls:"displayDataButton rightOkButton",handler:function(){this.win.hide()},scope:this},{style:"padding-left: 5px",width:650,xtype:"simpleComponent",border:false,header:false,html:'<div style="width: 650px;">Clicking on a grouping allows you to further refine your selection to specific members of that grouping or select the entire grouping as your data selection</div>',handleMouseEvents:false,cls:"memberBrowserInfo"},{id:"disabledMemberInfoComponent",xtype:"simpleComponent",border:false,header:false,hidden:true,html:'<div class="disabledMemberInfoIcon">&nbsp;</div>Some groupings/members of groupings are not available due to the combination of choices that you have made.<br>Learn more about how to make grayed out data selectable by <a href="help.html" onclick="return popup(this.href, \'child\');">visiting the help section</a>.',handleMouseEvents:false,cls:"disabledMemberInfo"}]}]});this.win.on("beforeshow",function(){this.win.center();var A=this.win.getPosition();this.win.setPosition(A[0],10)},this);this.win.on("show",function(){this.fireEvent("show")},this);this.win.show()},_findCheckBoxInArray:function(D,A){var C=undefined;for(var B=0;B<A.length;B++){C=A[B].findById(D);if(isDefined(C)){break}}return C},_getMemberDetailPanels:function(){var J=this.nodes;var E=[];var K=true;var S=Wiz.view.Checkbox.renderCheckboxTree;var X=this._addEventsToCheckboxesRecursive;var P=this.model;var L=new Ext.util.MixedCollection(false);this.groupStore.each(this._initCheckCountUpdater,this);for(var T=0,V=J.length;T<V;T++){var Q=J[T];var O=[];var D=this.groupStore.getAt(T);for(var U=0,F=Q.children.length;U<F;U++){var H=Q.children[U];O=O.concat(S([H],P,L,K));this._addEventsToCheckboxesRecursive(H,D,P);if(H.coord.isGroup()){var N=this.model.getMember(H.coord);var G=H.getChildren();var Z=true;for(var M=0;M<G.length;M++){var Y=G[M];var A=this.model.getMember(Y.coord);if(A.disabled){Z=false;break}}if(!Z){N.setEnabled(false)}for(var R=0,I=H.children.length;R<I;R++){var C=H.children[R];var B=this.model.getMember(C.coord);B.on("memberStateChanged",function(h,d){if(d==MEMBER_DISABLE_EVENT){var a=this.browser.model.getMember(this.parent.coord);a.setEnabled(false)}else{if(d==MEMBER_ENABLE_EVENT){var a=this.browser.model.getMember(this.parent.coord);var g=true;var c=this.parent.children;for(var b=0;b<c.length;b++){var f=c[b];var e=this.browser.model.getMember(f.coord);if(e.disabled){g=false;break}}if(g){a.setEnabled(true)}}}},{parent:H,browser:this})}}}var W=new Ext.Panel({id:Q.coord,header:false,items:O,border:false,autoScroll:true});E.push(W)}return E},_initCheckCountUpdater:function(A){A.count=0;A.enabledCount=0;A.disabledCount=0;var C=2000;var B=new Ext.util.DelayedTask(this._updateRecordCheckCount,this,[A]);B.delay(C)},_updateRecordCheckCount:function(B){var A=B.count;var F=B.enabledCount;var G=B.disabledCount;var H=B.get("count");var E=B.get("enabledCount");var C=B.get("disabledCount");if(A!==H){B.beginEdit();B.set("count",A);B.endEdit()}if(F!==E){B.beginEdit();B.set("enabledCount",F);B.endEdit()}if(G!==C){B.beginEdit();B.set("disabledCount",G);B.endEdit()}var D=new Ext.util.DelayedTask(this._updateRecordCheckCount,this,[B]);D.delay(1000)},_coordArrayContains:function(B,C){for(var A=0;A<B.length;A++){if(B[A]==C){return true}}return false},_getMemberGrid:function(){var E=this.nodes;var D=[];for(var B=0,A=E.length;B<A;B++){var F=E[B];D.push([F.coord.toString(),F.label,0,0])}this.groupStore=new Ext.data.SimpleStore({fields:[{name:"coord"},{name:"label"},{name:"count"},{name:"enabledCount"},{name:"disabledCount"}]});this.groupStore.loadData(D);var C=new Ext.grid.GridPanel({store:this.groupStore,autoScroll:false,border:false,columns:[{width:0,id:"coord",hidden:true,dataIndex:"coord"},{id:"name",dataIndex:"label",width:300},{width:50,id:"count",dataIndex:"count",renderer:function(L,K,H,M,J,I){var G="";if(L>0){G+="("+L+")"}return G},type:"string"},{width:30,dataIndex:"enabledCount",renderer:function(L,K,H,M,J,I){var G="&nbsp;";if(H.disabledCount>0){K.css+=" disabledMemberInfoIcon"}return G},type:"string"}],autoExpandColumn:"name",stripeRows:false,hideHeaders:true,width:200});return C},show:function(){if(!isDefined(this.win)){this.initView()}else{this.win.show()}},_addEventsToCheckboxesRecursive:function(G,A,D){var B=[];var H=G.coord;var C=D.getMember(H);if(C!==undefined){if(!C.isDisabled()){A.enabledCount++}else{A.disabledCount++}if(C.isSelected()){A.count++}C.on("memberStateChanged",function(J,I){this.updateMemberObj(A,I)},this)}var F=G.children;if(F.length>0){for(var E=F.length-1;E>=0;E--){this._addEventsToCheckboxesRecursive(F[E],A,D)}}},updateMemberObj:function(A,B){switch(B){case MEMBER_SELECT_EVENT:A.count++;break;case MEMBER_DESELECT_EVENT:A.count--;break;case MEMBER_ENABLE_EVENT:A.enabledCount++;A.disabledCount--;break;case MEMBER_DISABLE_EVENT:A.enabledCount--;A.disabledCount++;break}},_showHideDisabledMemberInfo:function(B){var A=this.win.findById("memberInfoPanel");var C=this.win.findById("disabledMemberInfoComponent");if(B){if(C.hidden){A.setHeight(this.memberInfoPanelExpandedHeight);C.show();this.win.doLayout()}}else{if(!(C.hidden)){A.setHeight(this.memberInfoPanelBaseHeight);C.hide();this.win.doLayout()}}}});Wiz.view.MetadataPopup=function(A){A=A||{};Ext.apply(this,A);this.init()};Ext.extend(Wiz.view.MetadataPopup,Ext.util.Observable,{init:function(){this.popupWin=new Ext.Window({autoScroll:false,id:"metadataPopup",title:"Metadata",width:360,height:400,closeAction:"hide",resizable:false,modal:true})},_getMetadataUrl:function(B,C){var A="metadata/";A+="?ds=";A+=B;if(isDefined(C)&&isDefined(C.dim)){A+="&q=";A+=C.dim;if(isDefined(C.member)){A+=":";A+=C.member}}A+="&f=json";return A},_getMetadataAsync:function(A){log.profile("(MetadataPopup)fetching_metadata");Ext.Ajax.request({url:A,success:this._handleMetadataSuccess,failure:this._handleMetadataFailure,scope:this,disableCaching:false,autoAbort:false,timeout:60000})},_handleMetadataSuccess:function(response,originalRequest){if(isDefined(this.contentPanel)){this.popupWin.remove(this.contentPanel,true)}var metadata=eval("("+response.responseText+")");var root=new Ext.tree.TreeNode({expandable:false,expanded:true});if(isDefined(metadata.NonCommonMetadata)){this._attachMetadataNodes(root,metadata.NonCommonMetadata)}if(isDefined(metadata.CommonMetadata)){this._attachMetadataNodes(root,metadata.CommonMetadata)}var tree=new Ext.tree.TreePanel({autoScroll:true,cls:"metadataPanel",animate:true,rootVisible:false});tree.setRootNode(root);var title;if(isDefined(this.coord)){var member=window.wiz.controller.model.getMember(this.coord);title=member.getLabel()}else{title=window.wiz.controller.model.getDatasetLabel(this.dataset)}this.contentPanel=new Ext.Panel({height:350,title:title,border:false,items:[tree],autoScroll:true});this.popupWin.add(this.contentPanel);this.popupWin.doLayout();this.popupWin.show();log.profile("(MetadataPopup)fetching_metadata")},_handleMetadataFailure:function(B,A){log.profile("(MetadataPopup)fetching_metadata")},_attachMetadataNodes:function(F,G){for(var B=0;B<G.Contents.length;B++){var I=G.Contents[B];var J=new Ext.tree.TreeNode({expandable:true,expanded:true,text:I.Type});var D=new Ext.tree.TreeNode({expandable:true,expanded:true,text:I.Title});var C=new Ext.tree.TreeNode({cls:"metadataLeaf",expandable:false,expanded:true,leaf:true,text:I.Body});D.appendChild(C);for(var A=0;A<I.Links.length;A++){var H=I.Links[A];var E=new Ext.tree.TreeNode({cls:"metadataLeaf",expandable:false,expanded:true,leaf:true,href:H.Url,text:H.Title});D.appendChild(E)}J.appendChild(D);F.appendChild(J)}},showMetadata:function(A,B){this.dataset=A;this.coord=B;this._getMetadataAsync(this._getMetadataUrl(A,B))}});metadataPopup=new Wiz.view.MetadataPopup();Wiz.view.MetadataPopup.show=function(B,A){var C;if(isDefined(A)&&A!==""){C=Wiz.util.Coord.valueOf(A)}metadataPopup.showMetadata(B,C)};Wiz.view.TableDesigner=function(A){A=A||{};Ext.apply(this,A);this.init()};Ext.extend(Wiz.view.TableDesigner,Ext.util.Observable,{init:function(){this.changed=false;this.sectionTypes=["filter","column","row"];this.sections=[];for(var A=0;A<this.sectionTypes.length;A++){this.sections.push(new Wiz.view.SimpleContainer({}))}this.textLabel=new Ext.form.Label({id:"tableDesignerText",text:"Use the dropdown menu to choose where a particular data selection appears within the dataset. <br><br>Use the up or down arrows next to each data selection to set the order in which they appear in the dataset."});this.hideNoDataRowCheckbox=new Ext.form.Checkbox({id:"hideNoDataRowCheckbox",boxLabel:"Hide rows with no data"});this.okButton=new Ext.Button({id:"td_ok_button",text:"OK",minWidth:100,cls:"displayDataButton",handler:this._updateDataLayout,scope:this});var D=new Wiz.view.SimpleContainer({id:"filterLabelPanel",cls:"layoutAxisHeader",items:[{xtype:"simpleComponent",cls:"layoutIconHeader"},{html:"Filter",cls:"layoutAxis filterAxis"},{xtype:"simpleComponent",cls:"tableLayoutHardRule"}]});var B=new Wiz.view.SimpleContainer({id:"rowLabelPanel",cls:"layoutAxisHeader",items:[{xtype:"simpleComponent",cls:"layoutIconRow"},{html:"Horizontal (Row)",cls:"layoutAxis rowAxis"},{xtype:"simpleComponent",cls:"tableLayoutHardRule"}]});var C=new Wiz.view.SimpleContainer({id:"columnLabelPanel",cls:"layoutAxisHeader",items:[{xtype:"simpleComponent",cls:"layoutIconColumn"},{html:"Vertical (Column)",cls:"layoutAxis columnAxis"},{xtype:"simpleComponent",cls:"tableLayoutHardRule"}]});this.popupWin=new Ext.Window({id:"tableDesigner",title:"Change Data Layout",width:600,height:450,layout:"border",closeAction:"hide",resizable:false,modal:true,constrainHeader:true,items:[{id:"tableDesignerSectionContainer",region:"center",width:420,autoHeight:true,autoScroll:false,margins:"5 5 5 5",items:[D,this.sections[0],C,this.sections[1],B,this.sections[2]]},{id:"tableDesignerInfoContainer",region:"east",width:120,autoHeight:true,border:false,margins:"5 5 5 5",items:[{border:false,html:"<p>Use the dropdown menu to choose where a particular data selection appears within the dataset.</p><p>Use the up or down arrows next to each data selection to set the order in which they appear in the dataset.</p>"},{border:false,html:'<div id="tableDesignerPreview"/>'}]},{id:"tableDesignerButtonContainer",region:"south",height:56,border:false,margins:"5 5 5 5",layout:"border",items:[{region:"west",width:400,border:false,items:[this.hideNoDataRowCheckbox]},{region:"center",width:80,border:false,items:[{xtype:"simpleComponent",text:"Cancel",cls:"cancelLayout fakeLink",handler:this._cancel,scope:this}]},{region:"east",width:120,border:false,items:[this.okButton]}]}]});this.dataLayout=this.model.dataLayout;this.hideNoDataRowCheckbox.setValue(this.dataLayout.hideRowsWithNoData);this._buildSections([this._getFilterDimCodes(),this.dataLayout.columns,this.dataLayout.rows])},_updateInternalDataLayout:function(){this.dataLayout=this.model.dataLayout;this.hideNoDataRowCheckbox.setValue(this.dataLayout.hideRowsWithNoData);this._updateSectionDimensions()},_updateSectionDimensions:function(){var A=this.dataLayout.filters;for(var E=0,G=A.length;E<G;E++){var D=A[E].dim;var H=this.popupWin.findById("td_dimension_"+D);this.sections[1].remove(H,false);this.sections[2].remove(H,false);this.sections[0].add(H);var J=H.findById("td_dropdown_"+D);J.setValue(this.sectionTypes[0])}var C=this.dataLayout.columns;for(var E=0,G=C.length;E<G;E++){var F=C[E];var B=this.popupWin.findById("td_dimension_"+F);this.sections[2].remove(B,false);this.sections[0].remove(B,false);this.sections[1].add(B);var J=B.findById("td_dropdown_"+F);J.setValue(this.sectionTypes[1])}var I=this.dataLayout.rows;for(var E=0,G=I.length;E<G;E++){var F=I[E];var B=this.popupWin.findById("td_dimension_"+F);this.popupWin.remove(B,false);this.sections[1].remove(B,false);this.sections[0].remove(B,false);this.sections[2].add(B);var J=B.findById("td_dropdown_"+F);J.setValue(this.sectionTypes[2])}},show:function(){this._updateInternalDataLayout();this.changed=false;this.popupWin.doLayout();this.popupWin.show()},_removeOFF:function(A,B){if(isDefined(B)&&B.length>0){for(var C=0;C<B.length;C++){A.remove(B[C],true)}}},_getFilterDimCodes:function(){var B=[];if(isDefined(this.dataLayout.filters)&&this.dataLayout.filters.length>0){for(var A=0;A<this.dataLayout.filters.length;A++){B.push(this.dataLayout.filters[A].dim)}}return B},_buildSections:function(C){for(var A=0;A<C.length;A++){for(var B=0;B<C[A].length;B++){this.sections[A].add(this._createDimensionPanel(C[A][B],A))}}},_createDimensionPanel:function(C,J,K){var B=this.model.getDimension(C);if(!isDefined(B)){B=this.model.getOptionalDimension(C)}var H=new Ext.form.Label({text:B.getLabel(),cls:K?"dimensionLabel labelActive":"dimensionLabel labelInactive"});var G=new Ext.data.SimpleStore({fields:["label","sectionType"],data:[["Filter","filter"],["Vertical (Column)","column"],["Horizontal (Row)","row"]]});var L=new Ext.form.ComboBox({id:"td_dropdown_"+C,displayField:"label",valueField:"sectionType",mode:"local",triggerAction:"all",store:G,typeAhead:true,selectOnFocus:true,editable:false,triggerClass:K?undefined:"hideTrigger",cls:K?undefined:"inactiveDropdown",width:120});L.setValue(this.sectionTypes[J]);var I=new Ext.form.Label({text:"Click to modify",cls:"dimensionTip"});var E=new Ext.Button({id:"td_up_button_"+C,hideMode:"offsets",cls:"x-btn-icon upButton"});var A=new Ext.Button({id:"td_down_button_"+C,hideMode:"offsets",cls:"x-btn-icon downButton"});if(!K){E.hide();A.hide();I.show()}else{E.show();A.show();I.hide()}var F=new Wiz.view.SimpleContainer({cls:"dimensionArrangement",items:[L,I,E,A]});var D=new Wiz.view.SimpleContainer({id:"td_dimension_"+C,dimCode:C,cls:"dimension",overCls:"dimensionHighlight",items:[H,F]});D.on("render",function(M){M.getEl().on("click",function(){for(var P=0;P<this.tableDesigner.sections.length;P++){if(isDefined(this.tableDesigner.sections[P].items)){for(var S=0;S<this.tableDesigner.sections[P].items.length;S++){var O=this.tableDesigner.sections[P].items.get(S);var R=O.findByType("button");R[0].hide();R[1].hide();var U=O.findByType("label");U[0].removeClass("labelActive");U[0].addClass("labelInactive");U[1].show();var N=O.findByType("combo");var T=N[0];T.removeClass("activeDropdown");T.addClass("inactiveDropdown");T.trigger.hide()}}}var Q=this.dropdown.getEl();this.label.removeClass("labelInactive");this.label.addClass("labelActive");this.dropdown.removeClass("inactiveDropdown");this.dropdown.addClass("activeDropdown");this.dropdown.trigger.show();this.tip.hide();if(this.tableDesigner._getFirstDimensionPanel()!==this.dimensionPanel){this.upButton.show()}if(this.tableDesigner._getLastDimensionPanel()!==this.dimensionPanel){this.downButton.show()}},this)},{dimensionPanel:D,label:H,upButton:E,downButton:A,dropdown:L,tableDesigner:this,tip:I});L.on("select",function(R,N,P){var Q=this.dimensionPanel.findParentByType("simpleContainer");var M=P;if(Q!=this.tableDesigner.sections[M]){Q.remove(this.dimensionPanel,true);var O=this.tableDesigner._createDimensionPanel(this.dimCode,M,true);this.tableDesigner.sections[M].add(O);this.tableDesigner._hideFirstUpAndLastDown();this.tableDesigner.popupWin.doLayout();this.tableDesigner.changed=true}},{dimCode:C,dimensionPanel:D,tableDesigner:this});E.on("click",function(){var O=this.dimensionPanel.findParentByType("simpleContainer");var N=this.tableDesigner._getDimIndex(O,this.dimensionPanel);var M=this.tableDesigner._indexOf(this.tableDesigner.sections,O);if(N==0){if(M!=0){O.remove(this.dimensionPanel,true);this.tableDesigner.sections[M-1].add(this.tableDesigner._createDimensionPanel(this.dimCode,M-1,true))}}else{O.remove(this.dimensionPanel,true);O.insert(N-1,this.tableDesigner._createDimensionPanel(this.dimCode,M,true))}this.tableDesigner._hideFirstUpAndLastDown();this.tableDesigner.popupWin.doLayout();this.tableDesigner.changed=true},{dimCode:C,dimensionPanel:D,tableDesigner:this});A.on("click",function(){var O=this.dimensionPanel.findParentByType("simpleContainer");var N=this.tableDesigner._getDimIndex(O,this.dimensionPanel);var M=this.tableDesigner._indexOf(this.tableDesigner.sections,O);if((N+1)==O.items.length){if((M+1)!=this.tableDesigner.sections.length){O.remove(this.dimensionPanel,true);this.tableDesigner.sections[M+1].insert(0,this.tableDesigner._createDimensionPanel(this.dimCode,M+1,true))}}else{O.remove(this.dimensionPanel,true);O.insert(N+1,this.tableDesigner._createDimensionPanel(this.dimCode,M,true))}this.tableDesigner._hideFirstUpAndLastDown();this.tableDesigner.popupWin.doLayout();this.tableDesigner.changed=true},{dimCode:C,dimensionPanel:D,tableDesigner:this});D.on("beforedestroy",function(){this.dropdown.destroy();this.upButton.destroy();this.downButton.destroy()},{dropdown:L,upButton:E,downButton:A});return D},_getDimIndex:function(C,A){for(var B=0;B<C.items.length;B++){if(C.items.get(B)==A){return B}}},_indexOf:function(C,B){for(var A=0;A<C.length;A++){if(C[A]==B){return A}}},_cleanUp:function(){for(var D=0;D<this.sections.length;D++){if(isDefined(this.sections[D].items)){var A=this.sections[D].items.length;var B=[];for(var C=0;C<A;C++){B[C]=this.sections[D].items.get(C)}for(var C=0;C<A;C++){var E=new Ext.util.DelayedTask(function(){this.td.sections[this.i].remove(this.dp,true)},{i:D,dp:B[C],td:this});E.delay(20)}}}},_getFilterByDimCode:function(A){var C=this.model.dataLayout.filters;for(var B=0;B<C.length;B++){if(C[B].dim==A){return C[B]}}return undefined},_showDisabledOKPopup:function(){if(!isDefined(this.mbox)){this.loadingMgr=new Ext.WindowGroup();this.loadingMgr.zseed="80000";this.mbox=new Ext.Window({title:"OK Button Disabled",width:500,height:110,closable:false,modal:true,manager:this.loadingMgr,resizeable:false,draggable:false,items:[{xtype:"simpleComponent",text:"The OK button has been disabled due to Vertical (Column) or Horizontal (Row) not containing at least one dimension.\n\n"},{cls:"okayButtonRight",xtype:"button",text:"&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;",handler:function(){this.mbox.hide()},scope:this,style:"position:relative; right: 220px; top: 10px;"}]})}this.mbox.show()},_updateDataLayout:function(){var B=[];var D=[];var K=[];for(var I=0;I<this.sections.length;I++){if(isDefined(this.sections[I].items)){for(var J=0;J<this.sections[I].items.length;J++){var G=this.sections[I].items.get(J);if(this.sectionTypes[I]=="filter"){var F=G.dimCode;var H=this.model.getDimension(F);if(!isDefined(H)){H=this.model.getOptionalDimension(F)}var A=this._getFilterByDimCode(F);if(isDefined(A)){B.push(A)}else{B.push(Wiz.util.Coord.valueOf(F+"_0"))}}else{if(this.sectionTypes[I]=="column"){D.push(G.dimCode)}else{if(this.sectionTypes[I]=="row"){K.push(G.dimCode)}}}}}}if(D.length==0||K.length==0){this._showDisabledOKPopup()}else{this.popupWin.hide();if(this.changed||this.hideNoDataRowCheckbox.checked!=this.dataLayout.hideRowsWithNoData){var C=new Wiz.view.DataLayout({dataset:this.model.dataLayout.dataset,rows:K,columns:D,filters:B,hideRowsWithNoData:this.hideNoDataRowCheckbox.getValue()});var E=new Ext.util.DelayedTask(function(){this.model.updateDataLayout(C)},this);E.delay(500)}this.popupWin.hide()}},_cancel:function(){this.popupWin.hide()},_hideFirstUpAndLastDown:function(){var D=this._getFirstDimensionPanel();if(isDefined(D)){var A=D.findByType("button");A[0].hide()}var B=this._getLastDimensionPanel();if(isDefined(B)){var C=B.findByType("button");C[1].hide()}},_getFirstDimensionPanel:function(){if(isDefined(this.sections[0].items)){return this.sections[0].getComponent(0)}else{return undefined}},_getLastDimensionPanel:function(){var A=this.sections[this.sections.length-1];if(isDefined(A.items)&&A.items.length>0){return A.getComponent(A.items.length-1)}else{return undefined}}});Wiz.view.DataLayout=function(A){this.rows=A.rows||[];this.columns=A.columns||[];this.filters=A.filters||[];this.dataset=A.dataset;this.hideRowsWithNoData=A.hideRowsWithNoData||false};Wiz.view.DataLayout.prototype={setFilterSelection:function(D){for(var C=0;C<this.filters.length;C++){var A=this.filters[C];var B=A.dim;if(D.dim===B){this.filters[C]=D;return }}this.filters.push(D)}};Wiz.view.SimpleComponent=Ext.extend(Ext.Component,{baseCls:"w-scom",hidden:false,clickEvent:"click",handleMouseEvents:true,initComponent:function(){Wiz.view.SimpleComponent.superclass.initComponent.call(this);this.addEvents("click","mouseover","mouseout")},onRender:function(C,A){if(!this.template){if(!isDefined(this.elType)){this.elType="div"}if(this.elType==="div"){if(!Wiz.view.SimpleComponent.divTemplate){if(!isDefined(this.elType)){this.elType="div"}Wiz.view.SimpleComponent.divTemplate=new Ext.Template("<"+this.elType+' id="{id}" class="{cls}">',"{0}{1}","</"+this.elType+">")}this.template=Wiz.view.SimpleComponent.divTemplate}else{if(this.elType==="span"){if(!Wiz.view.SimpleComponent.spanTemplate){Wiz.view.SimpleComponent.spanTemplate=new Ext.Template("<"+this.elType+' id="{id}" class="{cls}">',"{0}{1}","</"+this.elType+">")}this.template=Wiz.view.SimpleComponent.spanTemplate}}}var B,E;if(this.templateArgs===undefined){if(!isDefined(this.text)&&!isDefined(this.html)){E=["&#160;"]}else{E=[this.text||"",this.html||""]}}else{E=this.templateArgs}if(A){B=this.template.insertBefore(A,E,true)}else{B=this.template.append(C,E,true)}var D=B;this.initEl(B,D)},initEl:function(B,C){this.el=B;B.addClass("w-scom");if(this.tabIndex!==undefined){C.dom.tabIndex=this.tabIndex}if(this.pressed){this.el.addClass("w-scom-pressed")}if(this.handleMouseEvents){B.on("mouseover",this.onMouseOver,this);B.on("mousedown",this.onMouseDown,this)}if(this.id){this.el.dom.id=this.el.id=this.id}if(this.repeat){var A=new Ext.util.ClickRepeater(B,typeof this.repeat=="object"?this.repeat:{});A.on("click",this.onClick,this)}B.on(this.clickEvent,this.onClick,this)},focus:function(){this.el.child(this.buttonSelector).focus()},onMouseOver:function(B){if(!this.disabled){var A=B.within(this.el,true);if(!A){this.el.addClass("w-scom-over");if(this.overCls){this.el.addClass(this.overCls)}Ext.getDoc().on("mouseover",this.monitorMouseOver,this);this.fireEvent("mouseover",this,B)}}},monitorMouseOver:function(A){if(A.target!=this.el.dom&&!A.within(this.el)){Ext.getDoc().un("mouseover",this.monitorMouseOver,this);this.onMouseOut(A)}},onMouseOut:function(B){var A=B.within(this.el)&&B.target!=this.el.dom;this.el.removeClass("w-scom-over");this.fireEvent("mouseout",this,B)},onFocus:function(A){if(!this.disabled){this.el.addClass("w-div-focus")}},onBlur:function(A){this.el.removeClass("w-div-focus")},onMouseDown:function(A){if(!this.disabled&&A.button==0){this.getClickEl(A).addClass("w-div-click");Ext.getDoc().on("mouseup",this.onMouseUp,this)}},onMouseUp:function(A){if(A.button==0){this.getClickEl(A,true).removeClass("w-div-click");Ext.getDoc().un("mouseup",this.onMouseUp,this)}},toggle:function(A){A=A===undefined?!this.pressed:A;if(A!=this.pressed){if(A){this.el.addClass("w-scom-pressed");this.pressed=true;this.fireEvent("toggle",this,true)}else{this.el.removeClass("w-scom-pressed");this.pressed=false;this.fireEvent("toggle",this,false)}}},setHandler:function(B,A){this.handler=B;this.scope=A},onClick:function(A){if(A){A.preventDefault()}if(A.button!=0){return }if(!this.disabled){if(this.enableToggle&&(this.allowDepress!==false||!this.pressed)){this.toggle()}if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("click",this,A);if(this.handler){this.handler.call(this.scope||this,this,A)}}},getClickEl:function(B,A){return this.el},restoreClick:function(){this.ignoreNextClick=0},setSize:function(A){this.el.setSize(A)}});Ext.reg("simpleComponent",Wiz.view.SimpleComponent);Wiz.view.grid.QueryTree=function(A){A.isRoot=true;this.root=A};Wiz.view.grid.QueryTree.prototype={getFirstLowestDecendant:function(){return this._getFirstLowestDecendantRecursive(this.root)},_getFirstLowestDecendantRecursive:function(A){if(A.children.length===0){return A}else{return this._getFirstLowestDecendantRecursive(A.children[0])}},_calculateCellsPerQuery:function(B){var D=this.root;var C=D.getWidth();while(C>B){D=D.getFirstChild();C=D.getWidth()}var A=B-(B%C);return A},getNodeCountAtDepth:function(C){var A=this.root;var B=0;return this._getNodeCountAtDepthRecursive(A,C,B)},_getNodeCountAtDepthRecursive:function(B,D,C){if(C===D-1){return B.children.length}for(var A=0;A<B.children.length;A++){return this._getNodeCountAtTargetDepth(children[A],D,C+1)}},toQueryStringArray:function(E){var N=this.getWidth();var S=this.getFirstLowestDecendant();var C=this._calculateCellsPerQuery(E);var X=S.getImmediateSiblingCount();if(C>N){C=N}var A=Math.ceil(N/C);var Y=false;var I=1;if(C<X){var O=X%C;I=((X-O+C)/C);A=I*this.getNodeCountAtDepth(S.parentNode.getDepth());Y=true}var P=[];var J=0;for(var D=0;D<A;D++){var L=D*C;var B=new Ext.util.MixedCollection(false);while(isDefined(S)&&L<C*D+C){L++;var F=S.getAncestorArray();for(var T=0;T<F.length;T++){var U=F[T];var K=U.split(":");var H=B.key(K[0]);if(!isDefined(H)){H=[]}if(H.indexOf(K[1])===-1){H.push(K[1]);B.add(K[0],H)}}if(Y){var R=S;S=S.getNextSibling(Y);if(!isDefined(S)){S=R.getNextSibling();break}}else{S=S.getNextSibling()}}var G="";var Q=B.keys;for(var V=0;V<Q.length;V++){var Z=Q[V];var W=B.get(Z);if(G.length>0){G+="+"}G+=Z+":";for(var M=0;M<W.length;M++){if(M>0){G+=","}G+=W[M]}}P[D]=G}return P},getWidth:function(){var B=0;var A=this.getFirstLowestDecendant();while(isDefined(A)){B++;A=A.getNextSibling()}return B},finalize:function(){}};Wiz.view.grid.QueryTreeNode=function(A,B){this.isRoot=false;this.dimCode=A;this.memberCode=B;this.children=[]};Wiz.view.grid.QueryTreeNode.prototype={getFirstChild:function(){if(this.children.length===0){return null}return this.children[0]},getAncestorArray:function(){var B=[];B.push(this.toValueCoordString());var A=this.parentNode;while(!A.isRoot){B.push(A.toValueCoordString());A=A.parentNode}return B},addChild:function(A){A.parentNode=this;A.parentIndex=this.children.length;this.children[A.parentIndex]=A},getNextSibling:function(A){if(!isDefined(this.parentNode)){return null}var C=this.parentNode.children[this.parentIndex+1];if(!isDefined(C)){if(!A){var B=this.parentNode.getNextSibling();if(!isDefined(B)){return null}C=B.children[0]}else{C=null}}return C},toValueCoordString:function(){var A=[];A[0]=this.dimCode;A[1]=":";A[2]=this.memberCode;return A.join("")},getImmediateSiblingCount:function(){return this.parentNode.children.length},getDepth:function(){var A=this.parentNode;var B=0;while(isDefined(A)){B++;A=A.parentNode}return B},getWidth:function(){if(this.children.length===0){return 1}var A=this.children[0].getWidth();return A*this.children.length},finalize:function(){}};Wiz.view.grid.GridModel=function(A){A=A||{};Ext.apply(this,A);this.addEvents("requiresData","hideRowsComplete");this.updateLayout(this.model.dataLayout)};Ext.extend(Wiz.view.grid.GridModel,Ext.util.Observable,{EXCERPT_TEXT:"These data are an excerpt from ",SEE_ALL_TABLES:"Click here to see all datasets.",NO_VALUE_TEXT:"..",updateLayout:function(A){this.pageNumberMap=undefined;if(isDefined(this.gridLayout)){this.gridLayout.dataLayout=A}else{this.gridLayout=new Wiz.view.grid.GridLayout({model:this.model,dataLayout:A})}this.gridLayout.initialize(A)},renderTableHtml:function(A,B){this.Values=this.model.queryResults;this.layout=this.gridLayout.getPageLayout(A);return this._render(B)},clear:function(){this.Values=null;this.layout=null;this.gridLayout=null},initiateHideRowsWithNoData:function(J,B){var E=document.getElementById("gridTable");var H=J;if(!isDefined(this.pageNumberMap)){this.pageNumberMap=new Ext.util.MixedCollection(false);this.pageNumberMap.add(0,0)}if(!isDefined(this.currentPageOffset)){this.currentPageOffset=0}else{H+=this.currentPageOffset}var C=this.gridLayout.pageCount;this.effectiveRows=E.rows.length;if(!isDefined(this.nextTableIndex)){for(var K=E.rows,G=K.length-1;G>=0;G--){var D=K[G];if(this._isColumnHeaderRow(D)){this.effectiveRows--;continue}if(!this._hasAtLeastOneValueInRow(D)){E.deleteRow(G);this.effectiveRows--}}}else{for(var K=E.rows,G=K.length-1;G>=this.nextTableIndex;G--){var D=K[G];if(!this._hasAtLeastOneValueInRow(D)){E.deleteRow(G);this.effectiveRows--}}}if(H<C-1&&this.effectiveRows<this.gridLayout.MAX){this.currentPageOffset++;var I=H+1;this.nextTableIndex=E.rows.length;this._appendRows(E,I);this._fetchRows(I)}else{var A=this.pageNumberMap.indexOf(J);var I=this.pageNumberMap.get(A+1);if(H<C-1&&!isDefined(I)){this.pageNumberMap.add((A+1),(H+1))}var F=new Wiz.view.GridPositioningSystem(this.getWidth(),this.getHeight(),this.layout.rowAxis.getDimensionCount(),this.layout.colAxis.getDimensionCount());this._collapseCommonHeaders(E.rows,F.headerWidth-1,0,F.headerHeight+1,0);this.fireEvent("hideRowsComplete");this.currentPageOffset=undefined;this.nextTableIndex=undefined}},_collapseCommonHeaders:function(O,M,A,C,F){if(A>=M){return }var L;var K;var H;var J=[];for(var E=C,B=E;E<O.length;E++){var N=O[E];if(B==E){L=N.cells[A];K=L.innerHTML;H=E;J[H]=false;continue}var D=N.cells[A-F];var G=D.innerHTML;var I=O[E+1];if(K==G){L.rowSpan++;N.deleteCell(A-F);J[H]=true}if(K!=G||!isDefined(I)){if(!isDefined(I)){E++}this._collapseCommonHeaders(this._slice(O,H,E),M,A+1,0,J[H]?F+1:F);L=D;K=G;H=E}}},_fetchRows:function(A){var B=this.gridLayout.getQueryUrlForPage(A);this.fireEvent("requiresData",B)},_appendRows:function(B,A,D){this.layout=this.gridLayout.getPageLayout(A);var C=new Wiz.view.GridPositioningSystem(this.getWidth(),this.getHeight(),this.layout.rowAxis.getDimensionCount(),this.layout.colAxis.getDimensionCount());this.effectiveRows+=this._appendTableBody(C,B,C.headerHeight+1,true,D)},reZebra:function(){var B=document.getElementById("gridTable");var H=B.rows;var G=0;for(var E=0;E<H.length;E++){var D=H[E];if(this._isColumnHeaderRow(D)||D.childNodes[0].style.display=="none"){continue}var F=Ext.DomQuery.select("td[class*=result]",D);for(var C=0;C<F.length;C++){var A=F[C];if((G%2)==0){this._changeClass(A,"odd","even")}else{this._changeClass(A,"even","odd")}}G++}},_changeClass:function(B,C,A){if(B.className.indexOf(C)!=-1){var D=B.className.replace(C,A);B.className=D}},_derender:function(I,D){if(I.length>1){var A=false;var C=I[0];var F=C.childNodes[D+1];var H=F.rowSpan;var E=this._derender(this._slice(I,0,H),D+1);A=A||E;for(var G=H;G<I.length;G+=H){E=this._derender(this._slice(I,G,G+H),0);A=A||E}if(!A){this._hideRow(C,D);return false}else{return true}}else{var B=I[0];if(!this._hasAtLeastOneValueInRow(B)){this._hideRow(B,D);this.effectiveRows--;return false}else{return true}}},_slice:function(F,E,B){if(E<0){E=F.length+E}if(B==null){B=F.length}else{if(B<0){B=F.length+B}}var A=[];for(var D=0,C=E;C<B;C++){A[D++]=F[C]}return A},_hideRow:function(A,C){for(var B=C;B<A.childNodes.length;B++){this._hideCell(A.childNodes[B])}},_hideCell:function(A){A.style.display="none"},_isColumnHeaderRow:function(A){var C=Ext.DomQuery.select("td[class*=yAxisMember]",A);var B=Ext.DomQuery.select("td[class*=emptyHeaderCell]",A);return(C.length>0||B.length>0)?true:false},_isRowHeaderCell:function(A){if(A.className.indexOf("xAxisMember")!=-1){return true}else{return false}},_isDataRow:function(A){if(A.lastChild.className.indexOf("odd")!=-1||A.lastChild.className.indexOf("even")!=-1){return true}else{return false}},_render:function(E){var D=document.createElement("div");var A=document.createElement("div");A.setAttribute("id","gridContainer");var B=document.createElement("table");B.setAttribute("id","gridTable");if(isDefined(E)){B.setAttribute("style","width: "+E+"px;")}else{B.setAttribute("width","100%")}A.appendChild(B);D.appendChild(A);var C=new Wiz.view.GridPositioningSystem(this.getWidth(),this.getHeight(),this.layout.rowAxis.getDimensionCount(),this.layout.colAxis.getDimensionCount());this._appendTableBody(C,B,0,this.model.dataLayout.hideRowsWithNoData,E);D.appendChild(this._renderDatasetLabel());return D.innerHTML},_appendTableBody:function(G,D,E,I,J){var M=this.layout.filterAxis.toFilterString();var H=D.tBodies[0];var K=isDefined(H)?H:D;var L=0;var B=0;for(G.rowIndex=0;G.rowIndex<G.totalHeight;G.rowIndex++){var C=document.createElement("tr");C.className="r"+G.rowIndex;for(G.colIndex=0;G.colIndex<G.totalWidth;G.colIndex++){var A=document.createElement("td");if(G.rowIndex<G.headerHeight){if(G.colIndex<G.headerWidth){A=this._headerCellsForColumnDimensionMemberTypes(A,G)}else{var F=this._headerCellsForColumnDimensionLabels(A,G);G=F.gps;A=F.cellElement}}else{if(G.rowIndex==G.headerHeight){A=this._headerCellsForRowDimensionMemberTypes(A,G)}else{if(G.colIndex<G.headerWidth){var N=this._headerCellsForRowDimensionLabels(A,G,I);G=N.gps;A=N.cellElement}else{A=this._resultCells(A,G,B,M)}}}if(A){var O=A.className;A.className=O+" c"+G.colIndex;C.appendChild(A)}}if(G.rowIndex>=E){K.appendChild(C);L++;B++}}return L},_hasAtLeastOneValueInRow:function(D){var C=false;for(var E=0,A=D.childNodes.length;E<A;E++){var B=D.childNodes[E];if(this._isResultCell(B)){if(this._doesResultCellHaveValue(B)){C=true;break}}}return C},_isResultCell:function(A){var B=false;if(Ext.isIE){if(A.outerHTML.indexOf("result")!=-1){B=true}}else{if(A.className.indexOf("result")!=-1){B=true}}return B},_isResultCellOld:function(A){var B=false;if(Ext.isIE){if(A.outerHTML.indexOf("odd")!=-1||A.outerHTML.indexOf("even")!=-1){B=true}}else{if(A.className.indexOf("odd")!=-1||A.className.indexOf("even")!=-1){B=true}}return B},_doesResultCellHaveValue:function(A){var B=false;if(Ext.isIE){if(A.outerHTML.indexOf(this.NO_VALUE_TEXT)==-1){B=true}}else{var C=A.firstChild.nodeValue;if(C!==this.NO_VALUE_TEXT){B=true}}return B},_renderDatasetLabel:function(){var A=document.createElement("div");A.setAttribute("id","tableNameText");A.innerHTML=this.EXCERPT_TEXT+"<strong>"+this._getDataSetLabel(this.model.getCurrentDataset())+"</strong>";if(this.model.hasDatasetMetadata(this.model.getCurrentDataset())){A.appendChild(this._createMetadataIcon())}A.appendChild(document.createTextNode("  "));var B=document.createElement("a");B.setAttribute("href","#");B.setAttribute("onclick","Wiz.view.AllTablesPopup.showWin()");B.innerHTML=this.SEE_ALL_TABLES;A.appendChild(B);return A},_headerCellsForColumnDimensionMemberTypes:function(A,B){if(B.colIndex==B.headerWidth-1){return this._headerCellsGeneric(this.layout.colAxis,A,B,"yAxisDimension",this.layout.colAxis.getDimensionAtIndex(B.rowIndex))}else{return this._headerBlankCellsGeneric(A)}},_headerCellsGeneric:function(E,C,D,A,F){var B=F.label;C.appendChild(document.createTextNode(B));if(F.hasMetadata){C.appendChild(this._createMetadataIcon(F.code))}C.classNAme=A;return C},_headerBlankCellsGeneric:function(A){A.appendChild(document.createTextNode(""));A.className="emptyHeaderCell";return A},_headerCellsForRowDimensionMemberTypes:function(A,B){if(B.colIndex<B.headerWidth){return this._headerCellsGeneric(this.layout.rowAxis,A,B,"xAxisDimension",this.layout.rowAxis.getDimensionAtIndex(B.colIndex))}else{return this._headerBlankCellsGeneric(A)}},_headerCellsForColumnDimensionLabels:function(B,C){if(C.yMemberIndex[C.rowIndex]===undefined){C.yMemberIndex[C.rowIndex]=0;C.yMemberCounter[C.rowIndex]=0}var E=C.rowIndex;var D=this.layout.colAxis.getDimensionAtIndex(E);if(D.memberSpan===C.yMemberCounter[C.rowIndex]){C.yMemberIndex[C.rowIndex]++;C.yMemberCounter[C.rowIndex]=0}if(C.yMemberIndex[C.rowIndex]>=D.getMemberCount()){C.yMemberIndex[C.rowIndex]=0}var G=C.yMemberIndex[C.rowIndex];var F=D.getMemberAtIndex(G);B.appendChild(document.createTextNode(F.label));if(F.hasMetadata){B.appendChild(this._createMetadataIcon(D.code,F.code))}B.colSpan=D.memberSpan;B.className="header yaxis yAxisMember";if(D.memberSpan>1){C.yMemberCounter[C.rowIndex]+=D.memberSpan-1;for(var A=C.colIndex-C.headerWidth;A<D.memberSpan+C.colIndex-C.headerWidth;A++){if(C.yCoordArray[A]===undefined){C.yCoordArray[A]=""+D.code+":"+F.code}else{C.yCoordArray[A]+=","+D.code+":"+F.code}}C.colIndex+=D.memberSpan-1}else{if(C.yCoordArray[C.colIndex-C.headerWidth]===undefined){C.yCoordArray[C.colIndex-C.headerWidth]=""+D.code+":"+F.code}else{C.yCoordArray[C.colIndex-C.headerWidth]+=","+D.code+":"+F.code}}C.yMemberCounter[C.rowIndex]++;return{gps:C,cellElement:B}},_headerCellsForRowDimensionLabels:function(C,D,F){if(!isDefined(F)){F=false}if(D.xMemberIndex[D.colIndex]===undefined){D.xMemberIndex[D.colIndex]=0;D.xMemberCounter[D.colIndex]=0}var G=D.colIndex;var E=this.layout.rowAxis.getDimensionAtIndex(G);if(E.memberSpan<=D.xMemberCounter[D.colIndex]){D.xMemberIndex[D.colIndex]++;D.xMemberCounter[D.colIndex]=0}if(D.xMemberIndex[D.colIndex]>=E.getMemberCount()){D.xMemberIndex[D.colIndex]=0}var B=D.xMemberIndex[D.colIndex];var A=E.getMemberAtIndex(B);if(D.xCoordArray[D.rowIndex-D.headerHeight+1]===undefined){D.xCoordArray[D.rowIndex-D.headerHeight+1]=E.code+":"+A.code}else{D.xCoordArray[D.rowIndex-D.headerHeight+1]+=","+E.code+":"+A.code}if(F){C.appendChild(document.createTextNode(A.label));if(A.hasMetadata){C.appendChild(this._createMetadataIcon(E.code,A.code))}C.className="header xaxis xAxisMember"}else{if(D.xMemberCounter[D.colIndex]===0){C.appendChild(document.createTextNode(A.label));if(A.hasMetadata){C.appendChild(this._createMetadataIcon(E.code,A.code))}C.rowSpan=E.memberSpan;C.className="header xaxis xAxisMember"}else{C=undefined}}D.xMemberCounter[D.colIndex]++;return{gps:D,cellElement:C}},_resultCells:function(B,D,A,F){var C=D.xCoordArray[D.rowIndex-D.headerHeight+1];var G=D.yCoordArray[D.colIndex-D.headerWidth];var H=C+","+G;if(F){H+=","+F}var E=Wiz.util.Coord.canonicalizeValueCoord(H);B.setAttribute("id",E);var I=B.getAttribute("class");if(I){I+=" result"}else{I="result"}if(this._isEvenNumber(A)){I+=" even"}else{I+=" odd"}B.className=I;B.innerHTML=this.NO_VALUE_TEXT;return B},_isValueForResultCellBlank:function(B){var A=true;if(isDefined(B)&&B.length!==0&&B!==""){A=false}return A},_getDataSetLabel:function(B){var A=this.model.getDatasetLabel(B);if(!A){return B}else{return A}},_isEvenNumber:function(B){var A=B%2;if(A!==0){return true}return false},getWidth:function(){var B=this.layout.colAxis;var C=B.getDimensionAtIndex(0);var A=C.getMemberCount()*C.memberSpan+this.layout.rowAxis.getDimensionCount();return A},getHeight:function(){var D=this.layout.rowAxis.getDimensionAtIndex(0);var E=D.memberSpan;var C=D.getMemberCount();var B=this.layout.colAxis.getDimensionCount();var A=C*E+B+1;return A},buildFilterComponents:function(){if(this.gridLayout.filterAxis.getDimensionCount()===0){return }return this._renderFilters()},_renderFilters:function(){var D=new Wiz.view.SimpleContainer({cls:"floatWrapper clearFix"});var B=this.gridLayout.filterAxis;for(var F=0;F<B.getDimensionCount();F++){var C=B.getDimensionAtIndex(F);var A=this._createFilterComboBox(C);D.add(A)}var E=new Wiz.view.SimpleContainer({id:"filterComponent",items:D});return E},_createFilterComboBox:function(E){var B=[];var J="";for(var I=0,H=E.getMemberCount();I<H;I++){var N=E.getMemberAtIndex(I);var G=E.code+"_"+N.code;var L=(N.label.indexOf("Total")!=-1)?"1"+N.label:"2"+N.label;B.push([G,N.label,N.hasMetadata,L]);if(N.label.length>J.length){J=N.label}}var P=new Ext.data.SimpleStore({fields:[{name:"coord"},{name:"label"},{name:"hasMetadata"},{name:"sortLabel"}]});P.loadData(B);var A=160;var D=document.getElementById("throwawayContainer");if(D){document.body.removeChild(D)}D=document.createElement("div");D.setAttribute("id","throwawayContainer");D.style.visibility="hidden";document.body.appendChild(D);var K=new Ext.form.TextField({grow:true,value:J,renderTo:"throwawayContainer"});K.render();var M=Math.max(A,K.getSize().width);document.body.removeChild(D);var O=new Ext.form.ComboBox({tpl:new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">',"<span>{label}</span>",'<tpl if="hasMetadata">','<span class="metadataIcon inDropdown" onclick="Wiz.view.MetadataPopup.show(\''+this.model.getCurrentDataset(),"','{coord}'",')">&nbsp;&nbsp;&nbsp;&nbsp;</span>',"</tpl>","</div>","</tpl>"),id:"filterCombo_"+E.code,cls:"filterFromCombo",store:P,displayField:"label",valueField:"label",typeAhead:true,mode:"local",triggerAction:"all",selectOnFocus:true,width:A,allowBlank:false,forceSelection:true,editable:false,hideMode:"offsets",lazyInit:false,listWidth:M});var F=new Wiz.view.SimpleComponent({cls:"metadataIcon inTextField",overCls:"mouseover"});F.on("click",function(){Wiz.view.MetadataPopup.show(this.model.getCurrentDataset(),this.metadataIcon.coord)},{model:this.model,metadataIcon:F});O.on("select",function(T,Q,R){var S=this.model.dataLayout;var U=Wiz.util.Coord.valueOf(Q.data.coord);F.coord=U;if(Q.data.hasMetadata){F.show()}else{F.hide()}S.setFilterSelection(U);this.model.updateDataLayout(S)},this);O.setValue(E.selectedMember.label);F.coord=E.code+"_"+E.selectedMember.code;if(!E.selectedMember.hasMetadata){F.hide()}var C=new Ext.Panel({border:false,width:160,cls:"filterOption"});C.add(new Wiz.view.SimpleComponent({text:E.label,cls:"filterHeader"}));if(E.hasMetadata){C.add(new Wiz.view.SimpleComponent({cls:"metadataIcon inFilterHeader",overCls:"mouseover",handler:function(){Wiz.view.MetadataPopup.show(this.model.getCurrentDataset(),E.code)}}))}C.add(O);C.add(F);return C},_createMetadataIcon:function(B,F){var C="metadataIcon";var E="mouseover";var A;if(isDefined(B)){A=B;if(isDefined(F)){A+="_"+F}}var D=document.createElement("span");D.className=C;D.setAttribute("onmouseover","this.className = '"+C+" "+E+"';");D.setAttribute("onmouseout","this.className = '"+C+"';");D.setAttribute("onclick","Wiz.view.MetadataPopup.show('"+this.model.getCurrentDataset()+(isDefined(A)?"','"+A+"')":"')"));D.setAttribute("id","grid_meta"+(isDefined(B)?"_"+B:"")+(isDefined(F)?"_"+F:""));D.appendChild(document.createTextNode("\u00A0\u00A0\u00A0\u00A0"));return D}});Wiz.view.GridPositioningSystem=function(A,D,C,B){this.totalWidth=A;this.totalHeight=D;this.headerWidth=C;this.headerHeight=B;this.xMemberIndex=[];this.xMemberCounter=[];this.yMemberIndex=[];this.yMemberCounter=[];this.yCoordArray=[];this.xCoordArray=[];this.fCoord;this.rowIndex=0;this.colIndex=0};Wiz.view.grid.GridWidget=Ext.extend(Wiz.view.SimpleContainer,{PAGE_PICKER_MAX_VISIBLE:10,initComponent:function(){Wiz.view.grid.GridWidget.superclass.initComponent.call(this);this.gridModel=new Wiz.view.grid.GridModel({model:this.model});this._rebuilding=false;this.addEvents("rebuildLayoutBegin","readyForMoreData","rebuildLayoutComplete","redrawBegin","redrawComplete","clickedLoadPage");this.model.on("layoutUpdated",function(){this.rebuildLayout();this.redraw()},this);this.model.on("resultsUpdated",function(B,A){this.insertValues(B);this.queriesDrawn++;var D=this.queriesDrawn/this.queriesPerPage;this.gridLoadingProgress.updateProgress(D,"Loading Data: "+Math.round(100*D)+"% completed");if(!A){if(this.model.dataLayout.hideRowsWithNoData){this.gridModel.initiateHideRowsWithNoData(this.currentPage)}else{this._displayPagePickers()}var C=new Ext.util.DelayedTask(function(){this.hideGridLoading();gridLoading=false},this);C.delay(1200)}},this);this.gridModel.on("requiresData",function(A){this.fireEvent("readyForMoreData",A)},this);this.gridModel.on("hideRowsComplete",this._postHideRows,this);this.gridLoadingProgress=new Ext.ProgressBar({id:"gridLoadingProgress",width:284,text:"Loading Data: 0% completed"});this.loadingContainer=new Wiz.view.SimpleContainer({renderTo:document.body,id:"gridLoadingContainer",cls:"noHeight",items:[this.gridLoadingProgress]});this.everythingContainer=new Wiz.view.SimpleContainer({});this.pagePickerContainerTop=new Wiz.view.SimpleContainer({id:"pagePickerContainerTop"});this.everythingContainer.add(this.pagePickerContainerTop);this.everythingContainer=new Wiz.view.SimpleContainer();this.filterContainer=new Wiz.view.SimpleContainer({id:"filterContainer"});this.everythingContainer.add(this.filterContainer);this.queriesPerPage=1;this.queriesDrawn=0;this.gridTableContainer=new Wiz.view.SimpleContainer({id:"gridTableContainer"});this.everythingContainer.add(this.gridTableContainer);this.pagePickerContainer=new Wiz.view.SimpleContainer({id:"pagePickerContainer"});this.everythingContainer.add(this.pagePickerContainer);this.add(this.everythingContainer)},_getEffectivePage:function(){return(this.gridModel.gridLayout.dataLayout.hideRowsWithNoData)?this.gridModel.pageNumberMap.get(this.currentPage):this.currentPage},_postHideRows:function(){this.gridModel.reZebra();this._displayPagePickers()},_displayPagePickers:function(){var A=this.gridModel.gridLayout.pageCount;var B=function(){this.component.hideGridLoading();this.component.currentPage=this.index;this.component.collapse();var C=this.component.gridModel.gridLayout.getQueryUrlForPage(this.index);this.component.queriesPerPage=C.length;this.component.queriesDrawn=0;this.component.fireEvent("clickedLoadPage",C);this.component.redraw()};this._redrawPagePickerComponent(A,B)},collapse:function(){return },expand:function(){return },showGridLoading:function(){this.gridLoadingProgress.reset();this.gridLoadingProgress.updateText("Loading Data: 0% completed");var A=this.loadingContainer.getEl();this.loadingContainer.removeClass("noHeight");A.scale(300,30,{})},hideGridLoading:function(){var A=this.loadingContainer.getEl();A.scale(300,0,{});this.loadingContainer.addClass("noHeight")},clearGrid:function(){this._clearGridLayout();this.currentPage=0;this.gridModel.clear()},_clearGridLayout:function(){this._clearFilterComponent();this._clearPagePickerComponentTop();this._clearPagePickerComponent();this._clearGridTableComponent()},_clearFilterComponent:function(){var A=this.filterContainer.findById("filterComponent");if(A){this.filterContainer.remove(A)}},_clearPagePickerComponentTop:function(){var A=this.pagePickerContainerTop.findById("pagePickerComponentTop");if(A){this.pagePickerContainerTop.remove(A)}},_clearPagePickerComponent:function(){var A=this.pagePickerContainer.findById("pagePickerComponent");if(A){this.pagePickerContainer.remove(A)}},_clearGridTableComponent:function(){var A=this.gridTableContainer.findById("gridTableComponent");if(A){this.gridTableContainer.remove(A)}},NO_VALUE_TEXT:"..",insertValues:function(A){var B=this.model.hasMicrodata(this.model.getCurrentDataset());A.eachKey(function(D,G){var F=document.getElementById(D);if(!isDefined(F)){return }if(G===""){G=".."}if(B){if(G!=this.NO_VALUE_TEXT){var E="microdata.html?q="+Wiz.util.Coord.convertToMicrodataCoord(D)+"&ds="+this.model.getCurrentDataset()+"&f=json";var C=document.createElement("a");C.appendChild(document.createTextNode(G));C.setAttribute("href",E);C.onclick=function(){Wiz.view.View.openWin(E)};F.innerHTML="";F.appendChild(C)}}else{F.innerHTML=G}},this)},rebuildLayout:function(){this.collapse();this.fireEvent("rebuildLayoutBegin");this.gridRebuilding=true;var A=this.model.dataLayout;this.gridModel.updateLayout(A);this.currentPage=0;var B=this.gridModel.gridLayout.getQueryUrlForPage(this.currentPage);this.queriesPerPage=B.length;this.queriesDrawn=0;this.fireEvent("readyForMoreData",B);this.fireEvent("rebuildLayoutComplete",this.gridModel.gridLayout.getBookmarkQuery());this.gridRebuilding=false},redraw:function(){this.fireEvent("redrawBegin");this.showGridLoading();var A=this.gridModel.gridLayout.pageCount;this._clearFilterComponent();this._redrawFilterComponent();this._clearPagePickerComponentTop();this._clearPagePickerComponent();this._clearGridTableComponent();this._redrawGridTableComponent();this.doLayout();this.fireEvent("redrawComplete");this.expand()},_redrawFilterComponent:function(){var A=this.gridModel.buildFilterComponents();if(isDefined(A)){this.filterContainer.add(A);this.filterContainer.show()}else{this.filterContainer.hide()}},_redrawPagePickerComponentTop:function(B,C){var A=Wiz.util.PagePicker.getPagePicker(this.currentPage,B,"pagePickerComponentTop",C,this);if(isDefined(A)){this.pagePickerContainerTop.add(A)}},_redrawPagePickerComponent:function(B,C){var E;if(this.gridModel.gridLayout.dataLayout.hideRowsWithNoData){var D=this.gridModel.currentPageOffset;if(!D){D=0}var A=this.gridModel.pageNumberMap;E=Wiz.util.PagePicker.getPagePickerForHideRows(this.currentPage,A,B,"pagePickerComponent",C,this)}else{E=Wiz.util.PagePicker.getPagePicker(this.currentPage,B,"pagePickerComponent",C,this)}if(E){this.pagePickerContainer.add(E)}this.pagePickerContainer.doLayout()},_redrawGridTableComponent:function(){var A=new Wiz.view.SimpleComponent({html:this.gridModel.renderTableHtml(this.currentPage),id:"gridTableComponent"});this.gridTableContainer.add(A)},_expandFilterContainer:function(){var A=Ext.get("gridTable");if(isDefined(A)){this.filterContainer.setWidth(A.getWidth())}}});Ext.reg("gridWidget",Wiz.view.grid.GridWidget);Wiz.view.grid.GridLayout=function(A){A=A||{};Ext.apply(this,A);this.filtersSelectedMemberMap=new Ext.util.MixedCollection(false);this.pageCount=1;this.pageLayouts=[]};Wiz.view.grid.GridLayout.prototype={MAX:100,MAXCELLS:900,YEARDIM:"6",getPageLayout:function(A){log.profile("pagelayout");var B=this.pageLayouts[A];B=new Wiz.view.grid.GridLayout({dataLayout:this.dataLayout,model:this.model});B.rowAxis=new Wiz.view.grid.Axis({model:this.model,dataset:this.dataLayout.dataset});this._getRowDimsRecurse(A,0,B.rowAxis,this.rowAxis);B.colAxis=this.colAxis;B.filterAxis=this.filterAxis;B.recalculate();log.info("(GridLayout)grid dimensions are "+B.colAxis.getSize()+" by "+B.rowAxis.getSize());this.pageLayouts[A]=B;log.profile("pagelayout");return B},_getRowDimsRecurse:function(H,N,L,C){var P=C.getDimensionAtIndex(N);if(!isDefined(P)){return }L.addDimension(P.code,false);var K=L.getDimensionByCode(P.code);var R=P.getMemberCount()*P.memberSpan;var O=H;if(R<this.MAX+1){var D=P.getMemberCount();for(var Q=0;Q<D;Q++){K.addMember(P.getMemberAtIndex(Q).code)}}else{if(P.memberSpan>this.MAX){var F=Math.ceil(P.memberSpan/this.MAX);var M=Math.floor(H/F);O=H%F;var A=P.getMemberAtIndex(M);if(isDefined(A)){K.addMember(A.code)}else{}}else{var J=Math.ceil(this.MAX/P.memberSpan);var G=H*J;var S=P.memberSpan;var E=G+J;for(var B=G;B<E;B++){var I=P.getMemberAtIndex(B);if(isDefined(I)){K.addMember(I.code)}else{break}}}}this._getRowDimsRecurse(O,N+1,L,C)},initialize:function(F){this.rowAxis=new Wiz.view.grid.Axis({model:this.model,dataset:F.dataset});var J=this.dataLayout;for(var D=0,G=J.rows.length;D<G;D++){this.rowAxis.addDimension(J.rows[D],true)}this.colAxis=new Wiz.view.grid.Axis({model:this.model,dataset:F.dataset});for(var B=0,C=J.columns.length;B<C;B++){if(J.columns[B]===this.YEARDIM){this.colAxis.addDimension(J.columns[B],true,true)}else{this.colAxis.addDimension(J.columns[B],true)}}this.filterAxis=new Wiz.view.grid.Axis({model:this.model,dataset:F.dataset});for(var K=0,A=J.filters.length;K<A;K++){var E=this.filterAxis.addDimension(J.filters[K].dim,true);var H=J.filters[K].member;var I;if(H===0){I=E.first()}else{I=E.getMemberByCode(H)}E.selectedMember=I}this.recalculate()},recalculate:function(){this.rowAxis.calculateSpans();this.colAxis.calculateSpans();this.calculatePageCount();this.cellCount=this.rowAxis.getSize()*this.colAxis.getSize()},calculatePageCount:function(){this.pageCount=this.rowAxis.getPageCount(this.MAX)},getQueryUrlForPage:function(A){var B=this.getPageLayout(A);return B.getQueryUrl()},getBookmarkQuery:function(){var L=[];var C=[];C.push("f=");var N=[];N.push("x=");var M=[];M.push("y=");if(this.filterAxis.getDimensionCount()>0){var B=this.filterAxis.getAllDimensions();for(var P=0,I=B.length;P<I;P++){var F=B[P];var D=F.code;C.push(D);L.push(D);C.push(":");L.push(":");if(F.selectedMember){C.push(F.selectedMember.code)}else{C.push("0")}var K=F.getAllMembers();for(var H=0,A=K.length;H<A;H++){var E=K[H];L.push(E.code);if(H+1<A){L.push(",")}}if(F.groupMembers.length>0){L.push(",");L.push(F.groupMembers.join(","))}if(P+1<I){C.push(",");L.push("+")}}}if(this.rowAxis.getDimensionCount()>0){if(L.length>0){L.push("+")}var O=this.rowAxis.getAllDimensions();for(var J=0,I=O.length;J<I;J++){var G=O[J];var D=G.code;N.push(D);L.push(D);L.push(":");var K=G.getAllMembers();for(var H=0,A=K.length;H<A;H++){var E=K[H];L.push(E.code);if(H+1<A){L.push(",")}}if(G.groupMembers.length>0){L.push(",");L.push(G.groupMembers.join(","))}if(J+1<I){N.push(",");L.push("+")}}}if(this.colAxis.getDimensionCount()>0){if(L.length>0){L.push("+")}var O=this.colAxis.getAllDimensions();for(var J=0,I=O.length;J<I;J++){var G=O[J];var D=G.code;M.push(D);L.push(D);L.push(":");var K=G.getAllMembers();for(var H=0,A=K.length;H<A;H++){var E=K[H];L.push(E.code);if(H+1<A){L.push(",")}}if(G.groupMembers.length>0){L.push(",");L.push(G.groupMembers.join(","))}if(J+1<I){M.push(",");L.push("+")}}}if(this.dataLayout.hideRowsWithNoData){L.push("&hrwnd=true")}return N.join("")+"&"+M.join("")+"&"+C.join("")+"&q="+L.join("")},getQueryUrl:function(){var A="data/?q=";if(this.filterAxis.getDimensionCount()>0){var N=this.filterAxis.getAllDimensions();for(var H=0,Q=N.length;H<Q;H++){var J=N[H];A+=J.code+":"+J.selectedMember.code+"+"}}var L=new Wiz.view.grid.QueryTreeNode();var M=new Wiz.view.grid.QueryTree(L);var E=this.rowAxis.getAllDimensions().concat(this.colAxis.getAllDimensions());for(var R=E.length-1;R>=0;R--){var O=E[R];var G=O.code;var F=M.getFirstLowestDecendant();while(isDefined(F)){var S=O.getAllMembers();for(var P=0;P<S.length;P++){var B=S[P];var K=new Wiz.view.grid.QueryTreeNode(G,B.code);F.addChild(K)}F=F.getNextSibling()}}var I=M.toQueryStringArray(this.MAXCELLS);M.finalize();for(var C=0;C<I.length;C++){var D=A+I[C];D+="&ds="+this.dataLayout.dataset;D+="&f=xml&m=wizard&v=1_1";I[C]=D}return I}};Wiz.view.grid.Axis=function(A){A=A||{};Ext.apply(this,A);this.axisDimensionMap=new Ext.util.MixedCollection(false)};Wiz.view.grid.Axis.prototype={getAllDimensions:function(){return this.axisDimensionMap.getRange(0,this.axisDimensionMap.getCount()-1)},getSize:function(){var A=this.axisDimensionMap.first();return A.memberSpan*A.getMemberCount()},getPageCount:function(E){var D=this.getDimensionAtIndex(0);if(!isDefined(D)){return }var B=D.getMemberCount()*D.memberSpan;var C=0;if(B<E+1){C=1}else{if(D.memberSpan>E){var F=Math.ceil(D.memberSpan/E);C=D.getMemberCount()*F}else{var A=Math.ceil(E/D.memberSpan);C=Math.ceil(D.getMemberCount()/A)}}return C},calculateSpans:function(){var B=this.axisDimensionMap.getCount();for(var E=B-1;E>=0;E--){var C=this.axisDimensionMap.itemAt(E);if(E!==B-1){var D=this.axisDimensionMap.itemAt(E+1);var A=D.memberSpan*D.getMemberCount();C.memberSpan=A}}},addDimension:function(F,K,C){C=(C===true);K=(K===true);var E=this.model.getDimension(F);var B=this.model.getOptionalDimension(F);var M;var A;if(isDefined(E)){M=E.label;A=E.hasMetadata()}else{M=B.label;A=B.hasMetadata()}var H=new Wiz.view.grid.Dimension({label:M,code:F,model:this.model,hasMetadata:A});if(K){var L=[];if(isDefined(E)){L=E.getSelectedMembers()}if(isDefined(B)){L=L.concat(B.getSelectedMembers())}L=this.model.moveAggregrateMembersToFront(L);var D=this.dataset;for(var I=0,J=L.length;I<J;I++){var G;if(!C){G=L[I]}else{G=L[J-1-I]}if(!G.coord.isGroup()){H.addMember(G.coord.member)}else{H.addGroupMember(G.coord.member)}}}this.axisDimensionMap.add(F,H);return H},getDimensionAtIndex:function(A){return this.axisDimensionMap.itemAt(A)},getDimensionCount:function(){return this.axisDimensionMap.getCount()},toFilterString:function(){var C=this.axisDimensionMap.getCount();if(C===0){return }var D="";for(var A=C-1;A>=0;A--){var B=this.axisDimensionMap.itemAt(A);D+=B.code+":"+B.selectedMember.code;if(A>0){D+=","}}return D},getDimensionByCode:function(A){return this.axisDimensionMap.get(""+A)},getCoords:function(){var B=[];var D=this.getAllDimensions();for(var A=0;A<D.length;A++){var C=D[A].getCoords();B=B.concat(C)}return B}};Wiz.view.grid.Dimension=function(A){A=A||{};Ext.apply(this,A);this.dimMemberMap=new Ext.util.MixedCollection(false);this.memberSpan=1;this.groupMembers=[]};Wiz.view.grid.Dimension.prototype={getCoords:function(){var E=[];var D=this.code+":";var C=this.getAllMembers();for(var B=0,A=C.length;B<A;B++){E.push(D+C[B].code)}return E},toUrlString:function(){var D=this.code+":";var C=this.getAllMembers();for(var B=0,A=C.length;B<A;B++){D+=C[B].code;if(B+1<A){D+=","}}return D},getAllMembers:function(){return this.dimMemberMap.getRange(0,this.dimMemberMap.getCount()-1)},getMemberByCode:function(A){return this.dimMemberMap.get(""+A)},getMemberAtIndex:function(A){return this.dimMemberMap.itemAt(A)},addMember:function(A){var B=this.model.getMember(Wiz.util.Coord.valueOf(this.code+"_"+A));this.addModelMember(B,A)},addGroupMember:function(A){this.groupMembers.push(A)},addModelMember:function(A,B){if(!isDefined(B)){B=A.coord.member}this.dimMemberMap.add(B,new Wiz.view.grid.Member({label:A.label,code:B,hasMetadata:this.model.hasMetadata(A)}))},getMemberCount:function(){return this.dimMemberMap.getCount()}};Wiz.view.grid.Member=function(A){A=A||{};Ext.apply(this,A)};Wiz.view.grid.Member.prototype={};