url = settings.url ? settings.url.toString() : false,
method = settings.method ? settings.method.toUpperCase() : 'GET',
callback = settings.callback ? settings.callback : false,
data = settings.data ? settings.data.toString() : '',
xhr_done = settings.xhr_done ? settings.xhr_done : null,
xhr;
// xhr in progress or url not provided -> exit
if ( !( (xhr_done == true || xhr_done == null) && url ) ) return;
if ( typeof XMLHttpRequest !== 'undefined' )
{
xhr = new XMLHttpRequest();
}
else
{
try
{
xhr = new XMLHttpRequest("MSXML2.XmlHttp.5.0") || new XMLHttpRequest("MSXML2.XmlHttp.4.0") ||
new XMLHttpRequest("MSXML2.XmlHttp.3.0") || new XMLHttpRequest("MSXML2.XmlHttp.2.0") ||
new XMLHttpRequest("Microsoft.XmlHttp");
} catch ( e ) {}
}
// if xhr object does not supported or url not given, exit
xhr.onreadystatechange = function () {
if ( xhr.readyState != 4 ) return;
if ( xhr_done != null ) xhr_done = true;
callback ? callback( xhr ) : null;
}
xhr.open( method, url, async );
if ( method === 'POST' ) {
xhr.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
xhr.send( data );
} else {
xhr.send( null );
}
if ( xhr_done != null ) xhr_done = false;
};
})();
</script></body></html>