function makeHttpRequest(url, method, form, callback_function, return_xml, targetContainer, debug){
	var values;
	if(debug==undefined || debug=="") debug=false;
	if(return_xml==undefined || return_xml=="") return_xml=false;

	var http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	   http_request = new XMLHttpRequest();
	   if (http_request.overrideMimeType) {
	       http_request.overrideMimeType('text/xml');
	   }
	} else if (window.ActiveXObject) { // IE
	   try {
	       http_request = new ActiveXObject("Msxml2.XMLHTTP");
	   } catch (e) {
	       try {
	           http_request = new ActiveXObject("Microsoft.XMLHTTP");
	       } catch (e) {}
	   }
	}

	if (!http_request) {
	   alert('Unfortunatelly you browser doesn\'t support this feature.');
	   return false;
	}
   
	//---------------------------------------------------------------	
	http_request.onreadystatechange = function() {
	   if (http_request.readyState == 4) {
	       if (http_request.status == 200) {
	           if (return_xml) {
	               eval(callback_function + '(http_request.responseXML,targetContainer)');
	           } else {
	               eval(callback_function + '(http_request.responseText,targetContainer)');
	           }
	       } else {
	           alert('There was a problem with the request.(Code: ' + http_request.status + ')');
	       }
	   }
	}
	//---------------------------------------------------------------	
	
	if(method=="post"){
		if(form!=undefined && form!=""){
			values=getPostValues(form);
		} else {
			if(document.forms[0]!=undefined){
				values=getPostValues(document.forms[0]);
			} else {
				//ERROR: POST sin Form
				alert("ERR: POST sin Form!");
			}
		}
	}
	
	if(method=="get"){
		if(form!=undefined && form!=""){
			values=getGetValues(form);
		} else {
			//GET sin Form			
		}
		
						
			
		//agrego los values a la URL
		if(values!=undefined && values!="") url+=values;
		values=null;
	}
	
	if(method==undefined && method=="") method="get";
	//---------------------------------------------------------------
	
	//test
	if(debug){
		alert("Method: " + method + "\n" + 
			  "url: " + url + "\n" + 
			  "Values: " + values);
	}
	
	http_request.open(method, url, true);
	if(method=="post"){
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", values.length);
	}
	http_request.setRequestHeader("Connection", "close");
	http_request.send(values);
}
//-------------------------------------------------------------------------------------------
/*
	Obtengo una cadena textual con los valores
	contenidos en el form, adecuada para enviar
	a través de POST con XMLHTTPRequest
*/
function getPostValues(form){
	if(form!=undefined){
		postChain="";
		for(i=0; i<form.elements.length; i++){
			if(postChain!="") postChain+="&";
			postChain+=form.elements[i].name + "=" + form.elements[i].value;
		}
		//alert("postChain: " + postChain);
		return postChain;
	} 
	
	return false;
}
//-------------------------------------------------------------------------------------------
/*
	Parseo los valores de RESPONSE
*/
function parseResponse(response, targetContainer){
	//alert("target: " + targetContainer + "\n" + response);
	
	content_object=document.getElementById(targetContainer);
	content_object.innerHTML=response;
}
//-------------------------------------------------------------------------------------------
/*
	Obtengo el contenido html para el mes anterior.	
*/
function mesAnterior(month, year, idioma){	
	if(month>1){ 
		month--;
	} else {
		month=12;
		year--;
	}

	var webOrigenCalendario=(document.getElementById('webOrigenCalendario')!=undefined)?document.getElementById('webOrigenCalendario').value:gup('web');
	
	makeHttpRequest('/cont/agenda/codigo/obtCalendario.php?month='+month+'&year='+year+'&idioma='+idioma+'&web='+webOrigenCalendario, 'get', '', 'parseResponse', false, 'calendar1');
}
//-------------------------------------------------------------------------------------------
/*
	Obtengo el contenido html para el mes siguiente.	
*/
function mesSiguiente(month, year, idioma){	
	if(month<12){ 
		month++;
	} else {
		month=1;
		year++;
	}

	var webOrigenCalendario=(document.getElementById('webOrigenCalendario')!=undefined)?document.getElementById('webOrigenCalendario').value:gup('web');
	
	makeHttpRequest('/cont/agenda/codigo/obtCalendario.php?month='+month+'&year='+year+'&idioma='+idioma+'&web='+webOrigenCalendario, 'get', '', 'parseResponse', false, 'calendar1');
}
//-------------------------------------------------------------------------------------------



function gup(name){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


