/** MINIAJAX code - crossbrowser XMLHttpRequests and XSLT (where available) **/
// adapted by Highway1 - original code from code.google.com

// utility functions
if(!document.$i) { function $i(e){if(typeof e=='string')e=document.getElementById(e);return e}; } // return object 'e' if it exists
if(!document.$v) {function $v(e){if(typeof e=='string')e=document.getElementById(e).value;return e}; }// return the 'value' attribute or object 'e', if available
if(!document.collect) {function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n}; }
if(!document.addClass) {function addClass(element, classname) { if(element != null) { if(element.className.indexOf(classname) == -1) { element.className += ' ' + classname; } } } }
if(!document.remClass) {function remClass(element, classname) { if(element != null) { while(element.className.indexOf(classname) != -1) { element.className = element.className.replace(classname, ""); } } } }


function $i(e){ return document.getElementById(e); }
ajax={};
ajax.x=function(){ var idList = Array("Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"); var bFound = false; for (var i=0; i < idList.length && !bFound; i++) { try{ var oDoc = new ActiveXObject(idList[i]); o2Store = idList[i]; bFound = true; } catch (objException) { } } if (!bFound){ try{ var oDoc = new XMLHttpRequest(); } catch (objException) { throw "Could not retreive a valid progID of Class: " + idList[idList.length-1]+". (original exception: "+e+")"; } } return oDoc; };
ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
ajax.send=function(u,f,m,a){if (u.indexOf("?") < 1) { u+="?"; } else { u+="&=";} u += ('ajax.timestamp=' + new Date().getTime()); var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.get=function(url,func){ajax.send(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.getd=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseXML.documentElement};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.update=function(url,elm){var e=$i(elm);var f=function(r){e.innerHTML=r.responseText};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=$i(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};
ajax.xslt=function(xml,xsl){ if(window.XSLTProcessor){ var processor = new XSLTProcessor(); processor.importStylesheet(xsl); try { var newFragment = processor.transformToFragment(xml, document); var html = new XMLSerializer().serializeToString(newFragment); } catch (e){ try { var html =  xml.transformNode(xsl); } catch  (e){ alert("Error performing XSL transformation \n"+e+""); } } return html; }else{ return xml.transformNode(xsl); } }
/** EO.MINIAJAX code **/

