﻿<!-- Script for Ajax call  --> 
// request object  
var req;

//Method to create XmlHttp object based on browser
function createXmlHttp()
{
    if(window.XMLHttpRequest) 
    {
	    req = new XMLHttpRequest(); 
        
        if (req.overrideMimeType) {
           req.overrideMimeType('text/xml');
        }
    }    
    else if(window.ActiveXObject)
    {
   	    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } 
  	    catch(e)
  	    {
    	    req = new ActiveXObject("Microsoft.XMLHTTP"); 
	    }   
    }
} 

function sendAjax(url, callback, method, data)
{
    createXmlHttp();
    if(req) {	    
	    req.onreadystatechange = callback;

        if(method=="POST")
        {
	        req.open("POST", url, true);
            req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            req.setRequestHeader("Content-length", data.length);
            req.setRequestHeader("Connection", "close");
            
            req.onreadystatechange = callback;
                    
            req.send(data);      
         }
        else
        {
            if (data.lastIndexOf('&') == data.length-1)
                data = data.substring(0, data.length-1);
      
            req.open("GET", url + "?" + data, true);
	        req.send(null);
	        return false;
        }
    }    
}

function createData(names, values)
{
    if (names == null || values == null) 
        return "";  

    if (names.length != values.length)
        alert("Invalid data in create data call for Ajax");
    
    var data = "";

    for(var i=0;i<names.length;++i)
    {
        var control = this.document.getElementById(values[i]);
     
        if (control)
        {
             if (typeof(control.options) != "undefined")
             {
                data += names[i] + "=" + control.options[control.selectedIndex].value + "&";  
             }
             else if (control.type != null && control.type.toLowerCase() == "checkbox")
             {
                data += names[i] + "=" + control.checked + "&";  
             }   
             else if (control.tagName != null && control.tagName.toLowerCase() == "table")
             {
                 var n = 0;
                 var baseId = values[i] + "_";
                 var child  = this.document.getElementById(baseId + n);
                 
                 while ( child != null)
                 {
                     if (child.type.toLowerCase() == "checkbox")
                     {
                        data += names[i] + "_" + n + "=" + child.checked + "&";  
                     }
                    ++n;
                    child = this.document.getElementById(baseId + n);
                 }
                 
                 if (n > 0)
                 {
                    data += "listName=" + names[i] + "&";
                 }
             }          
             else
             {
                if(document.all)
                {
                    var _value = control.value;
               
	                if (_value == undefined)
                        data += names[i] + "=" + control.innerText + "&"; 
                    else
                        data += names[i] + "=" + _value + "&"; 
                }
                else
                {
                    if (control.textContent == null || control.textContent.length == 0)
                    {
                        data += names[i] + "=" + control.value + "&"; 
                    }
                    else
                    {
                        data += names[i] + "=" + control.textContent + "&"; 
                    }
                }
             }
        }
        else
        {
            data += names[i] + "=" + values[i] + "&";
        }
    }

    return data;
}

