﻿//
// TODO: Fill in the comments ()
//
//
var AjaxCaller = function()
{
            /* Create a new XMLHttpRequest object to talk to the Web server */
			var XMLHttpRequestObject = false;
			try {
			XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				XMLHttpRequestObject = false;
			}
			}
			if (!XMLHttpRequestObject && typeof XMLHttpRequest != 'undefined') {
			XMLHttpRequestObject = new XMLHttpRequest();
			}

			this.callServer =  function()
			{
				// Get the city and state from the web form
				var Category = document.getElementById("Category").value;
				var fCode = document.getElementById("fCode").value;
				var ParamID = document.getElementById("ParamID").value;
				// Only go on if there are values for both fields
				if ((Category == null) || (Category == "")) return;
				if ((fCode == null) || (fCode == "")) return;
				if ((ParamID == null) || (ParamID == "")) return;

				// Build the URL to connect to
				//AjaxTest.aspx
				var url = "AjaxTest.aspx?Category=" + escape(Category) + "&fCode=" + escape(fCode) + "&ParamID=" + escape(ParamID);

				// Open a connection to the server
				xmlHttp.open("GET", url, true);

				// Setup a function for the server to run when it's done
				xmlHttp.onreadystatechange = updatePage;

				// Send the request
				xmlHttp.send(null);
			}
			/* Callback method : executes after server process 
			and send response back */			
			
			
			this.updatePage = function (resp)
			{
				if (XMLHttpRequestObject.readyState == 4) {
					document.getElementById("Result").value = resp;
				}
			}
		
			/* Collection of data for post method ***/
			this.CollectData = function()
			{
				data = 'Category='+escape(document.getElementById('Category').value);
				data = data +  '&fCode='+escape(document.getElementById('fCode').value);
				data = data +  '&ParamId='+escape(document.getElementById('ParamId').value);
				return data;
			}
			/* Post method which return text back */
			this.postDataReturnText = function (url, data, callback)
			{ 
				if(XMLHttpRequestObject) {
					XMLHttpRequestObject.open("POST", url); 
					XMLHttpRequestObject.setRequestHeader('Content-Type', 
					'application/x-www-form-urlencoded'); 

					XMLHttpRequestObject.onreadystatechange = function() 
					{ 
					if (XMLHttpRequestObject.readyState == 4 && 
						XMLHttpRequestObject.status == 200) {
						callback(XMLHttpRequestObject.responseText); 
					} 
					}

					XMLHttpRequestObject.send(data); 
				}
			}
			
			/* Post method which return text back */
			this.postDataReturnTextDiv = function (url, data, callback, tarDiv)
			{ 
			    //alert(url);
			    //alert(data);
			    //alert(callback);
			    //alert(tarDiv);
			    
				if(XMLHttpRequestObject) {
					XMLHttpRequestObject.open("POST", url); 
					XMLHttpRequestObject.setRequestHeader('Content-Type', 
					'application/x-www-form-urlencoded'); 

					XMLHttpRequestObject.onreadystatechange = function() 
					{ 
					    if (XMLHttpRequestObject.readyState == 4 
					        && XMLHttpRequestObject.status == 200) 
					    {
						    callback(XMLHttpRequestObject.responseText, tarDiv); 
					    } 
					}
					XMLHttpRequestObject.send(data); 
				}
			}
			
					/* Post method which return text back */
			this.postDataReturnText2DDL = function (url, data, callback, tarDDL1, tarDDL2)
			{ 
			    //alert(url);
			    //alert(data);
			    //alert(callback);
			    //alert(tarDiv);
			    
				if(XMLHttpRequestObject) {
					XMLHttpRequestObject.open("POST", url); 
					XMLHttpRequestObject.setRequestHeader('Content-Type', 
					'application/x-www-form-urlencoded'); 

					XMLHttpRequestObject.onreadystatechange = function() 
					{ 
					    if (XMLHttpRequestObject.readyState == 4 
					        && XMLHttpRequestObject.status == 200) 
					    {
						    callback(XMLHttpRequestObject.responseText, tarDDL1, tarDDL2); 
					    } 
					}
					XMLHttpRequestObject.send(data); 
				}
			}
			
			
			/* Post method which return text back */
			this.postDataReturnXMLDiv = function (url, data, callback, tarDiv)
			{ 
				if(XMLHttpRequestObject) {
					XMLHttpRequestObject.open("POST", url); 
					XMLHttpRequestObject.setRequestHeader('Content-Type', 
					'application/x-www-form-urlencoded'); 

					XMLHttpRequestObject.onreadystatechange = function() 
					{ 
					if (XMLHttpRequestObject.readyState == 4 && 
						XMLHttpRequestObject.status == 200) {
						callback(XMLHttpRequestObject.responseXML, tarDiv); 
					} 
					}

					XMLHttpRequestObject.send(data); 
				}
			}

			/* Post mehtod which return XML back */
			this.postDataReturnXml = function (url, data, callback)
			{ 


				if(XMLHttpRequestObject) {
					XMLHttpRequestObject.open("POST", url); 
					XMLHttpRequestObject.setRequestHeader('Content-Type', 
					'application/x-www-form-urlencoded'); 

					XMLHttpRequestObject.onreadystatechange = function() 
					{ 
					if (XMLHttpRequestObject.readyState == 4 && 
						XMLHttpRequestObject.status == 200) {
						callback(XMLHttpRequestObject.responseXML); 
						delete XMLHttpRequestObject;
						XMLHttpRequestObject = null;
					} 
					}

					XMLHttpRequestObject.send(data); 
				}
			}
}
			


