<%@ include file="/project/include.jsp" %>

<%@ page import = "it.cedaf.icare.modellischeda.model.datamanagement.SezioneDataManagement" %>
<%@ page import = "it.cedaf.icare.modellischeda.control.action.CheckOnDeleteVoceAction" %>


<script type="text/javascript">
	var _msgDeleteVoce;
	
	registerOnChangeLookup('tipoEnumLookup', function() {
		var idTipoEnum = document.getElementById('id_tipoEnumLookup').value;
		loadStandardSelectOptionsAndFill('idValoreDefaultEnum', 
			'it.cedaf.icare.modellischeda.control.binding.requestbean.valuesetproviders.EnumerativoValueSetProvider(idTipoEnum)', 'idTipoEnum=' + idTipoEnum, ''); 
	});
	
	function onChangeTipoVoce(resetDefault) {
		var tipoVoce = document.getElementById('idTipoVoce');
		var codTipoVoce = tipoVoce.options[tipoVoce.selectedIndex].value;			
		renderPageDiv(codTipoVoce, resetDefault);
		
	}
	
	function renderPageDiv(tipoVoce, resetDefault) {
		var divElenchi = document.getElementById('idDivElenchi');
		var divDefaultEnum = document.getElementById('idDivDefaultEnum');
		var divOpMultiChoice = document.getElementById('idDivOpMultiChoice');
		var divDefault = document.getElementById('idDivDefault');
		var divPeso = document.getElementById('idDivPeso');				
		
		var spanString = document.getElementById('idSpanString');
		var spanNumber = document.getElementById('idSpanNumber');
		var spanDate = document.getElementById('idSpanDate');
		
		divElenchi.style.display = 'none';
		divDefault.style.display = 'none';
		divPeso.style.display = 'none';
		divOpMultiChoice.style.display = 'none';
		divDefaultEnum.style.display = 'none';
		
		if (spanString != null)
			spanString.style.display = 'none';
		if (spanNumber != null)
			spanNumber.style.display = 'none';
		if (spanDate != null)
			spanDate.style.display = 'none';
		
		if (tipoVoce == 'ENUM' || tipoVoce == 'CHECKBOX' || tipoVoce == 'MULTICHOIC') {
			divElenchi.style.display = 'block';
			if (tipoVoce == 'MULTICHOIC') {
				divOpMultiChoice.style.display = 'block';
			} else {
				divDefaultEnum.style.display = 'block';
			}
		} else if (tipoVoce == 'DATE') {
			divDefault.style.display = 'block';
			if (spanDate != null)
				spanDate.style.display = 'inline';

		} else 	{
			divDefault.style.display = 'block';
			if (tipoVoce == 'INTEGER' || tipoVoce == 'DECIMAL' || tipoVoce == 'IMPORTO' || tipoVoce == 'QUANTITA') {
				if (spanNumber != null)					
				 	spanNumber.style.display = 'inline';
				if (resetDefault && document.getElementById('idTextDefaultNumber'))document.getElementById('idTextDefaultNumber').value = '';
			} else {
				if (spanString != null)
					spanString.style.display = 'inline';
				if (resetDefault && document.getElementById('idTextDefaultString'))document.getElementById('idTextDefaultString').value = '';
			}
		}
		if (tipoVoce == 'INTEGER' || tipoVoce == 'DECIMAL' || tipoVoce == 'IMPORTO' || tipoVoce == 'QUANTITA') {
			divPeso.style.display = 'block';
		}
	}
	
	function renderAfterDocumentLoad() {		
		if (document.getElementById('idTipoVoce')) {
			onChangeTipoVoce();
		} else {
			var codTipoVoce = cpGetSlaveColumnValueOfCurrentRow('voci', 'codTipoVoce');
			renderPageDiv(codTipoVoce, false);
		}
		
		sh_stb__voci__pasteVoceenabled();
	}
	
	registerOnLoadMaster(renderAfterDocumentLoad);
	function cpOnChangeSlaveSelection_voci(row) {
		renderAfterDocumentLoad();
	}
	
	function checkOnDelete(idVoce) {
		_msgDeleteVoce = null;
		var idVocePName='<%=CheckOnDeleteVoceAction.ID_VOCE_PARAM%>';
		var strParam = '&' + idVocePName + '=' + idVoce;
		jsLoadString('it.cedaf.icare.modellischeda.control.action.CheckOnDeleteVoceAction', strParam, '_setMsgDeleteVoce', JS_SYNC);		
		
		return _msgDeleteVoce;
	}	
	
	function _setMsgDeleteVoce(msg) {
		_msgDeleteVoce = msg;
	}
	
	function deleteVoce() {
		var slave='<%=SezioneDataManagement.SLAVE_SEZIONE_VOCI%>';
		var params='';
		var selRow ;

    	var selRow = shellGetSlaveSelectedRowAndAlertIfNotSelected(slave);

    	if (selRow != -1) {
       		if (shellConfirmDelete()) {
            	var idVoce = cpGetSlaveColumnValueOfCurrentRow(slave, 'id');
				if (idVoce != null && idVoce != '') {
           			var msgRet = checkOnDelete(idVoce);
           		
           			if (msgRet != null && msgRet != '') {
           				if (confirm(msgRet)) {
	       					buiDeleteSlave(slave, cpGetMasterCurrentRow(), selRow, addParamsToParams(params, '_slave='+slave));
	       				} 
           			} else {
           				buiDeleteSlave(slave, cpGetMasterCurrentRow(), selRow, addParamsToParams(params, '_slave='+slave));
           			}
           		
           		
           		}	else {
           				buiDeleteSlave(slave, cpGetMasterCurrentRow(), selRow, addParamsToParams(params, '_slave='+slave));
           		}
	    	}
    	}		
	}
			
	// link al TipoEnumerativo
	
	<bui:out modes="view">
	
		function eformat_cpst_voci_tipoEnumerativo(element, value, name) { 
			if (value != null && value != '' && value !='@null') {
				element.innerHTML = '<A HREF="javascript:linkToTipoEnumerativoFunction();" class="form-data-link">' + value + '</A>';
			}
			else {
				// altrimenti non lo sbianca se passo a uno che non ce l'ha
				element.innerHTML = "";
			}
		}
		
		function linkToTipoEnumerativoFunction() {
			var idVoce = cpGetSlaveColumnValueOfCurrentRow('voci', 'id');
			
			var functionIdentifier = 'modellischeda.tipoEnumerativo';
			var params = 'init=it.cedaf.icare.modellischeda.model.datamanagement.TipoEnumerativoLookupInitializer&idVoce=' + idVoce;
			buiOpenNewDataManagement(functionIdentifier, params);
		}
				
	</bui:out>
	
	function aggiungiOpzioniVoceDisponibili() {
	
		var tipoVoce = document.getElementById('idTipoVoce');
		var codTipoVoce = tipoVoce.options[tipoVoce.selectedIndex].value;	
		var valueSetProviderClassField = document.getElementById('idValueSetProviderClass');
		var valueSetProviderClass = '';
		if (valueSetProviderClassField != null)
			valueSetProviderClass = valueSetProviderClassField.value;
		
		var elenco = jsLoadString('it.cedaf.icare.modellischeda.control.action.ElencoOpzioniVoceDisponibili', 
								  'tipoVoce=' + codTipoVoce + '&valueSetProviderClass=' + valueSetProviderClass);		
						
		var field = document.getElementById('idOpzioniVoce');
		field.value = elenco;		
	}	
	
</script>

<j:tile slave="voci" name="shell.slaveToolbar" />	

<shell:grid slave="voci" description="codice,10%; descrizione,30%; tipoVoce,10%; obbligatorio,10%; order,10%; solaLettura,10%; sottoModelli,20%" />

<shell:fieldset title="Informazioni voce">
	<table border="0" cellspacing="0" cellpadding="0" >
		<tr>
			<td>
				<table border="0" cellspacing="3" cellpadding="0" >
					<tr>
						<td class="form-label">
							<shell:label prop="codice" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="codice" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="codice">
									<j:text class="form-short-text" />
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>
					<tr>
						<td class="form-label">
							<shell:label prop="descrizione" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="descrizione" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="descrizione">
									<j:textarea class="form-normal-textarea" />
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>
			 		<tr>
						<td class="form-label">
							<shell:label prop="obbligatorio" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="obbligatorio" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="obbligatorio">
									<j:radio displayValue="si"/>${j:bundle('LBL_si')}
									<j:radio displayValue="no"/>${j:bundle('LBL_no')}
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr> 
			 		<tr>
						<td class="form-label">
							<shell:label prop="order" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="order" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="order">
									<j:text class="form-short-text" />
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>	
			 		<tr>
						<td class="form-label">
							<shell:label prop="sottoModelli" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="sottoModelli" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="sottoModelli">
									<j:valueSetIterator>
										<j:checkbox />${j:getValueSetItem().description}<br>
			      					</j:valueSetIterator>
		      					</j:bind>
							</bui:out>
						</td>
			 		</tr>	
			 		<tr>
						<td class="form-label">
							<shell:label prop="solaLettura" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="solaLettura" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="solaLettura">
									<j:radio displayValue="si"/>${j:bundle('LBL_si')}
									<j:radio displayValue="no"/>${j:bundle('LBL_no')}
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>	
			 		<tr>
						<td class="form-label">
							<shell:label prop="tipoVoce" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="tipoVoce" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="tipoVoce">
									<j:select id="idTipoVoce" class="form-input" emptyOptionDescr="" onChange="javascript:onChangeTipoVoce(true);"/>
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>
			 		<tr>
						<td class="form-label">
							<shell:label prop="opzioniVoce" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="opzioniVoce" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="opzioniVoce">
									<j:text class="form-long-text" id="idOpzioniVoce"/>
									<shell:error />
								</j:bind>
								<shell:button img="commons.doc_edit_small" text="" title="aggiungi opzioni disponibili" href="javascript:aggiungiOpzioniVoceDisponibili();" />
							</bui:out>
						</td>
			 		</tr>
			 		<tr>
						<td class="form-label">
							<shell:label prop="valueSetProviderClass" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="valueSetProviderClass" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="valueSetProviderClass">
									<j:text class="form-long-text" id="idValueSetProviderClass" />
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>
			 		<tr>
						<td class="form-label">
							<shell:label prop="valuesSetterClass" />
						</td>
						<td class="form-values">
							<bui:out slave="voci" modes="view">
								<j:tile slave="voci" name="shell.plaintext" prop="valuesSetterClass" />
							</bui:out>
							<bui:out slave="voci" modes="create, update">
								<j:bind prop="valuesSetterClass">
									<j:text class="form-long-text" />
									<shell:error />
								</j:bind>
							</bui:out>
						</td>
			 		</tr>
			 	</table>
			</td>
		</tr>
		<tr>
			<td>
				<div id="idDivElenchi" style="display:none">
					<table border="0" cellspacing="3" cellpadding="0" >
						<tr>
							<td class="form-label">
								<shell:label prop="tipoEnumerativo" />
							</td>
							<td class="form-values">
								<bui:out slave="voci" modes="view">
									<j:tile slave="voci" name="shell.plaintext" prop="tipoEnumerativo" />
								</bui:out>
								<bui:out slave="voci" modes="create, update">
									<j:bind prop="descrizioneTipoEnumerativo">
										<j:text class="form-long-text" readonly="true" id="descrizione_tipoEnumLookup" />
										<shell:error />
									</j:bind>								
								  	<j:bind prop="tipoEnumerativo">
										<j:hidden id="id_tipoEnumLookup"/>
										<shell:error />
									</j:bind>	
									<shell:lookup lookupId="tipoEnumLookup" identifier="modellischeda.tipoEnumerativo" 
										init="it.cedaf.icare.modellischeda.model.datamanagement.TipoEnumerativoLookupInitializer" 
										formParams="descrizione_tipoEnumLookup|descrizione" />									
								</bui:out>
							</td>
				 		</tr>
					</table>					
				</div>
			</td>
		</tr>
		<tr>
			<td>
				<div id="idDivDefaultEnum" style="display:none">
					<table border="0" cellspacing="3" cellpadding="0">					
				 		<tr>
							<td class="form-label">
								<shell:label prop="valoreDefaultEnum" />
							</td>
							<td class="form-values">
								<bui:out slave="voci" modes="view">
									<j:tile slave="voci" name="shell.plaintext" prop="valoreDefaultEnum" />
								</bui:out>
								<bui:out slave="voci" modes="create, update">
									<j:bind prop="valoreDefaultEnum">
										<j:select id="idValoreDefaultEnum" class="form-input" emptyOptionDescr=""/>
										<shell:error />
									</j:bind>
								</bui:out>
							</td>
				 		</tr>	
				 	</table>
				 </div>
			</td>
		</tr>			
		<tr>
			<td>
				<div id="idDivOpMultiChoice" style="display:none">
					<table border="0" cellspacing="3" cellpadding="0">					
				 		<tr>
							<td class="form-label">
								<shell:label prop="operazioneMultiChoice" />
							</td>
							<td class="form-values">
								<bui:out slave="voci" modes="view">
									<j:tile slave="voci" name="shell.plaintext" prop="operazioneMultiChoice" />
								</bui:out>
								<bui:out slave="voci" modes="create, update">
									<j:bind prop="operazioneMultiChoice">
										<j:select class="form-input" emptyOptionDescr=""/>
										<shell:error />
									</j:bind>
								</bui:out>
							</td>
				 		</tr>	
				 	</table>
				 </div>
			</td>
		</tr>
		<tr>
			<td>
				<div id="idDivDefault" style="display:none">
					<table border="0" cellspacing="3" cellpadding="0">					
				 		<tr>
							<td class="form-label">
								<shell:label prop="valoreDefault" />
							</td>
							<td class="form-values">
								<bui:out slave="voci" modes="view">
									<j:tile slave="voci" name="shell.plaintext" prop="valoreDefault" />
								</bui:out>
								<bui:out slave="voci" modes="create, update">
									<span id="idSpanString">
										<j:bind prop="valoreDefaultString">
											<j:text id="idTextDefaultString" class="form-long-text" />
											<shell:error />
										</j:bind>
									</span>
									<span id="idSpanNumber">
										<j:bind prop="valoreDefaultNumber">
											<j:text id="idTextDefaultNumber" class="form-short-text" />
											<shell:error />
										</j:bind>
									</span>
									<span id="idSpanDate">
										<j:bind prop="valoreDefaultDate">
											<j:select class="form-input" emptyOptionDescr=""/>
											<shell:error />
										</j:bind>
									</span>
								</bui:out>
							</td>
				 		</tr>	
				 	</table>
				 </div>
			</td>
		</tr>
		<tr>
			<td>
				<div id="idDivPeso" style="display:none">
					<table border="0" cellspacing="3" cellpadding="0">
				 		<tr>
							<td class="form-label">
								<shell:label prop="coefficientePeso" />
							</td>
							<td class="form-values">
								<bui:out slave="voci" modes="view">
									<j:tile slave="voci" name="shell.plaintext" prop="coefficientePeso" />
								</bui:out>
								<bui:out slave="voci" modes="create, update">
									<j:bind prop="coefficientePeso">
										<j:text class="form-short-text" />
										<shell:error />
									</j:bind>
								</bui:out>
							</td>
				 		</tr>					
					</table>
				</div>
			</td>
		</tr>	
	</table>
</shell:fieldset>

<shell:fieldset title="Informazioni aggiuntive">
	<table border="0" cellspacing="3" cellpadding="0" >		
 		<tr>
			<td class="form-label">
				<shell:label prop="note" />
			</td>
			<td class="form-values">
				<bui:out slave="voci" modes="view">
					<j:tile slave="voci" name="shell.plaintext" prop="note" />
				</bui:out>
				<bui:out slave="voci" modes="create, update">
					<j:bind prop="note">
						<j:textarea class="form-normal-textarea" />
						<shell:error />
					</j:bind>
				</bui:out>
			</td>
 		</tr>
	</table>
</shell:fieldset>