function AJAX(url, callback) {

    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      if (req.readyState == 4) {
        if (req.status == 200) {
			if (callback) {	
				eval(callback+"(req)");
			}
        }
      }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
    
    this.doPost = function(body) {
      req.open("POST", url, true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send(body);
    }
}

function doAJAXSubmit(url, form, callback) {
	var ajax = new AJAX(url, callback);
	var param = '';
	for(var i=0;i<form.elements.length;i++){
		var elm = form.elements[i];
		if(elm.type=='checkbox' && !elm.checked)
	  		continue;	 	
		if(i>0) param += '&';	
		param += elm.name+'='+elm.value;
	}
	ajax.doPost(param);
}


