Version 2.2.0 RC-1
This commit is contained in:
1 parent
f73f8bff6d
commit
22f1b963ee
1034 files changed
+178610
-70897
No files matched your search
@@ -1,342 +1 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// IPS XML HTTP REQUEST
|
||||
//------------------------------------------------------------------------------
|
||||
// Supports Safari, Mozilla 1.3+ (Firefox, etc) and IE 5.5+
|
||||
// (c) 2005 Invision Power Services, Inc.
|
||||
// http://www.invisionpower.com
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
try
|
||||
{
|
||||
if ( ! use_charset )
|
||||
{
|
||||
var use_charset = '';
|
||||
}
|
||||
}
|
||||
catch( e ) { }
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// New object
|
||||
/*--------------------------------------------*/
|
||||
|
||||
function ajax_request()
|
||||
{
|
||||
this.isIE = false;
|
||||
this.allow_use = use_enhanced_js ? true : false;
|
||||
this.xmlhandler = null;
|
||||
this.error_string = '';
|
||||
this.nocache = true;
|
||||
this.do_request_functon = function() {}
|
||||
this.loading_fired = 0;
|
||||
this.centerdiv = null;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Initiate
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.xml_init = function()
|
||||
{
|
||||
try
|
||||
{
|
||||
//------------------------------------------------
|
||||
// Moz, Safari, Opera
|
||||
//------------------------------------------------
|
||||
|
||||
this.xmlhandler = new XMLHttpRequest();
|
||||
this.ie = false;
|
||||
this.allow_use = true;
|
||||
return true;
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
try
|
||||
{
|
||||
//------------------------------------------------
|
||||
// IE
|
||||
//------------------------------------------------
|
||||
|
||||
this.xmlhandler = new ActiveXObject('Microsoft.XMLHTTP');
|
||||
this.ie = true;
|
||||
this.allow_use = true;
|
||||
return true;
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
this.ie = true;
|
||||
this.allow_use = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Actually send data
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.process = function( url, type, post )
|
||||
{
|
||||
//------------------------------------------------
|
||||
// The 'post' variable needs to be in the following format:
|
||||
//
|
||||
// var=content&var2=content&var3=content
|
||||
//
|
||||
// All values need to be escaped with encodeURIComponent();
|
||||
//------------------------------------------------
|
||||
|
||||
type = type == "POST" ? "POST" : "GET";
|
||||
|
||||
//------------------------------------------------
|
||||
// Use nocache where possible...
|
||||
//------------------------------------------------
|
||||
|
||||
if ( this.nocache == true && type == 'GET' )
|
||||
{
|
||||
url = this.nocache_url( url );
|
||||
}
|
||||
|
||||
//------------------------------------------------
|
||||
// Make sure we're initialized
|
||||
//------------------------------------------------
|
||||
|
||||
if ( ! this.xmlhandler )
|
||||
{
|
||||
this.xml_init();
|
||||
}
|
||||
|
||||
//------------------------------------------------
|
||||
// Only go when ready
|
||||
//------------------------------------------------
|
||||
|
||||
if ( ! this.readystate_not_ready() )
|
||||
{
|
||||
this.xmlhandler.open(type, url, true);
|
||||
|
||||
if ( type == "GET" )
|
||||
{
|
||||
this.xmlhandler.send(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( typeof( this.xmlhandler.setRequestHeader ) != "undefined" )
|
||||
{
|
||||
this.xmlhandler.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=' + use_charset);
|
||||
}
|
||||
|
||||
this.xmlhandler.send( post );
|
||||
}
|
||||
|
||||
if ( this.xmlhandler.readyState == 4 && this.xmlhandler.status == 200 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// retrieve text of an XML document element, including
|
||||
// elements using namespaces
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.get_element_text_ns = function(prefix, local, parentElem, index)
|
||||
{
|
||||
var result = "";
|
||||
|
||||
if ( prefix && this.isIE )
|
||||
{
|
||||
//-------------------------------
|
||||
// IE
|
||||
//-------------------------------
|
||||
|
||||
result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
|
||||
}
|
||||
else
|
||||
{
|
||||
//-------------------------------
|
||||
// Safari, Gecko
|
||||
//-------------------------------
|
||||
|
||||
result = parentElem.getElementsByTagName(local)[index];
|
||||
}
|
||||
|
||||
if ( result )
|
||||
{
|
||||
if (result.childNodes.length > 1)
|
||||
{
|
||||
return result.childNodes[1].nodeValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return result.firstChild.nodeValue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "n/a";
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Make sure URL is not cached
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.nocache_url = function (url)
|
||||
{
|
||||
var sep = ( -1 < url.indexOf("?") ) ? "&" : "?";
|
||||
var mydate = new Date();
|
||||
var newurl = url + sep + "__=" + mydate.getTime();
|
||||
return newurl;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Takes an array of:
|
||||
// array[ field ] = value
|
||||
// and returns a nice encoded POST string
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.format_for_post = function( arrayfields )
|
||||
{
|
||||
var str = '';
|
||||
|
||||
try
|
||||
{
|
||||
for( var i in arrayfields )
|
||||
{
|
||||
str += i + '=' + this.encodeurl(arrayfields[i]) + '&';
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Hand roll encode URL to UTF-8
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.encodeurl = function( url )
|
||||
{
|
||||
//-------------------------------
|
||||
// Ensure we have a string
|
||||
//-------------------------------
|
||||
|
||||
url = url.toString();
|
||||
|
||||
var regcheck = url.match(/[\x90-\xFF]/g);
|
||||
|
||||
if ( regcheck )
|
||||
{
|
||||
for (var i = 0; i < i.length; i++)
|
||||
{
|
||||
url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());
|
||||
}
|
||||
}
|
||||
|
||||
return escape(url).replace(/\+/g, "%2B");
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Check to ensure ready state-ness
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.readystate_not_ready = function()
|
||||
{
|
||||
return ( this.xmlhandler.readyState && ( this.xmlhandler.readyState < 4 ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Check to ensure ready state-ness
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.readystate_ready_and_ok = function()
|
||||
{
|
||||
return ( this.xmlhandler.readyState == 4 && this.xmlhandler.status == 200 ) ? true : false;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Onready state change event handler
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.onreadystatechange = function( event )
|
||||
{
|
||||
//------------------------------------------------
|
||||
// Make sure we're initialized
|
||||
//------------------------------------------------
|
||||
|
||||
if ( ! this.xmlhandler )
|
||||
{
|
||||
this.xml_init();
|
||||
}
|
||||
|
||||
//------------------------------------------------
|
||||
// Make sure its a function event
|
||||
//------------------------------------------------
|
||||
|
||||
if ( typeof(event) == 'function' )
|
||||
{
|
||||
this.xmlhandler.onreadystatechange = event;
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Show loading layer
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.show_loading = function( message )
|
||||
{
|
||||
if ( ! this.loading_fired )
|
||||
{
|
||||
this.loading_fired = 1;
|
||||
|
||||
//------------------------------------------------
|
||||
// Change text?
|
||||
//------------------------------------------------
|
||||
|
||||
if ( message )
|
||||
{
|
||||
document.getElementById( 'loading-layer-text' ).innerHTML = message;
|
||||
}
|
||||
|
||||
this.centerdiv = new center_div();
|
||||
this.centerdiv.divname = 'loading-layer';
|
||||
this.centerdiv.move_div();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// Hide loading layer
|
||||
/*--------------------------------------------*/
|
||||
|
||||
ajax_request.prototype.hide_loading = function()
|
||||
{
|
||||
try
|
||||
{
|
||||
if ( this.centerdiv && this.centerdiv.divobj )
|
||||
{
|
||||
this.centerdiv.hide_div();
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
}
|
||||
|
||||
this.loading_fired = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*--------------------------------------------*/
|
||||
// IPB thinks we can use fancy JS, lets see...
|
||||
/*--------------------------------------------*/
|
||||
|
||||
if ( use_enhanced_js )
|
||||
{
|
||||
use_enhanced_js = ajax_request.prototype.xml_init() ? 1 : 0;
|
||||
}
|
||||
function ajax_request(){this.isIE=false;this.allow_use=use_enhanced_js?true:false;this.xmlhandler=null;this.error_string='';this.nocache=true;this.do_request_functon=function(){};this.loading_fired=0;this.centerdiv=null;}ajax_request.prototype.xml_init=function(){try{this.xmlhandler=new XMLHttpRequest();this.ie=false;this.allow_use=true;return true;}catch(e){try{this.xmlhandler=new ActiveXObject('Microsoft.XMLHTTP');this.ie=true;this.allow_use=true;return true;}catch(e){this.ie=true;this.allow_use=false;return false;}}};ajax_request.prototype.process=function(url,type,post){type=type=="POST"?"POST":"GET";if(this.nocache==true&&type=='GET'){url=this.nocache_url(url);}if(!this.xmlhandler){this.xml_init();}if(!this.readystate_not_ready()){this.xmlhandler.open(type,url,true);if(type=="GET"){this.xmlhandler.send(null);}else{if(typeof(this.xmlhandler.setRequestHeader)!="undefined"){this.xmlhandler.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}this.xmlhandler.send(post);}if(this.xmlhandler.readyState==4&&this.xmlhandler.status==200){return true;}}return false;};ajax_request.prototype.get_element_text_ns=function(prefix,local,parentElem,index){var result="";if(prefix&&this.isIE){result=parentElem.getElementsByTagName(prefix+":"+local)[index];}else{result=parentElem.getElementsByTagName(local)[index];}if(result){if(result.childNodes.length>1){return result.childNodes[1].nodeValue;}else{return result.firstChild.nodeValue;}}else{return "n/a";}};ajax_request.prototype.nocache_url=function(url){var sep=(-1<url.indexOf("?"))?"&":"?";var mydate=new Date();var newurl=url+sep+"__="+mydate.getTime();return newurl;};ajax_request.prototype.format_for_post=function(arrayfields){var str='';try{for(var i in arrayfields){str+=i+'='+this.encodeurl(arrayfields[i])+'&';}}catch(e){}return str;};ajax_request.prototype.encodeurl=function(url){url=url.toString();var regcheck=url.match(/[\x90-\xFF]/g);if(regcheck){for(var i=0;i<i.length;i++){url=url.replace(regcheck[i],'%u00'+(regcheck[i].charCodeAt(0)&0xFF).toString(16).toUpperCase());}}return escape(url).replace(/\+/g,"%2B");};ajax_request.prototype.readystate_not_ready=function(){return(this.xmlhandler.readyState&&(this.xmlhandler.readyState<4));};ajax_request.prototype.readystate_ready_and_ok=function(){return(this.xmlhandler.readyState==4&&this.xmlhandler.status==200)?true:false;};ajax_request.prototype.onreadystatechange=function(event){if(!this.xmlhandler){this.xml_init();}if(typeof(event)=='function'){this.xmlhandler.onreadystatechange=event;}};ajax_request.prototype.show_loading=function(message){if(!this.loading_fired){this.loading_fired=1;if(message){document.getElementById('loading-layer-text').innerHTML=message;}this.centerdiv=new center_div();this.centerdiv.divname='loading-layer';this.centerdiv.move_div();add_shadow('loading-layer-shadow','loading-layer-inner');}return;};ajax_request.prototype.hide_loading=function(){try{if(this.centerdiv&&this.centerdiv.divobj){this.centerdiv.hide_div();}}catch(e){}this.loading_fired=0;return;};ajax_request.prototype.execute_javascript=function(source_code){var text_blocks=new Array();var max_iteration=50;var i=0;while(_match=source_code.match(new RegExp("<script\\s+?type=['\"]text/javascript['\"]>([^`]+?)</script>","i"))){i++;if(i>=max_iteration){break;}else{text_blocks[text_blocks.length]=_match[1];source_code=source_code.replace(_match[0],'');}}try{if(text_blocks.length){for(i=0;i<text_blocks.length;i++){eval(text_blocks[i]);}}}catch(error){}};try{if(use_enhanced_js){use_enhanced_js=ajax_request.prototype.xml_init()?1:0;}}catch(error){var use_enhanced_js=0;}
|
||||
Reference in new issue
Block a user