﻿//Excel-generated functions for math and number formatting.
var eeisus=1;
var eetrue="TRUE";
var eefalse="FALSE";
var eedec=".";
var eeth=",";
var eedecreg=new RegExp("\\.","g");
var eethreg=new RegExp(",","g");
var eecurrencyreg=new RegExp("[$]","g");
var eepercentreg=new RegExp("%","g");
var fmtdaynamesshort=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var fmtdaynameslong=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var fmtmonthnamesshort=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var fmtmonthnameslong=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var fmtstrings=new Array(","," ","/","$");
var fmtdate6=new Array(2,34,6,34,10);
var fmtdate7=new Array(35,25,2);
var fmtdate8=new Array(35,25,2);
var fmtdate9=new Array(35,25,2);
function str_eq(x,y) { return (x.toLowerCase()==y.toLowerCase()) };
function myIsNaN(x) { return (isNaN(x)||(typeof x=='number'&&!isFinite(x))); };
function mod(n,d) { return n-d*Math.floor(n/d); };
function round(n,nd) { if(isFinite(n)&&isFinite(nd)) { var sign_n=(n<0)?-1:1;var abs_n=Math.abs(n);var factor=Math.pow(10,nd);return sign_n*Math.round(abs_n*factor)/factor; } else { return NaN; } };
function roundup(n,nd) { if(isFinite(n)&&isFinite(nd)) { var sign_n=(n<0)?-1:1;var abs_n=Math.abs(n);var factor=Math.pow(10,(nd<0?Math.ceil(nd):Math.floor(nd)));return sign_n*Math.ceil(abs_n*factor)/factor; } else { return NaN; } };
function sum2(arr,rt,rb) { var sum=0;for(var ii=rt;ii<=rb;ii++) { sum+=arr[ii] };return sum };
function sum3(arr,rt,ct,rb,cb) { var sum=0;for(var ii=rt;ii<=rb;ii++) { for(var jj=ct;jj<=cb;jj++) { sum+=arr[ii][jj] } };return sum };
function sumgeneral(cnt,vsum,vcnt,x) { var sum=vsum;for(var ii=0;ii<x.length;ii++) { sum+=sum3(x[ii][0],x[ii][1],x[ii][2],x[ii][3],x[ii][4]); };return sum; };var near0RegExp=new RegExp("[.](.*0000000|.*9999999)");
function eedisplayFloat(x) { if(myIsNaN(x)) { return Number.NaN; } else { var str=String(x);if(near0RegExp.test(str)) { x=round(x,8);str=String(x); } return str.replace(/\./g,eedec); } };
function eedisplayScientific(x,nd) { if(myIsNaN(x)) { return Number.NaN; } else { var str=String(x.toExponential(nd));return str.replace(/\./g,eedec); } };
function eedisplayFloatND(x,nd) { if(myIsNaN(x)) { return Number.NaN; } else { var res=round(x,nd);if(nd>0) { var str=String(res);if(str.indexOf('e')!= -1) return str;if(str.indexOf('E')!= -1) return str;var parts=str.split('.');if(parts.length<2) { var decimals=('00000000000000').substring(0,nd);return (parts[0]).toString()+eedec+decimals; } else { var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);return (parts[0]).toString()+eedec+decimals; } } else { return res; } } };
function eedisplayPercent(x) { if(myIsNaN(x)) { return Number.NaN; } else { return eedisplayFloat(x*100)+'%'; } };
function eedisplayPercentND(x,nd) { if(myIsNaN(x)) { return Number.NaN; } else { return eedisplayFloatND(x*100,nd)+'%'; } } 
function eeparseFloatTh(str) { str=String(str).replace(eethreg,"");str=String(str).replace(eedecreg,".");var res=parseFloat(str);if(isNaN(res)) { return 0; } else { return res; } };
function eedisplayFloatNDTh(x,nd) { if(myIsNaN(x)) { return Number.NaN; } else { var res=round(x,nd);if(nd>0) { var str=String(res);if(str.indexOf('e')!= -1) return str;if(str.indexOf('E')!= -1) return str;var parts=str.split('.');var res2=eeinsertThousand(parts[0].toString());if(parts.length<2) { var decimals=('00000000000000').substring(0,nd);return (res2+eedec+decimals); } else { var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);return (res2+eedec+decimals); } } else { return (eeinsertThousand(res.toString())); } } };
function eedisplayPercentNDTh(x,nd) { if(myIsNaN(x)) { return Number.NaN; } else { return eedisplayFloatNDTh(x*100,nd)+'%'; } } 
function eeinsertThousand(whole) { if(whole==""||whole.indexOf("e")>=0) { return whole; } else { var minus_sign="";if(whole.charAt(0)=="-") { minus_sign="-";whole=whole.substring(1); };var res="";var str_length=whole.length-1;for(var ii=0;ii<=str_length;ii++) { if(ii>0&&ii%3==0) { res=eeth+res; };res=whole.charAt(str_length-ii)+res; };return minus_sign+res; } };

