var torqueCharts=new Array();var torques=new Array();function drawChart(car){//  alert("drawChart for car " + car);
if(!(saneMinRpm[car]&&saneMaxRpm[car]&&saneStepRpm[car]&&saneMinMaxRpm[car]&&saneMinTorque[car]&&saneMaxTorque[car]&&saneMinMaxTorque[car])){return;}var numPoints=parseInt((maxRpm[car]-minRpm[car])/stepRpm[car])+1;var rotateValues="0";if(numPoints>10){rotateValues="1";}// var labelStep = parseInt(1000/stepRpm[car]);
// set default torque values
if(typeof(torques[car])=="undefined"){var tmp=new Array();for(var r=parseInt(minRpm[car]);r<=parseInt(maxRpm[car]);r=r+parseInt(stepRpm[car])){tmp[r]=100;}torques[car]=tmp;}else{for(var r=parseInt(minRpm[car]);r<=parseInt(maxRpm[car]);r=r+parseInt(stepRpm[car])){if(typeof(torques[car][r])=="undefined"){torques[car][r]=100;}}};var firstTime=false;if(typeof(torqueCharts[car])=="undefined"||redrawCharts[car]){//alert("ID: torqueChart" + car);
var id="torqueChart"+car;torqueCharts[car]=new FusionCharts("FusionCharts/DragLine.swf",id,"450","400","0","1");firstTime=true;redrawCharts[car]=false;}//  alert("firstTime: " + firstTime);
var lb=findLowerThousand(minRpm[car]);var ub=findUpperThousand(maxRpm[car]);var labelStep=5;var numVDivLines=findNumVLines(lb,ub);var labelDisplay="NONE";if(numVDivLines>10){labelDisplay="ROTATE";}var data="<chart animation='0' palette='1' chartTopMargin='30' labelDisplay='"+labelDisplay+"' labelStep='"+labelStep+"' caption='Dynamometer Readings' showvalues='1' rotatevalues='"+rotateValues+"' xAxisName='RPM' yAxisName='Torque (ft-lbf)' yAxisMinValue='"+minTorque[car]+"' yAxisMaxValue='"+maxTorque[car]+"' showformbtn='0' showrestorebtn='0' canvasborderthickness='2' canvasPadding='0' dragBorderColor='"+dragLineColors[car%4]+"' dragBorderThickness='3' lineColor='"+lineColors[car%4]+"' donotsnap='1' showlegend='1' decimals='0' yAxisValueDecimals='3000' connectNullData='1' numVDivLines='"+numVDivLines+"' vDivLineIsDashed='1' slantLabels='1' lineThickness='2'>";data+="<categories> ";for(var i=parseInt(lb);i<=parseInt(ub);i=i+100){data+="<category name='"+i+"' />";}data+="</categories> ";data+="<dataset id='T' seriesName=''> ";for(var i=parseInt(lb);i<=parseInt(ub);i=i+100){if(isVisible(i,parseInt(minRpm[car]),parseInt(maxRpm[car]),parseInt(stepRpm[car]))){data+="<set id='T"+i+"' label='"+i+"' value='"+torques[car][i]+"' allowDrag='1'/>";}else{data+="<set id='T"+i+"' label='"+i+"'/>";}}data+="</dataset>";data+="</chart>";if(firstTime){torqueCharts[car].setDataXML(data);torqueCharts[car].render("torque_chart_car"+car);}else{var t=getChartFromId("torqueChart"+car);t.setDataXML(data);}}function saveTorque(car){var temp=getChartFromId("torqueChart"+car);var data=temp.getData();var lb=findLowerThousand(minRpm[car]);var ub=findUpperThousand(maxRpm[car]);for(var r=parseInt(minRpm[car]);r<=parseInt(maxRpm[car]);r=r+parseInt(stepRpm[car])){var ind=findIndex(r,lb)+1;torques[car][r]=Math.round(data[ind][1]);}}function findIndex(i,lb){return parseInt((parseInt(i)-parseInt(lb))/100);}function findLowerThousand(val){var temp=parseInt(val)/1000;if(temp==parseInt(temp)){return val;}return 1000*parseInt(temp);}function findUpperThousand(val){var temp=parseInt(val)/1000;if(temp==parseInt(temp)){return val;}return 1000*(parseInt(temp)+1);}function isVisible(i,lb,ub,step){if(i<lb||i>ub){return false;}var tmp=(i-lb)/step;if((tmp-parseInt(tmp))==0){return true;}else{return false;}}function findNumVLines(lb,ub){var count=0;for(var i=parseInt(lb);i<=parseInt(ub);i=i+500){count ++;}return(parseInt(count)-2);}
