var xmlDoc,xslt,xslDoc,xslProc,processor,xsltobj,result,output,xmls;
var curQuestion,PrevNodeID,divObj;

var xmlDocFile = "/media_room/pr.xml"
var xslDocFile = "/media_room/pr.xsl"

// GET CURRENT MONTH AND YEAR

today=new Date(); 
varID=0;
varYear=today.getYear();
// Make year number correspond to correct year according to Browser
if (varYear<1900) varYear=(varYear+1900)
else if (varYear>2000) varYear=varYear
   /**
   *	To load the XML file
   */
      
    function loadXMLDoc()
    {
    
         // Code for IE
        if (window.ActiveXObject)
             {
             xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
             xmlDoc.async = false;
             xmlDoc.resolveExternals = false;
             xmlDoc.load(xmlDocFile);
             }
             
        // Code for Firefox, Opera etc.
        else if (document.implementation && document.implementation.createDocument)
            {
            xmlDoc = document.implementation.createDocument("","", null); 
            xmlDoc.async = false; 
            xmlDoc.load(xmlDocFile); 
            }
        else
            {        
               alert("Your browser cannot handle this script");
            }
               
    }


   /**
   *	To load the XSL file
   */

  function loadXSLDoc()
    {
        
        // Code for IE
        if (window.ActiveXObject)
        
        {
            xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
            xslDoc.async = false;
            xslDoc.resolveExternals = false;
            xslDoc.load(xslDocFile);
        }
        
        // Code for Firefox, Opera, etc.
        else if (document.implementation && document.implementation.createDocument)
           
        {
            xslDoc = document.implementation.createDocument("", "", null); 
            xslDoc.async = false; 
            xslDoc.load(xslDocFile); 
            
        }
        
        else
         
        {
           alert("Your browser cannot handle this script");
        }
            
            
    }

/* Function for initial loading of the page */

    function loadXML()
    {		
		
      	// Code for IE
        if (window.ActiveXObject)
        {
          
           loadXSLDoc();
           loadXMLDoc();        
           xslt = new ActiveXObject("Msxml2.XSLTemplate");
           xslt.stylesheet = xslDoc;
           xslProc = xslt.createProcessor();
           xslProc.input = xmlDoc;
           xslProc.addParameter("varID",varID);
           xslProc.addParameter("varYear",varYear);
           xslProc.transform();
                      
            //if (NodeID == "1")
            //    {					
                   divObj = document.getElementById("placeContent");
                   divObj.innerHTML = xslProc.output;
            //    }  
       }
       
       
        // Code for Firefox, Opera, etc.
        else if (document.implementation && document.implementation.createDocument)
           
        {
			
               loadXSLDoc();
               loadXMLDoc();
               processor = new XSLTProcessor();            
               processor.importStylesheet(xslDoc); 
               processor.setParameter(null,"varID",varID);
               processor.setParameter(null,"varYear",varYear);
               result = processor.transformToDocument(xmlDoc); 
               xmls = new XMLSerializer(); 
               output = xmls.serializeToString(result); 
                
              //      if (NodeID == "1")
              //      {
                        divObj = document.getElementById("placeContent");
                        divObj.innerHTML = output;
               //     }
            
        }
        
        else
          {
           alert("Your browser cannot handle this script");
          }
            
    }
    
  
   /**
    *	To Reload the XSL with NodeID and nodeType parameters set and load it in the browser
   */ 
  
   function loadXSL(varID,varYear)
    {      
	
		var yearNow = document.getElementById("currYear").value;
	
		if (varYear==0) { varYear=yearNow };

       loadXML();
       // Code for IE
        if (window.ActiveXObject)
       {
           
           xslt = new ActiveXObject("Msxml2.XSLTemplate");
           xslt.stylesheet = xslDoc;
           xslProc = xslt.createProcessor();
           xslProc.input = xmlDoc;
           xslProc.addParameter("varID",varID);
           xslProc.addParameter("varYear",varYear);
           xslProc.transform();
           
           divObj = document.getElementById("placeContent");
           divObj.innerHTML = xslProc.output;
         
       }
       
      // Code for Firefox, Opera, etc.
        else if (document.implementation && document.implementation.createDocument)
           
        { 
           processor = new XSLTProcessor();            
           processor.importStylesheet(xslDoc); 
           processor.setParameter(null,"varID",varID);
           processor.setParameter(null,"varYear",varYear);
           result = processor.transformToDocument(xmlDoc); 
           xmls = new XMLSerializer(); 
           output = xmls.serializeToString(result); 
           
           divObj = document.getElementById("placeContent");
           divObj.innerHTML = output;
       
       }
    
       else
          {
           alert("Your browser cannot handle this script");
          }
                     
    }
 
 
 
  /**
  	To parse the XML and fetch the NodeID and the NodeType of the next question and 
        pass it to loadXSL() function
  */
 
 
  function getDataNext(id,selected)
  {  
      
       loadXMLDoc();
       curQuestion = getCurrNode(id);
       curNode     = xmlDoc.getElementsByTagName("Question")[curQuestion]
       var x=curNode.getElementsByTagName("option");       
        	       
	for(i=0;i<x.length;i++)
	{
		var attlist=x.item(i).attributes;
		var att=attlist.getNamedItem("value");
                var currentSelection = att.value;
		
		if(selected==currentSelection)
		   NodeID = x.item(i).childNodes[0].nodeValue;
			
			
		
  	}
        
        curQuestion = getCurrNode(NodeID);
        curNode     = xmlDoc.getElementsByTagName("Question")[curQuestion]
        x=curNode.getElementsByTagName("recommendation"); 
       
        if  ( x.length <= 0 )
            nodeType = "Q"
            
        else
            nodeType = "R"        
        loadXSL(NodeID,nodeType);
        
  }
  
  /**
  	To parse the XML and fetch the Previous NodeID  and pass it to loadXSL() function
  */

  function getDataPrev(id)
  {
     
       loadXMLDoc();
       curQuestion = getCurrNode(id);
       curNode     = xmlDoc.getElementsByTagName("Question")[curQuestion]
       var x=curNode.getElementsByTagName("PrevNode");     
       PrevNodeID = x.item(0).childNodes[0].nodeValue
       
       if ( PrevNodeID >= 1 )
       {
          loadXSL(PrevNodeID,"Q");//Pass NodeType as Q as the Previous Node will always be a question
       }   
       
       else 
       {
          history.go(-1); //Clicking the Previous button from the first question will load the previous page.
       }
       
       
       
  }
  
   
  
 
  /**
	Returns the index based on the physical entry of the Node in the XML. 	
  */
  function getCurrNode(questionID)
  {
  	
	var x = xmlDoc.getElementsByTagName('Question');
	
	for (i=0;i<x.length;i++)
	{
		if (x[i].getAttribute("id") == questionID)
		{
			return i;             
		}
	}
	
  }