var BlockType={Asset:0,Liability:1,Equity:2};var BlockSubType={Equity:0,Currency:1,Reserves:2,Treasuries:3,Loans:4,Deposits:5,Bonds:6,Equities:7,Nonfinancial:8,Stat:9};var MacroStatType={BaseMoney:-1,BroadMoney:-2,Credit:-3,PrivateDebt:-4};var MacroStatTypeInfoText={"-1":"Base Money is a measure of private sector assets that are central bank liabilities, specifically:\\- bank reserves\\- currency (notes and coins) in bank vaults\\- currency (notes and coins) in circulation","-2":"Broad Money is a measure of private sector money excluding assets of banks, specifically:\\- bank deposits\\- currency (notes and coins) in circulation\\Note: there are various measures of broad money (M1, M2, M3, MZM, etc) outside the scope of this visualizer.","-3":"Credit","-4":"Private Debt includes all debt liabilities of private sector entities (e.g., corporate bonds or loans to households.)"};var DefaultTextValues={EquityInfo:"Balance Sheet Equity (also called Capital or Net Worth) is calculated as Assets minus Liabilities. It can be negative if liabilities exceed assets.",AggAssetInfo:"This aggregate asset block sums up all the asset blocks in the balance sheets immediately below (grouped by the green line).",AggLiabilityInfo:"This aggregate liability block sums up all the liability blocks in the balance sheets immediately below (grouped by the green line)."};var BSColors={BlockBorderColor:"black",BlockBorderSelectedColor:"white",BlockBorderAnimatedColor:"yellow"};var columnWidth=70;var columnGap=10;var columnBorderSize=1;var statGap=25;var totalBSWidth=columnWidth*2+columnGap;var animFPS=15;var animInterval=Math.round(1000/animFPS);var isAnimationDisabled=false;var svgRoot=null;var bsList=new Array();var floatingBS=null;var floatingBSGroupElem=null;var currJSInterval=null;function BSBlockData(c,f,e,d,b,a){this.magnitude=c;this.id=f;this.desc=e;this.infoText=d;this.type=b;this.subtype=a}function BSBlock(a,h,d,g,f,e,c,b){this.blockElem=null;this.textElem=null;this.textNode=null;this.changeTextElem=null;this.changeTextNode=null;this.x=-1;this.y=-1;this.magnitude=d;this.id=g;this.desc=f;this.infoText=e;this.type=c;this.subtype=b;this.scale=1;this.linkedBlocks=new Array();this.animStartValue=0;this.animIncrement=0;this.animTargetValue=0;this.animActive=false;this.isPrimaryAnim=true;this.createDataCopy=function(){var i=new BSBlockData(this.magnitude,this.id,this.desc,this.infoText,this.type,this.subtype);return i};this.getBlockColor=function(j,i){var k;if(j==BlockType.Asset){k="darkgreen"}else{if(j==BlockType.Liability){k="darkred"}else{k="mediumblue"}}if(i==BlockSubType.Stat){k="darkorange"}return k};this.getPixelHeight=function(){return Math.round(this.magnitude/this.scale)};this.color=this.getBlockColor(c,b);this.blockElem=document.createElementNS(svgns,"rect");this.blockElem.setAttribute("width",columnWidth);this.blockElem.setAttribute("height",this.getPixelHeight());this.blockElem.setAttribute("stroke",BSColors.BlockBorderColor);this.blockElem.setAttribute("stroke-width",columnBorderSize);this.blockElem.setAttribute("fill",this.color);this.blockElem.addEventListener("mouseover",function(i){if(i!=null){var j=getBlockByElemRef(i.target);if(j!=null){j.mouseOver()}}},false);this.blockElem.addEventListener("mouseout",function(i){if(i!=null){var j=getBlockByElemRef(i.target);if(j!=null){j.mouseOut()}}},false);this.textElem=document.createElementNS(svgns,"text");this.textElem.setAttribute("style","fill: white;");this.textNode=document.createTextNode(this.desc,true);this.textElem.appendChild(this.textNode);this.textElem.addEventListener("mouseover",function(i){if(i!=null){var j=getBlockByLabelElemRef(i.target);if(j!=null){j.mouseOver()}}},false);this.textElem.addEventListener("mouseout",function(i){if(i!=null){var j=getBlockByLabelElemRef(i.target);if(j!=null){j.mouseOut()}}},false);this.changeTextElem=document.createElementNS(svgns,"text");this.changeTextNode=document.createTextNode("",true);this.changeTextElem.appendChild(this.changeTextNode);this.setPosition=function(k,j){if(this.x==k&&this.y==j){return true}this.x=k;this.y=j;this.blockElem.setAttribute("x",this.x);this.blockElem.setAttribute("y",this.y);this.textElem.setAttribute("x",this.x+Math.round(columnWidth/2));this.textElem.setAttribute("y",this.y+10);var i=(this.type==BlockType.Asset?this.x-10:this.x+columnWidth+10);this.changeTextElem.setAttribute("x",i);this.changeTextElem.setAttribute("y",this.y+10);return true};this.setMagnitude=function(i){if(i>0&&this.magnitude<=0){this.textElem.setAttribute("visibility",true);this.setChangeTextVisibility(true)}this.magnitude=i;this.blockElem.setAttribute("height",this.getPixelHeight());if(i<=0){this.textElem.setAttribute("visibility",false);this.setChangeTextVisibility(false)}this.setLabel(this.desc);return true};this.setChangeTextVisibility=function(i){this.changeTextElem.setAttribute("visibility",(i?"visible":"hidden"))};this.setLabel=function(i){this.desc=i;if(this.magnitude>0){this.textNode.nodeValue=i+" $"+this.magnitude}else{this.textNode.nodeValue=""}return true};this.setScale=function(j){var i=(j!=this.scale);this.scale=j;if(i){this.blockElem.setAttribute("height",this.getPixelHeight())}};this.isMagnitudeChangeFeasible=function(i){return(this.magnitude+i>=0)};this.prepareAnimation=function(k,j){if(this.magnitude+k<0){return false}if(isAnimationDisabled){this.setMagnitude(this.magnitude+k);return true}this.isPrimaryAnim=j;this.animStartValue=this.magnitude;this.animTargetValue=this.magnitude+k;if(this.animTargetValue<0){this.animTargetValue=0}if(this.animStartValue==this.animTargetValue){return false}this.animIncrement=(this.animStartValue<this.animTargetValue?1:-1);var i=(this.animTargetValue-this.animStartValue>0?"+":"");this.changeTextNode.nodeValue=i+(this.animTargetValue-this.animStartValue);this.setChangeTextVisibility(true);if(j){this.blockElem.setAttribute("stroke",BSColors.BlockBorderAnimatedColor);this.blockElem.setAttribute("stroke-width",3)}this.animActive=true;return true};this.finishedAnimation=function(){if(this.isPrimaryAnim){this.blockElem.setAttribute("stroke",BSColors.BlockBorderColor);this.blockElem.setAttribute("stroke-width",columnBorderSize)}this.animActive=false;return true};this.animUpdate=function(){if(!this.animActive){return false}this.setMagnitude(this.magnitude+this.animIncrement);if((this.animIncrement<0&&this.magnitude<=this.animTargetValue)||(this.animIncrement>0&&this.magnitude>=this.animTargetValue)){this.finishedAnimation();return true}return true};this.appendToElem=function(i){i.appendChild(this.blockElem);i.appendChild(this.textElem);i.appendChild(this.changeTextElem)};this.addLinkedBlock=function(l){var m=false;for(var k=0,j=this.linkedBlocks.length;k<j;k++){if(this.linkedBlocks[k]==l){m=true;break}}if(!m){this.linkedBlocks.push(l)}return true};this.mouseOver=function(){for(var k=0,j=this.linkedBlocks.length;k<j;k++){var n=this.linkedBlocks[k];n.blockElem.setAttribute("fill","white");n.textElem.setAttribute("style","fill:black")}if(this.linkedBlocks.length>0){this.blockElem.setAttribute("fill","#FFFFA0");this.textElem.setAttribute("style","fill:black")}else{this.blockElem.setAttribute("stroke",BSColors.BlockBorderSelectedColor)}var m=5;var l=10;SVGToolTip.showToolTip(this.getToolTipTitle(),this.getToolTipText(),m,l);return true};this.mouseOut=function(){SVGToolTip.hideToolTip();for(var k=0,j=this.linkedBlocks.length;k<j;k++){var l=this.linkedBlocks[k];l.blockElem.setAttribute("fill",l.color);l.textElem.setAttribute("style","fill:white")}if(this.linkedBlocks.length>0){this.blockElem.setAttribute("fill",this.color);this.textElem.setAttribute("style","fill:white")}this.blockElem.setAttribute("stroke",(this.animActive?BSColors.BlockBorderAnimatedColor:BSColors.BlockBorderColor));return true};this.getToolTipTitle=function(){return"Pointing At:  "+this.desc};this.getToolTipText=function(){return this.infoText};this.setPosition(a,h);this.setMagnitude(d);return true}function BalanceSheetData(f,c,h,b,j,d){this.bsName=f;this.isSingleColumn=c;this.assetBlocks=new Array();this.liabilityBlocks=new Array();for(var e=0,g=h.length;e<g;e++){var a=h[e].createDataCopy();this.assetBlocks.push(a)}for(var e=0,g=b.length;e<g;e++){var a=b[e].createDataCopy();this.liabilityBlocks.push(a)}this.equityBlock=(j!=null?j.createDataCopy():null);this.scale=d}function BalanceSheet(d,g,f,a){this.bsName=null;this.x=g;this.y=f;this.bsElem=null;this.assetBlocks=new Array();this.liabilityBlocks=new Array();this.equityBlock=null;this.bsLabelElem=null;this.assetTotalMagnitude=0;this.liabilityTotalMagnitude=0;this.isSingleColumn=(typeof(a)=="undefined"?false:a);this.equityInfoText=null;this.historicalData=new Array();this.setBalanceSheetName=function(j){this.bsName=j};this.setBalanceSheetName(d);this.setEquityInfoText=function(j){this.equityInfoText=j;this.recalcLayout()};this.bsElem=document.createElementNS(svgns,"g");this.bsElem.setAttribute("style","font-size: 9px; font-weight: bold; text-anchor: middle; font-family: arial,sans-serif;");var h=document.createElementNS(svgns,"line");h.setAttribute("x1",this.x-10);var i=(this.isSingleColumn?this.x+columnWidth+10:this.x+columnWidth*2+columnGap+10);h.setAttribute("x2",i);h.setAttribute("y1",this.y+1);h.setAttribute("y2",this.y+1);h.setAttribute("style","stroke:rgb(99,99,99);stroke-width:2");this.bsElem.appendChild(h);this.bsLabelElem=document.createElementNS(svgns,"text");var e=(this.isSingleColumn?this.x+Math.round(columnWidth/2):this.x+columnWidth+Math.round(columnGap/2));this.bsLabelElem.setAttribute("x",e);this.bsLabelElem.setAttribute("y",this.y+10);var b=document.createTextNode(this.bsName,true);this.bsLabelElem.appendChild(b);this.bsElem.appendChild(this.bsLabelElem);this.bsLabelElem.addEventListener("mouseover",function(j){if(j!=null){var k=getBalanceSheetByElemRef(j.target);if(k!=null){j.target.setAttribute("style","fill:blue");k.mouseOver()}}},false);this.bsLabelElem.addEventListener("mouseout",function(j){if(j!=null){var k=getBalanceSheetByElemRef(j.target);if(k!=null){k.mouseOut();j.target.setAttribute("style","fill:black")}}},false);this.magLabelElem=document.createElementNS(svgns,"text");var c=(this.isSingleColumn?this.x+Math.round(columnWidth/2):this.x+columnWidth+Math.round(columnGap/2));this.magLabelElem.setAttribute("x",c);this.magLabelElem.setAttribute("y",0);this.magLabelTextNode=document.createTextNode("",true);this.magLabelElem.appendChild(this.magLabelTextNode);this.bsElem.appendChild(this.magLabelElem);this.scale=1;this.setScale=function(l){this.scale=l;for(var k=0,j=this.assetBlocks.length;k<j;k++){this.assetBlocks[k].setScale(l)}for(var k=0,j=this.liabilityBlocks.length;k<j;k++){this.liabilityBlocks[k].setScale(l)}if(this.equityBlock!=null){this.equityBlock.setScale(l)}this.recalcLayout();return true};this.createDataCopy=function(){var j=new BalanceSheetData(this.bsName,this.isSingleColumn,this.assetBlocks,this.liabilityBlocks,this.equityBlock,this.scale);return j};this.addAssetBlock=function(j,l,o,n,m){var k=new BSBlock(0,0,l,o,n,m,BlockType.Asset,j);k.setScale(this.scale);this.assetBlocks.unshift(k);this.assetTotalMagnitude+=l;k.appendToElem(this.bsElem);this.recalcLayout();return true};this.addLiabilityBlock=function(j,l,o,n,m){var k=new BSBlock(0,0,l,o,n,m,BlockType.Liability,j);k.setScale(this.scale);this.liabilityBlocks.unshift(k);this.liabilityTotalMagnitude+=l;k.appendToElem(this.bsElem);this.recalcLayout();return true};this.addDataToHistory=function(){this.bsData=this.createDataCopy();this.historicalData.push(this.bsData)};this.removeLastDataFromHistory=function(){this.historicalData.pop();return true};this.clearHistory=function(){this.historicalData=new Array()};this.getPixelHeight=function(){var j=Math.max(this.assetTotalMagnitude,this.liabilityTotalMagnitude);if(this.scale!=1){j=Math.round(j/this.scale)}return j};this.recalcLayout=function(){var q=0;var k=0;var l=0;var p=0;for(var m=0,j=this.assetBlocks.length;m<j;m++){this.assetBlocks[m].setPosition(this.x,this.y-l-this.assetBlocks[m].getPixelHeight());l+=this.assetBlocks[m].getPixelHeight();p+=this.assetBlocks[m].magnitude}this.assetTotalMagnitude=p;q=p;k=l;l=0;p=0;for(var m=0,j=this.liabilityBlocks.length;m<j;m++){l+=this.liabilityBlocks[m].getPixelHeight();p+=this.liabilityBlocks[m].magnitude}this.liabilityTotalMagnitude=p;if(p>q){q=p;k=l}if(this.equityBlock==null&&!this.isSingleColumn){this.equityBlock=new BSBlock(0,0,0,"equity","Equity","",BlockType.Equity,BlockSubType.Equity);this.equityBlock.setScale(this.scale);this.equityBlock.appendToElem(this.bsElem)}if(!this.isSingleColumn){var n=Math.abs(this.assetTotalMagnitude-this.liabilityTotalMagnitude);this.equityBlock.setMagnitude(n);var o=(this.equityInfoText!=null?this.equityInfoText:DefaultTextValues.EquityInfo);this.equityBlock.infoText=o}if(this.liabilityTotalMagnitude>this.assetTotalMagnitude){this.equityBlock.setPosition(this.x,this.y-Math.round(this.liabilityTotalMagnitude/this.scale));this.equityBlock.setLabel("Neg.Equity");l=0;p=0;for(var m=0,j=this.assetBlocks.length;m<j;m++){this.assetBlocks[m].setPosition(this.x,this.y-l-this.assetBlocks[m].getPixelHeight());l+=this.assetBlocks[m].getPixelHeight();p+=this.assetBlocks[m].magnitude}l=0;p=0;for(var m=0,j=this.liabilityBlocks.length;m<j;m++){this.liabilityBlocks[m].setPosition(this.x+columnWidth+columnGap,this.y-l-this.liabilityBlocks[m].getPixelHeight());l+=this.liabilityBlocks[m].getPixelHeight();p+=this.liabilityBlocks[m].magnitude}}else{l=0;p=0;for(var m=0,j=this.assetBlocks.length;m<j;m++){this.assetBlocks[m].setPosition(this.x,this.y-l-this.assetBlocks[m].getPixelHeight());l+=this.assetBlocks[m].getPixelHeight();p+=this.assetBlocks[m].magnitude}if(!this.isSingleColumn){this.equityBlock.setPosition(this.x+columnWidth+columnGap,this.y-Math.round(this.assetTotalMagnitude/this.scale));this.equityBlock.setLabel("Equity");l=0;p=0;for(var m=0,j=this.liabilityBlocks.length;m<j;m++){this.liabilityBlocks[m].setPosition(this.x+columnWidth+columnGap,this.y-l-this.liabilityBlocks[m].getPixelHeight());l+=this.liabilityBlocks[m].getPixelHeight();p+=this.liabilityBlocks[m].magnitude}}}this.magLabelTextNode.nodeValue="$"+q;this.magLabelElem.setAttribute("y",this.y-k-5);return true};this.getBlockByID=function(k){var m=null;if(k=="equity"){m=this.equityBlock}for(var l=0,j=this.assetBlocks.length;l<j;l++){if(this.assetBlocks[l].id==k){m=this.assetBlocks[l];break}}for(var l=0,j=this.liabilityBlocks.length;l<j;l++){if(this.liabilityBlocks[l].id==k){m=this.liabilityBlocks[l];break}}return m};this.getBlockByElemRef=function(m){var l=null;if(!this.isSingleColumn&&m==this.equityBlock.blockElem){l=this.equityBlock}for(var k=0,j=this.assetBlocks.length;k<j;k++){if(this.assetBlocks[k].blockElem==m){l=this.assetBlocks[k];break}}for(var k=0,j=this.liabilityBlocks.length;k<j;k++){if(this.liabilityBlocks[k].blockElem==m){l=this.liabilityBlocks[k];break}}return l};this.getBlockByLabelElemRef=function(m){var l=null;if(!this.isSingleColumn&&m==this.equityBlock.textElem){l=this.equityBlock}for(var k=0,j=this.assetBlocks.length;k<j;k++){if(this.assetBlocks[k].textElem==m){l=this.assetBlocks[k];break}}for(var k=0,j=this.liabilityBlocks.length;k<j;k++){if(this.liabilityBlocks[k].textElem==m){l=this.liabilityBlocks[k];break}}return l};this.getBalanceSheetByElemRef=function(j){if(this.bsLabelElem==j){return this}else{return null}};this.canResize=function(j,l){var k=this.getBlockByID(j);return(k!=null&&k.isMagnitudeChangeFeasible(l))};this.resizeBlockWithAnim=function(j,l){if(currJSInterval!=null){return false}var k=this.getBlockByID(j);if(k==null){return false}if(k.isMagnitudeChangeFeasible(l)){return k.prepareAnimation(l,true)}else{return false}};this.cancelResizeBlock=function(j){var k=this.getBlockByID(j);if(k!=null){k.finishedAnimation()}return true};this.animUpdate=function(){var m=0;for(var k=0,j=this.assetBlocks.length;k<j;k++){var l=this.assetBlocks[k].animUpdate();if(l){m++}}for(var k=0,j=this.liabilityBlocks.length;k<j;k++){var l=this.liabilityBlocks[k].animUpdate();if(l){m++}}if(m>0||isAnimationDisabled){this.recalcLayout()}return m};this.hideAllChangeText=function(){for(var k=0,j=this.assetBlocks.length;k<j;k++){this.assetBlocks[k].setChangeTextVisibility(false)}for(var k=0,j=this.liabilityBlocks.length;k<j;k++){this.liabilityBlocks[k].setChangeTextVisibility(false)}};this.linkBlocks=function(k,m,j){if(m==null){return false}var n=this.getBlockByID(k);var l=m.getBlockByID(j);if(n==null||l==null){return false}n.addLinkedBlock(l);l.addLinkedBlock(n);return true};this.mouseOver=function(){var j=null;if(this.historicalData.length>0){j=this.historicalData[this.historicalData.length-1]}showFloatingBalanceSheet(j,this.x,this.y)};this.mouseOut=function(){hideFloatingBalanceSheet()};this.recalcLayout();return true}function BalanceSheetAggregate(b,a,d,c){this.inheritFrom=BalanceSheet;this.inheritFrom(b,a,d);this.childList=c;this.aggregateChildren=function(){if(this.childList==null){return false}var m=0;var g=0;for(var l=0,f=this.childList.length;l<f;l++){var k=this.childList[l];for(var h=0,e=k.assetBlocks.length;h<e;h++){m+=k.assetBlocks[h].magnitude}for(var h=0,e=k.liabilityBlocks.length;h<e;h++){g+=k.liabilityBlocks[h].magnitude}}if(m>0){if(this.assetBlocks.length==0){this.addAssetBlock(BlockSubType.Currency,m,"assetAggregate","Assets",DefaultTextValues.AggAssetInfo)}else{this.assetBlocks[0].setMagnitude(m)}}if(g>0){if(this.liabilityBlocks.length==0){this.addLiabilityBlock(BlockSubType.Reserves,g,"liabilityAggregate","Liabilities",DefaultTextValues.AggLiabilityInfo)}else{this.liabilityBlocks[0].setMagnitude(g)}}this.recalcLayout();return true};this.aggregateChildren()}function MacroStat(b,a,e,c,d){this.inheritFrom=BalanceSheet;this.inheritFrom(b,a,e,true);this.macroStatType=c;this.childList=d;this.isSingleColumn=true;this.aggregateChildren=function(){if(this.childList==null){return false}var l=0;var m=null;for(var k=0,f=this.childList.length;k<f;k++){var h=this.childList[k];for(var g=0;g<h.assetBlocks.length;g++){m=h.assetBlocks[g];switch(this.macroStatType){case MacroStatType.BaseMoney:if(m.subtype==BlockSubType.Reserves||m.subtype==BlockSubType.Currency){l+=m.magnitude}break;case MacroStatType.BroadMoney:if(m.subtype==BlockSubType.Deposits||m.subtype==BlockSubType.Currency){l+=m.magnitude}break}}for(var g=0;g<h.liabilityBlocks.length;g++){m=h.liabilityBlocks[g];switch(this.macroStatType){case MacroStatType.PrivateDebt:if(m.subtype==BlockSubType.Loans||m.subtype==BlockSubType.Bonds){l+=m.magnitude}break}}}if(this.assetBlocks.length==0){this.addAssetBlock(BlockSubType.Stat,l,"stat","Total",MacroStatTypeInfoText[this.macroStatType])}else{this.assetBlocks[0].setMagnitude(l)}this.recalcLayout();return true};this.aggregateChildren()}function animateLoop(){svgRoot.suspendRedraw(10000);var c=0;for(var d=0,a=bsList.length;d<a;d++){var b=bsList[d];var e=(b instanceof BalanceSheetAggregate||b instanceof MacroStat);if(!e){c+=b.animUpdate()}}for(var d=0,a=bsList.length;d<a;d++){var b=bsList[d];var e=(b instanceof BalanceSheetAggregate||b instanceof MacroStat);if(e){b.aggregateChildren()}}if(c==0){endAnimation()}svgRoot.unsuspendRedrawAll()}function startAnimation(){if(isAnimationDisabled){animateLoop();return false}if(currJSInterval==null){currJSInterval=setInterval(animateLoop,animInterval)}}function endAnimation(){if(currJSInterval!=null){clearInterval(currJSInterval);currJSInterval=null}}function isAnimationActive(){return(currJSInterval!=null)}function getBlockByElemRef(e){for(var c=0,a=bsList.length;c<a;c++){var b=bsList[c];var d=b.getBlockByElemRef(e);if(d!=null){return d}}return null}function getBlockByLabelElemRef(e){for(var c=0,a=bsList.length;c<a;c++){var b=bsList[c];var d=b.getBlockByLabelElemRef(e);if(d!=null){return d}}return null}function getBalanceSheetByElemRef(e){for(var c=0,a=bsList.length;c<a;c++){var b=bsList[c];var d=b.getBalanceSheetByElemRef(e);if(d!=null){return d}}return null}function resetBS(){endAnimation();bsList=new Array();while(svgRoot.hasChildNodes()){svgRoot.removeChild(svgRoot.firstChild)}SVGToolTip.reset();setUpBalanceSheets();return true}function hideAllChangeText(){for(var c=0,a=bsList.length;c<a;c++){var b=bsList[c];b.hideAllChangeText()}}function createSVGLine(d,c,f,e,b){var a=document.createElementNS(svgns,"line");a.setAttribute("x1",d);a.setAttribute("x2",c);a.setAttribute("y1",f);a.setAttribute("y2",e);a.setAttribute("style","stroke:"+b+";stroke-width:2");return a}function createSVGRect(b,f,d,a,c){var e=document.createElementNS(svgns,"rect");e.setAttribute("x",b);e.setAttribute("y",f);e.setAttribute("width",d);e.setAttribute("height",a);e.setAttribute("fill",c);return e}function createSVGGroup(){var a=document.createElementNS(svgns,"g");return a}function createSVGText(a,e,d){var c=document.createElementNS(svgns,"text");var b=document.createTextNode(d,true);c.appendChild(b);c.setAttribute("x",a);c.setAttribute("y",e);return c}function createBalanceSheetFromData(e,b,g){var c=new BalanceSheet(e.bsName,b,g,e.isSingleColumn);for(var a=e.assetBlocks.length,d=a-1;d>=0;d--){var f=e.assetBlocks[d];c.addAssetBlock(f.subtype,f.magnitude,f.id,f.desc)}for(var a=e.liabilityBlocks.length,d=a-1;d>=0;d--){var f=e.liabilityBlocks[d];c.addLiabilityBlock(f.subtype,f.magnitude,f.id,f.desc)}c.setScale(e.scale);return c}function showFloatingBalanceSheet(i,g,f){if(floatingBSGroupElem!=null){hideFloatingBalanceSheet()}var h=15;var e=g+((totalBSWidth+h*2+5)*(g<totalBSWidth?1:-1));if(i!=null){floatingBS=createBalanceSheetFromData(i,e,f)}var a=(i==null?100:floatingBS.getPixelHeight()+h*2);floatingBSGroupElem=createSVGGroup();var b=createSVGRect(e-h,f-a-h,totalBSWidth+h*2,a+h*2,"white");b.setAttribute("stroke","black");b.setAttribute("stroke-width",2);floatingBSGroupElem.appendChild(b);if(i!=null){floatingBSGroupElem.appendChild(floatingBS.bsElem)}var c=createSVGText(e+Math.round(totalBSWidth/2),f-a,"Prior to last operation:");c.setAttribute("style","font-size: 11px; font-weight: bold; text-anchor: middle; font-family: arial,sans-serif; fill: blue;");floatingBSGroupElem.appendChild(c);if(i==null){var d=createSVGText(e+Math.round(totalBSWidth/2),f-a+25,"No operations performed yet.");d.setAttribute("style","font-size: 10px; font-style: italic; text-anchor: middle; font-family: arial,sans-serif; fill: black;");floatingBSGroupElem.appendChild(d)}svgRoot.appendChild(floatingBSGroupElem)}function hideFloatingBalanceSheet(){if(floatingBSGroupElem!=null){svgRoot.removeChild(floatingBSGroupElem);floatingBS=null;floatingBSGroupElem=null}}SVGToolTip={xPos:0,yPos:0,width:175,height:250,lineSpacing:18,charsPerLine:29,groupElem:null,bgRect:null,textLineElem:{},lineCount:0,reset:function(){this.groupElem=null;this.bgRect=null;this.textLineElem={};this.lineCount=0},init:function(){this.groupElem=createSVGGroup();this.groupElem.setAttribute("visibility","hidden");this.bgRect=createSVGRect(this.xPos,this.yPos,this.width,this.height,"#E8FFE8");this.bgRect.setAttribute("stroke","black");this.bgRect.setAttribute("stroke-width",2);this.groupElem.appendChild(this.bgRect);svgRoot.appendChild(this.groupElem)},setLocation:function(a,b){if(this.groupElem==null){this.init()}this.xPos=a;this.yPos=b;this.bgRect.setAttribute("x",a);this.bgRect.setAttribute("y",b)},setTextLine:function(d,c,b){if(this.groupElem==null){this.init()}var a=this.xPos+5;var e=this.yPos+((d+1)*this.lineSpacing);if(this.textLineElem[d]==undefined){this.textLineElem[d]=createSVGText(a,e,"");this.groupElem.appendChild(this.textLineElem[d]);if(d+1>this.lineCount){this.lineCount=d+1}}else{this.textLineElem[d].setAttribute("x",a);this.textLineElem[d].setAttribute("y",e)}this.textLineElem[d].firstChild.nodeValue=c;this.textLineElem[d].setAttribute("style",b)},showToolTip:function(m,o,n,l){if(o==undefined||o==null||o==""){return}this.setLocation(n,l);var q="font-size: 12px; font-weight: bold; font-family: arial,sans-serif; fill:darkred;";var p="font-size: 12px; font-weight: normal; font-family: arial,sans-serif;";this.setTextLine(0,m,q);var k=1;var h=o.split("\\");for(var e=0,g=h.length;e<g;e++){var r=h[e];while(true){if(r.length<=this.charsPerLine){this.setTextLine(k++,r,p);break}else{var a=r.substring(0,this.charsPerLine);var f=a.lastIndexOf(" ");var c=(f==-1?this.charsPerLine:f+1);var d=r.substring(0,c);this.setTextLine(k++,d,p);r=r.substring(c)}}}for(var b=k;b<this.lineCount;b++){this.setTextLine(b,"",p)}this.groupElem.setAttribute("visibility","visible")},hideToolTip:function(){if(this.groupElem!=null){this.groupElem.setAttribute("visibility","hidden");for(var a in this.textLineElem){this.textLineElem[a].firstChild.nodeValue=""}}}};
