

			var request;
			var response;

			var Territory;// =document.getElementById("ddTerritory");
			var status;// = document.getElementById("lblStatus");
			var objCentres;
			var objStates;
			var xmlDoc=null;

			function populateCentres(ddlCourses,ddlCentres)
			{
			//debugger
		
			   objCentres=ddlCentres;
			   
			   //alert(ddlCourses.options[ddlCourses.selectedIndex].value);
			   if(ddlCourses.options[ddlCourses.selectedIndex].value != 'undefined')
				{
					return SendRequestCentres(ddlCourses.options[ddlCourses.selectedIndex].value);
				}
				else
				{
					clearSelect(objCentres);
				}
			}
			

			
			
			function populateStates(ddl_country,ddl_state)
			{
			//debugger
		
			   objStates=ddl_state;
			   
			   //alert(ddl_country.options[ddl_country.selectedIndex].value);
			   if(ddl_country.options[ddl_country.selectedIndex].value != 'undefined')
				{
					return SendRequestStates(ddl_country.options[ddl_country.selectedIndex].value);
				}
				else
				{
					clearSelect(objStates);
				}
			}
			function populateCity(ddl_state,ddl_city)
			{
			
		
			   objCity=ddl_city;
			   
			   //alert(ddl_state.options[ddl_state.selectedIndex].value);
			   if(ddl_state.options[ddl_state.selectedIndex].value != 'undefined')
				{
					return SendRequestCity(ddl_state.options[ddl_state.selectedIndex].value);
				}
				else
				{
					clearSelect(objCity);
				}
			}
			
			function InitializeRequest()
			{
				try
				{
					request = new ActiveXObject("Microsoft.XMLHTTP");//Try creating an XMLHTTP Object
				}
				catch(Ex)
				{
					try
					{
				
						request = new ActiveXObject("Microsoft.XMLHTTP");//First failure, try again creating an XMLHTTP Object
					}
					catch(Ex)
					{
			
						request = null;//Else assign null to request
					}
				}

				if(!request&&typeof XMLHttpRequest != 'undefined')
				{
					request = new XMLHttpRequest();
				}
			}
			function SendRequestCentres(ID)
			{
				//status.innerText = "Loading.....";//Set the status to "Loading....."
				InitializeRequest();//Call InitializeRequest to set request object
				var url = "AjaxGetCentreMaster.aspx?CourseName="+ID.replace(/&/g,"/nbsp;");//Create the url to send the request to
			//	alert(url);
				request.onreadystatechange = ProcessCentreRequest;//Delegate ProcessRequest to onreadystatechange property so it gets called for every change in readyState value
				request.open("GET", url, true);//Open a GET request to the URL
				request.send(null);//Send the request with a null body.
			}
			function SendRequestStates(ID)
			{
				//status.innerText = "Loading.....";//Set the status to "Loading....."
				InitializeRequest();//Call InitializeRequest to set request object
				var url = "AjaxStateMaster.aspx?CourseName="+ID.replace(/&/g,"/nbsp;");//Create the url to send the request to
			//	alert(url);
				request.onreadystatechange = ProcessStateRequest;//Delegate ProcessRequest to onreadystatechange property so it gets called for every change in readyState value
				request.open("GET", url, true);//Open a GET request to the URL
				request.send(null);//Send the request with a null body.
				
			}
			function SendRequestCity(ID)
			{
				//status.innerText = "Loading.....";//Set the status to "Loading....."
				InitializeRequest();//Call InitializeRequest to set request object
				var url = "AjaxCityMaster.aspx?StateName="+ID.replace(/&/g,"/nbsp;");//Create the url to send the request to
			//	alert(url);
				request.onreadystatechange = ProcessCityRequest;//Delegate ProcessRequest to onreadystatechange property so it gets called for every change in readyState value
				request.open("GET", url, true);//Open a GET request to the URL
				request.send(null);//Send the request with a null body.
				
			}

		

			function ProcessStateRequest()
			{
				if(request.readyState == 4)//If the readyState is in the "Ready" state
				{
					if(request.status == 200)//If the returned status code was 200. Everything was OK.
					{
						if(request.responseText != "")//If responseText is not blank
						{
							//alert(request.responseText);
							
							populateStateList(request.responseText);//Call the populateList fucntion
							//status.innerText = "Territories Loaded";//Set the status to "Territories Loaded"
						}
						else
						{
							//alert(request.responseText);
							//status.innerText = "None Found";//Set the status to "None Found"
							clearSelect(objStates);//Call clearSelect function
						}
					}
				}
				return true;//return
			}
			function ProcessCityRequest()
			{
				if(request.readyState == 4)//If the readyState is in the "Ready" state
				{
					if(request.status == 200)//If the returned status code was 200. Everything was OK.
					{
						if(request.responseText != "")//If responseText is not blank
						{
							//alert(request.responseText);
							
							populateCityList(request.responseText);//Call the populateList fucntion
							//status.innerText = "Territories Loaded";//Set the status to "Territories Loaded"
						}
						else
						{
							//alert(request.responseText);
							//status.innerText = "None Found";//Set the status to "None Found"
							clearSelect(objCity);//Call clearSelect function
						}
					}
				}
				return true;//return
			}
			
			function ProcessCentreRequest()
			{
				if(request.readyState == 4)//If the readyState is in the "Ready" state
				{
					if(request.status == 200)//If the returned status code was 200. Everything was OK.
					{
						if(request.responseText != "")//If responseText is not blank
						{
							
							populateCentreList(request.responseText);//Call the populateList fucntion
							//status.innerText = "Territories Loaded";//Set the status to "Territories Loaded"
						}
						else
						{
							//status.innerText = "None Found";//Set the status to "None Found"
							clearSelect(objCentres);//Call clearSelect function
						}
					}
				}
				return true;//return
			}

			function populateStateList(response)
			{
			
				
				try //Internet Explorer
				{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					xmlDoc.async=false;
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
 	                xmlDoc.loadXML(response);
 	                //alert(response)
 	                FillStates();
				}
				catch(e)
				{
				try //Firefox, Mozilla, Opera, etc.
				{
					parser=new DOMParser();
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
					xmlDoc=parser.parseFromString(response,"text/xml");
					//alert(xmlDoc);
					FillStates();
				}
				catch(e) {alert(e.message)}
				}
				
			
			}
			function populateCityList(response)
			{
			
				//debugger
				try //Internet Explorer
				{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					xmlDoc.async=false;
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
 	                xmlDoc.loadXML(response);
 	                //alert(response)
 	                FillCity();
				}
				catch(e)
				{
				try //Firefox, Mozilla, Opera, etc.
				{
					parser=new DOMParser();
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
					xmlDoc=parser.parseFromString(response,"text/xml");
					//alert(xmlDoc);
					FillCity();
				}
				catch(e) {alert(e.message)}
				}
				
			
			}

			function populateCentreList(response)
			{
			
				
				try //Internet Explorer
				{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					xmlDoc.async=false;
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
 	                xmlDoc.loadXML(response);
 	                FillCentres();
				}
				catch(e)
				{
				try //Firefox, Mozilla, Opera, etc.
				{
					parser=new DOMParser();
					response=response.substring(0,response.indexOf("<!DOCTYPE"));
					xmlDoc=parser.parseFromString(response,"text/xml");
					FillCentres();
				}
				catch(e) {alert(e.message)}
				}
				
			
			}
			function appendToSelect(select, value, content)
			{
				var opt;
				opt = document.createElement("option");//Create an Element of type option
				opt.value = value;//Set the option's value
				opt.appendChild(content);//Attach the text content to the option
				select.appendChild(opt);//Append the option to the referenced [Territory] select box
			}

			function clearSelect(select)
			{
				select.options.length = 1;//Set the select box's length to 1 so only "--Select--" is availale in the selection on calling this function.
										  //You may want to write your own clearSelect logic
			}
			
			
			function FillStates()
			{
		//debugger
				if(xmlDoc!=null)
				{
					
					var opt;
					
					var TerritoriesElem = xmlDoc.getElementsByTagName("root");
					var TerritoryElem = TerritoriesElem[0].getElementsByTagName("statemaster");
					
					
					clearSelect(objStates);
					//alert(TerritoriesElem.length);
					if(TerritoriesElem.length > 0)
					{
						for (var i = 0; i < TerritoryElem.length; i++)
						{
							var textNode = document.createTextNode(TerritoryElem[i].getAttribute("varstatename"));
							appendToSelect(objStates, TerritoryElem[i].getAttribute("intStateId"), textNode);//Call appendToSelect to append the text elements to the Territory dropdown
							
							
						}
					} 
				}
				else
				   clearSelect(objStates);  
				
			}
			function FillCity()
			{
		//debugger
				if(xmlDoc!=null)
				{
					
					var opt;
					
					var TerritoriesElem = xmlDoc.getElementsByTagName("root");
					var TerritoryElem = TerritoriesElem[0].getElementsByTagName("citymaster");
					
					
					clearSelect(objCity);
					//alert(TerritoriesElem.length);
					if(TerritoriesElem.length > 0)
					{
						for (var i = 0; i < TerritoryElem.length; i++)
						{
							var textNode = document.createTextNode(TerritoryElem[i].getAttribute("varCityName"));
							appendToSelect(objCity, TerritoryElem[i].getAttribute("intCityId"), textNode);//Call appendToSelect to append the text elements to the Territory dropdown
							
							
						}
						document.getElementById('ddl_city').options[i+1] = new Option("Others","Others");
					} 
					
				}
				else
				   clearSelect(objCity);  
				
			}
			
			
			function FillCentres()
			{
		
				if(xmlDoc!=null)
				{
					var opt;
					var TerritoriesElem = xmlDoc.getElementsByTagName("root");
					//var TerritoryElem = TerritoriesElem[0].getElementsByTagName("CENTRE");
					var TerritoryElem = TerritoriesElem[0].getElementsByTagName("tblcentremaster");
					clearSelect(objCentres);
					if(TerritoriesElem.length > 0)
					{
						for (var i = 0; i < TerritoryElem.length; i++)
						{
							var textNode = document.createTextNode(TerritoryElem[i].getAttribute("varcentrename"));
							appendToSelect(objCentres, TerritoryElem[i].getAttribute("intcentreid"), textNode);//Call appendToSelect to append the text elements to the Territory dropdown
						}
					} 
				}
				else
				   clearSelect(objCentres);  
				
			}
			


