2025-04-15 12:10:19 +02:00

789 lines
28 KiB
JavaScript

// 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;
}
}