//var da impostare prima di chiamare il fillSelect se si deve riempire la form di una finestra che non è quella da cui si sta chiamando la funzionevar objWindDoc
///////////////////////////////////////////////////////////////////////////////////////////////
function FillSelectE (obj, lvalue, ldesc, arDefValue) {	var lengthObj = obj.length;	var bElementoSelezionato;	
	var lElemSelected;	
	if (navigator.appName != "Netscape") 	{
		for (var count = 0; count < lengthObj; count++) 		{
			obj.remove(0); 		}	
 	} 
 	else 
 	{ 		obj.length = lvalue.length; 	}

	for (var count = 0; count < lvalue.length; count++) 
	{		bElementoSelezionato = false;
		for (var i_SelIntem = 0; i_SelIntem < arDefValue.length; i_SelIntem++) 		{
			if (parseInt(arDefValue[i_SelIntem])==parseInt(count)) 
			{ 				if (obj.type=='select-one') 				{
					lElemSelected = parseInt(count);				} 
				else 
				{					bElementoSelezionato = true; 
				}
			}		}
				if (navigator.appName == "Netscape") 
		{			obj[count] = new Option(ldesc[count],lvalue[count],bElementoSelezionato);		} 
		else 
		{			if (objWindDoc==null) 
			{				var newElem 	= document.createElement("OPTION");			} 			else 			{
				var newElem 	= objWindDoc.document.createElement("OPTION");			}			newElem.text 	= ldesc[count];
			newElem.value = lvalue[count];				
			if (obj.type=='select-multiple') 
			{ 
				newElem.selected = bElementoSelezionato; 
			}			if (navigator.platform != "MacPPC") 			{				newElem.style.backgroundColor = "#ffffff";			}
			obj.add(newElem);		}	}
	if (obj.type=='select-one') 	{ 		obj.selectedIndex = lElemSelected; 
	}
return;
}
///////////////////////////////////////////////////////////////////////////////////////////////function FillSelect (obj, lvalue, ldesc, defValue) {
	FillSelectE (obj, lvalue, ldesc, new Array(defValue))	return;
}
///////////////////////////////////////////////////////////////////////////////////////////////
//sostituisce i valori nella COMBO da cambiare dinamicamente in base all'onchange della COMBO principalefunction changeDataCombo(obj_select_base, str_select_toChange, strName_arDesc, strName_arValue) {
	eval("FillSelect(" + str_select_toChange + ".options, " + strName_arValue + obj_select_base.options[obj_select_base.selectedIndex].value + ", " + strName_arDesc + obj_select_base.options[obj_select_base.selectedIndex].value + ",  0);");
}


///////////////////////////////////////////////////////////////////////////////////////////////

/*ComboSet Object for each com set settings*/
function ComboSet(Levels, FormName, ComboName)
{
	this.Levels = Levels
	this.FormName = FormName
	this.ComboName = ComboName
}
/*ComboItem for individual item settings*/
function ComboItem(ID, ParentID, Value) 
{
	this.ID = ID
	this.Value = Value
	this.ParentID = ParentID
}

/*Handle the on change event */
function ComboOnChange(nLevel, strName)
{
	var curComboSet = eval(strName)

	//Troviamo l'elenco degli elementi richiesto
	var objCmbPar = document.forms[curComboSet.FormName].elements[curComboSet.ComboName + nLevel]
	var objCmbFig = document.forms[curComboSet.FormName].elements[curComboSet.ComboName + (nLevel + 1)]
	//Empty the selects below this one
	for(var i=nLevel + 1; i <= curComboSet.Levels; ++i)
	{
		EmptySelect(document.forms[curComboSet.FormName].elements[curComboSet.ComboName + i], eval(curComboSet.ComboName + (nLevel + 1)));
	}
	
	FillCombo(eval(curComboSet.ComboName + (nLevel + 1)), 
						objCmbPar.options[objCmbPar.selectedIndex].value,
						objCmbFig, 
						-1)
}
//Fill the child combo
function FillCombo (cmbArray, lParent, cmbObj, selItem) 
{	var lOffset = 0;	for (var i = 0; i < cmbArray.length; i++) {		//Do we have the right parent?
		if (cmbArray[i].ParentID == lParent || cmbArray[i].ID == '')		{
			if (navigator.appName == "Netscape") 			{
				cmbObj.options[i - lOffset] = new Option(cmbArray[i].Value, cmbArray[i].ID,false);
			} 			else 
			{					var newElem 	= document.createElement("OPTION");					newElem.value = cmbArray[i].ID;
					newElem.text 	= cmbArray[i].Value;
						if (navigator.platform != "MacPPC") 
							{newElem.style.backgroundColor = "#ffffff";}					cmbObj.options.add(newElem);			}
		}
		else
			lOffset = lOffset + 1;
			
	}	//cmbObj.selectedIndex = (selItem);
	
	if (navigator.appName == "Netscape" && document.layers!=null) 
		history.go(0);
	return;
}
//Empty a specific combo
function EmptySelect(cmbObj, cmbArray)
{
	var lengthCmb = cmbObj.options.length;
	if (navigator.appName != "Netscape") 	{
		for (var count = 0; count < lengthCmb; count++) 		{
			cmbObj.options.remove(0); 		}	
 	}  	else 
 	{ 		cmbObj.options.length = 0;//cmbArray.length; 	}
}
