
function selectOptions(oSelect, value, fRaiseOnChange) {
    var selObj = $(oSelect);
    for (j = 0; j < selObj.options.length; j++)
        if (selObj.options[j].value == value) {
            selObj.options[j].selected = true;
            if (fRaiseOnChange)
                selObj.onchange();
            break;
        }
}

/*
Funzione per disabilitare tutti gli campi che hanno uno contenitore in comune.
container = object or id of the element that contains the elements being changed.
disableValue = boolean, disabled value
*/
function switchEnableElements(container, disableValue, escludeName) {
	var children = ($(container) || document.body).getElementsByTagName('*');
        if(!escludeName) escludeName = '';
	for(var i = 0; i < children.length; i++) {
		if(['input', 'select', 'textarea'].include(children[i].tagName.toLowerCase())) {
                        if(escludeName == '' || children[i].name != escludeName) {
                            children[i].disabled = disableValue;
                        }
		}
	}
}

/*
Funzione per visualizzare o nascondere un elemento in base alla sua
visualizzazione corrente.
*/
function blocktoggle(i) {
    $('blocktoggle'+i).toggle();
}

/*
Funzione per aggiungere un evento alla pagina.
*/
function addEvent( obj, szEventType, fnHandler, fUseCapture) {
    if( obj.attachEvent != null ) {
        obj.attachEvent( "on" + szEventType, fnHandler );
	return true;
    } else if( obj.addEventListener != null ) {
	obj.addEventListener(szEventType, fnHandler, fUseCapture);
	return true;
    } else {
        return false;
    }
}

/*
Funzione per reimuovere un evento dalla pagina.
*/
function removeEvent( obj, szEventType, fnHandler, fUseCapture ) {
    if( obj.detachEvent != null ) {
        obj.detachEvent( "on" + szEventType, fnHandler );
	return true;
    } else if( obj.removeEventListener != null ) {
	obj.removeEventListener(szEventType, fnHandler, fUseCapture );
	return true;
    } else {
	return false;
    }
}
