// JScript File function SetAllCheckBoxes(FormName, FieldName, CheckValue) { if (!document.forms[FormName]) return; var objCheckBoxes = document.forms[FormName].elements[FieldName]; if (!objCheckBoxes) return; var countCheckBoxes = objCheckBoxes.length; if (!countCheckBoxes) objCheckBoxes.checked = CheckValue; else // set the check value for all check boxes for (var i = 0; i < countCheckBoxes; i++) objCheckBoxes[i].checked = CheckValue; } function check_all_in_document(doc) { var hiddenfield = document.getElementById("HiddenFieldSezioni"); hiddenfield.value = ""; var c = new Array(); c = doc.getElementsByTagName('input'); for (var i = 0; i < c.length; i++) { if (c[i].type == 'checkbox') { if (c[i].checked == true && c[i].getAttribute('tipo') == 'SEZIONI') hiddenfield.value += c[i].id + "|"; } else { if (c[i].type == 'radio' && c[i].getAttribute('tipo') == 'SEZIONI') { if (c[i].checked == true) hiddenfield.value += c[i].id + "|"; } } } } function check_all_in_document_stampa(doc) { check_all_in_document(doc); var hiddenfield = document.getElementById("HiddenFieldStampa"); hiddenfield.value = ""; var c = new Array(); c = doc.getElementsByTagName('input'); for (var i = 0; i < c.length; i++) { if (c[i].type == 'checkbox') { if (c[i].checked == true && c[i].getAttribute('tipo') == 'SEZIONI' && c[i].getAttribute('issectionprinting') == 'true') hiddenfield.value += c[i].id + "|"; } else { if (c[i].type == 'radio' && c[i].getAttribute('tipo') == 'SEZIONI' && c[i].getAttribute('issectionprinting') == 'true') { if (c[i].checked == true) hiddenfield.value += c[i].id + "|"; } } } } function goDeeperUnChecked(obj) { var chk1 = false; //Prendo il padre var head1 = obj.parentNode.previousSibling; //Se non ci sono righe esci if (obj.rows != null) { //Numero di righe al livello attuale var pTreeLevel1 = obj.rows[0].cells.length; //Controllo se è un padre if (head1.tagName == "TABLE") { var tbls = obj.parentNode.getElementsByTagName("TABLE"); var tblsCount = tbls.length; //Controllo se qualche figlio è non ceccato for (i = 0; i < tblsCount; i++) { var childTreeLevel = tbls[i].rows[0].cells.length; if (childTreeLevel == pTreeLevel1) { var chld = tbls[i].getElementsByTagName("INPUT"); if (chld[0].checked == true) { chk1 = true; break; } } } var nd = head1.getElementsByTagName("INPUT"); if (nd.length > 0) { nd[0].checked = chk1; } goDeeperUnChecked(obj.parentNode.previousSibling); } } return; } function disableOtherRadio(obj) { var treeNode = obj; var nomeGruppo = treeNode.name; //Risaliamo l'albero fino al padre do { obj = obj.parentNode; } while (obj.tagName != "TABLE") var parentTreeLevel = obj.rows[0].cells.length; //prendiamo tutti i nodi nel treeview var tables = obj.parentNode.getElementsByTagName("TABLE"); //per ogni nodo controlliamo se è checked o unchecked if (obj.tagName == "TABLE") { //numero di nodi totali var numTables = tables.length if (numTables >= 1) { //cicliamo su tutti i nodi fino a quando non troviamo il nodo che ha scatenato l'evento for (i = 0; i < numTables; i++) { if (tables[i] == obj) { gruppoRadio = false; i++; if (i == numTables) { //se siamo sull'ultimo nodo abbiamo finito break; } } else { //CONTROLLO SE TROVO UN RADIO DA DISABILITARE var TreeLevel = tables[i].rows[0].cells.length; var cell = tables[i].rows[0].cells[TreeLevel - 1]; var inputs = cell.getElementsByTagName("INPUT"); if (inputs[0].name == nomeGruppo) { gruppoRadio = true; } } if (gruppoRadio == true) { var TreeLevel = tables[i].rows[0].cells.length; var cell = tables[i].rows[0].cells[TreeLevel - 1]; var inputs = cell.getElementsByTagName("INPUT"); //Deseleziono i nodi figlio inputs[0].checked = false; } } //end for } //end if - numTables >= 1 } //end if - tagName = TABLE } function goDeeper(obj) { //prendiamo il padre del nodo attuale var head = obj.parentNode.previousSibling; var head_rbckb = obj.parentNode.parentNode.getElementsByTagName("INPUT")[0]; var namerbckb; var namerbckb_1; if (head.tagName == "TABLE") { //recuperiamo il checkbox var matchElement = head.getElementsByTagName("INPUT"); if (matchElement.length > 0) { // Gestione CHeckbox Radio Button //******************************* if (head_rbckb != null) if (head_rbckb.name != null && head_rbckb.name != "") { if (matchElement[0].name != null && matchElement[0].name != "") { namerbckb = matchElement[0].name.substring(0, matchElement[0].name.lastIndexOf('_') + 1); namerbckb_1 = head_rbckb.name.substring(0, head_rbckb.name.lastIndexOf('_') + 1); if (namerbckb == namerbckb_1) if (head_rbckb.checked) head_rbckb.checked = false; } } //******************************* // else matchElement[0].checked = true; } if (matchElement[0].type == "radio") { disableOtherRadio(matchElement[0]); } } else { head = obj.parentNode.previousSibling; } if (head.tagName == "TABLE") { goDeeper(obj.parentNode); } else { return; } } //Cambia l'immagine del bottne per la funzionalità ascpandi chiudi del nodo radice function buttonExpandCollapse(obj) { if (obj.state == "close") { //Mettere path relativa obj.src = "images/arrowDown.png"; obj.state = "open"; } else { //Mettere path relativa obj.src = "images/arrowRight.png"; obj.state = "close"; } } function treeViewCheck(obj) { // prendiamo il nodo che ha scatenato l'evento // var obj = (typeof event !== 'undefined') ? event.srcElement : e.target; var treeNodeFound = false; var gruppoRadio = false; var firstRadioFound = false; var numberRadioFound = 1; var nameRadioGroup; var parentNodeFound = false; var checkedState; // versato netto utile perdita - Marco I. - per gestione radiobutton figli var childRadioChecked = false; //distinguiamo tra checkbox e radiobutton SARA' UTILE ???? if (obj.tagName == "INPUT" && obj.type == "checkbox") { var treeNode = obj; checkedState = obj.checked; //Risaliamo l'albero fino alla root while (obj.tagName != "TABLE") { obj = obj.parentNode; } var parentTreeLevel = obj.rows[0].cells.length; var parentTreeNode = obj.rows[0].cells[0]; //prendiamo tutti i nodi nel treeview var tables = obj.parentNode.getElementsByTagName("TABLE"); //per ogni nodo controlliamo se è checked o unchecked if (obj.tagName == "TABLE") { // se un nodo è checked mettiamo a checked tutti i suoi padri if (treeNode.checked) { goDeeper(obj); } //end if - checked //numero di nodi totali var numTables = tables.length if (numTables >= 1) { //cicliamo su tutti i nodi fino a quando non troviamo il nodo che ha scatenato l'evento for (i = 0; i < numTables; i++) { if (tables[i] == obj) { treeNodeFound = true; i++; if (i == numTables) { //se siamo sull'ultimo nodo abbiamo finito break; } } /* Gestione checkbox radio button *******************************/ if (treeNode.name != null && treeNode.name != "") { // Ricerco un item con lo stesso valore name uncheckOthers(treeNode); } /* ****************************** */ if (treeNodeFound == true) { var childTreeLevel = tables[i].rows[0].cells.length; if (childTreeLevel > parentTreeLevel) { var cell = tables[i].rows[0].cells[childTreeLevel - 1]; //settiamo i checkbox allo stato attuale var inputs = cell.getElementsByTagName("INPUT"); var head = tables[i].parentNode.previousSibling; var matchElement = head.getElementsByTagName("INPUT"); //Se è un radiobutton e non è checked non setto i figli (PROBLEMA I RADIO VENGONO SETTATI TUTTI) if (matchElement[0].type != "radio" || matchElement[0].checked || !checkedState) { //Viene settato solo il primo radiobutton del gruppo if ((inputs[0].type != "radio" || !firstRadioFound || inputs[0].name != nameRadioGroup || !checkedState) && !inputs[0].disabled) if ((inputs[0].nocheckbyparent == '1' && parentTreeLevel == 2) || !matchElement[0].checked) // || !matchElement[0].checked - Marco I. - non considera i radio se l'elemento padre non è checked inputs[0].checked = false; else inputs[0].checked = checkedState; } if (inputs[0].type == "radio") { nameRadioGroup = inputs[0].name; if (numberRadioFound > 1) { firstRadioFound = true; numberRadioFound = 1; } else numberRadioFound = numberRadioFound + 1; } } else { break; /* // gestione radiobutton figli - Marco I. var cell = tables[i].rows[0].cells[childTreeLevel - 1]; var inputs = cell.getElementsByTagName("INPUT"); if (inputs[0].type == "radio" && !childRadioChecked && !inputs[0].disabled) { inputs[0].checked = checkedState; childRadioChecked = true; } else if (tables[i].nextSibling) { cell = tables[i].nextSibling; if (cell) { var child = cell.nextSibling; inputs = child ? child.getElementsByTagName("INPUT") : cell.getElementsByTagName("INPUT") if (inputs[0].type == "radio" && !childRadioChecked && !inputs[0].disabled) { inputs[0].checked = checkedState; childRadioChecked = true; } else break; } } else //se non ci sono nodi figlio esco break; */ } } //end if } //end for } //end if - numTables >= 1 //Se tutti i figli sono unchecked anche il padre deve essere unchecked if (!treeNode.checked && treeNode.noparentbehaviour == 'false') { goDeeperUnChecked(obj); } //end if - unChecked } //end if - tagName = TABLE if (treeNode.id == "62") { if (treeNode.checked == true) { abilitaApprofondimentoRischio(); elem291 = document.getElementById('291'); elem291.checked = true; elem293 = document.getElementById('293'); elem293.checked = true; elem294 = document.getElementById('294'); elem294.checked = true; elem295 = document.getElementById('295'); elem295.checked = true; abilitaApprofondimentoPerimetro(); } else { defaultAnalisiRischio(); } } if (treeNode.id == "63") { if (treeNode.checked == true) { abilitaApprofondimentoRischio(); elem291 = document.getElementById('291'); elem291.checked = true; } else { disabilitaApprofondimentoRischio(); if (!treeNode.checked && treeNode.noparentbehaviour == 'false') { goDeeperUnChecked(obj); } //end if - unChecked } } if (treeNode.id == "294" || treeNode.id == "295" || treeNode.id == "293") { if (treeNode.checked == true) { abilitaApprofondimentoPerimetro(); } else { //Ho deselezionato il padre allora deseleziono sicuramente tutti i figli if (treeNode.id == "293") { disabilitaApprofondimentoPerimetro(); } else if (treeNode.id == "294") { //Ho deselezionato il 294 allora controllo che anche il 295 sia deselezionato if (document.getElementById('295').checked == false) // il 294 e il 295 sono disabilitati allora disabilito tutto disabilitaApprofondimentoPerimetro(); } else { //Ho deselezionato il 295 allora controllo che anche il 294 sia deselezionato if (document.getElementById('294').checked == false) // il 294 e il 295 sono disabilitati allora disabilito tutto disabilitaApprofondimentoPerimetro(); } } } } //end if //CASO RadioButton if (obj.tagName == "INPUT" && obj.type == "radio") { var treeNode = obj; checkedState = treeNode.checked; var nomeGruppo = treeNode.name; //Risaliamo l'albero fino alla root do { obj = obj.parentNode; } while (obj.tagName != "TABLE") var parentTreeLevel = obj.rows[0].cells.length; var parentTreeNode = obj.rows[0].cells[0]; //prendiamo tutti i nodi nel treeview var tables = obj.parentNode.getElementsByTagName("TABLE"); //per ogni nodo controlliamo se è checked o unchecked if (obj.tagName == "TABLE") { // se un nodo è checked mettiamo a checked tutti i suoi padri if (treeNode.checked) { goDeeper(obj); } //end if - checked //numero di nodi totali var numTables = tables.length if (numTables >= 1) { //cicliamo su tutti i nodi fino a quando non troviamo il nodo che ha scatenato l'evento for (i = 0; i < numTables; i++) { if (tables[i] == obj) { treeNodeFound = true; gruppoRadio = false; i++; if (i == numTables) { //se siamo sull'ultimo nodo abbiamo finito break; } } else { //CONTROLLO SE TROVO UN RADIO DA DISABILITARE var TreeLevel = tables[i].rows[0].cells.length; var cell = tables[i].rows[0].cells[TreeLevel - 1]; var inputs = cell.getElementsByTagName("INPUT"); if (inputs[0].name == nomeGruppo) { gruppoRadio = true; } } if (treeNodeFound == true) { if (tables[i] != obj && tables[i].type == "radio") treeNodeFound = false; var childTreeLevel = tables[i].rows[0].cells.length; if (childTreeLevel > parentTreeLevel) { var cell = tables[i].rows[0].cells[childTreeLevel - 1]; //settiamo i checkbox allo stato attuale var inputs = cell.getElementsByTagName("INPUT"); //Solo i nodi figlio if (tables[i].parentNode.previousSibling == obj && !inputs[0].disabled) inputs[0].checked = checkedState; } else // gestione radiobutton figli - Marco I. { var nextRadio = tables[i].parentNode.nextSibling; if (nextRadio) { var inputs = nextRadio.getElementsByTagName("INPUT"); if (nextRadio.previousSibling == obj.parentNode && inputs[0].type == "radio" && !inputs[0].disabled) inputs[0].checked = checkedState; } } } //end if if (gruppoRadio == true) { // Marco I. if (tables[i].nextSibling == obj) { var cell = tables[i].parentNode.nextSibling; if (cell) { var inputs = cell.getElementsByTagName("INPUT"); if (inputs[0].type == "radio") inputs[0].checked = true; } } else { var TreeLevel = tables[i].rows[0].cells.length; var cell = tables[i].rows[0].cells[TreeLevel - 1]; var inputs = cell.getElementsByTagName("INPUT"); //Deseleziono i nodi figlio inputs[0].checked = false; } } } //end for } //end if - numTables >= 1 //Se tutti i figli sono unchecked anche il padre è unchecked if (!treeNode.checked && treeNode.noparentbehaviour == 'false') { goDeeperUnChecked(obj); } //end if - unChecked } //end if - tagName = TABLE if (treeNode.id == "291" || treeNode.id == "292") { abilitaApprofondimentoRischio(); } } //end if max2check(); max3checkTerzi(); gestisciRaggruppamentoTerzi(); isCheckPerimetro(); } function uncheckOthers(obj) { var objparentNode = obj.parentNode.previousSibling; var name = obj.name; var checked = obj.checked; var elements = document.getElementsByTagName('input'); var checked = false; var namefirst = ""; var namesecond = ""; var number; // loop through all input elements in form for (var i = 0; i < elements.length; i++) { namefirst = elements.item(i).name; namesecond = name; if (elements.item(i).type == "checkbox") { namefirst = namefirst.substring(0, namefirst.lastIndexOf('_')); namesecond = namesecond.substring(0, namesecond.lastIndexOf('_')); if (namefirst == namesecond && namefirst != '' && namesecond != '' && elements.item(i).checked && obj.id != elements.item(i).id) { elements.item(i).checked = false; number = elements.item(i).name.substring(elements.item(i).name.lastIndexOf('_') + 1, elements.item(i).lenght) } } if (elements.item(i).type == "radio") { namesecond = namesecond.substring(0, namesecond.lastIndexOf('_')); if (namefirst == namesecond && obj.id != elements.item(i).id && number == 2) { if (elements.item(i).checked == true) elements.item(i).checked = false; } } // else if (elements.item(i).type == "radio") // { // if(elements.item(i).name == name && elements.item(i).checked && obj.id!=elements.item(i).id) // { // elements.item(i).checked = false; // goDeeperUnChecked(elements.item(i)); // } // } } } //e da la possibilità di scegliere un massimo di 2 selezioni tra le possibili sezioni. function max2check() { arraySelezionabili = new Array('284', '184', '286', '287'); var maxElements = arraySelezionabili.length; var elemcheck = 0; for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == true) elemcheck = elemcheck + 1; } if (elemcheck == 2) { //Disabilito quelli che non sono stati selezionati, in modo da bloccare possibili altre selezioni for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == false) document.getElementById(arraySelezionabili[j]).disabled = true; } } else if (elemcheck < 2) { // Abilito tutti gli elementi, perche sono tutti selezionabili for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { document.getElementById(arraySelezionabili[j]).disabled = false; } } /* else if (elemcheck > 3) { //Disabilito e deseleziono gli ultimi elementi (fissi) in modo da avere sempre massimo 3 selezioni. var elem248 = document.getElementById('286'); var elem249 = document.getElementById('287'); elem248.checked = false; elem248.disabled = true; elem249.checked = false; elem249.disabled = true; }*/ } function isCheckPerimetro() { elem297 = document.getElementById('297'); elem298 = document.getElementById('298'); elem299 = document.getElementById('299'); if (elem297.checked == false && elem298.checked == false && elem299.checked == false) { elem293 = document.getElementById('293'); elem293.checked = false; elem294 = document.getElementById('294'); elem294.checked = false; elem295 = document.getElementById('295'); elem295.checked = false; disabilitaApprofondimentoPerimetro(); } } function defaultAnalisiRischio() { /* elem293 = document.getElementById('293'); elem293.checked = false; elem293.disabled = true; elem294 = document.getElementById('294'); elem294.checked = false; elem294.disabled = true; elem295 = document.getElementById('295'); elem295.checked = false; elem295.disabled = true; */ /* Disabilita2GraficiRischio();*/ disabilitaApprofondimentoPerimetro(); } function disabilitaApprofondimentoRischio() { elem293 = document.getElementById('293'); elem293.checked = false; elem293.disabled = true; elem294 = document.getElementById('294'); elem294.checked = false; elem294.disabled = true; elem295 = document.getElementById('295'); elem295.checked = false; elem295.disabled = true; defaultAnalisiRischio(); } function abilitaApprofondimentoRischio() { elem293 = document.getElementById('293'); elem293.disabled = false; elem294 = document.getElementById('294'); elem294.disabled = false; elem295 = document.getElementById('295'); elem295.disabled = false; } function abilitaApprofondimentoPerimetro() { elem297 = document.getElementById('297'); elem297.checked = true; elem297.disabled = false; elem298 = document.getElementById('298'); elem298.checked = true; elem298.disabled = false; elem299 = document.getElementById('299'); elem299.checked = true; elem299.disabled = false; } function disabilitaApprofondimentoPerimetro() { elem297 = document.getElementById('297'); elem297.checked = false; elem297.disabled = true; elem298 = document.getElementById('298'); elem298.checked = false; elem298.disabled = true; elem299 = document.getElementById('299'); elem299.checked = false; elem299.disabled = true; } /*function Disabilita2GraficiRischio() { var element292 = document.getElementById('292'); if (element292 != null) { element292.disabled = true; element292.checked = false; } }*/ function gestisciRaggruppamentoTerzi() { elem59 = document.getElementById('59'); elem60 = document.getElementById('60'); elem61 = document.getElementById('61'); if (elem59.checked == true) { if (elem60.checked || elem61.checked) { //non fa niente } else { //nessuno dei 2 è selezionato. elem60.checked = true; } } else { elem60.checked = false; elem61.checked = false; } } function max3checkTerzi() { arraySelezionabili = new Array('288', '289', '290', '300'); var maxElements = arraySelezionabili.length; var elemcheck = 0; for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == true) elemcheck = elemcheck + 1; } if (elemcheck == 3) { //Disabilito quelli che non sono stati selezionati, in modo da bloccare possibili altre selezioni for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == false) document.getElementById(arraySelezionabili[j]).disabled = true; } } else if (elemcheck < 3) { // Abilito tutti gli elementi, perche sono tutti selezionabili for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { document.getElementById(arraySelezionabili[j]).disabled = false; } } else if (elemcheck > 3) { //Disabilito e deseleziono gli ultimi elementi (fissi) in modo da avere sempre massimo 3 selezioni. var elem300 = document.getElementById('300'); elem300.checked = false; elem300.disabled = true; document.getElementById('60').checked = true; document.getElementById('61').checked = false; } }