var JuxtEip = function() { };

var id_aperto = ""

JuxtEip.makeEditable = function(args) {
	var id = args['id'];
	//////
	var id_opt = JuxtEip._getOptionsReference(id);

	for(var i in JuxtEip.defaults) {
		id_opt[i] = JuxtEip.defaults[i];
	}
	
	for(var i in args) {
		id_opt[i] = args[i];
	}
	//////////
	Event.observe('div_'+id, 'mouseout', function(e){ JuxtEip._MouseOut(id) });
	Event.observe('div_'+id, 'mouseover', function(e){ JuxtEip._MouseOver(id) });
	Event.observe('div_'+id, 'click', function(e){ JuxtEip._CreaInput(id) });
};
	
JuxtEip.options = { };
	
JuxtEip._getOptionsReference = function(id) {
	// If an option set doesn't exist for the id
	// then create an empty one.
	if(!JuxtEip.options[id]) {
		JuxtEip.options[id] = { };
	}
	return(JuxtEip.options[id]);
};	

JuxtEip._CreaInput = function(id) {
	if (id_aperto != "") {return}
	id_aperto = id
	var id_opt = JuxtEip._getOptionsReference(id);	
	if (id_opt['tipo'] == 'form') {		
		var pagina_form = id_opt['pagina_form']			
		if(id_opt['parametri']) {
			var params = ""
			for(var i in id_opt['parametri']) {
				var url_data = encodeURI(id_opt['parametri'][i]);
				params += '&' + i + '=' + url_data;
			}
		}				
		var opt = {
			method: 'post',
			postBody: 'id='+id+params,				
			onSuccess: function(t) {
				var nuovo_form = ""
				nuovo_form += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
				nuovo_form += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
				nuovo_form += "<div>"
				nuovo_form += t.responseText
				nuovo_form += "</div>"
				nuovo_form +="<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"
				nuovo_form += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
				nuovo_form += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"
				if (id_opt['elimina'] == 'si') {
					nuovo_form += "<input type=\"button\" value=\"elimina\" name=\"elimina_"+id+"\" onclick=\"JuxtEip._Elimina('"+id+"')\" class=\"eip_button_elimina\" />"
				}
				nuovo_form += "</div>"
				nuovo_form += "</form>"
				nuovo_form += "</div>"
				Element.update('message','');
				Element.hide('message');
				Element.removeClassName('div_'+id,'eip_mouseover');						
				Element.hide('div_'+id);
				new Insertion.After('div_'+id, nuovo_form);
				Try.these(attiva_focus_input());				
				eval("document.form_"+id+".elements[0].focus()");
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				JuxtEip._Caricamento2(id);
			}					
		}
		new Ajax.Request(pagina_form, opt);	
	}
	
	if (id_opt['tipo'] == 'text') {
		// testo semplice
		if (Element.visible('span_'+id) == true) {
			var content = ""
			var ex_valore = $('span_'+id).innerHTML;
			content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
			content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
			content += "<div class=\"form_item\">"
			content += "<label for=\"input_"+id+"\">"+id_opt['label']
			if (id_opt['obbligatorio'] == 'si') {content += "&nbsp;<em>*</em>"}
			content += "</label>"
			content += "<input type=\"text\" name=\"input_"+id+"\" id=\"input_"+id+"\" value=\""+ex_valore+"\" class=\"eip_textbox input\" maxlength=\""+id_opt['maxlength']+"\" />"
			content += "</div>"
			content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"
			content += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
			content += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
			content += "</div>"
			content += "</form>"
			content += "</div>"
			Element.removeClassName('div_'+id,'eip_mouseover');				
			Element.hide('div_'+id);
			new Insertion.After('div_'+id, content);
			Try.these(attiva_focus_input());
			eval("document.form_"+id+".input_"+id+".focus()");
		}
	}

	if (id_opt['tipo'] == 'textarea') {
		// testo semplice
		if (Element.visible('span_'+id) == true) {
			var content = ""
			var ex_valore = $('span_'+id).innerHTML;
			content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
			content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
			content += "<div class=\"form_item\">"
			content += "<label for=\"input_"+id+"\">"+id_opt['label']
			if (id_opt['obbligatorio'] == 'si') {content += "&nbsp;<em>*</em>"}
			content += "</label>"
			content += "<textarea name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\">"+ex_valore+"</textarea>"
			content += "</div>"
			content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"
			content += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
			content += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
			content += "</div>"
			content += "</form>"
			content += "</div>"
			Element.removeClassName('div_'+id,'eip_mouseover');				
			Element.hide('div_'+id);
			new Insertion.After('div_'+id, content);
			Try.these(attiva_focus_input());
			eval("document.form_"+id+".input_"+id+".focus()");
		}
	}
	if (id_opt['tipo'] == 'combo') {
		// testo semplice
		if (Element.visible('span_'+id) == true) {
			var content = ""
			var ex_valore = $('span_'+id).innerHTML;
			content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
			content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
			content += "<div class=\"form_item\">"
			content += "<label for=\"input_"+id+"\">"+id_opt['label']
			if (id_opt['obbligatorio'] == 'si') {content += "&nbsp;<em>*</em>"}
			content += "</label>"
			content += "<select name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\">"
			for(var i in id_opt['options']) {
				content += '<option " value="' + i + '"';
				if(id_opt['options'][i] == ex_valore) {
					content += ' selected="selected"';
				}
				content += '>' + id_opt['options'][i] + '</option>';
			}
			content += "</select>"
			content += "</div>"
			content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"			
			content += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
			content += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
			content += "</div>"
			content += "</form>"			
			content += "</div>"
			Element.removeClassName('div_'+id,'eip_mouseover');				
			Element.hide('div_'+id);
			new Insertion.After('div_'+id, content);
			Try.these(attiva_focus_input());			
			eval("document.form_"+id+".input_"+id+".focus()");			
		}
	}
	if (id_opt['tipo'] == 'table_combo') {
		// testo semplice
		var content = ""
		var ex_valore = $('span_'+id).innerHTML;
		content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
		content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
		content += "<span class=\"form_item\">"
		content += "<select name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\">"
		for(var i in id_opt['options']) {
			content += '<option " value="' + i + '"';
			if(id_opt['options'][i] == ex_valore) {
				content += ' selected="selected"';
			}
			content += '>' + id_opt['options'][i] + '</option>';
		}
		content += "</select>"
		content += "</span>"
		content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"			
		content += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
		content += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
		content += "</div>"
		content += "</form>"			
		content += "</div>"
		Element.removeClassName('div_'+id,'eip_mouseover');
		Element.hide('div_'+id);
		new Insertion.After('div_'+id, content);
		Try.these(attiva_focus_input());
		eval("document.form_"+id+".input_"+id+".focus()");
	}
	if (id_opt['tipo'] == 'table_text') {
		// testo semplice
		var content = ""
		var ex_valore = $('span_'+id).innerHTML;
		content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
		content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
		content += "<span class=\"form_item\">"
		content += "<input type=\"text\" value=\""+ex_valore+"\" name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\" />"
		content += "</span>"
		content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"			
		content += "<input type=\"button\" name=\"salva_"+id+"\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
		content += "<input type=\"button\" name=\"annulla_"+id+"\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
		content += "</div>"
		content += "</form>"
		content += "</div>"
		Element.removeClassName('div_'+id,'eip_mouseover');
		Element.hide('div_'+id);
		new Insertion.After('div_'+id, content);
		Try.these(attiva_focus_input());
		eval("document.form_"+id+".input_"+id+".focus()");
	}	
	if (id_opt['tipo'] == 'combodadb') {
		// testo semplice
		var pagina_valori= id_opt['pagina_valori']
		var opt = {
			method: 'post',
			onSuccess: function(t) {
				Element.update('message','');
				Element.hide('message');
				JuxtEip._CompilaCombo(id,t.responseText);
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				JuxtEip._Caricamento2(id);
			}					
		}
		new Ajax.Request(pagina_valori, opt);
	}
	if (id_opt['tipo'] == 'table_combo_db') {
		// testo semplice
		var pagina_valori= id_opt['pagina_valori']
		var opt = {
			method: 'post',
			onSuccess: function(t) {
				Element.update('message','');
				Element.hide('message');
				JuxtEip._CompilaComboTabella(id,t.responseText);
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				JuxtEip._Caricamento2(id);
			}
		}
		new Ajax.Request(pagina_valori, opt);
	}	
}

JuxtEip._CompilaCombo = function(id,stringa) {
	var id_opt = JuxtEip._getOptionsReference(id);	
			var content = ""
			var ex_valore = $('span_'+id).innerHTML;
			content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
			content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
			content += "<div class=\"form_item\">"
			content += "<label for=\"input_"+id+"\">"+id_opt['label']
			if (id_opt['obbligatorio'] == 'si') {content += "&nbsp;<em>*</em>"}
			content += "</label>"
			content += "<select name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\">"
			eval("var valoricombo = {"+stringa+"}");
			for(var i in valoricombo) {
				content += '<option " value="' + i + '"';
				if(valoricombo[i] == ex_valore) {
					content += ' selected="selected"';
				}
				content += '>' + valoricombo[i] + '</option>';
			}
			content += "</select>"
			content += "</div>"
			content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"			
			content += "<input type=\"button\" name=\"salva_"+id+"\" value=\"salva\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
			content += "<input type=\"button\" name=\"annulla_"+id+"\" value=\"annulla\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
			if (id_opt['elimina'] == 'si') {
				content += "<input type=\"button\" name=\"elimina_"+id+"\" value=\"elimina\" onclick=\"JuxtEip._Elimina('"+id+"')\" class=\"eip_button_elimina\" />"					
			}			
			content += "</div>"
			content += "</form>"			
			content += "</div>"
			Element.removeClassName('div_'+id,'eip_mouseover');				
			Element.hide('div_'+id);
			new Insertion.After('div_'+id, content);
			Try.these(attiva_focus_input());
			eval("document.form_"+id+".input_"+id+".focus()");			
}

JuxtEip._CompilaComboTabella = function(id,stringa) {
	var id_opt = JuxtEip._getOptionsReference(id);	
			var content = ""
			var ex_valore = $('span_'+id).innerHTML;
			content += "<div id=\"div_form_"+id+"\" class=\"eip_form\">"
			content += "<form id=\"form_"+id+"\" name=\"form_"+id+"\" onsubmit=\"JuxtEip._Salva('"+id+"'); return false\">"
			content += "<span class=\"form_item\">"
			content += "<select name=\"input_"+id+"\" id=\"input_"+id+"\" class=\"input\">"
			eval("var valoricombo = {"+stringa+"}");
			for(var i in valoricombo) {
				content += '<option " value="' + i + '"';
				if(valoricombo[i] == ex_valore) {
					content += ' selected="selected"';
				}
				content += '>' + valoricombo[i] + '</option>';
			}
			content += "</select>"
			content += "</span>"
			content += "<div id=\"pulsanti_"+id+"\" class=\"eip_pulsanti\">"			
			content += "<input type=\"button\" name=\"salva_"+id+"\" onclick=\"JuxtEip._Salva('"+id+"')\" class=\"eip_button_salva\" />"
			content += "<input type=\"button\" name=\"annulla_"+id+"\" onclick=\"JuxtEip._Annulla('"+id+"')\" class=\"eip_button_annulla\" />"	
			content += "</div>"
			content += "</form>"			
			content += "</div>"
			Element.removeClassName('div_'+id,'eip_mouseover');
			Element.hide('div_'+id);
			new Insertion.After('div_'+id, content);
			Try.these(attiva_focus_input());
			eval("document.form_"+id+".input_"+id+".focus()");
}
	
JuxtEip._MouseOver = function(id) {
	if (id_aperto != "") {return}	
		Element.addClassName('div_'+id,'eip_mouseover')
}

JuxtEip._Annulla = function(id,daSalvataggio) {
	var id_opt = JuxtEip._getOptionsReference(id);	
	if ((id_opt['tipo'] == 'table_combo_db') || (id_opt['tipo'] == 'table_text') || (id_opt['tipo'] == 'table_combo') ||(id_opt['tipo'] == 'text') || (id_opt['tipo'] == 'textarea') || (id_opt['tipo'] == 'combo') || (id_opt['tipo'] == 'combodadb') || (id_opt['tipo'] == 'form')) {	
		// testo semplice
			Element.remove ('div_form_'+id);
			Element.show ('div_'+id);
			id_aperto = ""
	}
}

JuxtEip._Salva = function(id) {
	var id_opt = JuxtEip._getOptionsReference(id);
	var validita = true
	if ((id_opt['tipo'] == 'table_combo_db') || (id_opt['tipo'] == 'table_text') || (id_opt['tipo'] == 'table_combo') || (id_opt['tipo'] == 'text') || (id_opt['tipo'] == 'textarea') || (id_opt['tipo'] == 'combo') || (id_opt['tipo'] == 'combodadb') || (id_opt['tipo'] == 'form')) {	
		if (id_opt['tipo'] == 'form') {
			if (id_opt['validazione'] != '') {
				eval(id_opt['validazione']+"('form_"+id+"')");
				if (flagvalidita == false) {return}
			}
		}

		if ((id_opt['tipo'] == 'text') || (id_opt['tipo'] == 'textarea')) {
			if (id_opt['obbligatorio'] == 'si') {
				if (JuxtEip._Trim($F('input_'+id)) == '') {
					validita = false
					var stringa_errore = ""
					var elemento_input = $('input_'+id)					
					if (!$('err_input_'+id)) {
						stringa_errore ="<span id=\"err_input_"+id+"\">campo obbligatorio</span>"
						new Insertion.After(elemento_input, stringa_errore);
						Element.addClassName(elemento_input.parentNode, 'form_item_alert');
					} else {
						Element.addClassName(elemento_input.parentNode, 'form_item_alert');
						Element.update('err_input_'+id,'campo obbligatorio');
					}
				}
			}

			if (JuxtEip._Trim($F('input_'+id)) != '') {
				if (id_opt['tipovalore'] == 'testo') {
					//controllo tipo testo
				}
				
				if (id_opt['tipovalore'] == 'codice_fiscale') {
					//controllo tipo codice fiscale
					var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
					if (re.test($F('input_'+id).toUpperCase()) == false) {
						var elemento_input = $('input_'+id)						
						if (!$('err_input_'+id)) {
							stringa_errore ="<span id=\"err_input_"+id+"\">codice fiscale non corretto</span>"
							new Insertion.After(elemento_input, stringa_errore);
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
						} else {
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
							Element.update('err_input_'+id,'codice fiscale non corretto');
						}
						return
					}
				}

				if (id_opt['tipovalore'] == 'email') {
					//controllo tipo email
					var re = /^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/;
					if (re.test($F('input_'+id)) == false) {
						var elemento_input = $('input_'+id)						
						if (!$('err_input_'+id)) {
							stringa_errore ="<span id=\"err_input_"+id+"\">e-mail non corretta</span>"
							new Insertion.After(elemento_input, stringa_errore);
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
						} else {
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
							Element.update('err_input_'+id,'e-mail non corretta');
						}
						return
					}
				}
				
				if (id_opt['tipovalore'] == 'numerico') {
					//controllo tipo email
					if (isNaN($F('input_'+id))) {
						var elemento_input = $('input_'+id)	
						if (!$('err_input_'+id)) {
							stringa_errore ="<span id=\"err_input_"+id+"\">valore non corretto</span>"
							new Insertion.After(elemento_input, stringa_errore);
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
						} else {
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
							Element.update('err_input_'+id,'valore non corretto');
						}
						return
					}
				}				

				if (id_opt['tipovalore'] == 'data') {
					//controllo data
					var re = /^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/;
					if (re.test($F('input_'+id)) == false) {
						var elemento_input = $('input_'+id)						
						if (!$('err_input_'+id)) {
							stringa_errore ="<span id=\"err_input_"+id+"\">formato data non corretto</span>"
							new Insertion.After(elemento_input, stringa_errore);
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
						} else {
							Element.addClassName(elemento_input.parentNode, 'form_item_alert');
							Element.update('err_input_'+id,'formato data non corretto');
						}
						return
					}
				}
			}
		}
		
		if (validita == true) {			
			var id_opt = JuxtEip._getOptionsReference(id);
			var params = ""			
			if(id_opt['parametri']) {
				for(var i in id_opt['parametri']) {
				var url_data = encodeURI(id_opt['parametri'][i]);
				params += '&' + i + '=' + url_data;
				}
			}
			if (id_opt['tipo'] == 'form') {
				params += '&' + Form.serialize('form_'+id);
			} else {
				params += '&stringa='+encodeURI(JuxtEip._Trim($F('input_'+id)));
			}
			
			var opt = {
				method: 'post',
				postBody: 'id='+id+params,
				onSuccess: function(t) {					
					if (id_opt['tipo'] == 'form') {
						JuxtEip._Compila(id,t.responseText);
					} else {
						JuxtEip._FinalizzaSalva(id,t.responseText);
					}
				},
				on404: function(t) {				
					alert('Error 404: location "' + t.statusText + '" was not found.');
				},
				onFailure: function(t) {
					alert('Error ' + t.status + ' -- ' + t.statusText);
				},
				onLoading: function(t) {
					JuxtEip._Caricamento(id);
				}	
			}
			new Ajax.Request(id_opt['pagina_salvataggio'], opt);			
		}
	}
}	

JuxtEip._Elimina = function(id) {
	var id_opt = JuxtEip._getOptionsReference(id);
	var params = ""
	if(id_opt['parametri']) {
		for(var i in id_opt['parametri']) {
		var url_data = encodeURI(id_opt['parametri'][i]);
		params += '&' + i + '=' + url_data;
		}
	}
			
	var opt = {
		method: 'post',
		postBody: 'elimina=si&id='+id+params,
		onSuccess: function(t) {					
//			alert('ok');
			JuxtEip._FinalizzaElimina(id,t.responseText);
		},
		on404: function(t) {				
			alert('Error 404: location "' + t.statusText + '" was not found.');
		},
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		},
		onLoading: function(t) {
			JuxtEip._Caricamento(id);
		}					
	}
	new Ajax.Request(id_opt['pagina_salvataggio'], opt);
}	

JuxtEip._MouseOut = function(id) {
	if (id_aperto != "") {return}	
		Element.removeClassName('div_'+id,'eip_mouseover')
}

JuxtEip._Caricamento = function(id) {
	var id_opt = JuxtEip._getOptionsReference(id);		
	Form.disable('form_'+id);
	Element.update('message','sto salvando...');
	Element.show('message');
}

JuxtEip._Caricamento2 = function(id) {
	Element.update('message','sto caricando...');
	Element.show('message');
}	


JuxtEip._FinalizzaSalva = function(id,stringa) {
	var id_opt = JuxtEip._getOptionsReference(id);	
	Element.update('span_'+id,stringa);
	if(id_opt['funzione_finale']) {
		eval(id_opt['funzione_finale']+"('"+id+"','"+stringa+"')");
	}	
	Element.update('message','');
	Element.hide('message');
	JuxtEip._Annulla(id);
}

JuxtEip._FinalizzaElimina = function(id,stringa) {
	var id_opt = JuxtEip._getOptionsReference(id);	
	Element.update('message','');
	Element.hide('message');
	if (stringa != "") {
		if (stringa == "si") {
			Element.show('nessun_record_'+id_opt['id_elimina'])
		}
		Element.remove(id);		
	}
		id_aperto = ""
}

JuxtEip._Compila = function(id,stringa) {
	var id_opt = JuxtEip._getOptionsReference(id);
	var arr = stringa.split("|@|");
	var nuovo_elemento = ""	
	if (!arr[1]) {
		// modifica
		eval("var nuovi_valori = {"+stringa+"}");
		for(var i in nuovi_valori) {
			nuovo_elemento += "<div class=\"item\">"
			nuovo_elemento += "<dt>" + i + "</dt>";
			nuovo_elemento += "<dd>" + nuovi_valori[i] + "</dd>";
			nuovo_elemento += "</div>"
		}
		Element.update('div_'+id,nuovo_elemento);
		Element.update('message','');
		Element.hide('message');
		JuxtEip._Annulla(id);
	} else {
		// inserimento
		var codice = arr[0];
		stringa = arr[1];
		eval("var nuovi_valori = {"+stringa+"}");
		var nuovo_id = id_opt['id_elimina']+"_"+codice
		nuovo_elemento += "<dl class=\"dl_scheda\" id=\""+nuovo_id+"\">"
		nuovo_elemento += "<div class=\"item_form\" id=\"div_"+nuovo_id+"\">"
		for(var i in nuovi_valori) {
			nuovo_elemento += "<div class=\"item\">"
			nuovo_elemento += "<dt>" + i + "</dt>";
			nuovo_elemento += "<dd>" + nuovi_valori[i] + "</dd>";
			nuovo_elemento += "</div>"
		}
		nuovo_elemento += "</div>"
		nuovo_elemento += "</dl>"
		Element.update('message','');
		Element.hide('message');
		new Insertion.After(id,nuovo_elemento);
		JuxtEip._Annulla(id);		
		Element.hide('nessun_record_'+id_opt['id_elimina']);
		if(id_opt['funzione_riattivazione']) {		
			eval(id_opt['funzione_riattivazione']+"('"+codice+"')");
		}
	}
	if(id_opt['funzione_finale']) {
		eval(id_opt['funzione_finale']+"('"+id+"')");
	}	
}

JuxtEip._Trim = function(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}

