function iwAsynchroneTransferObject(nMaxRequests){this.bAJAXSupported=true;this.nMaxRequests=nMaxRequests;this.nOpenRequests=0;this.aXMLHttpRequests=new Array(this.nMaxRequests);this.aXMLHttpRequestActive=new Array(this.nMaxRequests);this.PrepareTilesAsynchrone=iwPrepareTilesAsynchrone;this.AbortAllRequests=iwAbortAllRequests;this.HasFreeRequests=iwHasFreeRequests;this.GetNewXMLHttpRequest=iwGetNewXMLHttpRequest;this.CheckPrepareRequest=iwCheckPrepareRequest;if(!this.GetNewXMLHttpRequest()){this.bAJAXSupported=false;for(var nRequest=0;nRequest<this.nMaxRequests;nRequest++){var frame=document.createElement("iframe");frame.id="frameHidden" + nRequest;frame.frameborder="0";frame.scrolling="no";frame.width="0";frame.height="0";frame.style.visibility="hidden";var body=document.getElementsByTagName("body")[0];body.insertBefore(frame,null);}
}
for(var nRequest=0;nRequest<this.nMaxRequests;nRequest++){this.aXMLHttpRequests[nRequest]=null;this.aXMLHttpRequestActive[nRequest]=false;}
}
function iwGetNewXMLHttpRequest(){var oRequest=null;if(typeof XMLHttpRequest !="undefined"){oRequest=new XMLHttpRequest();}
else
{try{oRequest=new ActiveXObject("Msxml2.XMLHTTP");}
catch(err_Microsoft){try{oRequest=new ActiveXObject('Microsoft.XMLHTTP');}
catch(err_Microsoft){oRequest=null;}
}
}
return oRequest;}
function iwPrepareTilesAsynchrone(sURL,nTimestamp){this.nOpenRequests++;if(this.nOpenRequests>this.nMaxRequests){iwLockControls();return;}
var nRequest=0;while(this.aXMLHttpRequestActive[nRequest])nRequest++;if(this.bAJAXSupported){this.aXMLHttpRequests[nRequest]=this.GetNewXMLHttpRequest();sURL +="&ajax=1";var oRequest=this.aXMLHttpRequests[nRequest];var oThisPointer=this;oRequest.onreadystatechange=function(){oThisPointer.CheckPrepareRequest(nRequest,nTimestamp);};if(oTileset.sMapServerURL.length>0){if(typeof netscape !='undefined'
&&typeof netscape.security !='undefined'
&&typeof netscape.security.PrivilegeManager !='undefined')
{netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}
}
oRequest.open('GET',configurator.getMapServerUrl(sURL),true);oRequest.send(null);this.aXMLHttpRequestActive[nRequest]=true;}
else
{var frame=document.getElementById("frameHidden" + nRequest);frame.src=sURL + "&ajax=0" + "&frame=" + nRequest;this.aXMLHttpRequestActive[nRequest]=true;}
}
function iwCheckPrepareRequest(nRequest,nTimestamp){var oRequest=this.aXMLHttpRequests[nRequest];try{if(oRequest.readyState==4){if(oRequest.status==200){if(oRequest.responseText=="OK"){var divTileMapZoom=document.getElementById("divTileMapZoom");if(!divTileMapZoom&&bControlsBlocked&&this.nOpenRequests==this.nMaxRequests)iwReleaseControls();this.nOpenRequests--;this.aXMLHttpRequestActive[nRequest]=false;this.aXMLHttpRequests[nRequest]=null;oTileset.RequestNext();oTileset.LoadNextSection();oTileset.AddTilesToQueue(nTimestamp);}
else
{alert('Map server returned an error:[' + oRequest.responseText + ']');if(navigator.appName.indexOf("Internet Explorer")==-1)oRequest.send(null);}
}
}
}
catch(e){}
}
function iwAbortAllRequests(){if(this.nOpenRequests>0){for(var nRequest=0;nRequest<this.nMaxRequests;nRequest++){if(this.aXMLHttpRequestActive[nRequest]){this.aXMLHttpRequests[nRequest].abort();this.aXMLHttpRequests[nRequest]=null;this.aXMLHttpRequestActive[nRequest]=false;var divTileMapZoom=document.getElementById("divTileMapZoom");if(!divTileMapZoom&&bControlsBlocked&&this.nOpenRequests==this.nMaxRequests)iwReleaseControls();this.nOpenRequests--;}
}
}
}
function iwHasFreeRequests(){return this.nMaxRequests>this.nOpenRequests;}
