//
//definition of the GetDiffusionParameters object begins here
//******************************************
function GetDiffusionParameters(c)
{
    this.chemical=c;
}


//data
//(note:  each array must have a value for EACH chemical)
GetDiffusionParameters.prototype.ch = new Array;
GetDiffusionParameters.prototype.carbon = new Array;
GetDiffusionParameters.prototype.hydrogen = new Array;
GetDiffusionParameters.prototype.oxygen = new Array;
GetDiffusionParameters.prototype.r6 = new Array;
GetDiffusionParameters.prototype.rings = new Array;
GetDiffusionParameters.prototype.cOxygen = new Array;
GetDiffusionParameters.prototype.cNitrogen = new Array;
GetDiffusionParameters.prototype.bpC = new Array;

//prepackaged chemicals
ii=-1;
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'benzene';
GetDiffusionParameters.prototype.carbon[ii] = 6;
GetDiffusionParameters.prototype.hydrogen[ii] = 6;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 77.7;

//toluene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'toluene';
GetDiffusionParameters.prototype.carbon[ii] = 7;
GetDiffusionParameters.prototype.hydrogen[ii] = 8;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 118.7;

//ethylbenzene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'ethylbenzene';
GetDiffusionParameters.prototype.carbon[ii] = 8;
GetDiffusionParameters.prototype.hydrogen[ii] = 10;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 141.2;

//o-Xylene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'o-xylene';
GetDiffusionParameters.prototype.carbon[ii] = 8;
GetDiffusionParameters.prototype.hydrogen[ii] = 10;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 144.28;

//m-Xylene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'm-xylene';
GetDiffusionParameters.prototype.carbon[ii] = 8;
GetDiffusionParameters.prototype.hydrogen[ii] = 10;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 140.81;

//p-Xylene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'p-xylene';
GetDiffusionParameters.prototype.carbon[ii] = 8;
GetDiffusionParameters.prototype.hydrogen[ii] = 10;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 142.9;

//1,3,5-Trimethylbenzene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = '1,3,5-TMB';
GetDiffusionParameters.prototype.carbon[ii] = 9;
GetDiffusionParameters.prototype.hydrogen[ii] = 12;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 164.01;

//1,2,4-Trimethylbenzene
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = '1,2,4-TMB';
GetDiffusionParameters.prototype.carbon[ii] = 9;
GetDiffusionParameters.prototype.hydrogen[ii] = 12;
GetDiffusionParameters.prototype.oxygen[ii] = 0;
GetDiffusionParameters.prototype.r6[ii] = 1;
GetDiffusionParameters.prototype.rings[ii] = 1;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 170.0;

//Methanol
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'Methanol';
GetDiffusionParameters.prototype.carbon[ii] = 1;
GetDiffusionParameters.prototype.hydrogen[ii] = 4;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 53.8;

//Ethanol
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'Ethanol';
GetDiffusionParameters.prototype.carbon[ii] = 2;
GetDiffusionParameters.prototype.hydrogen[ii] = 6;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 84.21;

//TBA
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'TBA';
GetDiffusionParameters.prototype.carbon[ii] = 4;
GetDiffusionParameters.prototype.hydrogen[ii] = 10;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 94.2;

//MTBE
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'MTBE';
GetDiffusionParameters.prototype.carbon[ii] = 5;
GetDiffusionParameters.prototype.hydrogen[ii] = 12;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "HigherEstersEthers";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 43.8;

//Di-iospropyl ether
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'DIPE';
GetDiffusionParameters.prototype.carbon[ii] = 6;
GetDiffusionParameters.prototype.hydrogen[ii] = 14;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "HigherEstersEthers";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 75.6;

//ethyl tert-butyl ether
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'ETBE';
GetDiffusionParameters.prototype.carbon[ii] = 6;
GetDiffusionParameters.prototype.hydrogen[ii] = 14;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "HigherEstersEthers";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 71.31;

//tert-amyl alcohol
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'TAA';
GetDiffusionParameters.prototype.carbon[ii] = 5;
GetDiffusionParameters.prototype.hydrogen[ii] = 12;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "n/a";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 112.00;

//tert-amyl methyl ether
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'TAME';
GetDiffusionParameters.prototype.carbon[ii] = 6;
GetDiffusionParameters.prototype.hydrogen[ii] = 14;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "HigherEstersEthers";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 70.75;

//tert-amyl ethyl ether
ii=ii+1;
GetDiffusionParameters.prototype.ch[ii] = 'TAEE';
GetDiffusionParameters.prototype.carbon[ii] = 7;
GetDiffusionParameters.prototype.hydrogen[ii] = 16;
GetDiffusionParameters.prototype.oxygen[ii] = 1;
GetDiffusionParameters.prototype.r6[ii] = 0;
GetDiffusionParameters.prototype.rings[ii] = 0;
GetDiffusionParameters.prototype.cOxygen[ii] = "HigherEstersEthers";
GetDiffusionParameters.prototype.cNitrogen[ii] = "n/a";
GetDiffusionParameters.prototype.bpC[ii] = 97.8;



GetDiffusionParameters.prototype.entries = ii+1;


//define functions
//determine if chemical is in the data set
function GetDiffusionParameters_cPresent()
{
  var boolChemical = false;

  for (i=0 ; i<this.entries ; i=i+1) {if (this.chemical==this.ch[i]) {boolChemical=true;}}
 
  return boolChemical;
}



//get number of atoms
function GetDiffusionParameters_getNumber(atom)
{
  //determine the number of atoms for each molecule of selected chemical
  
  //select the index of the chosen chemical (chemical is chosen at creation of the GetDiffusionParameter object)
  for (i=0;i<this.entries;i++) {if (this.chemical==this.ch[i]) {index=i;}}

  //select the atom
  if (atom=="carbon") {return this.carbon[index];}
  else if (atom=="hydrogen") {return this.hydrogen[index];}
  else if (atom=="oxygen") {return this.oxygen[index];}
  else if (atom=="rings") {return this.rings[index];}
  else if (atom=="ring6") {return this.r6[index];}
  else { return 0;}
}



//get the special conditions
function GetDiffusionParameters_getConditions(atom)
{
  var condition = "n/a";
  //select the special conditions for oxygen and nitrogen;  for all other atoms the result is "None"
  
  //select the index of the chosen chemical (chemical is chosen at creation of the GetDiffusionParameter object)
  for (i=0;i<this.entries;i++) {if (this.chemical==this.ch[i]) {index=i;}}

  //select the atom
  if (atom=="oxygen") {condition = this.cOxygen[index];}
  else if (atom=="nitrogen") {condition = this.cNitrogen[index];}
  
  return condition;

}


//return the boiling point
function GetDiffusionParameters_getBoilingPointC()
{
 //select the index of the chosen chemical (chemical is chosen at creation of the GetDiffusionParameter object)
 for (i=0;i<this.entries;i++) {if (this.chemical==this.ch[i]) {index=i;}}

 return this.bpC[index];
}

//add methods to the prototype
GetDiffusionParameters.prototype.cPresent = GetDiffusionParameters_cPresent;
GetDiffusionParameters.prototype.getNumber = GetDiffusionParameters_getNumber;
GetDiffusionParameters.prototype.getConditions = GetDiffusionParameters_getConditions;
GetDiffusionParameters.prototype.getBoilingPointC = GetDiffusionParameters_getBoilingPointC;
//******************************************
//Definition of the GetDiffusionParameters object ends here
//

