
/*
Networking Library
steven bradley
 */



//--fetches all http get variables and returns an associative array, or false if none

   function xsGetUrlVars() {
 var urlv = location.search;
 var GETS = new Object();

if(urlv.length < 1) { return false; }

urlv = urlv.slice(1);
if(urlv.indexOf("&") == -1) { 
var nv = urlv.split("=");
GETS[nv[0]] = decodeURI(nv[1]);
return GETS;
}

urlv = urlv.split("&");
for(var x=0; x < urlv.length; x++) { 
var nv = urlv[x].split("=");
GETS[nv[0]] = decodeURI(nv[1]);
}

return GETS;
   }



//--quick ajax 

   function xsAjaxInit() { //--returns http ajax object
try{ return new ActiveXObject('Msxml2.XMLHTTP'); }
catch(e){
try{ return new ActiveXObject('Microsoft.XMLHTTP'); }
catch(e){ return new XMLHttpRequest(); }
}
   }


   function xsAjaxEncodeForm(form) { //--takes an entire form object and creates a http safe post data string
var postdata = "";
for(var i =0; i < form.length; i++) {
if(form.elements[i].type == "radio" || form.elements[i].type == "checkbox" && !form.elements[i].checked) { continue; } //--ignore unchecked radio or checkbox
postdata += form.elements[i].name + "=";
postdata += (encodeURIComponent(form.elements[i].value) + "&");
}
return postdata.slice(0, postdata.length-1); //--remove last & char and return
   }


   function xsSendAjaxRequest(form, action, handler) { //--sends a generic ajax request with the contents of form, to the url action, and onreadystate handled by handler
var jax = xsAjaxInit();
jax.onreadystatechange = function() { handler(jax); };
jax.open('POST', action, true);
jax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
jax.send(xsAjaxEncodeForm(form));
   }










