/*****************************/
/**** LIBRERIA JAVASCRIPT ****/
/*****************************/



/**** INIZIO GESTIONE CAMPI DINAMICI ****/
var STATIC_NOT_MODIFIED = "S";
var STATIC_DISABLED = "disabled = \"true\"";
var STATIC_CHEKED = "checked=\"true\"" ;
var STATIC_NULL = "null";
var campidanonvalidare = "";

function GetFieldNameFromID(idcampo){
	var toreturn = "selected("+idcampo+").valueField"
	return toreturn;
}

function GetFieldObscurateFromID(idcampo){
	var toreturn = "selected("+idcampo+").obscurate"
	return toreturn;
}

function GetFieldObblFieldFromID(idcampo){
	var toreturn = "selected("+idcampo+").obblField"
	return toreturn;
}

function addToNotValidate(key){
	campidanonvalidare = campidanonvalidare + key + ";";
}

function removeToNotValidate(key){
	if (campidanonvalidare != ""){
		var toanalyze = campidanonvalidare.split(";");
		var new_campidanonvalidare = "";
		var i = 0 ;
		while(i < toanalyze.length){
			var campo = toanalyze[i]
			if (campo != key){
				new_campidanonvalidare = new_campidanonvalidare + campo + ";";
			}
		i++;
		}
		campidanonvalidare = new_campidanonvalidare;
	}
}

var idField = "";
var desField = "";
var typeField = "";
var valueField = "";
var obblField = "";
var modifiedField = "";
var visibleField = "";
var dipendenze = "";
var lookUpField = "";
var obscurateField = "";
var nomcolo = "";
function CreateDynamicField(field) {	
	var campodiritorno = "";
	
	idField = field[0]; 
	desField = field[1];
	typeField = field[2];
	valueField = field[3];
	obblField = field[4];
	modifiedField = field[5];
	visibleField = field[6];
	dipendenze = field[7];
	obscurateField = field[8]
	nomcolo = field[9];
	 
	switch (typeField) {
		case "D" : {campodiritorno = CreateData(); break;}
		case "S" : {campodiritorno = CreateLentina();break;}
		case "G" : {campodiritorno = CreateRadio('Fisica','Giuridica','F','G',valueField,'15',nomcolo);break;}
		case "M" : {campodiritorno = CreateRadio('Maschio','Femmina','M','F',valueField,'0',nomcolo);break;}
		case "A" : {campodiritorno = CreateRadio('Si','No','S','N',valueField,'0',nomcolo);break;}
		case "I" : {campodiritorno = CreateInput();break;}
		case "N" : {campodiritorno = CreateInput();break;}
	}
	return campodiritorno;
}

function CreateData() {	
	var	HtmlData = "<input class=\"mask\" type=\"text\" id=\""+GetFieldNameFromID(idField)+"\" name=\""+GetFieldNameFromID(idField)+"\" "
				  +"value=\""+valueField+"\" size=\"10\" "
				  +"onchange=\"javascript:EseguiDipendenze('"+idField+"','"+dipendenze+"');\"/> "
				  +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObscurateFromID(idField)+"\" name=\""+GetFieldObscurateFromID(idField)+"\" value=\""+obscurateField+"\" />"
				  +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObblFieldFromID(idField)+"\" name=\""+GetFieldObblFieldFromID(idField)+"\" value=\""+obblField+"\" />"   	   	
				  +"<img src=\"images/calendar.gif\" id=\"trigger"+idField+"\" style=\"cursor: pointer; border: 1px solid red;\" onmouseover=\"this.style.background='red';\" onmouseout=\"this.style.background=''\" />"
				  +"<script type=\"text/javascript\"> if(\""+modifiedField+"\" == \""+STATIC_NOT_MODIFIED+"\") {Calendar.setup({inputField:\""+GetFieldNameFromID(idField)+"\",ifFormat:\"%d/%m/%Y\",button:\"trigger"+idField+"\",weekNumbers:false,align:\"Br\"});} </script> ";
	return HtmlData;
}

function CreateLentina() {
	var images = "images/lookup.gif";
	var javas = "javascript: Lentina('"+idField+"','"+dipendenze+"','"+nomcolo+"');";
	if (modifiedField != STATIC_NOT_MODIFIED){
		images = "images/lookup_disabled.gif";
		javas = "";
	}
	var	HtmlLentina = "<input style=\"display:inline\" class=\"mask\" type=\"text\" name=\""+GetFieldNameFromID(idField)+"\" id=\""+GetFieldNameFromID(idField)+"\" value=\""+valueField+"\" "
					 +" readonly=\"readonly\" size=\"25\" /> "
					 +" <a style=\"display:inline\" href=\"#\" id=\"lookup"+idField+"\" onclick=\""+javas+"\"><img border=\"0\" src=\""+images+"\"/></a>"
					 +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObblFieldFromID(idField)+"\" name=\""+GetFieldObblFieldFromID(idField)+"\" value=\""+obblField+"\" />"
					 +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObscurateFromID(idField)+"\" name=\""+GetFieldObscurateFromID(idField)+"\" value=\""+obscurateField+"\" />";   	
	return HtmlLentina;
}

function CreateRadio(value1,value2,ret1,ret2,ischeck,width,nomcolo) {
	var mychek1 = "";
	var mychek2 = "";
	if (ischeck == ret1 | ischeck == ret2) {
		if (ischeck == ret1) {
			mychek1 = STATIC_CHEKED;
		} else {
			mychek2 = STATIC_CHEKED;
		}	
	}
	var is_disbaled = "";
	if (modifiedField != STATIC_NOT_MODIFIED) {
		is_disbaled = STATIC_DISABLED;
	}
	
	var HtmlRadio ="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"
				   +"<td class=\"radio\" onclick=\"javascript:EseguiDipendenze('"+idField+"','"+dipendenze+"','"+ret1+"','"+nomcolo+"');\"><input type=\"radio\" id=\""+GetFieldNameFromID(idField)+"\" name=\""+GetFieldNameFromID(idField)+"\"  value=\""+ret1+"\"  "+mychek1+"  "+is_disbaled+" >"+value1+"</input></td>"
				   +"<td width=\""+width+"\"/>"
				   +"<td class=\"radio\" onclick=\"javascript:EseguiDipendenze('"+idField+"','"+dipendenze+"','"+ret2+"','"+nomcolo+"');\"><input type=\"radio\" id=\""+GetFieldNameFromID(idField)+"\" name=\""+GetFieldNameFromID(idField)+"\"  value=\""+ret2+"\" "+mychek2+"  "+is_disbaled+" >"+value2+"</input></td>"
				   +"<tr></table>"
	    		   +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObblFieldFromID(idField)+"\" name=\""+GetFieldObblFieldFromID(idField)+"\" value=\""+obblField+"\" />"
				   +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObscurateFromID(idField)+"\" name=\""+GetFieldObscurateFromID(idField)+"\" value=\""+obscurateField+"\" />";	
	return HtmlRadio;
}

function CreateInput() {	
	var is_disbaled = "";
	if (modifiedField != STATIC_NOT_MODIFIED){
		is_disbaled = STATIC_DISABLED;
	}
	
	var HtmlInput = "<input class=\"mask\" type=\"text\" id=\""+GetFieldNameFromID(idField)+"\" name=\""+GetFieldNameFromID(idField)+"\" value=\""+valueField+"\" size=\"25\" onchange=\"javascript:EseguiDipendenze('"+idField+"','"+dipendenze+"');\" "+is_disbaled+" />"
  				    +"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObblFieldFromID(idField)+"\" name=\""+GetFieldObblFieldFromID(idField)+"\" value=\""+obblField+"\" />"
					+"<input class=\"mask\" type=\"hidden\" id=\""+GetFieldObscurateFromID(idField)+"\" name=\""+GetFieldObscurateFromID(idField)+"\" value=\""+obscurateField+"\" />"   	;
	return HtmlInput;
}
/**** FINE GESTIONE CAMPI DINAMICI ****/



/**** INIZIO GESTIONE LENTINA ****/
var IE = document.all?true:false;
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);
// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;
// Temporary variables to hold mouse x-y pos.s
var tempX = 0;
var tempY = 0;
// Main function to retrieve mouse x-y pos.s
function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
  	// 13 Novembre 2009 - Aggiunta gestione try-catch
	try{
	    tempX = event.clientX + document.body.scrollLeft;
	    tempY = event.clientY + document.body.scrollTop;
  	}catch(e){
  		// A volte entra in questo catch perche' document.body==null.
  		// Questo  (credo)perche' la funzione viene richiamata prima che 
  		// la pagina sia caricata interamente, e il body non e' ancora valido.
  	}
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX; 
    tempY = e.pageY; 
  }
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  return true;
}

var prg_dizi = "";
var dependences = "";
var lentinaAction = "";
var s_nomcolo = "";
function Lentina(proprietario,sueoperazioni,nomcolo) { 
    prg_dizi = proprietario;
    dependences = sueoperazioni;
    s_nomcolo = nomcolo;
    var w = 350;
    var h = 250;
    var l = tempX;
    var t = tempY;
	var popup = window.open("include/blank.html","lentina","width="+w+",height="+h+",top="+t+",left="+l+",location=no,directories=no,menubar=no,toolbar=no,titlebar=no,status=no,scrollbars=yes");
	popup.window.focus();
	document.forms[0].notToValidate.value = campidanonvalidare;
	document.forms[0].action = lentinaAction+"?prgdizi="+proprietario;
	document.forms[0].target = "lentina";
	document.forms[0].submit();
}

//Daniele Gasperini isvap23 inizio
//var old_action = "";
function LentinaStatica(proprietario) {
	//old_action = document.forms[0].action;
	prg_dizi = proprietario;
    var w = 350;
    var h = 250;
    var l = tempX;
    var t = tempY;
	var popup = window.open("include/blank.html","lentinaStatica","width="+w+",height="+h+",top="+t+",left="+l+",location=no,directories=no,menubar=no,toolbar=no,titlebar=no,status=no,scrollbars=yes");
	popup.window.focus();
	document.forms[0].notToValidate.value = campidanonvalidare;
	document.forms[0].action = "lentinaSt.do"+"?prgdizi="+proprietario;
	document.forms[0].target = "lentinaStatica";
	document.forms[0].submit();
}

/* Inserisce il valore selezionato nella lentina statica*/
function InsValLenteStatic(myvalue,key) {
	var campo = document.getElementById(prg_dizi);
	campo.value = myvalue;
	//document.form.action = old_action;
}

//Daniele Gasperini isvap23 fine

/* Inserisce il valore selezionato nella lentina */
function InsertValue(myvalue,key) {
	var nomecampo = GetFieldNameFromID(prg_dizi);
	var campo = document.getElementById(nomecampo);
	campo.value = "";
	campo.value = myvalue;
	EseguiDipendenze(prg_dizi,dependences,key,s_nomcolo);
}

function EseguiDipendenze(proprietario,dipendenze,field_value,nomcolo) {
	if (dipendenze != STATIC_NULL) {
		var propr =	GetFieldNameFromID(proprietario);
		var mine_propr = document.getElementById(propr);
		if (field_value == undefined ) {
			var field_mine_value = mine_propr.value;
		} else {
			var field_mine_value = field_value;
		}
		var singles_dep = dipendenze.split(";");
		var i = 0;
			while (i < singles_dep.length) {		
				var s_d_length = singles_dep[i].length; 
				var campi_id_op_caus = singles_dep[i].split("|");
				
				var id_field = campi_id_op_caus[0];
				var s_d_operation = campi_id_op_caus[1];
				var s_d_causes = campi_id_op_caus[2].split("-");
				var s_d_type = campi_id_op_caus[3];
				
				var s_d_field = GetFieldNameFromID(id_field);
				var s_d_trow = "trow"+id_field;
				var obscurate = GetFieldObscurateFromID(id_field);
				var obblify = GetFieldObblFieldFromID(id_field);
				var defated_obblify = document.getElementById(obblify);
				var defated_obscurate = document.getElementById(obscurate);
				var defated_trow = document.getElementById(s_d_trow);
				//var defated_field = document.getElementById(s_d_field);
				var defated_field;
				if ("FLG_RISC" == nomcolo) {
					defated_field =  document.getElementById(s_d_field)[1];
				}else{
					defated_field =  document.getElementById(s_d_field);
				}
				var controlla_causes = false;
				if (s_d_causes.length == 1) {
					var lone_causes = s_d_causes[0];
					if (lone_causes == field_mine_value) {
						controlla_causes = true;
					} else if (lone_causes == "*") { // tutti i valori
						controlla_causes = true;
					} else {
						controlla_causes = false;
					}
				} else {
					var c = 0;
					while (c < s_d_causes.length) {
						if (s_d_causes[c] == field_mine_value) {
							controlla_causes = true;
						}
						c++;	
					}
				}	
				
				if (controlla_causes) {	
					switch (s_d_operation) {
						case "C" : {
							Clear(defated_field,s_d_type);
							break;
						}
						case "H" : {
							if ("FLG_RISC" == nomcolo){
								var mioradio = GetFieldNameFromID(id_field);
								var checks = document.getElementsByTagName("INPUT");
								var len = checks.length;
								for (var a = 0; a < len; a++){
									if (checks[a].name == mioradio){
										var radio_field = checks[a]; 
										if (!radio_field.checked & radio_field.value == "N"){
										 	radio_field.checked = true ;
										}
										if (radio_field.checked & radio_field.value == "S"){
										 	radio_field.checked = false ;
										}
									}
								}
							}
							addToNotValidate(id_field,defated_obscurate);
							Hidden(defated_trow,defated_obscurate);
							break;
						}
						case "O" : {
							Obblify(defated_obblify);
							break;
						}
						default: {	
							break;
						}
					}
				} else {
					removeToNotValidate(id_field);
					if ("FLG_RISC" == nomcolo){
						if (s_d_type == "D"){
							NotOperation("",defated_obscurate,defated_obblify);
						}else{
							NotOperation(defated_trow,defated_obscurate,defated_obblify);	
						}
					}else{
						NotOperation(defated_trow,defated_obscurate,defated_obblify);	
					}
				}
			i++;
		}
	}
}

function Clear(defated_field,type) {
	try {
		switch (type) {
			case "D" : {
				defated_field.value= ""; 
				break;
			}
			case "S" : {
				defated_field.value= ""; 
				break;
			}
			case "G" : {
				defated_field.checked = "false";
				break;
			}
			case "M" : {
				defated_field.checked = "false";
				break;
			}
			case "A" : {
				defated_field.checked = "true";
				break;
			}
			case "I" : {
				defated_field.value= ""; 
				break;
			}
			case "N" : {
				defated_field.value= ""; 
				break;
			}
		}	
	} catch(a){}
}

function Hidden(defated_trow,defated_obscurate) {
	try {
		defated_obscurate.value = "S";
	} catch(f){}
	try {
		defated_trow.style.display = "none";
	} catch(f){}
}

function Obblify(defated_obblify){
	try{
		defated_obblify.value = "S";
	}catch(o){}
}

function NotOperation(defated_trow,defated_obscurate,defated_obblify) {
	try {
		defated_obscurate.value = "N";
	} catch(f){}
	try {
		defated_trow.style.display = "";
	} catch(e){}
	try {
		defated_obblify.value = "N";
	} catch(o){}
}
/**** FINE GESTIONE LENTINA ****/



/**** INIZIO GESTIONE NAVIGAZIONE ****/
var formName = "";
var forward = "";
var backward = "";

function Avanti() {
	document.getElementById(formName).notToValidate.value = campidanonvalidare;
	document.getElementById(formName).action = forward;
	document.getElementById(formName).target = "";
	document.getElementById(formName).submit();
}

function Indietro() {
	document.getElementById(formName).action = backward;
	document.getElementById(formName).target = "";
	document.getElementById(formName).submit();
}
/**** FINE GESTIONE NAVIGAZIONE ****/




//Daniele Gasperini isvap23 inizio
function Valorizza(){
	window.document.forms[0].step.value = "next";
}
//Daniele Gasperini isvap23 fine

function OnChangeTipoVeicolo() {
	window.document.forms[0].azione.value = "forma";
	//Daniele Gasperini isvap23 inizio
	//Azzero il campo della lentina
	if(window.document.forms[0].codConvenzione != null){
		window.document.forms[0].codConvenzione.value = "";
	}
	//Daniele Gasperini isvap23 fine
	Avanti();
}

//Daniele Gasperini inizio
function OnChangeSettoreVeicolo() {
	window.document.forms[0].azione.value = "settore";
	//Daniele Gasperini isvap23 inizio
	//Azzero il campo della lentina
	if(window.document.forms[0].codConvenzione != null){
		window.document.forms[0].codConvenzione.value = "";
	}
	//Daniele Gasperini isvap23 fine
	Avanti();
}
//Daniele Gasperini fine

function StampaPreventivo() {
	document.getElementById("riepilogo").style.width = "100%";
	document.getElementById("mod1").style.display = "none";
	document.getElementById("mod2").style.display = "none";
	document.getElementById("mod3").style.display = "none";
	
    var disp_setting="toolbar=no,location=no,directories=no,menubar=no,";
        disp_setting+="scrollbars=yes,width=650,height=600,left=100,top=25";
    var content_value = document.getElementById("print_content").innerHTML;
    var docprint = window.open("","",disp_setting);
    docprint.document.open();
    docprint.document.write('<html><head><title>stampa</title>');
    docprint.document.write('<link type="text/css" rel="stylesheet" href="include/stile.css"/>');
    docprint.document.write('</head><body onload="self.print();">');
    docprint.document.write('<p><img src="images/logo.gif"/></p>');
    docprint.document.write(content_value);
    docprint.document.write('</body></html>');
    docprint.document.close();
    docprint.focus();
    
    document.getElementById("riepilogo").style.width = "680px";
	document.getElementById("mod1").style.display = "";
	document.getElementById("mod2").style.display = "";
	document.getElementById("mod3").style.display = "";
}


