function joinkJAH(){this.http=null;this.state=false;this.debugLog="";this.params="";this.func=null;this.response="";this.htmlObj="";this.openConn()}joinkJAH.prototype={openConn:function(){var xmlhttp;
/*@cc_on
            @if (@_jscript_version >= 5)
                try {
                    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }catch(e){
                    try {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }catch(E){
                        xmlhttp = false;
                    }
                 }
            @else
                xmlhttp = false;
            @end @*/
if(!xmlhttp&&typeof XMLHttpRequest!="undefined"){try{xmlhttp=new XMLHttpRequest()}catch(e){xmlhttp=false}}if(xmlhttp){this.http=xmlhttp;this.debugAdd("JAH::openConn    HTTP object succesfully created",2)}else{this.debugAdd("JAH::openConn    Could not create HTTP object",1)}},doRequest:function(b,c){if(this.http&&!this.state){this.debugAdd("JAH::doRequest    JAH http object is doing the request",0);switch(c.toUpperCase()){case"GET":var a=b;if(this.params){a=b+"?"+this.params}this.http.open("GET",a,true);this.debugAdd("JAH::doRequest    Requesting data from "+b+" using "+c,2);this.http.onreadystatechange=bind(this,this.handleRequest);this.state=true;this.http.send(null);break;case"POST":if(this.params){this.http.open("POST",b,true);this.http.setRequestHeader("Content-type","application/x-www-form-urlencoded");this.http.setRequestHeader("Content-length",this.params.length);this.http.setRequestHeader("Connection","close");this.debugAdd("JAH::doRequest    Requesting data from "+b+" using "+c,2);this.http.onreadystatechange=bind(this,this.handleRequest);this.state=true;this.http.send(this.params)}else{this.debugAdd("JAH::doRequest    No form/input data has been assigned",2)}break;break;default:this.debugAdd("JAH::doRequest    Unknown method "+escape(c),1)}}else{if(this.state){this.debugAdd("JAH::doRequest    The http request is doing an other request at the time",1)}}},handleRequest:function(){if(this.http.readyState==4){this.debugAdd("JAH::handleRequest    Getting responseText",0);switch(this.http.status){case 404:this.debugAdd("JAH::handleRequest    The requested page was not found",1);break;case 403:this.debugAdd("JAH::handleRequest    The requested page returned a 403",1);break;default:this.response=this.http.responseText;this.debugAdd("JAH::handleRequest    ResponseText received succesfully",0);this.onFinish()}this.state=false}},onFinish:function(){if(this.htmlObj){this.htmlObj.innerHTML=this.response}if(this.func){this.func.call()}},setFunction:function(a){this.func=a},setHtmlObj:function(a){if(a){if(document.getElementById(a)){this.htmlObj=document.getElementById(a)}else{this.debugAdd("JAH::setHtmlObj    The html Object with id "+a+" could not be located on the page",1)}}else{this.htmlObj=""}},setParams:function(d){paramType=typeof(d);if(paramType=="object"){if(d.method){paramType="form"}else{if(d.type){paramType="input"}else{if(d.selectedIndex){paramType="select-one"}}}}switch(paramType){case"form":var c=d.elements;var a="";for(var f=0;f<c.length;f++){try{switch(c[f].type.toLowerCase()){case"text":case"password":case"hidden":a+="&"+c[f].name+"="+c[f].value;break;case"select-one":a+="&"+c[f].name+"="+c[f].options[c[f].selectedIndex].value;break;case"textarea":a+="&"+c[f].name+"="+escape(c[f].value);case"checkbox":case"radio":if(c[f].checked){a+="&"+c[f].name+"="+c[f].value}break}}catch(b){this.debugAdd("JAH::setParams    Error ("+b.name+") "+b.message,1)}}this.params=a;break;case"input":this.params=input.name+"="+input.value;break;default:this.params=d}this.debugAdd("JAH::setParams    The parameters ("+paramType+") has been added",2)},debugAdd:function(b,e){var f=new Date();var a=leading(f.getHours())+":"+leading(f.getMinutes())+":"+leading(f.getSeconds());if(this.debugLog==""){this.debugLog="<pre>"+a+' &raquo; <span style="color:#666;">JAH            Initialising jah class</span></pre>'}var d="<pre>"+a+" &raquo; ";switch(e){case 1:d+='<span style="color:#f06;">'+b+"</span>";break;case 2:d+='<span style="color:#009;">'+b+"</span>";break;default:d+='<span style="color:#090;">'+b+"</span>"}d+="</pre>";d+=this.debugLog;this.debugLog=d;var c=document.getElementById("debugDiv");if(c){c.innerHTML='<a href="#" onclick="debugClose()" style="float:right;font-weight:bold;margin-right:10px;color:#0cf;">close debug</a>';c.innerHTML+=" | ";c.innerHTML+='<a href="#" onclick="debugToggle()" style="float:right;font-weight:bold;margin-right:10px;color:#0cf;">Show / hide debug</a>';c.innerHTML+="<strong>joink JAH Debug log:</strong>";c.innerHTML+='<hr style="margin-top:3px;" />';c.innerHTML+=this.debugLog}},showDebug:function(){var a=document.createElement("div");a.setAttribute("id","debugDiv");a.style.width="px";a.style.height="196px";a.style.padding="2px";a.style.overflow="auto";a.style.fontFamily="tahoma, arial, verdana, sans-serif";a.style.fontSize="10px";a.style.color="#333";a.style.backgroundColor="#f9f9f9";a.style.position="absolute";a.style.bottom="0px";a.style.left="0px";a.style.border="1px outset #ccc";a.style.textAlign="left";a.style.MozOpacity="0.9";a.innerHTML='<a href="#" onclick="debugClose()" style="float:right;font-weight:bold;margin-right:10px;color:#0cf;">close debug</a>';a.innerHTML+=" | ";a.innerHTML+='<a href="#" onclick="debugToggle()" style="float:right;font-weight:bold;margin-right:10px;color:#0cf;">Show / hide debug</a>';a.innerHTML+="<strong>JAH Debug log:</strong><hr />";a.innerHTML+=this.debugLog;var b=document.getElementsByTagName("body");b[0].appendChild(a)}};function bind(a,b){return function(){b.call(a)}}function debugToggle(){var a=document.getElementById("debugDiv");if(a.offsetHeight<100){a.style.height="196px";a.style.overflow="auto"}else{a.style.height="14px";a.style.overflow="hidden"}}function debugClose(){document.getElementById("debugDiv").style.display="none"}function leading(a){if(parseInt(a)<10){return"0"+a}else{return a}};
