﻿// WebRequest.js

//var getPage;
var postPage;
//var displayElement;

function pageLoad()
{
    //getPage = "getTarget.htm";
    postPage = "postTarget.aspx";
    //displayElement = $get("ResultId");
}

// This function performs a GET Web request 
// to retrieve  information from the Url specified in 
// the query string. 
function GetWebRequest(getPage,displayElementID)
{
   
    // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();
    
    // Set the request Url.  
    wRequest.set_url(getPage);  
    
    // Set the request verb.
    wRequest.set_httpVerb("GET");
          
    // Set user's context
    wRequest.set_userContext(displayElementID);
   

            
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);
       
     
     
    // Clear the results page element.
    //displayElement.innerHTML = "";
    
    // Execute the request.
    wRequest.invoke();  
       
}

// This function performs a POST Web request
// to upload information to the resource 
// identified by the Url. 
function PostWebRequest()
{
    // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(postPage); 
     
    // Set the request verb.
    wRequest.set_httpVerb("POST");
    
    var body = "Message=Hello! Do you hear me?"
    wRequest.set_body(body);
    wRequest.get_headers()["Content-Length"] = body.length;
   
     
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);
       
    // Clear the results page element.
    displayElement.innerHTML = "";
      
    // Execute the request.
    wRequest.invoke();  
}

// This function adds and removes the 
// Web request completed event handler.
function WebRequestCompleted()
{
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();
  
    // Set the request Url.  
    wRequest.set_url(getPage);  
           
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);   
    alert("Added Web request completed handler");
 
    // Remove the web request completed event handler.
    // Comment the following two lines if you want to
    // use the handler.
    wRequest.remove_completed(OnWebRequestCompleted); 
    alert("Removed handler; the Web request return is not processed.");
    
    // Execute the request.
    wRequest.invoke();  
}

// This function gets the resolved Url 
// of the Web request instance.
function GetWebRequestResolvedUrl()
{
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();
    
    // Set the request Url.  
    wRequest.set_url(getPage);  
           
    // Get the web request completed event handler.
    var resUrl = wRequest.getResolvedUrl();   
    alert("Resolved Url: " + resUrl);
   
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted); 
    
    // Execute the request.
    wRequest.invoke();  
  
}


// This function gets and sets the 
// Web request time out.
function WebRequestTimeout()
{    
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();
    
    // Set the request Url.  
    wRequest.set_url(getPage);  
           
    var defaultTimeout =  
        wRequest.get_timeout();
        
    // Set request timeout to 100 msec.
    wRequest.set_timeout(100);
    
    var newTimeout = 
        wRequest.get_timeout();
    
    alert("Default timeout: " + defaultTimeout);
    alert("New timeout: " + newTimeout);
     
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);   
    
    // Execute the request.
    wRequest.invoke();     
}


// This function sets the Web request
// executor, replacing the default one.
function WebRequestExecutor()
{    
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();
    
    // Create the executor. In this case it is an
    // XMLHttpExecutor, equivalent to the default
    // executor. But, you can create a custom one.
    var executor = new Sys.Net.XMLHttpExecutor();
   
    // Set the executor, replacing the default one. 
    // In this case the executor is equivalent to the
    // default one.
    wRequest.set_executor(executor); 
    
    // Get the current executor       
    var executor =  
        wRequest.get_executor();
        
    alert("Response availabe: " + executor.get_responseAvailable())
}

 // This function sets an HTTP header for
 // the Web request.
 function WebRequestHeader() 
 {
       // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();
    
    // Set the request Url.  
    wRequest.set_url(postPage); 
    
    // Set the request verb.
    wRequest.set_httpVerb("POST");
   
    var body = "Message=Hello! Do you hear me?"
    wRequest.set_body(body);
    
    // Set the value of the HTTP header's "Content-Length".
    wRequest.get_headers()["Content-Length"] = body.length;
   
    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompletedHeader);
       
    // Clear the results page element.
    displayElement.innerHTML = "";
      
    // Execute the request.
    wRequest.invoke();  
}

// This the handler for the Web request completed event
// that is used to display return data.
function OnWebRequestCompleted(executor, eventArgs) 
{
    var webRequest = executor.get_webRequest(); 
    var userContext = webRequest.get_userContext(); 
   
    //$get("div0203").innerHTML = userContext; 
    var displayElement = $get(userContext);
        
    if(executor.get_responseAvailable()) 
    {
        // Clear the previous results. 
        displayElement.innerHTML = "";

        // Display Web request status.                  
        //DisplayWebRequestStatus(executor);
  
        // Display Web request headers.                  
        //DisplayWebRequestHeaders(executor);
        
        // Display Web request body.                  
        DisplayWebRequestBody(executor,displayElement);
    
    }
    else
    {
        if (executor.get_timedOut())
            alert("Timed Out");
        else
            if (executor.get_aborted())
                alert("Aborted");
    }
}


// This the handler for the Web request completed event
// that is used to display header information.
function OnWebRequestCompletedHeader(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {
        
        // Clear the previous results. 
         displayElement.innerHTML = "";
  
        // Display Web request headers.                  
        DisplayWebRequestHeaders(executor);
        
    }
    else
    {
    
        if (executor.get_timedOut())
            alert("Timed Out");
       
        else
       
            if (executor.get_aborted())
                alert("Aborted");
       
    }
}
 
// This function is used to display the Web request status.
function DisplayWebRequestStatus(executor)
{
     displayElement.innerHTML +=
     "Status: [" + 
     executor.get_statusCode() + " " + 
     executor.get_statusText() + "]" + "<br/>"
}

// This function is used to display Web request HTTP headers.
function DisplayWebRequestHeaders(executor)
{
    displayElement.innerHTML += 
        "Headers: ";
    displayElement.innerHTML += 
        executor.getAllResponseHeaders() + "<br/>";
 }

// This function is used to display the Web request body.
function DisplayWebRequestBody(executor,displayElement)
{   
//     displayElement.innerHTML += 
//        "Body: ";

         
        var strRes = new String();
        strRes = executor.get_responseData();
        strRes = strRes.replace("form","div");
        strRes = strRes.replace("/form","/div");
        strRes = strRes.replace("_VIEWSTATE","xx"); 
        strRes = strRes.replace("_EVENTVALIDATION","yyy");  
        strRes = strRes.replace("_VIEWSTATE","xx"); 
        strRes = strRes.replace("_EVENTVALIDATION","yyy");  
        //--> add javascript to header
        var jsStr = strRes;
        var jsxStr = strRes; 
        jsStr = jsStr.substring(jsStr.indexOf("//<begin>"),jsStr.indexOf("//<end>")); 
        jsStr += jsxStr.substring(jsxStr.indexOf("//<xbegin>"),jsxStr.indexOf("//<xend>")); 
        var headTag = document.getElementsByTagName('head')[0]; 
         
        var script2 = document.createElement('script');
        script2.id = 'hiddenScript2';
        script2.type = 'text/javascript';
        script2.language = "javascript"; 
        script2.text = jsStr; 
 
        //--> add html result to divAjax
        displayElement.innerHTML = strRes;
        headTag.appendChild(script2);   

}

// This function is used to display the Web request message.
function DisplayInformation(message)
{
    // Clear the previous results.
    displayElement.innerHTML = "";
    // Display information.
    displayElement.innerHTML = "<br/>" + message;
}
   
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
