function Collection(){this.arr=[];this.idx=0;this.add=function(elem){this.arr[this.idx]=elem;this.idx++};this.item=function(varIdx){return this.arr[varIdx]};this.count=function(){return this.arr.length};this.me=function(){return this.arr}}function Feeder(co){this.co=co}Feeder.prototype.IsConstant=function(param1){var regex=/{.*}/;return regex.test(param1)};Feeder.prototype.isXLAddress=function(varParam){var regex=/(?:\$.*\w.*\d)/;return regex.test(varParam)};Feeder.prototype.getFormatSeriesData=function(sheetid,chartid,arrValueid,categoryid){var arrSeries=[];if(isArray(categoryid))arrSeries[0]=categoryid;else arrSeries[0]=getCategory(categoryid);for(var lenArrValueid=arrValueid.length,seriesIndx=0;seriesIndx<lenArrValueid;seriesIndx++)if(isArray(arrValueid[seriesIndx]))arrSeries[seriesIndx+1]=arrValueid[seriesIndx];else arrSeries[seriesIndx+1]=getValue(arrValueid[seriesIndx]);for(var lenArrSeries=arrSeries.length,arrdataSource=[],lenCaption=arrSeries[0].length,indx=0;indx<lenCaption;indx++){for(var arrTmp={},i=0;i<lenArrSeries;i++)arrTmp["series"+i]=arrSeries[i][indx];arrdataSource[indx]=arrTmp}return arrdataSource};Feeder.prototype.getArray=function(strRange){if(this.IsConstant(strRange))return this.toArray(strRange);else{for(var refArr=co[strRange],arr=[],lenXRange=refArr.length,i=0,indx0=0;indx0<lenXRange;indx0++)for(var lenD2=refArr[indx0].length,indx1=0;indx1<lenD2;indx1++){arr[i]=this.filterNaN(refArr[indx0][indx1]);i++}return arr}};Feeder.prototype.toArray=function(strRange){var strParse=strRange.replace(/[\{-]/g,"[");strParse=strParse.replace(/[\}-]/g,"]");return eval(strParse)};Feeder.prototype.getValue=function(cellRange){for(var arrTmp=[],i=0,indx0=0;indx0<co[cellRange].length;indx0++)for(var indx1=0;indx1<co[cellRange][indx0].length;indx1++){var _var=co[cellRange][indx0][indx1];if(isFinite(_var))arrTmp[i++]=_var;else arrTmp[i++]=0}return arrTmp};Feeder.prototype.isArray=function(obj){return obj.constructor.toString().indexOf("Array")!=-1};Feeder.prototype.radar=function(y){return y};Feeder.prototype.line=function(y){return y};Feeder.prototype.column=function(y){return y};Feeder.prototype.label=function(y){if(!isNaN(y))y=y+"";return y};Feeder.prototype.bar=function(y){var oProperty={};oProperty["right"]=y;return oProperty};Feeder.prototype.scatter=function(x,y){var oPoint={};oPoint["x"]=x;oPoint["y"]=y;return oPoint};Feeder.prototype.pie=function(x,y){var oPoint={};oPoint["value"]=x;oPoint["label"]=y;return oPoint};Feeder.prototype.getCaption=function(captionid){if(!this.isXLAddress(captionid))return captionid;for(var arrTmp,i=0,indx0=0;indx0<co[captionid].length;indx0++)for(var indx1=0;indx1<co[captionid][indx0].length;indx1++)arrTmp=co[captionid][indx0][indx1];return arrTmp};Feeder.prototype.getCategory=function(categoryid){for(var arrTmp=[],i=0,indx0=0;indx0<co[categoryid].length;indx0++)for(var indx1=0;indx1<co[categoryid][indx0].length;indx1++)arrTmp[i++]=co[categoryid][indx0][indx1];return arrTmp};Feeder.prototype.formatvalue=function(sheetid,chartid,axisid,value){var strFormatValue;switch(axisid){case 1:strFormatValue="$"+value;break;case 2:strFormatValue=value+"%"}return strFormatValue};Feeder.prototype.getValues=function(xrange,yrange,refx){var arrTmp=[],col=new Collection,lenxRange,lenyRange;if(xrange.length>0&&yrange.length>0){arr0=this.getArray(xrange);arr1=this.getArray(yrange);for(var lenArr=arr0.length,i=0;i<lenArr;i++)col.add(refx(arr0[i],arr1[i]))}else if(yrange.length>0)for(var arr=this.getArray(yrange),lenArr=arr.length,i=0;i<lenArr;i++)col.add(refx(arr[i]));else if(xrange.length>0)for(var arr=this.getArray(xrange),len=arr.length,i=0;i<len;i++)col.add(refx(arr[i]));return col.arr};Feeder.prototype.getColumnStackValuesData=function(arrRange){for(var lenParam=arrRange.length,lenRow=co[arrRange[0]].length,lenColumn=co[arrRange[0]][0].length,collValues=new Collection,row=0;row<lenRow;row++)for(var column=0;column<lenColumn;column++){for(var collItem=new Collection,par=0;par<lenParam;par++)collItem.add(co[arrRange[par]][row][column]);collValues.add(collItem.me())}return collValues.me()};Feeder.prototype.getBarStackValuesData=function(arrRange,nMin){for(var lenParam=arrRange.length,lenRow=co[arrRange[0]].length,lenColumn=co[arrRange[0]][0].length,collValues=new Collection,par=0;par<lenParam;par++){for(var collItem=new Collection,nLeft=0,nRight=0,nTemp=nMin,row=0;row<lenRow;row++)for(var column=0;column<lenColumn;column++){nLeft=nTemp;nRight=nMin+co[arrRange[par]][row][column];nTemp=nRight;collItem.add(this.stackPoint(nLeft,nRight))}collValues.add(collItem.me())}return collValues.me()};Feeder.prototype.genRadarLabels=function(categoryid,fontSize,bVisible){for(var arrTmp=[],coll=new Collection,i=0,indx0=0;indx0<co[categoryid].length;indx0++)for(var indx1=0;indx1<co[categoryid][indx0].length;indx1++){var oLabel={};oLabel["text"]=co[categoryid][indx0][indx1];oLabel["size"]=fontSize;oLabel["visible"]=bVisible;coll.add(oLabel)}return coll.me()};Feeder.prototype.stackPoint=function(nLeft,nRight){var oPoint={};oPoint["left"]=nLeft;oPoint["right"]=nRight;return oPoint};Feeder.prototype.findSWF=function(movieName){if(window.document[movieName])return window.document[movieName];if(navigator.appName.indexOf("Microsoft Internet")==-1){if(document.embeds&&document.embeds[movieName])return document.embeds[movieName]}else return document.getElementById(movieName)};var webctrl_trend_format_axis={max:0,min:0,ntick:10,y_axis_for_trend:function(trend_array){this.max=trend_array[0];array_length=trend_array.length;for(i=0;i<array_length;i++)if(trend_array[i]>=this.max)this.max=trend_array[i];if(this.max==0)this.max=10;this.min=this.max;for(i=0;i<array_length;i++)if(trend_array[i]<=this.min)this.min=trend_array[i];if(this.max==this.min)this.min=0;this.max=this.max+.05*(this.max-this.min);if(this.min>0){this.min=this.min-.05*(this.max-this.min);if(this.min<0)this.min=0}range=this.nicenum(this.max-this.min,"false");d=this.nicenum(range/(this.ntick-1),"true");graphmin=Math.floor(this.min/d)*d;graphmax=Math.ceil(this.max/d)*d;nfrac=Math.max(-Math.floor(this.log10(d)),0);total=graphmin-d;tick_marks=[];for(i=0;total<graphmax;i++){total=total+d;tick_marks[i]=Math.round(total,nfrac)}result=[];result[0]=graphmin;result[1]=graphmax;result[2]=d;return result},nicenum:function(x,round1){exp=Math.floor(this.log10(x));f=x/Math.pow(10,exp);if(round1)if(f<1.5)nf=1;else if(f<3)nf=2;else if(f<7)nf=5;else nf=10;else if(f<=1)nf=1;else if(f<=2)nf=2;else if(f<=5)nf=5;else nf=10;nicenum=nf*Math.pow(10,exp);return nicenum},log10:function(arg){return Math.log(arg)/Math.LN10}};Feeder.prototype.maxValue=function(array){var mxm=array[0];for(i=0;i<array.length;i++)if(array[i]>mxm)mxm=array[i];return mxm};Feeder.prototype.minValue=function(array){var mn=array[0];for(i=0;i<array.length;i++)if(array[i]<mn)mn=array[i];return mn};Feeder.prototype.getDateMinMax=function(arrRange){for(var arr=[],i=0,lenRange=arrRange.length,idxRange=0;idxRange<lenRange;idxRange++)for(var lenXRange=co[arrRange[idxRange]].length,indx0=0;indx0<lenXRange;indx0++)for(var indx1=0;indx1<co[arrRange[idxRange]][indx0].length;indx1++){arr[i]=co[arrRange[idxRange]][indx0][indx1];i++}var arrResult=[];arrResult[0]=this.minValue(arr);arrResult[1]=this.maxValue(arr);return arrResult};Feeder.prototype.getNormalMinMaxStep=function(arrRange){for(var arr=[],i=0,lenRange=arrRange.length,idxRange=0;idxRange<lenRange;idxRange++)for(var lenXRange=co[arrRange[idxRange]].length,indx0=0;indx0<lenXRange;indx0++)for(var indx1=0;indx1<co[arrRange[idxRange]][indx0].length;indx1++){arr[i]=this.filterNaN(co[arrRange[idxRange]][indx0][indx1]);i++}return webctrl_trend_format_axis.y_axis_for_trend(arr)};Feeder.prototype.getStackMinMaxStep=function(arrRange){for(var arr=[],i=0,lenRange=arrRange.length,idxRange=0;idxRange<lenRange;idxRange++){for(var nPosTemp=0,nNegTemp=0,lenXRange=co[arrRange[idxRange]].length,indx0=0;indx0<lenXRange;indx0++)for(var indx1=0;indx1<co[arrRange[idxRange]][indx0].length;indx1++){var nTemp=co[arrRange[idxRange]][indx0][indx1];if(nTemp>0)nPosTemp+=nTemp;else nNegTemp+=nTemp}if(nPosTemp>0){arr[i]=nPosTemp;i++}if(nNegTemp<0){arr[i]=nNegTemp;i++}}arr[i]=0;return webctrl_trend_format_axis.y_axis_for_trend(arr)};Feeder.prototype.getRadarAxisLabel=function(nMax,nMin,nStep){var collLabel=new Collection;if(isFinite(nMax)&&isFinite(nMin)&&isFinite(nStep))for(var intFold=nMax/nStep,i=nMin;i<=intFold;i++)collLabel.add(String(i*nStep));return collLabel.me()};Feeder.prototype.filterNaN=function(arg){if(isFinite(arg))return arg;else if(typeof arg=="string")return arg;else return 0}
