function getData(object,childObject)
{
  
   var f = childObject;   

 
   //open a new window
   var w = window.open('','printwindow','menubar=yes,scrollbars=yes');
   //get a handle to the document:
   var d = w.document;
   
   var noSelected = 0;

   //determine the number of chemicals
   for (i=0;i<f.selectchemical.options.length;i++)
   {
     if (f.selectchemical[i].selected) {noSelected = noSelected + 1;}
   }


   d.write("<HTML>");
   d.write("<HEAD>");
   d.write("</HEAD>");
   d.write("<BODY>");
   d.write("<STRONG><EM>Selected</EM> Results from the SPARC Calculator for Petroleum Hydrocarbons</STRONG>");
   


 
   d.write("<TABLE border=\'2\'>");
   //first write out the headings
   d.write("<TR>");
   d.write("<TH>");
   d.write("Chemical Name");
   d.write("</TH>");
   //now for the selected elements of data:
   
   for (k=0;k<f.property.options.length;k++)
   {
     if (f.property[k].selected)
     {
       d.write("<TH>");
       d.write(f.property[k].value);
       d.write("</TH>");
     }
   }
   d.write("</TR>");
 

   var iSelected = 0;

   //values selected in JS are used to select values pulled from xml file:
   for (i=0;i<f.selectchemical.options.length;i++)
   {
     //exit once all selections have been made:
     if (iSelected >= noSelected) {  break; }

     //get data if chemical was selected
     if (f.selectchemical[i].selected) 
     {
       //  example query string:    /SPARCResults/Chemical[CasNo="563166"]/VaporPressure[@Temp="25"] 
       iSelected++;
          queryChemical = "/SPARCResults/Chemical[Component='" + f.selectchemical[i].value + "']";
        
          
        
           d.write ("<TR>");
           d.write("<TD>");
           d.write(f.selectchemical[i].value);
           d.write("</TD>");

           for (k=0;k<f.property.options.length;k++)
           {
             if (f.property[k].selected)
             { 
               d.write("<TD>");

               result = 0;
               //special treatment of the parameters that are temperature dependent
               //these have the temperature included as an attribute of the tag, or
               //in the case of the henry's constant; they are calculated from the other properties
               if (f.property[k].value == "VaporPressure" || f.property[k].value == "Solubility" || f.property[k].value == "Activity" || f.property[k].value == "HenrysConstant")
               {
                 //select an option
                 for (j=0;j<f.chooseTemperature.length;j++)
                 {
                   
                    if (f.chooseTemperature[j].checked) {choiceT = f.chooseTemperature[j].value;}
                 } 
           
                 //interpolate or not
                 if (choiceT == "i")
                 {
                   //the options when interpolation is used:
                   
                   //determine if the selected value is within range
                   value = InputACharForNaN(f.interp.value);
                   

                   //determine if the value is within range
                   //if not give error message
                   result = "Selected Temperature is Out of Range";
                   unitString = "";
                   mm = 0;
                   var vs = new Array();
                   if (0 <= value && value <= 25)
                   {
                     vs[0] = 0; vs[1] = 5; vs[2]=10; vs[3]=15; vs[4]=20; vs[5]=25;
                     for (m=0;m<6;m++) {if (vs[m]>value) {mm=m-1; break;}}
                   
                   
                     if (f.property[k].value == "HenrysConstant")
                     {
                       resultLow = getHenrys(queryChemical,vs[mm],object);
                       resultHigh = getHenrys(queryChemical,vs[mm+1],object);
                     }
                     else
                     {
                       //get values for the bracketing temperatures:
                       query = queryChemical + "/" + f.property[k].value + "[@Temp='" + vs[mm] + "']";
                       var resultLow = getXMLData(query,object);
                       query = queryChemical + "/" + f.property[k].value + "[@Temp='" + vs[mm+1] + "']";
                       var resultHigh = getXMLData(query,object);

                       //force the string results from the xml file to become numbers
                       resultLow = Math.pow(resultLow,1);
                       resultHigh = Math.pow(resultHigh,1);
                     }

                     //use 1 over the kelvin temperatures for interpolation
                     sl = (resultHigh - resultLow)/(  (1./(vs[mm+1]+273)) - (1./(vs[mm]+273))   );
                     result = (1./(value+273)- 1./(vs[mm]+273) )*sl + resultLow;
                     if (result != 0)
                     {
                       if (f.property[k].value == "VaporPressure")
                       {
                         //vapor pressures stored as log(atm):  convert to atm
                         result = Math.pow(10,result);
                          unitString = "atm @ " + f.interp.value + " <SUP>o</SUP>C";
                       }
                       else if (f.property[k].value == "Solubility")
                       {
                         unitString = "mg/L @" + f.interp.value + " <SUP>o</SUP>C";
                       }
                       else if (f.property[k].value == "Activity")
                       {
                          unitString = " @" + f.interp.value + " <SUP>o</SUP>C";
                       }
                       else if (f.property[k].value == "HenrysConstant")
                       {
                          unitString = "atm m3/mol @" + f.interp.value + " <SUP>o</SUP>C";
                       }
                     }

                  
                   }
                   result  = Num2String(result,3,-7,7,-4,4);
                   d.write(result,"&nbsp;",unitString);
                 }
                 else if (choiceT == "d")
                 {
                   //the options for the case when the temperatures are selected to be only from the dataset:
                   for (jj=0;jj<f.temperature.options.length;jj++)
                   {                    
                      if (f.temperature[jj].selected)
                      {
                       
                          //call to applet to pulldata from an element with an attribute
                          query = queryChemical + "/" + f.property[k].value + "[@Temp='" + f.temperature[jj].value + "']";

                          //special calculation for the Henrys Constant
                          if (f.property[k].value == "HenrysConstant") {result = getHenrys(queryChemical,f.temperature[jj].value,object);}
                          else {result = getXMLData(query,object);}

                          unitString = "";
                          if (result != 0)
                          {
                            if (f.property[k].value == "VaporPressure")
                            {
                              //vapor pressures stored as log(atm):  convert to atm
                              result = Math.pow(10,result);
                              unitString = "atm @ " + f.temperature[jj].value + " <SUP>o</SUP>C";
                            }
                            else if (f.property[k].value == "Solubility")
                            {
                               unitString = "mg/L @" + f.temperature[jj].value + " <SUP>o</SUP>C";
                            }
                            else if (f.property[k].value == "Activity")
                            {
                               unitString = " @" + f.temperature[jj].value + " <SUP>o</SUP>C";
                            }
                            else if (f.property[k].value == "HenrysConstant")
                            {
                               unitString = " atm m3/mol @" + f.temperature[jj].value + "<SUP>o</SUP>C";
                            }
                          }

                          result  = Num2String(result,3,-7,7,-4,4);
                          d.write(result,"&nbsp;",unitString,"<BR>"); 
                     }
                    
                   }
                  }
               }
               else
               {
                 //call to the applet to pull data from an element
                 //parameters that are not temperature dependent
                 query = queryChemical + "/" + f.property[k].value;  // + "/";
                 result = getXMLData(query,object);
              
                 //unit string for MW, BP
                 unitString = "";
                 if (result != 0)
                 {
                   if (f.property[k].value == "MW") {unitString = " g/mol";}
                   else if (f.property[k].value == "BP") {unitString = "<SUP>o</SUP>C";}
                 }

                 d.write(result,"&nbsp;",unitString);
               }
               d.write("</TD>");
             }
           
           
         }
         d.write("</TR>");

         
        
       }
     
    }
   d.write("</TABLE>");
  
   d.write("<FORM id=\'exitButton\'>");
   d.write("<A HREF=\'javascript:window.close(self)\'>Close window</A>");
   d.write("</FORM>");

   d.write("</BODY>");
   d.write("</HTML>");  


}
