var ajaxHack=new Object();ajaxHack.init=function(){Ajax.Responders.responders[1]={onLoading:function(request){if(request.options.customLoading){if(request.options.customLoadingEffect&&request.options.customLoadingEffect!="finished"){request.options.customLoadingEffect.cancel()}request.options.customLoadingEffect=new Effect.Appear($(request.options.customLoading),{duration:0.2})}if(!request.options.bypassIPBLoading){if(!$("ajax_loading")){if(!ipb.templates.ajax_loading){return}$("ipboard_body").insert(ipb.templates.ajax_loading)}var effect=new Effect.Appear($("ajax_loading"),{duration:0.2})}},onComplete:function(request){if(request.options.customLoading){if(request.options.customLoadingEffect&&request.options.customLoadingEffect!="finished"){request.options.customLoadingEffect.cancel()}request.options.customLoadingEffect=new Effect.Fade($(request.options.customLoading),{duration:0.2})}if(!request.options.bypassIPBLoading){if(!$("ajax_loading")){return}var effect=new Effect.Fade($("ajax_loading"),{duration:0.2})}}};ajaxHack.callInProgress=function(xmlhttp){switch(xmlhttp.readyState){case 1:case 2:case 3:return true;break;default:return false;break}};ajaxHack.statusOrE=function(xmlhttp){try{return xmlhttp.status}catch(e){return'Error - Status not available:"'+e+'"'}};Ajax.Responders.register({onCreate:function(request){request.options.selfAborted=false;request.timeoutId=window.setTimeout(function(){if(ajaxHack.callInProgress(request.transport)){request.options.selfAborted=true;request.transport.abort();var MaxReExecutions=ipb.vars.ajaxHack.maxReExec;if(typeof(request.options.MaxReExecutionsOverride)=="number"){MaxReExecutions=request.options.MaxReExecutionsOverride}if(request.options.ReExecutionAttempts){request.options.ReExecutionAttempts+=1}else{request.options.ReExecutionAttempts=1}if(request.options.ReExecutionAttempts>MaxReExecutions){if(typeof(request.options.onFailure)=="function"){request.options.onFailure()}else{if(request.options.title){alert(request.options.title+"\nMaximum re-exeuctions made will not try anymore")}else{alert("AJAX Failure - Maximum re-exeuctions made will not try anymore")}}}else{if(typeof(request.options.onTimeout)=="function"){request.options.onTimeout()}if(request.options.useWrapper){eval(request.options.useWrapper+" = new Ajax.Request( request.url,request.options )")}else{new Ajax.Request(request.url,request.options)}}}},ipb.vars.ajaxHack.timeout)},onComplete:function(request){window.clearTimeout(request.timeoutId)}});Ajax.Responders.register({onException:function(request,exception){var eStr="";for(var e in exception){eStr+="exception['"+e+"']="+exception[e]+"\n"}if(exception.name=="TypeError"&&exception.message=="t.responseJSON is "+null){if(parseInt(request.getStatus())>=200&&parseInt(request.getStatus())<=399){if(request.options.title){alert(request.options.title+"\nAJAX Exception - "+exception)}else{alert("AJAX Exception - "+exception)}return}if(!request.options.selfAborted){if(typeof(request.options.onAbort)=="function"){request.options.onAbort()}}}else{if(exception.name=="SyntaxError"){}else{}}}})};document.observe("dom:loaded",function(){ajaxHack.init()});
