// *********************************************************
// *** idgCommObject Version 2.0 (C) Ulrich Frühauf 2010 ***
// *** www.ideagento.de                                  ***
// *********************************************************

function idgCommObject () {
  this.responseLength=0;
  this.responseText='';
  this.responseType=0;
  this.responseListener=function () { };
}


idgCommObject.prototype.processReqChange = function () {
  if (this.req.readyState==4){
    this.responseLength=this.req.getResponseHeader ('Content-Length');
    this.responseText=this.req.responseText;
    this.responseListener (this.responseText);
  }
}


idgCommObject.prototype.sendRequest = function (url, params, responseListener) {

  this.responseListener=responseListener;
  this.req=false;

  if (window.XMLHttpRequest) {
    this.req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    this.req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  this.req.onreadystatechange = this.processReqChange.bindAsEventListener (this);
  this.req.open("POST", url, true);
  this.req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
  this.req.send(params);

}


idgCommObject.prototype.getPostValues = function (anchor) {

	var ptrAnchor=document.getElementById (anchor);
	var retValue='';
	
	var arrInputs=ptrAnchor.getElementsByTagName ('input');
	for (var dummy=0; dummy<arrInputs.length; dummy++) retValue+='&'+arrInputs[dummy].name+'='+arrInputs[dummy].value;
	var arrInputs=ptrAnchor.getElementsByTagName ('select');
	for (var dummy=0; dummy<arrInputs.length; dummy++) retValue+='&'+arrInputs[dummy].name+'='+arrInputs[dummy].options[arrInputs[dummy].selectedIndex].value;
	var arrInputs=ptrAnchor.getElementsByTagName ('textarea');
	for (var dummy=0; dummy<arrInputs.length; dummy++) retValue+='&'+arrInputs[dummy].name+'='+arrInputs[dummy].innerHTML;
	
	return (retValue);
  
  
}

function nullResponseListener (response) {
}

Function.prototype.bindAsEventListener = function (object) {
  
  var method = this;
  var wrapper = function (event) {
 		  method.call(object, event || window.event);
	        };

  return wrapper;
};
