Function.prototype.mybicBind=function(b){var a=this;return function(){return a.apply(b,arguments)}};function XMLHTTP(b,a){this.server_url=b;this.async=true;this.debug=0;this.throttle=1;this.method="POST";this.format="JSON";this.headers=new Array();this.abort_timeout=5000;this.failed_threshold=3;this.ignoreCall=0;this.stopRequest=0;this.jsErrorHandler="";this.notAuthorizedHandler="";this.net_down_func=this.down;this.version="1.0.1";this.req=null;this.debugID=0;this.errors=new Array();this.queue=new Array();this.queue_in_process=0;this.currentCallIgnore=0;this.readySateTimer="";this.callBack="";this.IEObjCache=0;this.failed_requests=0;this.readyStateFunction=(a)?a:this.responseHandler;this._msgQueueInfo=new Array();this.readyStateTimer="";this.poolTimerInterval=50}XMLHTTP.prototype={getXMLHTTP:function(){if(window.XMLHttpRequest){this.req=new XMLHttpRequest()}else{if(this.IEObjCache!=0){alert(this.IEObjCache);try{this.req=new ActiveXObject(this.IEObjCache)}catch(d){}}else{if(window.ActiveXObject){var a=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","Microsoft.XMLHTTP"];for(var c=0;c<a.length;c++){try{this.req=new ActiveXObject(a[c]);this.IEObjCache=a[c];break}catch(b){}}}else{if(this.debug==1){this.showDebug("<BR>FATAL ERROR: Could not create XMLHTTPRequest Object!<BR>")}}}}return this.req},call:function(c,a,b){if(this.failed_requests>=this.failed_threshold){this.net_down_func("disable");return false}else{var g;var l;this.fullUrl="";if(this.throttle==1&&b!="queue"||this.stopRequest==1){this.add2Queue(c,a)}if(this.queue_in_process==0){if(!this.getXMLHTTP()){return false}if(this.throttle==1){this.queue_in_process=1;var k=this.queue.shift();g=k.queryVars;l=k.userCallback;this.format=k.format;this.method=k.method;this.abort_timeout=k.abortTimeout;this.currentCallIgnore=k.ignoreCall;this.async=k.async}else{g=c;l=a;var j=0}this.callBack=l;if(this.format!="JSON"){g=g+"&json=false"}this.full_url=(this.method=="POST")?this.server_url:this.server_url+"?"+g;if(this.debug==1&&this.currentCallIgnore!=1){try{var f=g.match(/action=(\w+)&?/);this.showDebug("new","MYBIC - CALLING: "+f[1]);this.showDebug("Server Page: "+this.server_url+"<BR>HTTP Method: "+this.method+"<BR>Encoding Format: "+this.format+"<BR>Query String: "+g+"<BR>")}catch(h){}}this.req.open(this.method,this.full_url,this.async);if(this.headers){for(var d in this.headers){if(d!=""&&(this.headers[d] instanceof String)){try{this.req.setRequestHeader(d,this.headers[d]);if(this.debug==1){this.showDebug("Setting Custom Header: "+this.headers[d]+"<br>")}}catch(h){}}}}if(this.abort_timeout!=-1){this.end_timer=setInterval(this.endCall.mybicBind(this),this.abort_timeout)}if(this.method=="POST"){this.req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.request=g;this.req.send(g)}else{this.req.send(null)}if(this.readyStateFunction){this.readyStateTimer=window.setInterval(this.readyPoolFunc.mybicBind(this),this.poolTimerInterval)}}}},readyPoolFunc:function(){if(this.req&&this.req.readyState==4){window.clearInterval(this.readyStateTimer);this.readyStateTimer=null;this.readyStateFunction()}},responseHandler:function(){if(this.req){try{if(this.req.readyState==4){if(this.req.status&&this.req.status==200){if(this.req.responseText.indexOf("ajax_msg_failed")!=-1){this.showDebug("Fatal Error: mybic_server sent back ajax_msg_failed! - MSG: "+this.req.responseText+"<br/>");if(this.req.responseText.indexOf("notauth")!=-1){if(this.abort_timeout!=-1){clearInterval(this.end_timer)}if(this.notAuthorizedHandler==""){this.callBack("notauthorized")}else{try{this.notAuthorizedHandler()}catch(f){}}}else{this.callBack(false)}}else{if(this.abort_timeout!=-1){clearInterval(this.end_timer)}if(this.throttle==1){var c=this._msgQueueInfo.shift();var d=c.format}else{var d=this.format}if(d=="JSON"){try{var a=JSON.parse(this.req.responseText);if(document.getElementById(this.callBack)){document.getElementById(this.callBack).innerHTML=a}else{this.callBack(a)}}catch(f){if(this.jsErrorHandler==""){alert("An error occurred in your response function, NOT mybic related. Error Name: "+f.name+"  Message:"+f.message)}else{try{this.jsErrorHandler(f)}catch(b){alert("Error: your errorhandling function has an error - name: "+b.name+" message: "+b.message)}}}}else{if(this.format=="XML"){this.callBack(this.req.responseXML)}else{try{if(document.getElementById(this.callBack)){document.getElementById(this.callBack).innerHTML=this.req.responseText}else{this.callBack(this.req.responseText)}}catch(f){if(this.jsErrorHandler==""){alert("An error occurred in your response function, NOT mybic related. Error Name: "+f.name+"  Message:"+f.message)}else{try{this.jsErrorHandler(f)}catch(b){alert("Error: your errorhandling function has an error - name: "+b.name+" message: "+b.message)}}}}}}this.failed_requests=0}else{try{this.showDebug("Fatal Error: MSG: "+this.req.responseText+" StatusText: "+this.req.statusText+"<br/>")}catch(f){}this.endCall()}try{if(this.debug==1&&this.currentCallIgnore!=1){var g=this.req.responseText.replace(/(\<)/gi,"&lt;");var g=g.replace(/(\>)/gi,"&gt;");this.showDebug("HTTP Server Response:<br/> "+g+"<br>")}}catch(f){}this.restoreDefaults();this.queue_in_process=0;this.req=null;if(this.queue.length>0){this.call("","","queue")}}}catch(f){}}},loadScript:function(c,b){try{var a=document.getElementsByTagName("script");s_len=a.length;for(var d=0;d<s_len;d++){var f=new RegExp(c+"$");if(f.test(a[d].src)){var h=a[d];h.parentNode.removeChild(h);break}}if(b!="remove"){newScript=document.createElement("script");newScript.setAttribute("type","text/javascript");newScript.setAttribute("src",c);document.getElementsByTagName("head")[0].appendChild(newScript)}}catch(g){this.showDebug("MyBIC - loadScript failed URL: "+c+" ErrName: "+g.name+" Msg: "+g.message)}},add2Queue:function(b,a){var d=new Array();d.queryVars=b;d.userCallback=a;d.ignoreCall=this.ignoreCall;d.abortTimeout=this.abort_timeout;d.format=this.format;d.method=this.method;d.async=this.async;var c=new Object();c.format=this.format;this._msgQueueInfo.push(c);this.ignoreCall=0;this.queue.push(d)},restoreDefaults:function(){this.method="POST";this.format="JSON";this.callback="";this.abort_timeout=5000;this.failed_threshold=3;this.async=true},getForm:function(f){var e=document.getElementById(f);var b=new Array();var d=e.elements.length;for(var a=0;a<d;a++){switch(e.elements[a].type){case"select-one":b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].options[e.elements[a].selectedIndex].value));break;case"select-multiple":var g=e.elements[a];for(var h=0;h<e.elements[a].options.length;h++){if(e.elements[a].options[h].selected){if(e.elements[a].options[h].value==""){b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].options[h].text))}else{b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].options[h].value))}}}break;case"radio":if(e.elements[a].checked){b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].value))}break;case"checkbox":if(e.elements[a].checked){b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].value))}break;default:b.push(encodeURIComponent(e.elements[a].name)+"="+encodeURIComponent(e.elements[a].value));break}}var c="&"+b.join("&");return c},endCall:function(){try{this.net_down_func();this.req.abort();this.req=null;clearInterval(this.end_timer);clearInterval(this.readyStateTimer);this.failed_requests++;this.queue_in_process=0;if(this.queue.length>0){this.call("","","queue")}if(this.debug==1){this.showDebug("Request Failed - Network Down! Current Failed Attempts: "+this.failed_requests+"<br>")}}catch(a){clearInterval(this.end_timer);this.net_down_func("disable")}this.req=null},down:function(b){var d='<div id="mybic_notification" style="text-align:center;padding:20px;position:absolute;top:100px;left:100px;width:300px;border:thin solid black;background-color:#F8F021;">';d+='<span id="mybic_notif_msg"> MSGHERE </span> <br><br><input type="button" value="OK" onclick="document.getElementById(\'mybic_notification\').style.display=\'none\';"></div>';if(b=="disable"){var c="A network issue has disabled network connections for this page. Please reload this page or contact the site administrator"}else{var c="A network issue has occurred which canceled your last request"}try{if(document.getElementById("mybic_notification")){document.getElementById("mybic_notification").style.display="block"}else{var a=document.createElement("div");a.innerHTML=d;document.body.appendChild(a)}document.getElementById("mybic_notif_msg").innerHTML=c}catch(f){alert("Network Unavailable: Please re-load page or contact the site administrator")}},loadCSS:function(b){try{var a=document.getElementsByTagName("link");s_len=a.length;if(s_len>0){for(var c=0;c<s_len;c++){var d=new RegExp(b+"$");if(d.test(a[c].href)){var g=a[c];g.parentNode.removeChild(g);break}}}newScript=document.createElement("link");newScript.setAttribute("type","text/css");newScript.setAttribute("rel","stylesheet");newScript.setAttribute("href",b);document.getElementsByTagName("head")[0].appendChild(newScript)}catch(f){if(this.debug==1){this.showDebug("MyBIC - loadCSS failed URL: "+b+" ErrName: "+f.name+" Msg: "+f.message)}}},showDebug:function(e,c,d){if(this.debug==1){if(!document.getElementById("mybic_debug")){var b=document.createElement("div");b.id="mybic_errs";var a=document.createElement("div");a.id="mybic_debug";a.style.border="thick solid black";a.style.backgroundColor="#eeeeee";a.style.padding="10px";a.style.margin="75px 10px 10px 10px";a.style.width="90%";a.style.position="absolute";a.style.zIndex="999";a.innerHTML+="MyBic Debugger: <a href=\"#\" onclick=\"document.getElementById('mybic_errs').style.display = (document.getElementById('mybic_errs').style.display=='none') ? '':'none'; return false;\" >hide/show me!</a>";a.innerHTML+="&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#\" onclick=\"document.getElementById('mybic_errs').innerHTML = ''; return false;\">Clear</a>";a.innerHTML+='&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="XMLHTTP.prototype.debug_expand(\'block\');return false;">Expand All</a>';a.innerHTML+='&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="XMLHTTP.prototype.debug_expand(\'none\'); return false;">Contract All</a><br><br>';a.appendChild(b);if(document.body){document.body.appendChild(a)}else{document.lastChild.appendChild(a)}}var a=document.getElementById("mybic_errs");if(e=="new"){this.debugID++;var f='<a style="color:white;font-size:1.1em;text-decoration:none" href="#" onclick="XMLHTTP.prototype.debug_expand(this);return false;">+</a>';a.innerHTML+='<div id="mybiclabel_'+this.debugID+'" style="display:block;border:thin solid #999999;padding:2px;background-color:#cccccc;">'+f+" label"+this.debugID+": "+c+"</div>"}else{a.innerHTML+='<div class="mybic_debug'+this.debugID+'" style="padding:5px;display:none; border:thin solid white;">'+e+"</div>"}}},debug_expand:function(b){var d=document.getElementById("mybic_errs");var g=d.childNodes.length;if(b=="none"||b=="block"){var j="mybic_debug";var k=d.getElementsByTagName("a");var c=k.length;for(var a=0;a<c;a++){k[a].innerHTML=(b=="none")?"+":">"}}else{var j=b.parentNode.id;j=j.split("_");j="mybic_debug"+j[1]}for(var f=0;f<g;f++){try{if(d.childNodes[f].className.match(new RegExp("(^"+j+".*$)"))){if(b=="none"||b=="block"){d.childNodes[f].style.display=b}else{if(d.childNodes[f].style.display=="block"){b.innerHTML="+";d.childNodes[f].style.display="none"}else{b.innerHTML=">";d.childNodes[f].style.display="block"}}}}catch(h){}}},restart:function(){this.stopRequest=0;this.call("","","queue")}};var JSON=function(){var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s={"boolean":function(x){return String(x)},number:function(x){return isFinite(x)?String(x):"null"},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})}return'"'+x+'"'},object:function(x){if(x){var a=[],b,f,i,l,v;if(x instanceof Array){a[0]="[";l=x.length;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a[a.length]=v;b=true}}}a[a.length]="]"}else{if(x instanceof Object){a[0]="{";for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a.push(s.string(i),":",v);b=true}}}a[a.length]="}"}else{return}}return a.join("")}return"null"}};return{copyright:"(c)2005 JSON.org",license:"http://www.JSON.org/license.html",stringify:function(v){var f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){return v}}return null},parse:function(text){try{return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(text.replace(/"(\\.|[^"\\])*"/g,"")))&&eval("("+text+")")}catch(e){return false}}}}();
