//------------------------------------------------------

// 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);}}