﻿//resize della finestra
function maximizeWindow() {
    window.moveTo(0,0);    
	window.resizeTo(screen.availWidth, screen.availHeight);
}

// Memorizza nei campi hidden i nodi selezionati e la descrizione breve della selezione, riportando la stessa descrizione anche in modo visibile all'interno della pagina
function SalvaSceltaTreeView(TreeViewPrefixId, PtrShowDescrControlID, SelezControlID, SelezDescrControlID) {        
    var listChecked= TreeViewListChecked(TreeViewPrefixId);
    var filtroDescrControlID= getElementByPartialId(PtrShowDescrControlID).value;
    if (listChecked.length>0) {
        var primaVirgola = listChecked.indexOf(',');            
        var testoFiltro = document.getElementById(listChecked.substring(0, primaVirgola)).alt.replace("'", "\'");            
        if (listChecked.indexOf(',', primaVirgola+1) > 0)
            testoFiltro = testoFiltro + ", ...";            
        document.getElementById(filtroDescrControlID).innerHTML = "&nbsp;(" + testoFiltro + ")";            
    } 
    else {
        document.getElementById(filtroDescrControlID).innerHTML = "";
    }        
    getElementByPartialId(SelezControlID).value = listChecked;
    getElementByPartialId(SelezDescrControlID).value = document.getElementById(filtroDescrControlID).innerHTML;
}

// Restituisce una stringa con l'elenco dei check box selezionati nella treeview i cui checkbox sono identificati dal prefisso TreeViewPrefix.
// (come la funzione ob_t2_list_checked() di obout ma con in più la gestione del paraametro che permette di "pescare" solo da una treeview specifica)
function TreeViewListChecked(TreeViewPrefixId) {
	var ob_t2in,ob_t2s,ob_t2checked="";
	ob_t2in=document.getElementsByTagName("input");
	for (var i=0; i<ob_t2in.length; i++) {
		ob_t2s=ob_t2in[i].id;
		if ((ob_t2s.substr(0,TreeViewPrefixId.length)==TreeViewPrefixId) && (ob_t2in[i].checked)) {
			ob_t2checked=ob_t2checked+ob_t2s+",";
		}
	}
	return ob_t2checked;
}

//deseleziona tutti i checkbox che iniziano per chkIndexOfName
function unselectAll(chkIndexOfName) {
	with (document.forms[0]) {
		var i = 0;
		for (i = 0; i < elements.length; i++) {
			if (elements[i].name.indexOf(chkIndexOfName)>-1) {
				elements[i].checked = false;
			}
		}
	}
	return false;
}

// restituisce l'elemento del DOM il cui id contiene quello passato (quando asp.net genere l'html decora gli id dei controlli rispetto a quanto definito nel markup contenuto negli aspx)
function getElementByPartialId(partialId) {
	with (document.forms[0]) {
		var i = 0;
		for (i = 0; i < elements.length; i++) {
			if (elements[i].id.indexOf(partialId) > -1) {
				return elements[i];
			}
		}
	}	
}

//intercetta la scadenza della sessione e forza il re-login al portale
function expireSession(loginPage) {
    window.location = loginPage;
}

//seleziona tutti i checkbox di una gridview
function SelectAllCheckboxes(spanChk){
    var oItem = spanChk.children;
    var theBox=(spanChk.type=="checkbox")?spanChk:spanChk.children.item[0];
    xState=theBox.checked;
    elm=theBox.form.elements;
    for(i=0;i<elm.length;i++)
        if(elm[i].type=="checkbox" && elm[i].id!=theBox.id) {  
            if(elm[i].checked!=xState)
            elm[i].click();
        }
}