﻿//version 2.0 - 10/31/08

function createHttpRequest2() {
    var result = null;
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
        try {
            result = new XMLHttpRequest();
        } catch(e) {
            result = null;
        }
        // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
        try {
            result = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch(e) {
            try {
                result = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                result = false;
            }
        }
    }
    return result;
}

function sendHttpRequest2(url, params, callback) {
    var request = createHttpRequest2();
    var isAsync = callback != null;
    if (isAsync)
        request.onreadystatechange = 
            function () {
                if(request.readyState == 4 && request.status == 200)
                    callback(request);   
            }        
    try {
      if (params) {
        request.open('POST', url, isAsync);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", params.length);
      } else {  
        request.open('GET', url, isAsync); 
      }
      request.send(params); 
      if (!isAsync)	
	      return request.responseText;
    } 
    catch (e) { 
      return ""; 
    }
}

function evalScripts2(scripts)
{	try
	{	if(scripts)	
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
	       	                         if (scripts !== null) script += arguments[1] + '\n';
 	        	                        return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	
	}
}

function updateControlContent2(id, uri, postParams, queryParams, callback) {
    var e = document.getElementById(id);
    if (e)
    {
        if (queryParams) {
            uri = uri.indexOf('?') > 0 ? uri.substring(0, uri.indexOf('?')) : uri;
            uri += "?" + queryParams;
        }
        
//alert(uri + '+' + postParams);        
        
        sendHttpRequest2(uri, postParams
            , function(request) {
                    e.innerHTML = request.responseText;
                    evalScripts2(request.responseText);
                    if (callback)
                        callback(request.responseText);
            })
    }
}

