var activewindow = 1
function loadContent() {
	document.getElementById('loadingMessageContainer').style.display = ''
	bb.document.getElementById('Help').setAttribute('open', 'false');
	bb.document.getElementById('Grafici').setAttribute('open', 'false');
//	bb.document.getElementById('Mappe').setAttribute('open', 'false');
	var ur = setUrl()
	var cURL = '/xml/detail.exml?'+ur;
	var oSource = bb.document.getElementById('xmldata');
	var oGrid = bb.document.getElementById('data');
//	var oOpts = bb.document.getElementById('gruppi');
//	bb.command.load(cURL,'GET',null,null,oOpts,'replace');
	var aURL = '/xml/data.exml?'+ur;
	var p2 = bb.document.getElementById('pivot').getProperty("options")[0];
	if (p2.getProperty("selected")) pv = '_pivot';
	else pv=''
	var bURL = '/xml/treegrid'+pv+'.exml?'+ur;
	oSource.setAttribute('url', aURL);
	oSource.refresh;
	bb.command.load(bURL,'GET',null,null,oGrid,'replace');
	loadSelection()
	document.getElementById('loadingMessageContainer').style.display = 'none'
}
function loadMainGraph() {
//	bb.document.getElementById('Mappe').setAttribute('open', 'false');
	bb.document.getElementById('Help').setAttribute('open', 'false');
	bb.document.getElementById('Grafici').setAttribute('open', 'true');
	bb.document.getElementById('Grafici').setAttribute('width', '100%');
	bb.document.getElementById('Grafici').setAttribute('height', '100%');
	bb.document.getElementById('chartbox').setAttribute('width', '100%');
	bb.document.getElementById('chartbox').setAttribute('height', '100%');
	bb.document.getElementById('chartbox').setAttribute('top', '0');
	bb.document.getElementById('chartbox').setAttribute('left', '0');
	document.getElementById('loadingMessageContainer').style.display = ''
	var grc = bb.document.getElementById('gr_colonne');
	var z = grc.getProperty('value');
	var ur = setUrlGR()
	var schart = new FusionCharts("/assets/Charts/MSColumn3D.swf", "chartbox", "100%", "100%", "0", "0");
	var fck = escape("/xml/chart_main.exml?colonna="+z+"&"+ur)
	schart.setDataURL(fck);
	schart.render("chartbox");
	loadSelection ();
	document.getElementById('loadingMessageContainer').style.display = 'none'
}
function loadSelection () {
	var urb = setUrl();
	var oSel = bb.document.getElementById('selezione');
	var dURL = "/xml/selection.exml?"+urb;
	bb.command.load(dURL,'GET',null,null,oSel,'replace');
}
function loadMainMap() {
	document.getElementById('loadingMessageContainer').style.display = ''
	var grc = bb.document.getElementById('ma_colonne');
	var z = grc.getProperty('value');
	var ur = setUrl()
	var oMap = bb.document.getElementById('mapbox');
	var aURL = '/xml/map.exml?colonna='+z+'&'+ur;
	bb.command.load(aURL,'GET',null,null,oMap,'replaceChildren',hideMessage);
	loadSelection()
}
function hideMessage(){document.getElementById('loadingMessageContainer').style.display = 'none'}
function setContent() {
	var ur = setUrl()
	var aURL = '/xml/data.exml?'+ur;
	var oSource = bb.document.getElementById('xmldata');
	oSource.setAttribute('url', aURL);
}
function modmap() {
	bb.document.getElementById('Help').setAttribute('open', 'false');
	bb.document.getElementById('Grafici').setAttribute('open', 'false');
	bb.document.getElementById('Mappe').setAttribute('open', 'true');
	loadMainMap();
}
function esportxls() {
	var oGrid = bb.document.getElementById('esporta');
	oGrid.innerHTML = "";
	var ur = setUrl()
	var aURL = '/xml/exportxls.exml?'+ur;
	bb.command.load(aURL,'GET',null,null,oGrid,'replace');
	loadSelection()
}
function esporthtml() {
	var oGrid = bb.document.getElementById('esporta');
	oGrid.innerHTML = "";
	var ur = setUrl()
	var aURL = '/xml/exporthtml.exml?'+ur;
	bb.command.load(aURL,'GET',null,null,oGrid,'replace');
	loadSelection()
}
function loadGraph(codice,etichetta) {
	var mywindow = bb.document.getElementById('w'+activewindow);
	mywindow.setAttribute('label', etichetta);
	mywindow.open()
	renderGraphs(codice,etichetta,activewindow)
	activewindow++
	if (activewindow == 5) activewindow = 1
	document.getElementById('loadingMessageContainer').style.display = 'none'
}
function setUrl() {
	var anno = bb.document.getElementById('anno');
	var vanno = anno.getProperty('value');
	var aggrega = bb.document.getElementById('aggrega');
	var vaggrega = aggrega.getProperty('value');
	var aggrega2 = bb.document.getElementById('aggrega2');
	var vaggrega2 = aggrega2.getProperty('value');
	var pivot = bb.document.getElementById('pivotf');
	var vpivot = pivot.getProperty('value');
	var pivotd = bb.document.getElementById('pivotd');
	var vpivotd = pivotd.getProperty('value');
	var vfiltro = saveFilters();
	var nfiltro = nameFilters();
	var lfiltro = labelFilters();
	var vdata = saveData2();
	var vgruppi = saveGroups();
	var p1 = bb.document.getElementById('perc');
	var af1 = p1.getProperty("options");
	if (af1[0].getProperty("selected")) z = true
	else z = false
	var p2 = bb.document.getElementById('pivot');
	var af2 = p2.getProperty("options");
	if (af2[0].getProperty("selected")) y = true
	else y = false
	nocache	= Math.random()*1234567
	var aURL = "pivot="+y+"&perc="+z+"&anno="+escape(vanno)+"&aggrega="+escape(vaggrega)+"&aggrega2="+escape(vaggrega2)+"&filtro="+escape(vfiltro)+"&nfiltro="+escape(nfiltro)+"&lfiltro="+escape(lfiltro)+"&dataset="+escape(vdata)+"&gruppi="+escape(vgruppi)+"&pivotf="+escape(vpivot)+"&pivotd="+escape(vpivotd)+"&nocache="+nocache;
	return aURL;
}
function setUrlSel() {
	var anno = bb.document.getElementById('anno');
	var vanno = anno.getProperty('value');
	var aggrega = bb.document.getElementById('aggrega');
	var vaggrega = aggrega.getProperty('value');
	var aggrega2 = bb.document.getElementById('aggrega2');
	var vaggrega2 = aggrega2.getProperty('value');
	var pivot = bb.document.getElementById('pivotf');
	var vpivot = pivot.getProperty('value');
	var pivotd = bb.document.getElementById('pivotd');
	var vpivotd = pivotd.getProperty('value');
	var lfiltro = labelFilters();
	var vdata = saveData2();
	var vgruppi = saveGroups();
	var p1 = bb.document.getElementById('perc');
	var af1 = p1.getProperty("options");
	if (af1[0].getProperty("selected")) z = true
	else z = false
	var p2 = bb.document.getElementById('pivot');
	var af2 = p2.getProperty("options");
	if (af2[0].getProperty("selected")) y = true
	else y = false
	nocache	= Math.random()*1234567
	var aURL = "pivot="+y+"&perc="+z+"&anno="+vanno+"&aggrega="+vaggrega+"&aggrega2="+vaggrega2+"&lfiltro="+lfiltro+"&dataset="+vdata+"&gruppi="+vgruppi+"&pivotf="+vpivot+"&pivotd="+vpivotd+"&nocache="+nocache;
	return aURL;
}
function setUrlGR() {
	var anno = bb.document.getElementById('anno');
	var vanno = anno.getProperty('value');
	var aggrega = bb.document.getElementById('aggrega');
	var vaggrega = aggrega.getProperty('value');
	var aggrega2 = bb.document.getElementById('aggrega2');
	var vaggrega2 = aggrega2.getProperty('value');
	var pivot = bb.document.getElementById('pivotf');
	var vpivot = pivot.getProperty('value');
	var pivotd = bb.document.getElementById('pivotd');
	var vpivotd = pivotd.getProperty('value');
	var vfiltro = saveFilters();
	var vdata = saveData2();
	var vgruppi = saveGroups();
	var p1 = bb.document.getElementById('perc');
	var af1 = p1.getProperty("options");
	if (af1[0].getProperty("selected")) z = true
	else z = false
	var p2 = bb.document.getElementById('pivot');
	var af2 = p2.getProperty("options");
	if (af2[0].getProperty("selected")) y = true
	else y = false
	nocache	= Math.random()*1234567
	var aURL = 'pivot='+y+'&perc='+z+'&anno='+vanno+'&aggrega='+vaggrega+'&aggrega2='+vaggrega2+'&filtro='+vfiltro+'&dataset='+vdata+'&gruppi='+vgruppi+'&pivotf='+vpivot+'&pivotd='+vpivotd+'&nocache='+nocache;
	return aURL;
}
function renderGraphs(codice,etichetta,activewin) {
	var ur = setUrlGR();
	var show = new Array();
	var l = graphs_id.length
	k = 1;
	for(i=0;i<l;i++) {
//		var chart = new FusionCharts("/assets/Charts/"+graphs_gr[i]+".swf", "ChId", "100%", "100%", "0", "0", "FFFFFF", "exactFit");
		var chart = new FusionCharts("/assets/Charts/"+graphs_gr[i]+".swf", "ChId", "100%", "100%", "0");
		chart.setDataURL(escape("/xml/chart_"+graphs_gr[i]+".exml?numchart="+k+"&codice="+codice+"&"+ur+"&set="+graphs_id[i]));
		chart.render("chart"+graphs_id[i]+"-"+activewin);
		k++;
	}
}
function openFilters() {
	var mywindow = bb.document.getElementById('filters');
	var state = mywindow.getProperty('open');
	if(state) mywindow.close()
	else mywindow.open()
}
function openOptions() {
	var mywindow = bb.document.getElementById('options');
	var state = mywindow.getProperty('open');
	if(state) mywindow.close()
	else mywindow.open()
}
function saveFilters() {
	var l = filterNodes.length
	var filterResult = new Array(l)
	var output = '';
	for(i=0;i<l;i++) {
	 	var nofield = 0;
		filterResult[i] = '';
		var field = bb.document.getElementById(filterNodes[i]);
		try {var afilter = field.getProperty("options");}
		catch(err) {nofield = 1}
		if (!nofield) {	
			k = 0;
			for(var j=0;j<afilter.length;j++) {
				if (afilter[j].getProperty("selected")) {
					if (filterResult[i].length==0) filterResult[i]="'"+ afilter[j].getProperty("value") + "'"
					else filterResult[i]=filterResult[i]+ ",'" + afilter[j].getProperty("value") + "'"
					k++;
				}
			}
			if (k==j || k==0) filterResult[i]=''
			else output = output + " and " + filterFieldnames[i] + " in (" + filterResult[i] + ")"
		}
	}
	return output;
}
function nameFilters() {
	var l = filterNodes.length
	var filterResult = new Array(l)
	var output = '';
	re = new RegExp("\W", "g");
 	var f = 0;
	for(i=0;i<l;i++) {
	 	nofield = 0;
		filterResult[i] = '';
		var field = bb.document.getElementById(filterNodes[i]);
		try {var afilter = field.getProperty("options");}
		catch(err) {nofield = 1}
		if (!nofield) {	
			k = 0;
			f = 0;
			for(var j=0;j<afilter.length;j++) {
				if (afilter[j].getProperty("selected")) {
					f = 1;
					filterResult[i]=filterResult[i]+afilter[j].getProperty("value").replace(re,'')
					k++;
				}
			}
			if (f) output = output+'_'+filterNodes[i]+filterResult[i]
		}
	}
	return output;
}
function labelFilters() {
	var l = filterNodes.length
	var filterResult = new Array(l)
	var output = "";
	re = new RegExp("\W", "g");
 	var f = 0;
	for(i=0;i<l;i++) {
	 	nofield = 0;
		filterResult[i] = "";
		var field = bb.document.getElementById(filterNodes[i]);
		try {var afilter = field.getProperty("options");}
		catch(err) {nofield = 1}
		if (!nofield) {	
			k = 0;
			f = 0;
			for(var j=0;j<afilter.length;j++) {
				if (afilter[j].getProperty("selected")) {
					f = 1;
					if (filterResult[i].length==0) filterResult[i]=afilter[j].getProperty("textContent").replace(re,"")
					else filterResult[i]=filterResult[i]+ "???" + afilter[j].getProperty("textContent").replace(re,"")
					k++;
				}
			}
			if (f && output.length) output = output+"!!!"+filterLabels[i]+": "+filterResult[i]
			else if (f) output = filterLabels[i]+": "+filterResult[i]
		}
	}
	return output;
}

function showLast() {
	var oRow = bb.document.getElementById('data').selectNodes("view()/div[3]/table/tbody/tr/td[2]/div");
	z = oRow.length - 1
	bb.command.setStyle(oRow[z].parentNode.parentNode,{'background-color':'#8A85A9'});
	bb.command.setStyle(oRow[z].parentNode.parentNode,{'color':'white'});
	document.getElementById('loadingMessageContainer').style.display = 'none'
}
function setCheckAll(field,n) {
	var all = bb.document.getElementById("T-"+field);
	var field = bb.document.getElementById(field);
	var aall = all.getProperty("options");
	var afilter = field.getProperty("options");
	bb.setProperty(aall[0],"selected","true");
	for(var j=0;j<afilter.length;j++) {
		bb.setProperty(afilter[j],"selected",n);
	}
}
function setChecks(field,n) {
	var all = bb.document.getElementById("T-"+field);
	var field = bb.document.getElementById(field);
	var aall = all.getProperty("options");
	var afilter = field.getProperty("options");
	k = 0;
	for(var j=0;j<afilter.length;j++) {
		if (afilter[j].getProperty("selected")) {
			k++;
		}
	}
	if (k == 0) aall[0].setProperty("selected",true)
	else aall[0].setProperty("selected",false)
}
function setCheckAll2(field,n,pid) {
	var all = bb.document.getElementById("Z-"+field);
	var field = bb.document.getElementById(field);
	var aall = all.getProperty("options");
	var afilter = field.getProperty("options");
//	alert (aall[0].getProperty("selected"))
	for(var j=0;j<afilter.length;j++) {
		bb.setProperty(afilter[j],"selected",n);
	}
	var l = datagroup_id.length
	for(i=0;i<l;i++) {
		if (datagroup_ds[i] == pid) {
			document.getElementById('C-'+datagroup_ds[i]).checked = "checked"
		}
	}
}
function setChecks2(field,n,pid) {
	var all = bb.document.getElementById("Z-"+field);
	var field = bb.document.getElementById(field);
	var aall = all.getProperty("options");
	var afilter = field.getProperty("options");
	k = 0;
	for(var j=0;j<afilter.length;j++) {
		if (afilter[j].getProperty("selected")) {
			k++;
		}
	}
	if (k == 0) aall[0].setProperty("selected",true)
	else aall[0].setProperty("selected",false)
	var l = datagroup_id.length
	for(i=0;i<l;i++) {
		if (datagroup_ds[i] == pid) {
			if (k == 0) document.getElementById('C-'+datagroup_ds[i]).checked = ""
			else document.getElementById('C-'+datagroup_ds[i]).checked = "checked"
		}
	}
}
function hideMenu() {
	var menup = bb.document.getElementById('panelmenu');
	menup.setAttribute("columns","15px 1px *")
}
function showMenu() {
	var menup = bb.document.getElementById('panelmenu');
	menup.setAttribute("columns","1px 220px *")
}
function dataCheck(obj,id,pid) {
	var l = datasets_id.length
	var state = obj.checked;
	var sstate = obj.checked;
	var sons = new Array();
	for(i=0;i<l;i++) {
		if (datasets_pid[i] == pid) {
			if (!document.getElementById('C-'+datasets_id[i]).checked) sstate = false
		}
	}
	if (pid > 0) document.getElementById('C-'+pid).checked = sstate;
	for(i=0;i<l;i++) {
		if (datasets_id[i] == pid && datasets_pid[i] > 0) document.getElementById('C-'+datasets_pid[i]).checked = sstate
		if (datasets_pid[i] == id) {
			document.getElementById('C-'+datasets_id[i]).checked = state;
			sons.push(datasets_id[i])
		}
	}
	var s = sons.length
	for(j=0;j<s;j++) {
		for(i=0;i<l;i++) {
			if (datasets_pid[i] == sons[j]) {
				document.getElementById('C-'+datasets_id[i]).checked = state;
			}
		}
	}
}
function saveData() {
	var l = datasets_id.length
	var output = '';
	for(i=0;i<l;i++) {
		if (document.getElementById('C-'+datasets_id[i]).checked) {
				if (output.length==0) output=datasets_id[i]
				else output=output+ "," + datasets_id[i]
		}
	}
	return output;
}
function saveData2() {
	var l = datagroup_id.length
	var filterResult = new Array(l)
	var output = '';
	for(i=0;i<l;i++) {
	 	var nofield = 0;
		filterResult[i] = '';
		var all = bb.document.getElementById('ALL-'+datagroup_id[i]);
		var field = bb.document.getElementById(datagroup_id[i]);
		try {var afilter = field.getProperty("options");}
		catch(err) {nofield = 1}
		if (!nofield) {	
			k = 0;
			for(var j=0;j<afilter.length;j++) {
				if (afilter[j].getProperty("selected") || all.getProperty("selected")) {
					if (filterResult[i].length==0) filterResult[i]="'"+afilter[j].getProperty("value")+"'"
					else filterResult[i]=filterResult[i]+ ",'" + afilter[j].getProperty("value") + "'"
					k++;
				}
			}
			if (output.length && filterResult[i].length) output = output+','+filterResult[i]
			else if (filterResult[i].length) output = filterResult[i]
		}
	}
	return output;
}
function saveGroups() {
	 var c = bb.document.getElementById('gruppi')
var s = c.getProperty("options");
	var l = s.length
	var output = '';
	for(i=0;i<l;i++) {
		if (s[i].getProperty("selected")) {
			if (output.length==0) output=s[i].getProperty("value")
			else output=output+ "," + s[i].getProperty("value")
		}
	}
	return output;
}
function pivotchange(n) {
	var p2 = bb.document.getElementById('pivot').getProperty("options")[0];
	if (p2.getProperty("selected")) pv = z=1;
	else z=0
	if (z) bb.setProperty(bb.document.getElementById('pivotf'),"disabled",false);
	else bb.setProperty(bb.document.getElementById('pivotf'),"disabled",true);
	if (z) bb.setProperty(bb.document.getElementById('pivotd'),"disabled",false);
	else bb.setProperty(bb.document.getElementById('pivotd'),"disabled",true);
}
                               

