function icaCheckField(field, name)
{
	if((field.value.indexOf(".") >= 0 && name != "Dewey") || field.value.indexOf(",") >= 0 || field.value.indexOf(":") >= 0) {
		alert("Il campo di ricerca '" + name + "' non può contenere i caratteri speciali [.] (punto), [,] (virgola) e [:] (duepunti).");
		field.focus();
		field.select();
		return false;
	}

	return true;
}

function icaSendForm()
{
	var oldType = document.Form.enctype;

	document.Form.enctype = "text/plain";
	document.Form.action  = "mailto: webmaster@ars.sicilia.it";
	document.Form.submit();

	document.Form.enctype = oldType;
}

function icaSubmit()
{
	var obj = document.Form.terms;

	if(obj) {
		if(obj.value.indexOf("$ricerca") >= 0) {
			alert("E' necessario sostituire il testo '$ricerca' con i termini da cercare nel campo 'Ricerca Testuale'.");
			obj.focus();
			return;
		}
	}

	doAction(document.location, "Form", "searchAction", "execute", true);
}

function icaAddFld(field)
{
	var v = trim(document.Form.terms.value);

	document.Form.terms.value = v + (v.length > 0 ? " E " : "") + "( $ricerca )." + field;
}

function iterCommChange()
{
	var obj = document.Form.iterComm;

	if(obj) {
		if(obj.value == "") {
			document.Form.iterCommN.value = "";
			document.Form.iterCommN.disabled = true;
		}
		else {
			document.Form.iterCommN.disabled = false;
		}
	}
}

function iterComm2Change()
{
	var obj = document.Form.iterComm2;

	if(obj) {
		if(obj.value == "") {
			document.Form.iterCommN2.value = "";
			document.Form.iterCommN2.disabled = true;
		}
		else {
			document.Form.iterCommN2.disabled = false;
		}
	}
}

function legislChange(select, primoFir)
{
	var max = document.years.length - 1;
	var leg = document.Form.legisl.value;
	var ite = (document.Form.iter && !document.Form.iter[0].checked);
	var e1  = (leg >= max ? (IE ? 'block' : null) : 'none');
	var e2  = (leg >= max && ite ? (IE ? 'block' : null) : 'none');

	for(var i = 1; i <= 10; i++) {
		var obj = byId("row" + i);
		if(obj) obj.style.display = (i <= 2 ? e1 : e2);
	}

	var y1, y2;
	var obj = document.Form.anno;

	if(leg > 0) {
		y1 = document.years[leg - 1];
		y2 = document.years[leg];
	}
	else {
		var min = document.Form.legisl.options[document.Form.legisl.options.length - 1].value;
		y1 = document.years[min - 1];
		y2 = document.years[max];
	}

	while(obj.options.length > 1) obj.options[1] = null;

	for(var i = y2; i >= y1; i--) {
		obj.options[y2 - i + 1] = new Option(i, i);
		if(select == i) obj.options[y2 - i + 1].selected = true;
	}

	if(obj = document.Form.primoFir) {
		obj.value = (primoFir ? primoFir : "");
		icaSetupBox('primoFir');
	}

	if(obj = document.Form.altroFir) {
		obj.value = "";
		icaSetupBox('altroFir');
	}
}

function showFields()
{
	doAction(document.location, "Form", "searchAction", "fields", true);
}

function tipoChange(v)
{
	var obj = document.Form.tipo;

	for(var i = obj.length - 1; i >= 0; i--) {
		if(obj[i].value == v) {
			obj[i].checked = true;
			break;
		}
	}
}

function icaToggleCombo(vis)
{
	var obj;

	if(obj = document.Form.iniziatCmb)  obj.style.visibility = (vis ? "visible" : "hidden");
	if(obj = document.Form.materiaCmb)  obj.style.visibility = (vis ? "visible" : "hidden");
	if(obj = document.Form.rubricaCmb)  obj.style.visibility = (vis ? "visible" : "hidden");
	if(obj = document.Form.soggettoCmb) obj.style.visibility = (vis ? "visible" : "hidden");
	if(obj = document.Form.deweyCmb)    obj.style.visibility = (vis ? "visible" : "hidden");
}

function hideHelp()
{
	var obj = byId("help");
	if(obj) obj.style.display = 'none';
}

function showHelp(elem, t)
{
	var outer = byId("help");
	var inner = outer; //byId("helpContent");

	if(!outer || !inner) return;

	linkElem2Elem(outer, elem, 25, -5);

	var hlp = "<a href='help.jsp'>Guida</a>";

	switch(t) {
		case 'L':
			inner.innerHTML = "In questo campo immettere:<br/><br/><ul><li>La frase esatta (parole nella sequenza voluta separate da uno spazio);</li><li>elenco di termini di ricerca (parole, numeri, etc) separati dall'operatore <b>AND</b> o <b>E</b> se tutti devono trovarsi contestualmente nel campo;</li><li>Un elenco di termini di ricerca (parole, numeri, etc) separati dall'operatore <b>OR</b> o <b>O</b> se almeno uno di questi deve trovarsi nel campo.</li></ul>Per una trattazione sui possibili termini di ricerca consulta la " + hlp + ".";
			break;
		case 'X':
			inner.innerHTML = "Insieme ai criteri precedentemente immessi e che, contestualmente, devono verificarsi nel documento, il motore di ricerca verificherà anche <b>l'espressione di ricerca</b> immessa nel riquadro sottostante secondo la sintassi (termini, operatori booleani, ecc.) del motore di ricerca. Consultare la " + hlp + ".";
			break;
		case 'F':
			inner.innerHTML = "Insieme ai criteri precedentemente immessi e che, contestualmente, devono verificarsi nel documento, il motore di ricerca verificherà anche tutti i termini (parola, numero, o sigla) immessi nel riquadro sottostante, e separati da uno spazio, siano presenti nei documenti da estrarre <b>nella medesima sequenza</b> (<b>relazione ADJ</b>). Per conoscere tutti i tipi di termini di ricerca ammessi vedi la " + hlp + ".";
			break;
		case 'O':
			inner.innerHTML = "Insieme ai criteri precedentemente immessi e che, contestualmente, devono verificarsi nel documento, il motore di ricerca verificherà anche che <b>almeno uno dei termini</b> (parola, numero, o sigla) tra quelli immessi nel riquadro sottostante, e separati da uno spazio, sia presente nei documenti da estrarre (<b>relazione OR</b>). Per conoscere tutti i tipi di termini di ricerca ammessi vedi la " + hlp + ".";
			break;
		case 'M':
			inner.innerHTML = '<img class="btn" src="/common/skin/form/bMulti.gif" style="float: left; margin: 1px 5px 8px 0;">Cliccare questo pulsante per selezionare uno o più elementi.<div style="padding-left: 27px;">Il motore di ricerca verificherà, nel relativo campo, la presenza di almeno uno degli elementi selezionati.</div>';
			break;
		case 'C':
			inner.innerHTML = '<img class="btn" src="/common/skin/form/bClear.gif" style="float: left; margin: 1px 5px 8px 0;">Cliccare questo pulsante per eliminare le voci selezionate nel campo di ricerca.';
			break;
		default:
			inner.innerHTML = "Insieme ai criteri precedentemente immessi e che, contestualmente, devono verificarsi nel documento, il motore di ricerca verificherà anche che <b>tutti i termini</b> (parole, numeri o sigle) immessi nel riquadro sottostante, e separati da uno spazio, siano anche TUTTI presenti nei documenti da estrarre (<b>relazione AND</b>). Per conoscere tutti i tipi di termini di ricerca ammessi vedi la " + hlp + ".";
			break;
	}

	outer.style.display = 'block';
}

function icaOpenBox(title, fld, db, id, leg, path)
{
	document.boxWnd = openPopupWindow("boxWnd", 400, 450, (path ? path : "") + "box.jsp?title=" + title + "&field=" + fld + "&db=" + db + "&box=" + id + (leg ? "&legisl=" + leg : ""));
}

function icaSetupBox(fld, doc)
{
	if(!doc) doc = document;

	var cmb = byId(fld + "Cmb", doc);
	var lst = byId(fld + "Lst", doc);
	var hid = byId(fld, doc).value;
	var idx = 0;
	var cnt = 0;
	var lid = 0;
	var res = "";
	var str = "";
	var leg = false;

	if(!cmb) {
		leg = true;
		cmb = byId(fld + "Cmb2", doc);
	}

	for(var i = 0; i < hid.length; i++) {
		if(hid.substring(i, i + 1) == "|") {
			if(str.length) {
				cnt++;
				lid = parseInt(str) + 1;
				str = trim(cmb.options[lid].text);

				if(leg) {
					while(str.indexOf(" 0") > 0) {
						str = str.substring(0, str.length - 4);
					}
				}

				res += (cnt == 1 ? "" : "\n") + str;
				str = "";
			}
		}
		else {
			str += hid.substring(i, i + 1);
		}
	}

	lst.value = res;

	if(cnt <= 1) {
		lst.rows = 1;
		lst.style.overflow = "hidden";

		if(!leg) {
			lst.style.display = "none";
			cmb.style.display = "inline";
			cmb.value = cmb.options[lid].value;
		}
	}
	else {
		lst.rows = (cnt > 3 ? 4 : cnt + 1);
		lst.style.overflow = (cnt > 4 ? "auto" : "hidden");

		if(!leg) {
			lst.style.display = "inline";
			cmb.style.display = "none";
			cmb.value = "";
		}
	}
}

function icaClearBox(fld, doc)
{
	if(!doc) doc = document;

	byId(fld, doc).value = "";
	icaSetupBox(fld, doc);
}

function icaCpyBox(fld)
{
	var cmb = byId(fld + "Cmb").options;
	var hid = byId(fld);

	hid.value = "";

	for(var i = 1; i < cmb.length; i++) {
		if(cmb[i].selected) {
			hid.value = "|" + (i - 1) + "|";
			break;
		}
	}
}

