﻿//NPR Chart, upgrade advisor and CSV file (C) Roger Hågensen, EmSai 2010 http://EmSai.net/
// v2.0 - 1st November 2010

upgradeadvisorselect_active=0;

function initcostcalc()
{
 var table=document.getElementById('chart'),i,models=new Array();
 for(i=1;i<table.rows.length;i++)
 {
  models[i-1]=table.rows[i].cells[0].innerHTML+' '+table.rows[i].cells[1].innerHTML;
 }
 models.sort()
 document.costcalc.costcalc1.options[0]=new Option('(Choose old model)');
 document.costcalc.costcalc2.options[0]=new Option('(Choose new model)');
 for(i=0;i<models.length;i++)
 {
  document.costcalc.costcalc1.options[i+1]=new Option(models[i]);
  document.costcalc.costcalc2.options[i+1]=new Option(models[i]);
 }
}

function docostcalc()
{
	var table=document.getElementById('chart'),i,calc1=0.0,calc2=0.0,sum1=0.0,sum2=0.0,sum3=0.0,sumtext;
 for(var i=1;i<table.rows.length;i++)
 {
  if (table.rows[i].cells[0].innerHTML+' '+table.rows[i].cells[1].innerHTML==document.costcalc.costcalc1.options[document.costcalc.costcalc1.selectedIndex].text)
  {
   calc1=table.rows[i].cells[table.rows[0].cells.length-1].innerHTML*1.0
	}
  if (table.rows[i].cells[0].innerHTML+' '+table.rows[i].cells[1].innerHTML==document.costcalc.costcalc2.options[document.costcalc.costcalc2.selectedIndex].text)
  {
   calc2=table.rows[i].cells[table.rows[0].cells.length-1].innerHTML*1.0
  }
 }
 cost1=document.costcalc.costcalccost1.value*1.0;
 cost2=document.costcalc.costcalccost2.value*1.0;
 if (cost1>cost2)
 {
  sum1=-((cost1/cost2)-1.0);
 }
 else
 {
  sum1=(cost2/cost1)-1.0;
 }
 if (calc2<calc1)
 {
  sum2=-((calc1/calc2)-1.0);
 }
 else
 {
  sum2=(calc2/calc1)-1.0;
 }
 sum3=sum2-sum1;
 sum1=Math.round(sum1*10000.0)/100.0;
 sum2=Math.round(sum2*10000.0)/100.0;
 sum3=Math.round(sum3*10000.0)/100.0;
 if (!isFinite(sum1))
 {
		sum1=0.0;
 }
 if (!isFinite(sum2))
 {
		sum2=0.0;
 }
 if (!isFinite(sum3))
 {
		sum3=0.0;
 }
 if ((calc1==0.0) || (calc2==0.0))
 {
		sum2=0.0;
 }
 if (sum1<0.0)
 {
  sumtext='<span class="chartgreen">'+sum1+'%</span>';
 }
 else
 {
  sumtext='<span class="chartblue">+'+sum1+'%</span>';
 }
 document.getElementById('costcalcsum1').innerHTML=sumtext;
 if (sum2<0.0)
 {
  sumtext='<span class="chartred">'+sum2+'%</span>';
 }
 else if (sum2<100.0)
 {
  sumtext='<span class="chartblue">+'+sum2+'%</span>';
 }
 else
 {
  sumtext='<span class="chartgreen">+'+sum2+'%</span>';
 }
 document.getElementById('costcalcsum2').innerHTML=sumtext;
 if (sum3<0.0)
 {
  sumtext='<span class="chartred">'+sum3+'%</span>';
 }
 else if (sum3>=100.0)
 {
  sumtext='<span class="chartgreen">+'+sum3+'%</span>';
 }
 else
 {
  sumtext='<span class="chartblue">+'+sum3+'%</span>';
 }
 document.getElementById('costcalcsum3').innerHTML=sumtext;
}

function upgradeadvisorselect(row)
{
 var lownpr=1.75,highnpr=2.5,rowid,table,cellcount,i,a,b,c,bcolor,fcolor;
 rowid=row.rowIndex;
 table=document.getElementById('chart'); 
 cellcount=table.rows[0].cells.length;
 if (upgradeadvisorselect_active==rowid)
 {
	 rowid=0;
 }
 if (rowid!==0)
 {
  upgradeadvisorselect_active=rowid;
  a=table.rows[rowid].cells[cellcount-1].innerHTML*1.0
  b=0.0;
  for(c=1;c<table.rows.length;c++)
  {
   if (c!==rowid)
   {
    b=table.rows[c].cells[cellcount-1].innerHTML*1.0
    if (b<=a)
    {
     bcolor='#b22222';
     fcolor='#ffffff';
    }
    else
    {
				 if (b<(a*lownpr))
     {
	     bcolor='#a0522d';
	     fcolor='#ffffff';
     }
     else if (b>(a*highnpr))
     {
	     bcolor='#4682b4';
	     fcolor='#ffffff';
     }
     else
     {
				  for (i=0;i<cellcount;i++)
				  {
		     bcolor='#2e8b57';
		     fcolor='#ffffff';
				  }
     }
    }
   }
   else
   {
    bcolor='#f8f8ff';
    fcolor='#000000';
			}
	  for (i=0;i<cellcount;i++)
	  {
	   table.rows[c].cells[i].style.backgroundColor=bcolor;
	   table.rows[c].cells[i].style.color=fcolor;
	  }
  }
	 for(i=1;i<document.costcalc.costcalc2.options.length;i++)
	 {
   if (table.rows[rowid].cells[0].innerHTML+' '+table.rows[rowid].cells[1].innerHTML==document.costcalc.costcalc2.options[i].text)
   {
    document.costcalc.costcalc2.options[i].selected=true;
    docostcalc();
			}
	 }
 }
 else
 {
  upgradeadvisorselect_active=0;
  for(c=1;c<table.rows.length;c++)
  {
	  for (i=0;i<cellcount;i++)
	  {
	   table.rows[c].cells[i].style.backgroundColor='#fffacd';
	   table.rows[c].cells[i].style.color='#000000';
	  }
  }
 }
}

initcostcalc();

