function AJAXRequest(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 init() {
        var xmlreq = false;
        if (window.XMLHttpRequest) {
            // Create XMLHttpRequest object in non-Microsoft browsers
            xmlreq = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            // Create XMLHttpRequest via MS ActiveX
            try {
                // Try to create XMLHttpRequest in later versions
                // of Internet Explorer
                xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e1) {
                try {
                    // Try version supported by older versions
                    // of Internet Explorer
                    xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e2) {
                    doError(e2);
                }
            }
        }
        return xmlreq;
    }

    function processRequest () {
      if (req.readyState == 4) {
        if (req.status == 200) {
          if (callback) 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 generateSelect(response,cSel,firstOption) {
	 var i;
         for (i = cSel.length - 1; i>=0; i--) {
         	cSel.remove(i);
        }
	if(response.length > 1) {
 	        var values = new Array();
        	values = response.split("|");
	        for(i=0;i<values.length-1;i++) {
			if(i==0) {
				var cNew = document.createElement('option');
				cNew.text = "Select "+firstOption+"...";
				cNew.value = "0";
				try {
                		      cSel.add(cNew,null); // standards compliant; doesn't work in IE
                  		}
	                	catch(ex) {
	        	              cSel.add(cNew); // IE only
        	        	}
			}
		        var value = values[i].split("~");
                	var cNew = document.createElement('option');
	                cNew.text = value[1];
        	        cNew.value = value[0];
                	try {
	                      cSel.add(cNew,null); // standards compliant; doesn't work in IE
        	        }
                	catch(ex) {
	                      cSel.add(cNew); // IE only
        	        }
        	}
	} else {
		for(i=0;i<=1;i++) {
                        var cNew = document.createElement('option');
			if(i==0) {
	                        cNew.text = "- - - - - - - -";
			} else {
				cNew.text = "-----------------------";
			}
                        cNew.value = "0";
                        try {
                              cSel.add(cNew,null); // standards compliant; doesn't work in IE
                        }
                        catch(ex) {
                              cSel.add(cNew); // IE only
                        }
                }
	}
	cSel.selectedIndex = 0;
}

