function AJAXInteraction(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) callback(req.responseText);
        }
      }
    }

    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 makeGETRequest(url,callback) {
  var ai = new AJAXInteraction(url, callback);
  ai.doGet();
}

function makePOSTRequest(url,callback,param) {
  var ai = new AJAXInteraction(url, callback);
  ai.doPost(param);
}
   
function ajaxform(url, param, paramval, showres) {
		var poststr=param[0]+"="+encodeURI(paramval[0]);
  		for(i=1;i < param.length; i++){
	  			poststr+="&"+param[i]+"="+encodeURI(paramval[i]);
  		}
 		makePOSTRequest(url,function(result){document.getElementById(showres).innerHTML = result;},poststr);
 }
 
 function ajaxtinyMCE(url, param, paramval, showres) {
		var poststr=param[0]+"="+encodeURI(paramval[0]);
  		for(i=1;i < param.length; i++){
	  			poststr+="&"+param[i]+"="+encodeURI(paramval[i]);
  		}
  		makePOSTRequest(url,function(result){showres.setContent(result);},poststr);
 }
    
function ajaxget(url, showres) {
	makeGETRequest(url,function(result){document.getElementById(showres).innerHTML = result;});
}

function ajaxgetvalue(url,putres) {
	makeGETRequest(url,function(result){document.getElementById(putres).value=result;});
	//document.getElementById(putres).value=result;
}


function ajaxformPOST(obj,url,showres) {
  var poststr = "";
  for (i=0; i<obj.getElementsByTagName("input").length; i++) {
        if (obj.getElementsByTagName("input")[i].type == "text" || obj.getElementsByTagName("input")[i].type == "hidden") {
           poststr += obj.getElementsByTagName("input")[i].name + "=" + 
                   obj.getElementsByTagName("input")[i].value + "&";
           }
        if (obj.getElementsByTagName("input")[i].type == "checkbox") {
           if (obj.getElementsByTagName("input")[i].checked) {
              poststr += obj.getElementsByTagName("input")[i].name + "=" + obj.getElementsByTagName("input")[i].value + "&";
           } 
           else {
              poststr += obj.getElementsByTagName("input")[i].name + "=&";
           }
        }
        if (obj.getElementsByTagName("input")[i].type == "radio") {
           if (obj.getElementsByTagName("input")[i].checked) {
              poststr += obj.getElementsByTagName("input")[i].name + "=" + 
                   obj.getElementsByTagName("input")[i].value + "&";
           }
     }  
     if (obj.getElementsByTagName("input")[i].tagName == "SELECT") {
        var sel = obj.getElementsByTagName("input")[i];
        poststr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
     }
     
  }
  for (i=0; i<obj.getElementsByTagName("textarea").length; i++) {
           poststr += obj.getElementsByTagName("textarea")[i].name + "=" + 
                   obj.getElementsByTagName("textarea")[i].value + "&";
       }  
  
  poststr=poststr.substring(0,poststr.length-1);
  makePOSTRequest(url,function(result){document.getElementById(showres).innerHTML = result;},poststr);
}
