// --- GET
function xmlhttpGet(strURL, element) {

	// Istanza dell'oggetto XML Http Request
	var xmlHttpReq = false;

	// Mozilla, Firefox, Opera, Safari, Ie7
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
		   
	} else if (window.ActiveXObject) {
		// Se IE 5.5 o superiore
		try {
		      // Versione 5.5 o inferiore
		      xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		      try {
		      	   // Versione 5.5 o superiore
		      	   xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		      } catch (e) {}
	   	}
	}

	// Se oggetto non istanziato: errore 
	if (!xmlHttpReq) {
	   alert("ERRORE: AJAX non supportato da questo browser!");
	   return false;
	}


	var intRandom = Math.round(Math.random() * 7000);
        var QRYString =  strURL + '&rand=' + intRandom;
        xmlHttpReq.open('GET', QRYString, true);
        xmlHttpReq.onreadystatechange =	
		function() {
			
			if (xmlHttpReq.readyState == 4){
				if  (xmlHttpReq.status == 200) {
					//process the response
					var ReqText = xmlHttpReq.responseText;

					updatepage(ReqText, element);
				}
				else {
					alert('Error loading page');
				}
			}
		}

        xmlHttpReq.send(null);
}

function xmlhttpGet_resize(strURL, element, newsize) {

	// Istanza dell'oggetto XML Http Request
	var xmlHttpReq = false;

	// Mozilla, Firefox, Opera, Safari, Ie7
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
		   
	} else if (window.ActiveXObject) {
		// Se IE 5.5 o superiore
		try {
		      // Versione 5.5 o inferiore
		      xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		      try {
		      	   // Versione 5.5 o superiore
		      	   xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		      } catch (e) {}
	   	}
	}

	// Se oggetto non istanziato: errore 
	if (!xmlHttpReq) {
	   alert("ERRORE: AJAX non supportato da questo browser!");
	   return false;
	}


		var intRandom = Math.round(Math.random() * 7000);
        var QRYString =  strURL + '&rand=' + intRandom;
        xmlHttpReq.open('GET', QRYString, true);
        xmlHttpReq.onreadystatechange =	
		function() {
			
			if (xmlHttpReq.readyState == 4){
				if  (xmlHttpReq.status == 200) {
					//process the response
					var ReqText = xmlHttpReq.responseText;

					updatepage(ReqText, element);
					///AAAAAAA
					document.getElementById(element).style.height = newsize;
				}
				else {
					alert('Error loading page');
				}
			}
		}

        xmlHttpReq.send(null);
}



// -------------- POST
function xmlhttpPost(strURL, nomeform, str_elementi) {

	var array_elementi = str_elementi.split('|');

	var xmlHttpReq = false;

	// Mozilla, Firefox, Opera, Safari, Ie7
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// Se IE 5.5 o superiore
		try {
		      // Versione 5.5 o inferiore
		      xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		      try {
		      	   // Versione 5.5 o superiore
		      	   xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		      } catch (e) {}
	   	}
	}

	// Se oggetto non istanziato: errore 
	if (!xmlHttpReq) {
	   alert("ERRORE: AJAX non supportato da questo browser!");
	   return false;
	}

	var intRandom = Math.round(Math.random() * 7000);
        var QRYString =  strURL + '&rand=' + intRandom;
        xmlHttpReq.open('POST', QRYString, true);
        xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttpReq.onreadystatechange =	
		function() {
			if (xmlHttpReq.readyState == 4){
				if  (xmlHttpReq.status == 200) {
					var ReqText = xmlHttpReq.responseText;

						//arrayReqText: dati di risposta della chiamata, a seconda del contenuto
						// sono separati da '|'
						var arrayReqText = ReqText.split('Î¦');
						var len_array_elementi = array_elementi.length; 	
						//serve per redirigere su una nuova pagina
						if ( arrayReqText[0] == 'close' ){
							window.open(arrayReqText[1], '_self');
							return true;
						} 
					
						//ciclo le inf della richiesta e li associo all'elemento corrispondente
						// Attenzione, l'elemento ed il contenuto devono essere nello stesso ordine
						var i;
						for ( i = 0; i < len_array_elementi; i++ ) {
							if ( arrayReqText[i] != '' ){
								updatepage(arrayReqText[i], array_elementi[i]);
							}
						}
				}
				else {
					alert('Error loading page');
				}
			}
		}

	var QRYString = getquerystring(nomeform);
        xmlHttpReq.send(QRYString);
}


function getquerystring(nomeform) {

	var form     		= document.forms[nomeform];
        var qStr       		= '';
        var formElem;

        for ( i = 0; i < form.elements.length; i++ ) {
                formElem = form.elements[i];
		var Type = formElem.type;
		switch ( Type ) {
			// Text, select, hidden, password, textarea elements
			case 'text':
				qStr += formElem.name + '=' + escape(formElem.value) + '&'
                        break;
			case 'select-one':
				qStr += formElem.name + '=' + escape(formElem.value) + '&'
			break;
			case 'hidden':
				qStr += formElem.name + '=' + escape(formElem.value) + '&'
			break;
			case 'password':
				qStr += formElem.name + '=' + escape(formElem.value) + '&'
			break;
			case 'radio':
				if ( formElem.checked == true ){
					qStr += formElem.name + '=' + escape(formElem.value) + '&'
				}
			break;
			case 'checkbox':
				if ( formElem.checked == true ){
					qStr += formElem.name + '=' + escape(formElem.value) + '&'
				}
			break;
			case 'textarea':
				qStr += formElem.name + '=' + escape(formElem.value) + '&'
			break;
		}
	}

	return qStr;
}


function updatepage(str, element){
	//alert('ELEMENT:'+element);
	//alert('HTML:'+str);
        document.getElementById(element).innerHTML = str;
}

function _resizewin(div_name,div_widthto,div_heightto,link_id,link_sized,link_original) {
	if ( div_widthto == -1 ){
		div_widthto = $(div_name).style.width;
	}
	if ( div_heightto == -1 ){
		div_heightto = $(div_name).style.height;
	}

	if ( !$(div_name).resize_done ) {
		 $(div_name).resize_done = true;
		 $(link_id).innerHTML = link_sized;
	} else {
		 $(div_name).resize_done = false;
		 $(link_id).innerHTML = link_original;
	}

	new Rico.Effect.Size( $(div_name),div_widthto,div_heightto,700,10);
}

function resize_effects(div_name,elem_to_switch,heightmax,heightmin,from,to) {
	if( !from ){
		from=' ';
	}
	if( !to ){
		to=' ';
	}

	if( !$(div_name).resize_done ) {
		widthto=-1;
		heightto=heightmax;
	}else{
		widthto=-1;
		heightto=heightmin;
	}

	_resizewin(div_name,widthto,heightto,elem_to_switch,from,to);
}

