
//-----------------------------------------------------------------------------
// Define some constants.
//-----------------------------------------------------------------------------

// Define a list of Microsoft XML HTTP ProgIDs.
var XMLHTTPREQUEST_MS_PROGIDS = new Array(
    "Msxml2.XMLHTTP.7.0",
    "Msxml2.XMLHTTP.6.0",
    "Msxml2.XMLHTTP.5.0",
    "Msxml2.XMLHTTP.4.0",
    "MSXML2.XMLHTTP.3.0",
    "MSXML2.XMLHTTP",
    "Microsoft.XMLHTTP"
);

// Define ready state constants.
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

//-----------------------------------------------------------------------------
// Returns an XMLHttpRequest object.
//-----------------------------------------------------------------------------
function getXMLHttpRequest()
{
    var httpRequest = null;

    // Create the appropriate HttpRequest object for the browser.
    if (window.XMLHttpRequest != null)
        httpRequest = new window.XMLHttpRequest();
    else if (window.ActiveXObject != null)
    {
        // Must be IE, find the right ActiveXObject.
        var success = false;
        for (var i = 0; i < XMLHTTPREQUEST_MS_PROGIDS.length && !success; i++)
        {
            try
            {
                httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
                success = true;
            }
            catch (ex)
            {}
        }
    }

    // Display an error if we couldn't create one.
    if (httpRequest == null)
        alert("Error in HttpRequest():\n\nCannot create an XMLHttpRequest object.");

    // Return it.
    return httpRequest;
}


var http_request = false;


function makePOSTRequest(url, parameters,tgsDisplayDiv,function_to_call) {
      

      http_request =  getXMLHttpRequest();

      http_request.onreadystatechange = function() { 
           fetchResponse(http_request, tgsDisplayDiv, function_to_call); 
        };
      if (url.indexOf("?") == -1) 
      {
          delim = "?"
      }
      else
      {
          delim = "&"
      }
       
      url = url + delim + 'date=' + Date();
      //alert(url); 
      //alert(parameters);
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.send(parameters);

}

function makeGETRequest(url, tgsDisplayDiv, function_to_call) {
      http_request =  getXMLHttpRequest();

      http_request.onreadystatechange = function() {
           fetchResponse( http_request,tgsDisplayDiv, function_to_call);
        };
       if (url.indexOf("?") == -1) 
            {
                delim = "?"
            }
            else
            {
                delim = "&"
            }
      url = url + delim + 'date=' + Date();
      http_request.open('GET', url, true);
      http_request.send(null);

}

function fetchResponse(http_request,tgsDisplayDiv, function_to_call)
{
    var statusText;

    // Check the ready state.
    switch (http_request.readyState)
    {
        case XMLHTTPREQUEST_READY_STATE_UNINITIALIZED:
            statusText = "";
            break;

        case XMLHTTPREQUEST_READY_STATE_LOADING:
            statusText = "Initializing ...";
            break;

        case XMLHTTPREQUEST_READY_STATE_LOADED:
            statusText = "Sending data...";
            break;

        case XMLHTTPREQUEST_READY_STATE_INTERACTIVE:
            statusText = "Downloading data...";
            break;

        case XMLHTTPREQUEST_READY_STATE_COMPLETED:
            statusText = "Completed";

            statusText  = http_request.responseText;

            if(statusText == -1) {
                location.replace(portal_url + '?error=ERR_TGS002_001');
            }
            break;


        default:
            statusText = "Unknown error.";
            break;
    }
        
        var result = document.getElementById(tgsDisplayDiv);

        result.innerHTML = statusText;
        
        
        if (http_request.readyState == XMLHTTPREQUEST_READY_STATE_COMPLETED)
          { 
               if(function_to_call) {
               
                    eval(function_to_call+'()');

               }
           }    

    // Display the status message.
   }

//-------------------

function makeGETRequestByVal(url, tgsDisplayDiv) {
      http_request =  getXMLHttpRequest();
    
      http_request.onreadystatechange = function() { 
           fetchResponseval( http_request,tgsDisplayDiv); 
        };
       if (url.indexOf("?") == -1) 
            {
                delim = "?"
            }
            else
            {
                delim = "&"
            }
             
      url = url + delim + 'date=' + Date();
      http_request.open('GET', url, true);
      http_request.send(null);

}

function fetchResponseval(http_request,tgsDisplayDiv)
{
    var statusText;
            
    // Check the ready state.
    switch (http_request.readyState)
    {
        case XMLHTTPREQUEST_READY_STATE_UNINITIALIZED:
            statusText = "";
            break;

        case XMLHTTPREQUEST_READY_STATE_LOADING:
            statusText = "Initializing ...";
            break;

        case XMLHTTPREQUEST_READY_STATE_LOADED:
            statusText = "Sending data...";
            break;

        case XMLHTTPREQUEST_READY_STATE_INTERACTIVE:
            statusText = "Downloading data...";
            break;

        case XMLHTTPREQUEST_READY_STATE_COMPLETED:
                      statusText = "Completed";
                      statusText  = http_request.responseText;
                      
                      if(statusText == -1) {
                        location.replace(portal_url + '?error=ERR_TGS002_001');
                      }
                     var result = document.getElementById(tgsDisplayDiv)
                     result.value= statusText;
                     if(tgsDisplayDiv == 'hidden')
                     {
                     validate(statusText);
                     }
                     
                     /*else
                                 {
                                   var result = document.getElementById(tgsDisplayDiv);
                                  result.innerHTML = statusText;
                                  alert(result.innerHTML);
                                 }*/
                      break;

        default:
            statusText = "Unknown error.";
            break;
    }
    
    
        //var result = document.getElementById(tgsDisplayDiv);
        //result.innerHTML = statusText; 
        //try{
        //  responseHandler();
        //}
        // catch(e)
        //{
        //}
    
    
    
    // Display the status message.
   }

function loadXMLDoc(dname)
{
var xmlDoc;
if (window.XMLHttpRequest)
  {
  xmlDoc=new window.XMLHttpRequest();
  xmlDoc.open("GET",dname,false);
  xmlDoc.send("");
  return xmlDoc.responseXML;
  }
// IE 5 and IE 6
else if (ActiveXObject("Microsoft.XMLDOM"))
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load(dname);
  return xmlDoc;
  }
alert("Error loading document");
return null;
} 
