function showWaiting()
{
	voDiv = document.getElementById("divWaiting");
	voDiv.style.visibility = "visible";
	voDiv.style.display = "block";
}
function hideWaiting()
{
	voDiv = document.getElementById("divWaiting");
	voDiv.style.visibility = "hidden";
	voDiv.style.display = "none";
}

function openFilemanager(vsReturnField)
{
	window.open("?module=fileManagerWrapper&method=popup&field="+vsReturnField,'popupFileManager',"status=1,toolbar=0,location=1,menubar=0,resizable=0,width=600,height=500");
}

/*
Ritorna le dimensioni della pagina, valida per tutti i browser
se type=w, ritorna la larghezza, altrimenti l'altezza
*/
function getPageDim(type)
{
	if( window.innerHeight && window.scrollMaxY ) // Firefox 
	{
		pageWidth = window.innerWidth + window.scrollMaxX;
		pageHeight = window.innerHeight + window.scrollMaxY;
	}
	else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
	{
		pageWidth = document.body.scrollWidth;
		pageHeight = document.body.scrollHeight;
	}
	else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
	{ 
		pageWidth = document.body.offsetWidth + document.body.offsetLeft; 
		pageHeight = document.body.offsetHeight + document.body.offsetTop; 
	}
	
	if (type=="w")
		return pageWidth;
	else
		return pageHeight;
		
}

//nasconde le select che "bucano" i div, solo su IE 6
function toggleSelect()
{
	if (vbIE6)
	{
		//inserire qui gli ID delle select che possono dare problemi al layer dei filtri
		var vaSelect = new Array;
		vaSelect[0] = "selPage2Jump";
		
		for (i=0;i<vaSelect.length;i++)
		{
			voSel = document.getElementById(vaSelect[i]);
			if (voSel)
			{
				if (voSel.style.visibility == "hidden")
					voSel.style.visibility = "visible";
				else
					voSel.style.visibility = "hidden";	
			}
		}
	}	
}

function showFilters()
{
	//document.getElementById("light").innerHTML = document.getElementById("filters_content").innerHTML;
	overlay_show();
}

function hideFilters()
{
	overlay_hide();
}

function showSave()
{
	//document.getElementById("light2").innerHTML = document.getElementById("save_content").innerHTML;
	overlay2_show();
}

function hideSave()
{
	overlay2_hide();
}

function submit_login()
{
	document.getElementById("form_login").submit();
}


function optionsApply(okConfirmGrouped)
{
	if(!confirmGrouped(okConfirmGrouped))
	  return;
	
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=0;
	document.getElementById("view").value=1;	
	document.getElementById("redirect:goToTab").value="";		
	document.getElementById("moveColumn:name").value='';		
	document.getElementById("moveColumn:dir").value='';			
	document.getElementById("options").submit();
}

function optionsSave()
{
	if(document.getElementById("save:name").value=="")
	{
		alert("Occorre inserire un nome da dare alla ricerca da salvare");
		return;
	}
	
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=1;
	document.getElementById("view").value=0;	
	document.getElementById("redirect:goToTab").value="04";	
	document.getElementById("moveColumn:name").value='';		
	document.getElementById("moveColumn:dir").value='';			
	document.getElementById("options").submit();	
}

function optionsApplySave()
{
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=1;
	document.getElementById("view").value=1;	
	document.getElementById("redirect:goToTab").value="";		
	document.getElementById("moveColumn:name").value='';		
	document.getElementById("moveColumn:dir").value='';			
	document.getElementById("options").submit();
}

function optionsApplyOnly()
{
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=0;
	document.getElementById("view").value=0;	
	document.getElementById("redirect:goToTab").value="";		
	document.getElementById("moveColumn:name").value='';		
	document.getElementById("moveColumn:dir").value='';			
	document.getElementById("options").submit();
}

function report(okConfirmGrouped)
{
	if(validateReport())
	{
		//window.alert("Under Construction");
		//return;
		if(!confirmGrouped(okConfirmGrouped))
	  		return;
	  		
		document.getElementById("method").value="report";
		document.getElementById("save:save").value=0;
		document.getElementById("view").value=0;	
		document.getElementById("redirect:goToTab").value="06";		
		document.getElementById("moveColumn:name").value='';		
		document.getElementById("moveColumn:dir").value='';			
		document.getElementById("options").submit();	
	}
}

function validateReport()
{
	if(document.getElementById("report:profile").selectedIndex<1)
	{
		alert("Selezionare il profilo da usare per il report");
		return false;
	}	

	var voSelected = null;
		
	vaSelected = new Object();
	for(i in vaSplit)
	{
		var voElement = document.getElementById(vaSplit[i]);
		if(voElement.selectedIndex!=-1)
		{
			var vsValue = voElement.options[voElement.selectedIndex].value;
			if(vsValue!=S_NULL)
			{
				if(vaSelected[vsValue])
				{
					alert("Ogni colonna puņ essere selezionata una sola volta per le rotture");
					return false;
				}
				vaSelected[vsValue] = 1;
			}
		}
	}
	
	vaSelected = new Object();
	for(i in vaSubtotal)
	{
		var voElement = document.getElementById(vaSubtotal[i]);
		if(voElement.selectedIndex!=-1)
		{
			var vsValue = voElement.options[voElement.selectedIndex].value;
			if(vsValue!=S_NULL)
			{
				if(vaSelected[vsValue])
				{
					alert("Ogni colonna puņ essere selezionata una sola volta per i subtotali");
					return false;
				}
				vaSelected[vsValue] = 1;
			}
		}
	}
	
	//window.alert("ok");
	//return false;
	
	return true;
}

function moveColumn(vsColumn,vsDir)
{
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=0;
	document.getElementById("view").value=0;	
	document.getElementById("redirect:goToTab").value="03";			
	document.getElementById("moveColumn:name").value=vsColumn;		
	document.getElementById("moveColumn:dir").value=vsDir;			
	document.getElementById("options").submit();	
}

function moveAllColumns()
{
	document.getElementById("method").value="actionSetOptions";
	document.getElementById("save:save").value=0;
	document.getElementById("view").value=0;	
	document.getElementById("redirect:goToTab").value="03";			
	document.getElementById("moveColumn:name").value='*';		
	document.getElementById("moveColumn:dir").value='*';			
	document.getElementById("options").submit();	
}


function setRecordPerPage(vsModule,vsMethod,vnRec)
{
	document.location = "index.php?module="+vsModule+"&method=actionSetOptions&redirect:method="+vsMethod+"&recordPerPage="+vnRec;
}

function saveTypeChanged()
{
	//alert('passo');
	if(document.getElementById("saveagg").checked)
	{
		document.getElementById("save:name").value = gaSave.name;
		document.getElementById("save:description").value = gaSave.description;
		document.getElementById("save:flag_public").checked = (gaSave.flag_public==1);
		document.getElementById("save:flag_batch").checked = (gaSave.flag_batch==1);
		document.getElementById("save:flag_batch_report").checked = (gaSave.flag_batch_report==1);
	}
	else
	{
		document.getElementById("save:name").value = "";
		document.getElementById("save:description").value = "";
		document.getElementById("save:flag_public").checked = false;
		document.getElementById("save:flag_batch").checked = false;	
		document.getElementById("save:flag_batch_report").checked = false;		
	}
}

/**
posiziona e ridimensiona il layer dei filtri al centro dell'area visibile
*/
function posLight()
{
	vnWidth = getPageDim("w");
	vnHeight = getPageDim("h");
	if (vnWidth > 1100)
	{
		vnDivWidth = vnWidth-100;
		vnDivLeft = 50;
	}
	else
	{
		vnDivWidth = vnWidth-50;
		vnDivLeft = 10;
	}
	vnDivHeight = vnHeight-20;
	vnDivTop = 10;
	
	document.getElementById("light").style.width = vnDivWidth+"px";
	document.getElementById("light").style.left = vnDivLeft+"px";
	document.getElementById("light").style.height = vnDivHeight+"px";
	document.getElementById("light").style.top = vnDivTop+"px";
}
function resizeListWrapper()
{
	vnWidth = getPageDim("w");
	vnHeight = getPageDim("h");
	vnDivWidth = vnWidth - 212;
	vnDivHeight = vnHeight - 240;
	document.getElementById("lista_table_wrapper").style.width = vnDivWidth+"px";
	document.getElementById("lista_table_wrapper").style.height = vnDivHeight+"px";
	//document.getElementById("lista_table_wrapper").style.overflow = "auto";
}

function resizeEditWrapper()
{
	vnWidth = getPageDim("w");
	vnHeight = getPageDim("h");
	vnDivWidth = vnWidth - 215;
	vnDivHeight = vnHeight - 220;
	vaEditDivs = document.getElementsByClassName("edit_wrapper");
	voDivHelp = document.getElementById("edit_info_help");
	if (voDivHelp)
	{
		//20 e' la fascia di "rispetto" intorno al div dell'help
		vnDivHeight = vnDivHeight - voDivHelp.style.height - 20;
	}
	for (i in vaEditDivs)
	{
		vaEditDivs[i].style.width = vnDivWidth+"px";
		vaEditDivs[i].style.height = vnDivHeight+"px";
	}
}

function loadOptions(module,key)
{
  vsLink = "index.php?module="+module+"&method=actionLoadOptions&redirect:method=main&key="+key;
  if(confirm("Caricando le impostazioni salvate,\nle impostazioni correnti andranno perse.\nContinuare?"))
  	window.location.href = vsLink;
}


function delOptions(module,name,key)
{
  vsLink = "index.php?module="+module+"&method=actionDeleteOptions&&redirect:goToTab=04&redirect:method=main&key="+key;
  if(confirm("Vuoi cancellare l'impostazione '"+name+"' ?"))
  	window.location.href = vsLink;
}

function columnsSetChanged()
{
	var voElement = document.getElementById("columnsSet");
	var vsSet = voElement.options[voElement.selectedIndex].value;
	var vsClassEven = "filters_table_tr_even";
	var vsClassOdd = "filters_table_tr_odd";
	var vnCount = 0;
	for(i in gaColumns)
	{
		var visible = false;

		if(vsSet=="ALL")
			visible=true;
		else if(vsSet=="VISIBLE")
		{
			voCheck = document.getElementById("visibleAndGroup:"+gaColumns[i].name);
			visible=voCheck.checked;
		}
		else if(vsSet=="INVISIBLE")
		{
			voCheck = document.getElementById("visibleAndGroup:"+gaColumns[i].name);
			visible=!voCheck.checked;
		}
		else
		{
			if(gaColumns[i].sets[vsSet])
				visible = true;
		}
		
		var voTR = document.getElementById("columnTR_"+gaColumns[i]["name"]);	
		if(visible)
		{
			if (vnCount%2==0)
				voTR.className=vsClassEven;
			else
				voTR.className=vsClassOdd;
					
			voTR.style.display='';
			vnCount++;
		}	
		else
			voTR.style.display='none';
	}
}

function columnsSelectAll(pbChecked)
{
	for(i in gaColumns)
	{
		var voTR = document.getElementById("columnTR_"+gaColumns[i]["name"]);
		if(voTR.style.display!='none')
		{
			voCheck = document.getElementById("visibleAndGroup:"+gaColumns[i].name);
			voCheck.checked = pbChecked;
		}
	}
}


function confirmGrouped(okConfirmGrouped)
{
	if(okConfirmGrouped=='0')
	   return true;
	
	if(!document.getElementById("visibleAndGroupGroup").checked)
		return window.confirm("Non e' stato impostato il raggruppamento. Questo potrebbe comportare una gran quantita' di righe di risultato. Continuare?");
	else
		return true;
}

function openHelp(psPage,psAnchor)
{
	vsWinW = 900;
	vsWinH = 500;
	vsPagW = getPageDim("w");
	vsPagH = getPageDim("h");
	vsUrl = "src/html/help/index.php";
	if (psPage)
		vsUrl = vsUrl+"?page="+psPage;
	if (psAnchor)
		vsUrl = vsUrl+"&anchor="+psAnchor;	
	window.open(vsUrl,"help","width="+vsWinW+",height="+vsWinH+",top="+((vsPagH-vsWinH)/2)+",left="+((vsPagW-vsWinW)/2));
}

function changeReport(voSelect)
{
	
	vsValue = voSelect.options[voSelect.selectedIndex].value;
	voDivSrc = document.getElementById("commento:"+vsValue);
	voDivDst = document.getElementById("commento:visibile");
	if (voDivSrc)
		voDivDst.innerHTML = voDivSrc.innerHTML;
	else
		voDivDst.innerHTML = "";

	vsTrEven = "filters_table_tr_even";
	vsTrOdd = "filters_table_tr_odd";	
	vnCntRow = 0;	
	
	//ciclo per mettere i nomi alle etichette	
	vaTypes = new Array("split","subtotal","text","area");
	for (vnType in vaTypes)
	{
		max = eval("max_"+vaTypes[vnType]);
		for (i=0;i<max;i++)
		{
			if (vaLabels[vsValue] && vaLabels[vsValue][vaTypes[vnType]] && vaLabels[vsValue][vaTypes[vnType]][i])
			{
				document.getElementById("label_"+vaTypes[vnType]+"_"+i).innerHTML=vaLabels[vsValue][vaTypes[vnType]][i];
				
				if (vnCntRow%2==0)
					document.getElementById("tr_"+vaTypes[vnType]+"_"+i).className=vsTrEven;
				else
					document.getElementById("tr_"+vaTypes[vnType]+"_"+i).className=vsTrOdd;
				
				vnCntRow++;	
				
				document.getElementById("tr_"+vaTypes[vnType]+"_"+i).style.display="";
			}	
			else
				document.getElementById("tr_"+vaTypes[vnType]+"_"+i).style.display="none";
		}
	}
	
	/*
	for (i=0;i<max_subtotal;i++)
	{
		if (vaLabels[vsValue] && vaLabels[vsValue]['subtotal'] && vaLabels[vsValue]['subtotal'][i])
		{
			document.getElementById('label_subtotal_'+i).innerHTML=vaLabels[vsValue]['subtotal'][i];
			document.getElementById('tr_subtotal_'+i).style.display="";
		}	
		else
			document.getElementById('tr_subtotal_'+i).style.display="none";	
	}
	for (i=0;i<max_text;i++)
	{
		if (vaLabels[vsValue] && vaLabels[vsValue]['text'] && vaLabels[vsValue]['text'][i])
		{
			document.getElementById('label_text_'+i).innerHTML=vaLabels[vsValue]['text'][i];
			document.getElementById('tr_text_'+i).style.display="";
		}	
		else
			document.getElementById('tr_text_'+i).style.display="none";	
	}
	for (i=0;i<max_area;i++)
	{
		if (vaLabels[vsValue] && vaLabels[vsValue]['area'] && vaLabels[vsValue]['area'][i])
		{
			document.getElementById('label_area_'+i).innerHTML=vaLabels[vsValue]['area'][i];
			document.getElementById('tr_area_'+i).style.display="";
		}	
		else
			document.getElementById('tr_area_'+i).style.display="none";	
	}*/
}


// *************** GESTIONE CHECKBOX IMMAGINE ************************
// Image Check Box (15-11-2005)
// by Vic Phillips http://vicsjavascripts.org.uk

// The Script converts an existing Check Box to an Image Check Box
// using function icbCBoxtoImgCB(.......

// The image check box has images for the true and false conditions
// The true or false conditions are reflected in a 'real' check box.
// This allows standard techniques to be employed when submitting the form.
// Verify the state against the same id/name
// as the id of the original image/checkbox.
// There may be a many image check boxes on a page as required.

// Initialise the check boxes 'onload' of the page.
// ie
// <body onload="icbCBoxtoImgCB(*id*,*state*,'*ImageTrue*','*ImageFalse*','*width*,*height*);" >
// where
// *id*         = id of the image checkbox (string)
// *state*      = the initial condition (true or false )
// *ImageTrue*  = the image to be displayed for the 'true' condition (string)
// *ImageFalse* = the image to be displayed for the 'false' condition (string)
// *width*      = the width of the image (optional)(digits)
// *height*     = the height of the image (optional)(digits)

// The function icbCheckBoxMoniter(icb) may be used to action external functions
// the function is passed with the checkbox object when the checkbox checked state changes

// All variables name ect are prefixed with 'icb'
// to minimise conflicts with other javascripts.
// Tested with IE6, NS7, MozillaFF and Opera7


function icbCheckBoxMoniter(icb){
 alert('CheckBox '+icb.id+' is '+icb.checked);
}

// No Need to Change
var icbCursor='pointer';
if (document.all){ icbCursor='hand'; }


function icbCBoxtoImgCB(icb,icbs,icbT,icbF,icbw,icbh){
  // Create Image Element, Append Before the Check Box, Add OnClick Event & Load Correct Image
 icbNewImg=document.createElement('img');
 icbNewImg.id='icb'+icb;
 icbcb=document.getElementById(icb);
 icbcb.parentNode.insertBefore(icbNewImg,icbcb);
 icbNewImg.style.cursor=icbCursor;
 if (icbw!=null&&icbh!=null){ icbNewImg.width=icbw; icbNewImg.height=icbh; }
 icbNewImg.cb=icbcb;
 icbNewImg.icbT=icbT;
 icbNewImg.icbF=icbF;
 icbNewImg.onclick=function(){ icbImgCBox(this); };
 if (icbs){ icbNewImg.src=icbT; } else { icbNewImg.src=icbF; }
 // Hide the real Check Box
 icbcb.checked=icbs;
 icbcb.style.position='absolute';
 icbcb.style.visibility='hidden';
}

function icbImgCBox(icb){
 if (icb.cb.checked){
  icb.src=icb.icbF;
  icb.cb.checked=false;
 }
 else {
  icb.src=icb.icbT;
  icb.cb.checked=true;
 }
 //icbCheckBoxMoniter(icb.cb);
}
// *************** FINE GESTIONE CHECKBOX IMMAGINE ************************

//aggiunta funzione standard
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};

//funzioni per double select
function moveOption( fromID, toID )
{
   var i = document.getElementById( fromID ).selectedIndex;
   
	if (i>=0)
	{
		var o = document.getElementById( fromID ).options[ i ];
	    var theOpt = new Option( o.text, o.value, false, false );
		document.getElementById( toID ).options[document.getElementById( toID ).options.length] = theOpt;
		document.getElementById( fromID ).options[ i ] = null;	
	}
}

function moveAllOption( fromID, toID )
{
	for (i in document.getElementById( fromID ).options)
	{
		document.getElementById( fromID ).selectedIndex=0;
		moveOption( fromID, toID );
	}	
}

function selectAllMultipleLists()
{
	vaSelect = document.getElementsByClassName("doubleListSelectAll");
	for (m in vaSelect)
	{
		for(i=0; i<vaSelect[m].options.length; i++)

		{
			if (vaSelect[m].options[i])
				vaSelect[m].options[i].selected=true;
		}	
	}
}
