// JavaScript Document

// mini AJAX :: v1.1.1
// v.1.0.1 :: updated 20070315 by jeffrey barke <http://themechanism.com/code/mini.js>
// changed $ function to minE due to collision with prototype. evident in IE 7
// v.1.0.0 :: updated 20070301 by jeffrey barke
// added ajax.getxml, ajax.postxml, and ajax.sendxml methods
// originally by Tim Morgan <http://snippets.dzone.com/posts/show/2025>

/*

ajax.getxml(strUrl, strFunc)
strUrl—the URL to query (can contain arguments after a “?”)
strFunc—the function to call once the response is returned
This method uses a GET request to query the specified URL and return a response as an XML DOM object to the specified function.

ajax.postxml(strUrl, strFunc, strArgs)
strUrl—the URL to query
strFunc—the function to call once the response is returned
strArgs—a string containing arguments to be passed to the URL
This method uses a POST request to query the specified URL and return a response as an XML DOM object to the specified function.

*/



function minE(e){if(typeof e=='string')e=document.getElementById(e);return e};
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};
ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
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){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.sendxml=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseXML)};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.getxml=function(url,func){ajax.sendxml(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.postxml=function(url,func,args){ajax.sendxml(url,func,'POST',args)};
ajax.update=function(url,elm){var e=minE(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=minE(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};

