   try
   {
      request = new XMLHttpRequest();
   }
   catch (trymicrosoft)
   {
      try
      {
         request = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (othermicrosoft)
      {
         try
         {
            request = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (failed)
         {
            request = false;
         }
      }
   }

   if (!request)
   {
      alert("Error initializing XMLHttpRequest!");
   }

   var degree;
   var optgroup = document.createElement('OPTGROUP');

   function getDegrees() 
   {
      var objState = document.getElementById('stateid');
      var delimiterLocation = objState.value.indexOf("|");
	  var clientid = objState.value.substr(0, delimiterLocation);
	  var state = objState.value.substr(delimiterLocation + 1, 2);
      var objDegree = document.getElementById('degree');
      var objProgram = document.getElementById('program');
      var objClientId = document.getElementById('clientid');
      var objStateId = document.getElementById('state');      

	  objClientId.value = clientid;
	  objStateId.value = state;
      objDegree.length = 0; 
      objProgram.length = 0;
      objDegree.options[objDegree.options.length] = new Option('Select a State first','0');           
      objProgram.options[objProgram.options.length] = new Option('Choose a degree type first','0');
      
      var url = "webservices/ajax/strayeruniversity.aspx" +
                "?method=GetDegrees" +          
                "&clientid=" + escape(clientid);

      request.open("GET", url, true);   
      request.onreadystatechange = updateDegrees;   
      request.send(null);   
      return true;
   }     

   function getPrograms() 
   {
      var objState = document.getElementById('stateid');  
      var objDegree = document.getElementById('degree');      
      var objProgram = document.getElementById('program');    
      objProgram.length = 0;
      objProgram.options[objProgram.options.length] = new Option('Choose a degree type first','0');
      
      var delimiterLocation = objState.value.indexOf("|");
	  var clientid = objState.value.substr(0, delimiterLocation);
	        
      var url = "webservices/ajax/strayeruniversity.aspx" +
                "?method=GetDegrees" +          
                "&clientid=" + escape(clientid);

      request.open("GET", url, true);   
      request.onreadystatechange = updatePrograms;   
      request.send(null);   
      return true;
   }     
                   
   function updateDegrees()
   { 
      if (request.readyState == 4)
      {  
         if (request.status == 200)
         { 
            try 
            {
               if (request.responseText == "")
               {
                  //alert("No programs are offered in selected area and area of interest");
               }
               else
               {
                  var degrees = eval(request.responseText); 
                  
                  var objDegree = document.getElementById('degree');
                  objDegree.length = 0;                  

                  objDegree.options[objDegree.options.length] = new Option('Please Select','0');
                  for(d in degrees[0])
                  {
                     objDegree.options[objDegree.options.length] = new Option(degrees[0][d], degrees[0][d]);
                  } 
               }
            }    
            catch(failed)
            {    
               alert('Error: unexpected result returned');  
            }   
         } 
         else if (request.status == 404)
         {  
            alert("Request URL does not exist");        
         }    
         else
         {
            alert("Error: status code is " + request.status);               
         }
      }
   } 
   
   function updatePrograms()
   { 
      if (request.readyState == 4)
      {  
         if (request.status == 200)
         { 
            try 
            {
               if (request.responseText == "")
               {
                  //alert("No programs are offered in selected area and area of interest");
               }
               else
               {
                  var degrees = eval(request.responseText); 
                  
                  var objDegree = document.getElementById('degree');                                    
                  var objProgram = document.getElementById('program');
                  objProgram.length = 0;                  

                  objProgram.options[objProgram.options.length] = new Option('Please Select','0');
                  for(d in degrees[1])
                  {
 	        		if (degrees[1][d][1] == objDegree.value)    
 	        		{      
                       objProgram.options[objProgram.options.length] = new Option(degrees[1][d][0], degrees[1][d][0]);
                    }
                  } 
               }
            }    
            		
            catch(failed)
            {    
               alert('Error: unexpected result returned');  
            }   
         } 
         else if (request.status == 404)
         {  
            alert("Request URL does not exist");        
         }    
         else
         {
            alert("Error: status code is " + request.status);               
         }
      }
   }       