// scriptDWRExtension.js
// estensione funzioni dwr da aggiungere come include dopo 
// <script type='text/javascript' src='/bitApp/dwr/util.js'></script>
/**
 * Declare an object to which we can add real functions.
 */
if (dwr == null) var dwr = {};
if (dwr.util == null) dwr.util = {};

// esegue il submit del form con id formId e valorizzando i suoi parametri con la lista (chiavi, valori) params
// formId 
// params
dwr.util.submitParams = function(formId, params) {
	dwr.util.setValues(params);
	dwr.util.byId(formId).submit();
}

// esegue il submit del form con id formId e valorizzando i suoi parametri con la lista (chiavi, valori) params
// formId 
// params
dwr.util.submitParamsOrder = function(formId, params, orderParams) {
	dwr.util.setValues(params);
	
	var ordElements = orderParams['ord'];
	var modElements = orderParams['mod'];
	
	for(var i=0;i<ordElements.length;i++){
		element = document.createElement('input');
		element.setAttribute("type","hidden");
		element.setAttribute("name","ord");
		element.setAttribute("value",ordElements[i]);
						
		elementMod = document.createElement('input');
		elementMod.setAttribute("type","hidden");
		elementMod.setAttribute("name","mod");
		elementMod.setAttribute("value",modElements[i]);		
		
		dwr.util.byId(formId).appendChild(element);
		dwr.util.byId(formId).appendChild(elementMod);
	}
	
	dwr.util.byId(formId).submit();
}

// carica la combo con id idCombo con la optionList
// idCombo: id della combo 
// optionList: lista delle options, array di mappe con chiavi (idValue, idText)
// idValue: chiave della mappa compone l'array delle optionList da usare come value della option
// idText: chiave della mappa compone l'array delle optionList da usare come text della option
// idValueDefault: eventuale value di testa della combo
// idTextDefault: eventuale text di testa della combo
// selVal: valore da selezionare
dwr.util.loadCombo = function(idCombo, optionList, idValue, idText, idValueDefault, idTextDefault, selVal) {
	// se non viene forzato un valore dalla chiamata
	// recupera il valore selezionato prima di rimuovere le options
	if (selVal == null)
		selVal = dwr.util.getValue(idCombo);
	// rimuovi le options
	dwr.util.removeAllOptions(idCombo);
	// aggiungi l'option di default
	if (idValueDefault != null && idTextDefault != null)
		dwr.util.addOptions(idCombo,[{'value':idValueDefault,'text':idTextDefault}], 'value', 'text');
	// aggiunge le options
	dwr.util.addOptions(idCombo, optionList, idValue, idText);
	// seleziona il valore precedentemente selezionato
	dwr.util.setValue(idCombo, selVal);
}

// definizione e setting error handler
// alert di default
// in produzione e' preferibile un effetto meno invasivo: status bar  
function errh(msg) {
  window.status = msg;
}

dwr.engine.setErrorHandler(errh);	

