var request = xmlHTTPRequest();
function xmlHTTPRequest(){  
  var xmlreq = false;

  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {
        // Try version supported by older versions
        // of Internet Explorer

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }

  return xmlreq;
}

//pass True for Asynchronous  call and false for Synchronous 
function sendRequestSynchronous(url, parameter, callbackfunction){	
	//alert('sendRequestSynchronous');
	
	var BRWVersion= BrowserDetect.version;
	var	BRWName=BrowserDetect.browser + ' ' + BrowserDetect.OS;
	if(BRWName == "Firefox Windows" || BRWName == "Firefox Mac" && BRWVersion == "3")
	{	
	    sendRequest(url, parameter, callbackfunction);
	}else{
	
		request.open('POST', url , false);
	    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    request.onreadystatechange = function() {
			if (request.readyState == 4) {	
				//alert('sendRequestSynchronous' + request.responseText);
				callbackfunction(request.responseText); 
							
	        }
	    }   
	    request.send(parameter);   
    }
}

function sendRequest(url, parameter, callbackfunction){	
	request.open('POST', url , true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.onreadystatechange = function() {
		if (request.readyState == 4) {	
			//alert(request.responseText);
			callbackfunction(request.responseText); 
						
        }
    }   
    request.send(parameter);   
    
}

// Function to set cookie (cookie name, cookie value, expires time, path, domain, secure)
function setkookie(name,value,expires_val,path_val,domain_val,secure) {		
	var expires = "";
	var domain = "";
	var path = "";
	if (expires_val) {
		var date = new Date();
		date.setTime(date.getTime()+(expires_val * 1000));
		expires = "; expires="+date.toGMTString();		
	}
	if(path_val.length > 0) {
		path = "; path="+path_val;
	}		
	if(domain_val.length > 0) {
		domain = "; domain="+domain_val;
	}
	//alert(name+"="+value+expires+domain+path);	
	document.cookie = name+"="+value+expires+domain+path;	
}

// Debug method... similar to alert but will send the message to a DIV with id="debugWindow"
function debug(message)
{
	$("#debugWindow").html($("#debugWindow").html() + "<li>" + message);
}