// brompled.com (CC)
// info: www.brompled.com


function encodeNameAndValue( sName, sValue )
{
	var sParam = encodeURIComponent( sName );
	sParam += "=";
	sParam += encodeURIComponent( sValue );
	return sParam;
}

function getRequestBody( oForm )
{
	// array dove salvare i parametri
	var aParams = new Array();
	
	// iterazione per ogni elemento del form
	for( var i = 0; i < oForm.elements.length; i++ )
	{
		// prendo il riferimento all'oggetto del form
		var oField = oForm.elements[i];
		
		// mi comporto secondo il tipo dell'elemento del form
		switch( oField.type )
		{
			// se sono bottoni ignoro
			case "button":
			case "submit":
			case "reset":
				break;
				
			// radio e checkbox solo se sono spuntati
			case "checkbox":
			case "radio":
				if( !oField.checked )
				{
					break;
				}
				
			// campi nascosti di testo e pass restituiscono i loro valori
			case "text":
			case "hidden":
			case "password":
				aParams.push( encodeNameAndValue( oField.name, oField.value ));
				break;
				
			// ogni altra cosa
			default:
			
				switch( oField.tagName.toLowerCase())
				{
					case "select":
						aParams.push( encodeNameAndValue( oField.name, oField.options[ oField.selectedIndex ].value ));
						break;
					
					default:
						aParams.push( encodeNameAndValue( oField.name, oField.value ));
				}
		}
	}
	
	// unisco le chiavi dell'array in un unica stringa
	return aParams.join( "&" );
}

function sendRequest()
{
	var oForm = document.forms[0];
	var sBody = getRequestBody( oForm );
	
	var oXHR = zXmlHttp.createRequest();
	oXHR.open( "post", oForm.action, true );
	oXHR.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
	
	oXHR.onreadystatechange = function ()
	{
		if( oXHR.readyState == 4 )
		{
			if( oXHR.status == 200 || oXHR.status == 304 )
			{
				visualizza( oXHR.responseText );
			}
			else
			{
				visualizza( "Errore: " + oXHR.statusText );
			}
		}
	};
	oXHR.send( sBody );
}

function visualizza( messaggio )
{
	var testo = document.getElementById( "displayStats" );
	testo.innerHTML = messaggio;
}
