/**  form.js
 * 
 * Funzioni javascript per la gestione delle form.
 * 
 * @copyright ? 1995-2006 Intesys S.r.l. Verona (I). All rights reserved. 
 * @version 23/11/2006 - 1.0
 * @package icms
 * 
 * 
 */

function fCheck(field)
{
	processingFieldsetDependency(field.form)
}


function processingFieldsetDependency(formId)
{
	var aFieldsets = formId.getElementsByTagName('fieldset');
    for (i=0; i<aFieldsets.length; i++) {
		var f = aFieldsets[i];
		if (typeof(f.showOnlyIf)=='function') {
			if (typeof(f.memoDisplay) == 'undefined') {
				f.memoDisplay = (typeof(f.style.display)!='undefined' && f.style.display!='none' ? f.style.display : 'block')
			}
			if (f.showOnlyIf()) {
				f.style.display = f.memoDisplay
			} else {
				f.style.display = 'none'
			}
		}
	}
}


function getFormFieldValue(formId, fieldName)
{
	if (formId[fieldName]) {
		var e = formId[fieldName]
		var tipo = (typeof(e.type) != 'undefined' ? e.type : 'radio')
		switch (tipo) {
			case 'password':
			case 'text':
				return e.value
			case 'checkbox':
				return (e.checked ? e.value : null)
			case 'radio':
				for (var i=0; i<e.length; i++) {
					if (e[i].checked) {
						return e[i].value
					}
				}
				break;
			case 'select-one':
				return e.options[e.selectedIndex].value;
			default:
				alert('Nome campo:'+fieldName+' Tipo non riconosciuto:'+tipo)
				break;
		}
	}
	return null;
}


// Only for testing
function inspectDOM(obj, attributeTypeFilter) {
	var str = ''
	for (var field in obj) {
		if (obj[field]
				&& (!attributeTypeFilter || typeof(obj[field]) == attributeTypeFilter)
				) {
			str += '['+field+']=['+obj[field]+"]\n"
		}
	}
	alert(str)
}


