//------------------------------------------------------
// Copyright Eloqua Corporation.
//
var elqXMLRequest = null;
var elqRequestQueueArray = new Array();
var elqQueueThreshold = 40;
var elqObjType = '';
var elqDbg = false;


if(typeof Array.prototype.pop=='undefined')
Array.prototype.pop=function(){
var b=this[this.length-1];
this.length--;
return b;};
if(typeof Array.prototype.push=='undefined')
Array.prototype.push=function(){
var i=0,b=this.length,a=arguments;
for(i;i<a.length;i++)
this[b+i]=a[i];
return this.length;};


function elqRequest(url, readyStateChangedFunction, async, type){
elqRequestQueueArray.push(new elqRequestObject(url, readyStateChangedFunction, async, type));
if (!elqCallInProgress(elqXMLRequest)){
	elqProcessRequest();}
else{elqCheckRequestQueue();}}
function elqProcessRequest(){
try{
var elqTempRequest
elqTempRequest = elqRequestQueueArray.pop();
elqXMLRequest = null;
elqXMLRequest = elqCreateXMLHTTP();
elqXMLRequest.onreadystatechange = elqTempRequest.method;
elqXMLRequest.open('POST', elqTempRequest.url, elqTempRequest.async);
elqXMLRequest.setRequestHeader("Pragma", "no-cache");
elqXMLRequest.setRequestHeader("Cache-Control","no-cache");
elqXMLRequest.setRequestHeader("Content-Length","0");
elqXMLRequest.send('');
elqCheckRequestQueue();
elqTempRequest = null;}
catch(e){
if (elqDbg) alert(e.message);}}
function elqCreateXMLHTTP(){
var returnObject = null;
if (window.ActiveXObject){
if (elqObjType != ''){try{returnObject = new ActiveXObject(elqObjType);}catch(x){}}
else{
try{returnObject = new ActiveXObject('MSXML2.XMLHTTP.4.0'); elqObjType = 'MSXML2.XMLHTTP.4.0';}catch(x){}
if (returnObject == null){
try{returnObject = new ActiveXObject('MSXML2.XMLHTTP.3.0'); elqObjType = 'MSXML2.XMLHTTP.3.0';}catch(x){}}
if (returnObject == null){
try{returnObject = new ActiveXObject('MSXML2.XMLHTTP'); elqObjType = 'MSXML2.XMLHTTP';}catch(x){}}
if (returnObject == null){
try{returnObject = new ActiveXObject('Microsoft.XMLHTTP'); elqObjType = 'Microsoft.XMLHTTP';}catch(x){}}}}
else{	
try{returnObject = new XMLHttpRequest();}catch(x){}}
return returnObject;}
function elqCallInProgress() {
var returnVal = false;
if (elqXMLRequest){
switch (elqXMLRequest.readyState ){
case 1:
returnVal = true;
break;
case 2:
returnVal = true;
break;
case 3:returnVal = true;break;}}return returnVal;}
function elqCheckRequestQueue()
{if (elqRequestQueueArray != null)
{if (elqRequestQueueArray.length > 0) 
{if (!elqCallInProgress(elqXMLRequest))
{elqProcessRequest();}
else if (elqRequestQueueArray.length < elqQueueThreshold)
{setTimeout('elqCheckRequestQueue();', 50);}
else if (elqRequestQueueArray.length > elqQueueThreshold)
{elqReloadPolling();}}}}
function elqRequestObject(iUrl, iMethod, iAsync, iType)
{this.url = iUrl;
this.method = iMethod;
this.async = iAsync;
this.type = iType;}
function elqReloadPolling()
{elqRequestQueueArray = null;
elqRequestQueueArray = new Array();}
function elqHandleError(err, strResponseText)
{if (elqDbg){ alert(err);}}