// JavaScript Document

    function getCountries() {

	var locale = document.getElementById("locale").value;
	
  	xmlHttp=GetXmlHttpObject()
  	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
    	} 
       
  	var url="/www/aecomdsm/renderers/jsp/getcountry.jsp";
	url=url+"?locale="+locale;
	url=url+"&sid="+Math.random();
	//alert(url);
  	xmlHttp.onreadystatechange=populateCountry;
  	xmlHttp.open("GET",url,true);
  	xmlHttp.send(null);  
    }

    function handleCountryChange(field) {
	var idx = field.selectedIndex;
 	var val = field[idx].value;
       var locale = document.getElementById("locale").value;
	var country = val;
	if(document.getElementById("selCountry").value != field[idx].text) {
	  document.getElementById("selState").value = "";
	  document.getElementById("selCity").value = "";
	}
	if(idx != 0) {
         document.getElementById("selCountry").value = field[idx].text;
	} else {
	  document.getElementById("selCountry").value = "";
	}
	document.getElementById("state").options.length = 1;
	document.getElementById("city").options.length = 1;
	document.getElementById("state")[0].text = "State/Province";
	document.getElementById("city")[0].text = "City";
	document.getElementById("state")[0].value = "";
	document.getElementById("city")[0].value = "";
	if (country == "") {
         return;
    	}
  	xmlHttp=GetXmlHttpObject()
  	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
    	} 
  	var url="/www/aecomdsm/renderers/jsp/getstate.jsp";
  	url=url+"?country="+country;
	url=url+"&locale="+locale;
	url=url+"&sid="+Math.random();
	//alert(url);
  	xmlHttp.onreadystatechange=populateStates;
  	xmlHttp.open("GET",url,true);
  	xmlHttp.send(null); 
	
    }
    
    function getCities() {
	var idx = document.getElementById("country").selectedIndex;
 	var val = document.getElementById("country")[idx].value;
       var locale = document.getElementById("locale").value;
	var country = val;

	document.getElementById("city").options.length = 1;
 	document.getElementById("city")[0].text = "City";
	if (country == "") {
	  document.getElementById("state").options.length = 1;
	  document.getElementById("city").options.length = 1;
	  document.getElementById("state")[0] = "State/Province";
	  document.getElementById("city")[0] = "City";
	  document.getElementById("state")[0].value = "";
	  document.getElementById("city")[0].value = "";
         return;
    	}
  	xmlHttp=GetXmlHttpObject()
  	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
    	} 
  	var url="/www/aecomdsm/renderers/jsp/getcountrycity.jsp";
  	url=url+"?country="+country;
	url=url+"&locale="+locale;
	url=url+"&sid="+Math.random();
	//alert(url);
  	xmlHttp.onreadystatechange=populateCities;
  	xmlHttp.open("GET",url,true);
  	xmlHttp.send(null);  
    }
    
    function handleStateChange(field) {
	var idx = field.selectedIndex;
 	var val = field[idx].value;
       var locale = document.getElementById("locale").value;
	var state = val;
	if(state != document.getElementById("selState").value) {
		document.getElementById("selCity").value = "";
	}
	if(idx != 0) {
	  document.getElementById("selState").value = field[idx].text;
	} else {
	  document.getElementById("selState").value = "";
	}
	document.getElementById("city").options.length = 1;
	document.getElementById("city")[0].text = "City";
	document.getElementById("city")[0].value = "";
	if (idx == 0) {

	  return getCities();
         
    	}
	var cidx = document.getElementById("country").selectedIndex;
 	var cval = document.getElementById("country")[cidx].text;
	var country = cval;
  	xmlHttp=GetXmlHttpObject()
  	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
    	} 
  	var url="/www/aecomdsm/renderers/jsp/getcity.jsp";
  	url=url+"?country="+country;
	url=url+"&state="+state;
	url=url+"&locale="+locale;
	url=url+"&sid="+Math.random();
	//alert(url);
  	xmlHttp.onreadystatechange=populateCities;
  	xmlHttp.open("GET",url,true);
  	xmlHttp.send(null);  
    } 

    function handleCityChange(field) {
	var idx = field.selectedIndex;
	if(idx != 0) {
  	  document.getElementById("selCity").value = field[idx].text;
	} else {
	  document.getElementById("selCity").value = "";
	}
	//alert(field[idx].text);
    }

    function populateCountry() 
    { 
      if (xmlHttp.readyState==4)
      { 
        if(xmlHttp.status == 200 || xmlHttp.status == 304) {
    	   //alert(xmlHttp.responseText);
          var countrybox = document.getElementById("country");
          var countryresponse = xmlHttp.responseText;
	   
   	   var countries = countryresponse.split("|");
	   countrybox.options.length = countries.length-1 ;
	   //countrybox[0].text = "Countries (" + (countries.length - 2) + ")"
	   countrybox[0].text = "Country"
          countrybox[0].value = "";
	   document.getElementById("state").value = "";
	   document.getElementById("city").value = "";
   	   for (var i=1; i < countries.length; i++)
          { 
		if(countries[i].length > 0 ) {  
		  countrybox[(i)].text = countries[i];
		  countrybox[(i)].value = countries[i];
		  if(countries[i] == document.getElementById("selCountry").value) {
		    countrybox[(i)].selected = true;
		  }
		}
   	   }
	   if(document.getElementById("selCountry").value != "undefined" && document.getElementById("selCountry").value != "") {
	     handleCountryChange(countrybox);
	   }
        }
      }
    }


    function populateStates() 
    { 
      if (xmlHttp.readyState==4)
      { 
        if(xmlHttp.status == 200 || xmlHttp.status == 304) {
    	  // alert(xmlHttp.responseText);
          var statebox = document.getElementById("state");
	   var citybox = document.getElementById("city");

          var response = xmlHttp.responseText;
	   var responses = response.split("^^^");

   	   var states = responses[0].split("|");
	   var cities = responses[1].split("|");
	   statebox.options.length = states.length-1;
   	   citybox.options.length = cities.length;

	   //statebox[0].text = "States (" + (states.length - 2) + ")"
          statebox[0].text = "State/Province";

	   statebox[0].value = "";
   	   for (var i=1; i < states.length - 1; i++)
          {
		if(states[i].length>0) {
     		   statebox[i].text = states[i];
		   statebox[i].value = states[i];
		   if(states[i] == document.getElementById("selState").value) {
		    statebox[(i)].selected = true;
		   }
		}
   	   }
	   if(document.getElementById("selState").value != "undefined" && document.getElementById("selState").value != "") {
		//alert(document.getElementById("selState").value);
		handleStateChange(statebox);
	   } else {
	     //citybox[0].text = "Cities (" + (cities.length - 1) + ")";
	     citybox[0].text = "City";
	     citybox[0].value = "";
	    //alert(document.getElementById("selCity").value+ "!!!");
   	     for (var i=0; i < cities.length-1; i++)
            { 
		if(cities[i].length>0) {
		  citybox[(i+1)].text = cities[i];
		  citybox[(i+1)].value = cities[i];
		 

		  if(cities[i] == document.getElementById("selCity").value) {
		    citybox[(i+1)].selected = true;
		  }
		}
   	     }
	   }
        }
      }
    }

    function populateCities() 
    { 
      if (xmlHttp.readyState==4)
      { 
        if(xmlHttp.status == 200 || xmlHttp.status == 304) {
    	   //alert(xmlHttp.responseText);
          var citybox = document.getElementById("city");
          var cityresponse = xmlHttp.responseText;
	   
   	   var cities = cityresponse.split("|");
	   citybox.options.length = cities.length-1 ;
	   //citybox[0].text = "Cities (" + (cities.length - 2) + ")";
          citybox[0].text = "City";
	   citybox[0].value = ""
	
   	   for (var i=1; i < cities.length-1; i++)
          { 
		if(cities[i].length>0) {
		  citybox[(i)].text = cities[i];
		  citybox[(i)].value = cities[i];
		 //alert(document.getElementById("selCity").value);
		  if(cities[i] == document.getElementById("selCity").value) {
		    citybox[i].selected = true;
		  }
		}
   	   }
        }
      }
    }




    function GetXmlHttpObject() {
      var xmlHttp=null;
      try
      {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
      }
      catch (e)
      {
         // Internet Explorer
         try
    	  {
    	     xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    	  }
  	  catch (e)
         {
           xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      }
       return xmlHttp;
    }


