grazie a tutti per le risposte...
ieri sono andato a cercare un manuale javascript in libreria ma non ho rtovato niente di decente... quelli che ho visto hanno una sezione talmente minima sulla personalizzazione degli oggetti che non valeva la pena spendere 50 euro per poche pagine!
vedo ora i link segnalati da voi.. li gurdo subito.
nel frattempo però mi sono "permesso" sulla base del materiale trovato in rete, di scrivere per conto mio una classe...
purtroppo però non funziona...
potete cmq dargl iun occhiata per vedere se ci sono grossi errori concettuali o magari se mi è sfuggita qualche sciocchezza?
grazie mille
ecco il codice (in fondo ci sono 2 funzioni che istanziano la classe e ne usano i metodi)

codice:
function ajax(){
	this.objSOCK = null;
	this.openSock = _openSock;
	this.printOut = _printOut;
	this.receiveResponse = _receiveResponse;
	this.requestPage = _requestPage;
	this.sendForm = _sendForm();
}


	function _openSock(){
		var xmlhttp ;
		try{
		    xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
		}catch(e){
		    var MSXML_XMLHTTP_PROGIDS = new Array(
		        'MSXML2.XMLHTTP.5.0',  
		        'MSXML2.XMLHTTP.4.0',
		        'MSXML2.XMLHTTP.3.0',
		        'MSXML2.XMLHTTP',      // Internet Explorer 6
		        'Microsoft.XMLHTTP'   // Internet Explorer 4,5
		    );
		    var success=false;
		    for(var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++){
		        try{
		            xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
		            success=true;	
		        }catch(e){}
		    }
		    if(!success)
		        alert('attenzione: per navigare questo sito e necessario abilitare javascript o activeX');
		}
		return xmlhttp;
	}
	
	
	function _printOut(target, html){
	   document.getElementById(target).innerHTML = html
	}
	
	
	function _receiveResponse(target) {		
		if (this.objSOCK.readyState == 4) { 				
			if (this.objSOCK.status == 200 || this.objSOCK.statusText=="Found") {							
				this.printOut(target, this.objSOCK.responseText);    
			}else{
				this.printOut(target, " error:\n"+this.objSOCK.statusText);
			}
		}
	}
	
	
	function _requestPage(url, target, method, parameters) {
		this.objSOCK=this.openSock(); // creo l'oggetto XMLHttpRequest
		if(this.objSOCK){					
			this.objSOCK.onreadystatechange=function(){this.receiveResponse(target);};			
			if(method == undefined){method="GET";}
			this.objSOCK.open(method, url, true);					
			if (method == "GET" || method == "get"){							
				this.objSOCK.send("");					
			}else{
				this.objSOCK.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				this.objSOCK.setRequestHeader('Content-length', parameters.length);
				this.objSOCK.setRequestHeader('Connection', 'close');
				this.objSOCK.send(parameters);
			}
		}
	}	
	
	
	function _sendForm(url, target, method, form_id){		
		var form = document.getElementById(form_id);
		var parametri = "";	
		// gestione di radio button e checkbox
		var name = new Array(); 
		var value = new Array();	
		var k=0;
		for(var i=0; i<form.elements.length; i++){		
			if((form.elements[i].type == "radio" || form.elements[i].type == "checkbox") && form.elements[i].checked){ 
				name[k] = form.elements[i].name;
				value[k] = form.elements[i].value; 
				k++; 
			}
		}	
		for(var i=0; i<value.length; i++) {
			parametri += name[i] + "=" + value[i] + "&";
		}				
		// gestione dei campi text e simili
		for(var i=0; i<form.elements.length; i++){		
			if(form.elements[i].type!="radio" && form.elements[i].type!="checkbox"){
				parametri += form.elements[i].name + "=" + form.elements[i].value + "&";
			}
		}				
		// invio dei parametri al server
		if(method == "GET" || method=="get" || method==undefined) 
			this.requestPage(url+"?"+parametri, target, method); 
		else if(method == "POST" || method=="post") 
			this.requestPage(url, target, method, parametri); 
	}

// -------------------------------------------------------------------------------------------------


	function request(url, target, title){				
		if(title!="")
			document.getElementById('imgTitle').src='img/titoli/'+title+'.jpg';
		var objAJAX = new ajax();
		objAJAX.printOut(target, "<div align='center'>[img]img/loading.gif[/img]</div>"); // preload
		objAJAX.requestPage(url,target);
	}
	
	
	function send(url, target, title, method, formId){
		if(title!="")
			document.getElementById('imgTitle').src='img/titoli/'+title+'.jpg';
		var objAJAX = new ajax();
		objAJAX.printOut(target, "<div align='center'>[img]img/loading.gif[/img]</div>"); // preload
		objAJX.sendForm(url, target, method, formId);
	}