// 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 + "|"; } } } //alert('check_all_in_document:' + hiddenfield.value); } 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 + "|"; } } } } //alert('check_all_in_document_stampaDANILO:' + hiddenfield.value); } 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) { if (nd[0].id != '245') { // gestione ad hoc solo per l'elemento 245 (da sottoscrizione) dell'albero di monitoraggio nd[0].checked = chk1; } } goDeeperUnChecked(obj.parentNode.previousSibling); } } return; } function disableOtherRadio(obj) { var treeNode = obj; var nomeGruppo = treeNode.name; var gruppoRadio = false; //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; if (head.tagName == "TABLE") { //recuperiamo il checkbox var matchElement = head.getElementsByTagName("INPUT"); if (matchElement.length > 0) { if (matchElement[0].id != '245') { // gestione ad hoc solo per l'elemento 245 (da sottoscrizione) dell'albero di monitoraggio matchElement[0].checked = true; } } if (matchElement[0].type == "radio") { if (matchElement[0].id != '245') { // gestione ad hoc solo per l'elemento 245 (da sottoscrizione) dell'albero di monitoraggio disableOtherRadio(matchElement[0]); // d.lisena } } } 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 targhettaLabel(obj) { // if (obj.tagName == "INPUT" && obj.type == "radio") { // if (obj.id == "244") { // // andiamo a cambiare il contenuto del hidden che rappresenta la parte dinamica della label // label = new String(document.getElementById('MyTreeView1n37').innerHTML); // label2 = new String(document.getElementById('MyTreeView1n38').innerHTML); // label = label.replace("versato netto", "risorse apportate"); // label = label.replace("sottoscrizione", "associazione"); // label2 = label2.replace("sottoscrizione", "associazione"); // document.getElementById('MyTreeView1n37').innerHTML = label; // document.getElementById('MyTreeView1n38').innerHTML = label2; // } // if (obj.id == "245") { // // andiamo a cambiare il contenuto del hidden che rappresenta la parte dinamica della label // alert('quando ci passa qua'); // label = new String(document.getElementById('MyTreeView1n37').innerHTML); // label2 = new String(document.getElementById('MyTreeView1n38').innerHTML); // label = label.replace("risorse apportate", "versato netto"); // label = label.replace("associazione", "sottoscrizione"); // label2 = label2.replace("associazione", "sottoscrizione"); // document.getElementById('MyTreeView1n37').innerHTML = label; // document.getElementById('MyTreeView1n38').innerHTML = label2; // } // } //} /// d.lisena eliminare questa funzione quando non si avrà piu il blocco del periodo da associazione //function periodoAssociazioneDisabilitato() { //// label = new String(document.getElementById('MyTreeView1n37').innerHTML); //// label2 = new String(document.getElementById('MyTreeView1n38').innerHTML); //// label = label.replace("risorse apportate", "versato netto"); //// label = label.replace("associazione", "sottoscrizione"); //// label2 = label2.replace("associazione", "sottoscrizione"); //// document.getElementById('MyTreeView1n37').innerHTML = label; //// document.getElementById('MyTreeView1n38').innerHTML = label2; //} /// Disabilita gli elementi Rappresentazioni separate (2 grafici) per il report di monitoraggio e proposta. //function Disabilita2GraficiRischio() { // //alert('Disabilita2GraficiRischio'); // // // monitoraggio // var element273 = document.getElementById('273'); // if (element273 != null) { // element273.disabled = true; // element273.checked = false; // } // // proposta // var element306 = document.getElementById('306'); // if (element306 != null) { // element306.disabled = true; // element306.checked = false; // } // //} /// Rimpiazza a seconda della tipologia di periodo selezionato // le etichette per i Dati di performance da associazione a sottoscrizione e viceversa. function SostituzioneLabelAssociazioneSottoscrizione() { var elementDaAssociazione = document.getElementById('244'); var elementDaSottoscrizione = document.getElementById('245'); if (elementDaAssociazione != null && elementDaSottoscrizione != null) { label = new String(document.getElementById('MyTreeView1n46').innerHTML); label2 = new String(document.getElementById('MyTreeView1n47').innerHTML); if (elementDaAssociazione.checked == true) { //alert('sostituzione da sottoscrizione a associazione'); // Sostituisco le label dei rendimenti da sottoscrizione con quelli da associazione label = label.replace("versato netto e utile/perdita da sottoscrizione", "versato netto e utile/perdita da associazione"); label2 = label2.replace("rendimento da sottoscrizione", "rendimento da associazione"); } else if (elementDaSottoscrizione.checked == true) { //alert('sostituzione da associazione a sottoscrizione'); // Sostituisco le label dei rendimenti da associazione con quelli da sottoscrizione label = label.replace("versato netto e utile/perdita da associazione", "versato netto e utile/perdita da sottoscrizione"); label2 = label2.replace("rendimento da associazione", "rendimento da sottoscrizione"); } else { // Sostituisco le label dei rendimenti da sottoscrizione con quelli da associazione label = label.replace("versato netto e utile/perdita da sottoscrizione", "versato netto e utile/perdita da associazione"); label2 = label2.replace("rendimento da sottoscrizione", "rendimento da associazione"); } document.getElementById('MyTreeView1n46').innerHTML = label; document.getElementById('MyTreeView1n47').innerHTML = label2; } } //Viene richiamata solo dal report di monitoraggio //e da la possibilità di scegliere un massimo di 3 selezioni tra 5 possibili sezioni. //Disabilita anche l'elemento 273 "Rappresentazioni separate (2 grafici)" function max3check() { //alert('max3check'); // Se l'elemento 239 (report monitoraggio) è selezionato deve essere sempre selezionato e disabilitato l'elemento 240. // 239 = Dettaglio prodotti per area di bisogno // 240 = Mostra controvalore elem239 = document.getElementById('239'); if (elem239 != null) { elem240 = document.getElementById('240'); elem240.checked = elem239.checked; elem240.disabled = elem239.checked; } else { return; //Non sono sul report di monitoraggio e non ho dunque la necessità del max3check } //Disabilita l'elemento 273 "Rappresentazioni separate (2 grafici)" //Disabilita2GraficiRischio(); arraySelezionabili = new Array('241', '247', '248', '249', '279'); var maxElements = arraySelezionabili.length; var elemcheck = 0; try { for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == true) elemcheck = elemcheck + 1; } } catch (e) { } if (elemcheck == 3) { //Disabilito quelli che non sono stati selezionati, in modo da bloccare possibili altre selezioni try { for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { if (document.getElementById(arraySelezionabili[j]).checked == false) document.getElementById(arraySelezionabili[j]).disabled = true; } } catch (e) { } } else if (elemcheck < 3) { // Abilito tutti gli elementi, perche sono tutti selezionabili try { for (j = 0; j <= arraySelezionabili.length - 1; j = j + 1) { document.getElementById(arraySelezionabili[j]).disabled = false; } } catch (e) { } } else if (elemcheck > 3) { //Disabilito e deseleziono gli ultimi elementi (fissi) in modo da avere sempre massimo 3 selezioni. var elem248 = document.getElementById('248'); var elem249 = document.getElementById('249'); elem248.checked = false; elem248.disabled = true; elem249.checked = false; elem249.disabled = true; } } //Questa funzione gestisce il vincolo funzionale che se è selezionato l'opzione // "Non inserire i riferimenti alla pianificazione" allora devono essere disabilitati e non selezionati // la voce "Confronto tra asset allocation attuale e asset allocation di pianificazione" nonchè i suoi figli // Questa funzione viene richiamata all'interno del file reportMonitoraggio_Alberatura.aspx.cs nei seguenti punti // 1) Nel metodo PageLoad // gestioneNoRiferimentoPianificazione e inserisciRiferimentiPianificazione non sono utilizzate in reportMonitoraggio_Alberatura.aspx.cs. function gestioneNoRiferimentoPianificazione(completo) { radio = document.getElementById('RadioButtonList2_0'); if (radio.checked) { elem235 = document.getElementById('235'); elem235.checked = false; elem235.disabled = true; elem236 = document.getElementById('236'); elem236.checked = false; elem236.disabled = true; elem237 = document.getElementById('237'); elem237.checked = false; elem237.disabled = true; } // if (completo) // loadCompleto(); // else // max2check(); } function inserisciRiferimentiPianificazione() { radio = document.getElementById('RadioButtonList2_1'); if (radio.checked) { elem235 = document.getElementById('235'); elem235.checked = false; elem235.disabled = false; elem236 = document.getElementById('236'); elem236.checked = false; elem236.disabled = false; elem237 = document.getElementById('237'); elem237.checked = false; elem237.disabled = false; } } // Questa funzione gestisce il vincolo funzionale che se è selezionato l'opzione // "Non inserire i riferimenti alla pianificazione" allora devono essere disabilitati e non selezionati // la voce "Confronto tra asset allocation attuale e asset allocation di pianificazione" nonchè i suoi figli function gestioneRiferimentiPianificazione() { radio = document.getElementById('RadioButtonList2_0'); if (radio.checked) { elem235 = document.getElementById('235'); elem235.checked = false; elem235.disabled = true; elem236 = document.getElementById('236'); elem236.checked = false; elem236.disabled = true; elem237 = document.getElementById('237'); elem237.checked = false; elem237.disabled = true; } else { elem235 = document.getElementById('235'); elem235.checked = false; elem235.disabled = false; elem236 = document.getElementById('236'); elem236.checked = false; elem236.disabled = false; elem237 = document.getElementById('237'); elem237.checked = false; elem237.disabled = false; } } function treeViewCheck(obj) { // prendiamo il nodo che ha scatenato l'evento // var obj = (typeof event !== 'undefined') ? event.srcElement : e.target; var objSelezionato = obj; var treeNodeFound = false; var gruppoRadio = false; var firstRadioFound = false; var nameRadioGroup; var parentNodeFound = false; var checkedState; //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; } } 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') { //d.lisena inputs[0].checked = false; } else { inputs[0].checked = checkedState; } } } if (inputs[0].type == "radio") { nameRadioGroup = inputs[0].name; firstRadioFound = true; } } 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 == "239" && treeNode.checked == true) { SostituzioneLabelAssociazioneSottoscrizione(); //periodoAssociazioneDisabilitato(); //d.lisena eliminare quando non si avrà piu il blocco del periodo da associazione } if (treeNode.id == "219" && treeNode.checked == true) { elem244 = document.getElementById('244'); // d.lisena rimettere quando non si avrà piu il blocco del periodo da associazione elem244.checked = true; // d.lisena rimettere quando non si avrà piu il blocco del periodo da associazione //elem245 = document.getElementById('245'); //d.lisena eliminare quando non si avrà piu il blocco del periodo da associazione //elem245.checked = true; //d.lisena eliminare quando non si avrà piu il blocco del periodo da associazione SostituzioneLabelAssociazioneSottoscrizione(); //periodoAssociazioneDisabilitato(); //d.lisena eliminare quando non si avrà piu il blocco del periodo da associazione } } //end if // Se l'elemento 239 (report monitoraggio) è selezionato deve essere sempre selezionato e disabilitato l'elemento 240. // 239 = Dettaglio prodotti per area di bisogno // 240 = Mostra controvalore var elem239 = document.getElementById('239'); if (elem239 != null) { elem240 = document.getElementById('240'); elem240.checked = elem239.checked; elem240.disabled = elem239.checked; } // Se l'elemento 269 (report proposta) è selezionato deve essere sempre selezionato e disabilitato l'elemento 301. var elem269 = document.getElementById('269'); if (elem269 != null) { elem301 = document.getElementById('301'); if (elem269.checked == true) { elem301.checked = elem269.checked; elem301.disabled = elem269.checked; } else { elem301.checked = false; elem301.disabled = elem269.disabled; } } //CASO RadioButton if (obj.tagName == "INPUT" && obj.type == "radio") { // Prova Rattà //targhettaLabel(obj); 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) { if (inputs[0].nocheckbyparent == '1') { //d.lisena inputs[0].checked = false; } else { //alert(inputs[0].id); //alert(inputs[0].getAttribute('nocheckbyparent')); //var elemChecked = inputs[0].getAttribute('nocheckbyparent') == 1 ? true : false; //alert(elemChecked); inputs[0].checked = checkedState; //checkedState; } } } } //end if 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 //Se tutti i figli sono unchecked anche il padre è unchecked if (!treeNode.checked) { goDeeperUnChecked(obj); } //end if - unChecked } //end if - tagName = TABLE } //end if max3check(); //Disabilita2GraficiRischio(); SostituzioneLabelAssociazioneSottoscrizione(); // GESTIONE AD HOC PER l'elemento "da associazione". // se non è selezionato ne il periodo "da associazione" ne il periodo "da sottoscrizione" // metto di defaul la sezione su "da associazione" var elem244 = document.getElementById('244'); // da associazione var elem245 = document.getElementById('245'); // da sottoscrizione if (elem244 != null && elem245 != null) { if (elem244.checked == false && elem245.checked == false) { elem244.checked = true; } } // In Proposta se seleziono "Confronto fra asset allocation di proposta e asset allocation di pianificazione" (125) // deve essere abilitato "Macro asset class" (126), di default verrebbe selezionato l'ultimo radio button (in questo caso 127) var idSelezionato = objSelezionato.id; if (idSelezionato == '125') { var elem126 = document.getElementById('126'); elem126.checked = true; } }