/* queste prime tre variabili sono di sniffing, ovvero prendono il valore true se i browser sono rispettivamente IE, Netscape6 e Firefox. Lo sniffing è fatto controllando le proprietà supportate dal browser attraverso espressioni condizionali
*/
var objDoc=document;
var useLayers=(objDoc.layers)?1:0;
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var is_FF = isFF();
var ie5 = document.all;
var ns6 = document.getElementById && !document.all;
var ff = (navigator.userAgent.indexOf("Firefox") != -1) ? true : false;
/* se stiamo trascinando un oggetto, ovvero siamo nel terzo stato, questa variabile è vera */
var isDragging = false;
// l'oggetto da tascinare, per ora nullo
var dragObj;
// variabili di posizione, utili durante lo spostamento.
var x = 0;
var y = 0;
var tx = 0;
var ty = 0;

function isFF()
{
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
 var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (ffversion>=3)
  return true;
 else if (ffversion>=2)
  return true;
 else if (ffversion>=1)
  return true;  
}	
return false;
}

function startDrag(ev) {


if (is_chrome) 
	return;
	
/* controllo il click del mouse in ogni punto dello schermo e mi riferisco all'oggetto cliccato con la variabile dragObj */
dragObj = ns6 ? ev.target : event.srcElement;
/* controllo l'elemento parente: in IE è l'elemento boby, in NS, FF e Opera è HTML */
var parent = ns6 ? "HTML" : "BODY";
/* se non sto cliccando sullo sfondo e l'oggetto cliccato è della classe draggable */
if(dragObj.tagName != parent && dragObj.className == "draggable") {
// posso iniziare a draggare mettendo questa variabile a true
isDragging = true; 
/* uso un handle, quindi devo far si che si possa draggare l'intero contenitore dell'handle. Quindi sostituisco il dragObject con il contenitore dell'handle, che è il nodo genitore più prossimo */
dragObj = ns6 ? dragObj.parentNode : dragObj.parentElement;
var marLeft = dragObj.style.marginLeft;
var marTop = dragObj.style.marginTop;
/* controllo se i margini sono settati su auto dai css. Se lo sono, posso ragionevolmente supporre che 2 margini opposti siano settati in auto (in modo da centrare l'elemento sullo schermo) allora prendo indicativamente come riferimento il centro dello schermo */
marLeft = (marLeft=="auto") ? ((screen.width/2) - (parseInt(dragObj.style.width, 10))/2) : marLeft;
marTop = (marTop=="auto") ? ((screen.height/2) - (parseInt(dragObj.style.height, 10))/2) : marTop;
// segno in tx e ty i margini sinistro e destro.
tx = parseInt(marLeft, 10);
ty = parseInt(marTop, 10);
// segno la posizione del click
x = ns6 ? ev.clientX : event.clientX;
y = ns6 ? ev.clientY : event.clientY;
// chiamo la funzione che muove l'elemento
document.onmousemove = moveDrag;
}
return false;
}

function moveDrag(ev) {
if(isDragging) {
var tempMarginTop = ie5 ? ty + event.clientY - y : ty + ev.clientY - y;
var tempMarginLeft = ie5 ? tx + event.clientX - x : tx + ev.clientX - x;
dragObj.style.marginTop = ff ? tempMarginTop+"px" : tempMarginTop;
dragObj.style.marginLeft = ff ? tempMarginLeft+"px" : tempMarginLeft;
}
}

function stopDrag(ev) {
isDragging = false; 
}


// Funzioni generiche 
function getElement(_element,f)
{	
	er="Div not found: "+_element+". Check style sheet";
	if(useLayers)
	{
		f=(f)?f:self;
		objVector=f.document.layers;
		if(objVector[_element])
			return objVector[_element];
		for(i=0;i<objVector.length;i++)
			return(getElement(_element,objVector[i]));
	
		//alert(er);
		return false;
	}
		
	if(objDoc.all)
		return objDoc.all[_element]||alert(er);		
	
	return objDoc.getElementById(_element); //||alert(er);
}

function showElement(_obj)
{
	obj = getElement(_obj);
	if(useLayers)
		obj.visibility='show';
	else
		obj.style.visibility='visible';
	
	obj.v=true;
}

function srcElement(_obj,_sSrc)
{
	obj = getElement(_obj);
	
	
	if(useLayers)
		obj.src=_sSrc;
	else
		obj.style.src=_sSrc;
	obj.v=true;
}

function innHTML(_obj,_sSrc)
{
	obj = getElement(_obj);
	obj.innerHTML =_sSrc;

}

function getInnHTML(_obj)
{
	obj = getElement(_obj);
	return obj.innerHTML;
}

function hideElement(_obj)
{
	obj = getElement(_obj);
	if(useLayers)
		obj.visibility='hidden';
	else
		obj.style.visibility='hidden';
	
	obj.v=false;
}

function setObjectX(_obj,_x)
{
	obj = getElement(_obj);
	if(useLayers)
		obj.left=_x;
	else 
		if(isOpera)
			obj.style.pixelLeft=_x;
		else 
			obj.style.left=_x+'px';			
}

function setObjectY(_obj,_y)
{
	obj = getElement(_obj);
	if(useLayers)
		obj.top=_y;
	else 
		if(isOpera)
			obj.style.pixelTop=_y;
		else 
			obj.style.top=_y+'px';
}

function getX(_element)
{
	var sRes = 0;
	if(useLayers)
		sRes = _element.left;
	else 
		if(isOpera)
			sRes = _element.pixelLeft;
		else 
			sRes = _element.left;
			
	sRes = sRes.replace('px','');
	return sRes;
}

function setX(_element,_x)
{
	if(useLayers)
		_element.left=_x;
	else 
		if(isOpera)
			_element.style.pixelLeft=_x;
		else 
			_element.style.left=_x+'px';
}
function setY(_element,_y)
{
	if(useLayers)
		_element.top=_y;
	else 
		if(isOpera)
			_element.style.pixelTop=_y;
		else 
			_element.style.top=_y+'px';
}
function setPos(_element,_x,_y)
{
	obj = getElement(_element);
	setX(obj,_x);
	setY(obj,_y);
}

function setColor(_element,_color)
{
	obj = getElement(_element);
	if(useLayers)
		obj.color=_color;
	else 
		obj.style.color=_color;
}

function getColor(_element)
{
	obj = getElement(_element);
	if(useLayers)
		return obj.color;
	else 
		return obj.style.color;
}

function showDiv(_sDiv)
{		
	objDiv=getElement(_sDiv);
	objDiv.visibility="visible";
}			

function showDescrInstruction()
{
	var isNS=(navigator.appName=="Netscape");
	var isNS6=(navigator.appName=="Gecko");		
	
	if ((isNS) || (isNS6))
		setPos('Instruction',330,130);
	else
		setPos('Instruction',330,130);
}

function hideDescrInstruction()
{
	var isNS=(navigator.appName=="Netscape");
	var isNS6=(navigator.appName=="Gecko");		
	
	if ((isNS) || (isNS6))
		setPos('Instruction',-1000,-1000);
	else
		setPos('Instruction',-1000,-1000);
}

function clearDesk(_iMenu)
{	
	if (!top.window.frames["fraMenu"]) return;
	if (top.window.frames["fraMenu"].m_bNews) return;
		   
	if (_iMenu == "")
	{
		for (i=1;i<=8;i++)
		{
			//setPos('MenuOn'+i,-1500,-1500);
			setPos('TitleOn'+i,-1500,-1500);
			setPos('Descr'+i,-1500,-1500);			
		}			
	}
	else
	{
		//setPos('MenuOn'+_iMenu,-1500,-1500);
		setPos('TitleOn'+_iMenu,-1500,-1500);
		setPos('Descr'+_iMenu,-1500,-1500);			
	}
	//top.window.frames["fraMenu"].closeAllMenu();
}

function viewSiglaMSOL()
{
	setPos('siglaMSOL',99,157);
}
function hideSiglaMSOL()
{
	setPos('siglaMSOL',-1500,-1500);
}

function clearSelectedDesk(_iMenu)
{	
	//setPos('MenuOn'+_iMenu,-1500,-1500);
	setPos('TitleOn'+_iMenu,-1500,-1500);
	setPos('Descr'+_iMenu,-1500,-1500);
	viewSiglaMSOL();
}

function loadSection(_sNoRel)
{	
	if (_sNoRel=="Y") return;

	top.window.frames["fraCenter"].scrolling="auto";
	top.window.frames["fraCenter"].location.href = "./Body.htm";
	top.window.frames["fraLeft"].location.href = "./Left.htm";
}	


// Gestione Scroll news

   function verifyCompatibleBrowser(){ 
    this.ver=navigator.appVersion 
    this.dom=document.getElementById?1:0 
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) 
    return this 
   } 

   bw=new verifyCompatibleBrowser() 
   var speed=50 
   var loop, timer 
   var stop=false
 

   function PerformScroll(speed){ 
    if(initialised){ 
     loop=true; 
     if(speed>0) objScroller.down(speed) 
     else objScroller.up(speed) 
    } 
   } 
 
   function CeaseScroll(){ 
    loop=false;
    //if(timer) clearTimeout(timer);
   } 

   var initialised; 

   function InitScrollableArea()
   { 
    objContainer=new ConstructObject('dContainer');
    objScroller=new ConstructObject('dContent','dContainer');
	objScroller.MoveArea(0,objContainer.clipHeight+10);
    objContainer.css.visibility='visible';    
    initialised=true; 	
   }  

   function ConstructObject(obj,nest){ 
    nest=(!nest) ? '':'document.'+nest+'.' 
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; 
    if (bw.dom)
		this.css = document.getElementById(obj).style;
    else if (bw.ie4)
		this.css = document.all[obj].style;
    else if (bw.ns4)
		this.css = eval(nest+'document.'+obj);
	else
		this.css = 0;
		
    //this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; 
    this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight 
    this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight 
    this.up=MoveAreaUp;this.down=MoveAreaDown; 
    this.MoveArea=MoveArea; this.x; this.y; 
    this.obj = obj + "Object" 
    eval(this.obj + "=this") 
    return this 
   } 

   function stopScroll()
   {
    loop=false;
	if (timer)
		clearTimeout(timer);
   } 

   function MoveArea(x,y){ 
    this.x=x;this.y=y 
    this.css.left=this.x 
    this.css.top=this.y 
   } 
 
   function MoveAreaDown(move)
   { 
    if(this.y>-(this.scrollHeight))
    { 
		this.MoveArea(0,this.y-move);
		if(loop) 
			timer = setTimeout(this.obj+".down("+move+")",speed);
    }
    else
    { 
		this.MoveArea(0,objContainer.clipHeight+10);
		//PerformScroll(3);
		if(loop) 
			timer = setTimeout(this.obj+".down("+move+")",speed);
    }
   } 

   function MoveAreaDown_old(move){
    if(this.y>-this.scrollHeight+objContainer.clipHeight){ 
    this.MoveArea(0,this.y-move) 
    if(loop) setTimeout(this.obj+".down("+move+")",speed) 
    } 
   } 

   function MoveAreaUp(move){ 
    if(this.y<0){ 
     this.MoveArea(0,this.y-move) 
     if(loop) setTimeout(this.obj+".up("+move+")",speed) 
    } 
   } 

// Gestione Menu'

var iMenusel = 0;

function onMenu(_iMenu)
{
	if (!top.window.frames["fraCenter"]) return;

	if (iMenusel==0)
	{
		top.window.frames["fraCenter"].clearAllDesk();
		top.window.frames["fraCenter"].showDeskMenu(_iMenu);
	}
}

function hideMenuOn(_iMenu)
{	
	if (!top.window.frames["fraCenter"]) return;

	if (iMenusel==0)
	{
		if (_iMenu <= 8)
			top.window.frames["fraCenter"].clearSelDesk(_iMenu);
	}		
}

// Messaggio sulla Status Bar

var Message="";
var place=1;
function setMsg(_sMsg)
{
	Message = _sMsg;
}
function scrollIn()
{
	var obj = getElement("divMsg");
	obj.innerText=Message.substring(0, place);
	obj.innerHTML=Message.substring(0, place);
	//window.status=Message.substring(0, place);
	if (place >= Message.length)
	{
		place=1;
		window.setTimeout("scrollOut()",300); 
	} else {
		place++;
		window.setTimeout("scrollIn()",50); 
   } 
}

function scrollOut()
{	
	var obj = getElement("divMsg");
	obj.innerText=Message.substring(place, Message.length);
	obj.innerHTML=Message.substring(place, Message.length);
	//window.status=Message.substring(place, Message.length);
	if (place >= Message.length)
	{
		place=1;
		window.setTimeout("scrollIn()", 100);		
	} else {	
		place++;
		window.setTimeout("scrollOut()", 100);
	}
}


function openPage(_sPage)
{
	if (!top.window.frames["fraCenter"]) return;
	
	top.window.frames["fraCenter"].scrolling="auto";
	top.window.frames["fraCenter"].location.href = "./" + _sPage;
}

function setTitle(_sTitle)
{
	top.window.frames["fraTitle"].divTitle.innerHTML = _sTitle;
}

	function apriDiv(_sName, _left, _top)
	{
		var objDiv = document.getElementById(_sName);
		if (objDiv)
		{
			objDiv.style.left = _left;
			objDiv.style.top = _top;
		}
	}

	function chiudiDiv(_sName)
	{
		var objDiv = document.getElementById(_sName);
		if (objDiv)
			objDiv.style.left = "-10000";
	}

	function isNumeric(strString)
   {
   var strValidChars = "0123456789,.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }


   
function show_calendar(str_target, str_datetime, str_title) 
{
	var arr_months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
	var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)

	var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);

	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
	"<html>\n"+
	"<head>\n"+
	" <title>" + str_title + "</title>\n"+
	"</head>\n"+
	"<body onload=\"window.focus();\" bgcolor=\"ffbb32\">\n"+
	"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
	"<tr><td bgcolor=\"#4682B4\">\n"+
	"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
	"<tr>\n <td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+
	str_target+"', '"+ dt2dtstr(dt_prev_month)+"');\">"+
	"<img src=\"../images/prev.bmp\" width=\"16\" height=\"16\" border=\"0\""+
	" alt=\"mese precedente\"></a></td>\n"+
	" <td bgcolor=\"#4682B4\" colspan=\"5\">"+
	"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
	+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
	" <td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
	+str_target+"', '"+dt2dtstr(dt_next_month)+"');\">"+
	"<img src=\"../images/next.bmp\" width=\"16\" height=\"16\" border=\"0\""+
	" alt=\"mese successivo\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += " <td bgcolor=\"#87CEFA\">"+"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+week_days[(n_weekstart+n)%7]+"</font></td>\n";
	
	// print calendar table
	str_buffer += "</tr>\n";
	
	while (dt_current_day.getMonth() == dt_datetime.getMonth() || dt_current_day.getMonth() == dt_firstday.getMonth())
	{
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++)
		{
			if (dt_current_day.getDate() == dt_datetime.getDate() && dt_current_day.getMonth() == dt_datetime.getMonth())
				// print current date
				str_buffer += " <td bgcolor=\"#FFB6C1\" align=\"right\">";
			else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
				// weekend days
				str_buffer += " <td bgcolor=\"#DBEAF5\" align=\"right\">";
			else
				// print working days of current month
				str_buffer += " <td bgcolor=\"white\" align=\"right\">";
		
			if (dt_current_day.getMonth() == dt_datetime.getMonth())
				// print days of current month
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
			else
				// print days of other months
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
			
			str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
			dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	

	// print calendar footer
	str_buffer +=
	/*
	"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
	"<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+
	"<input type=\"hidden\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
	"\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" +
	*/
	"</table>\n" +
	"</tr>\n</td>\n</table>\n" +
	"</body>\n" +
	"</html>\n";

	var vWinCal = window.open("", "Calendar","width=200,height=240,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}

// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt(str_datetime) {
	
	var date = "";
	var re_date = new RegExp("^(\\d{1,2})/(\\d{1,2})/(\\d{2}|\\d{4})$");

	if (!re_date.exec(str_datetime))
	{
		alert("Formato data errato");
		return str_datetime;
	}
	
	date = new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6);
	return date;
	
}
function dt2dtstr (dt_datetime) {

	var sDay = new String (dt_datetime.getDate());
	if (sDay.length==1) sDay = "0" + sDay;
	var sMonth = new String ((dt_datetime.getMonth()+1));
	if (sMonth.length==1) sMonth = "0" + sMonth;
	return (new String (sDay+"/"+sMonth+"/"+dt_datetime.getFullYear()));
}
function dt2tmstr (dt_datetime) {
	return (new String (dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}


function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Prego, inserire una data valida.");
return false;
}

month = matchArray[3]; // p@rse date into variables
day = matchArray[1];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Attenzione! Il mese deve essere tra 1 e 12.");
return false;
}

if (day < 1 || day > 31) {
alert("Attenzione! Il giorno deve essere tra 1 e 31.");
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Attenzione! il mese "+month+" non ha 31 giorni")
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("Attenzione! Febbraio " + year + " non ha " + day + " giorni.");
return false;
}
}
return true; // date is valid
}

function ControllaPIVA(pi)
{
    if( pi == '' )  return '';
    if( pi.length != 11 )
        return "La lunghezza della partita IVA non è\n" +
            "corretta: la partita IVA dovrebbe essere lunga\n" +
            "esattamente 11 caratteri.\n";
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( pi.charAt(i) ) == -1 )
            return "La partita IVA contiene un carattere non valido `" +
                pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
    }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
        if( c > 9 )  c = c - 9;
        s += c;
    }
    if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
        return "La partita IVA non è valida:\n" +
            "il codice di controllo non corrisponde.\n";
    return '';
}

function isEmail(string) {
if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
return false;
}

function getGiorno(_i)
{
	if ((_i<0) || (_i>6))
		return "";
	var nomiGG=new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
	return nomiGG[_i];
}

function getFraseGiorno(_i)
{
	if ((_i<0) || (_i>6))
		return "";
	var nomiGG=new Array("alla Domenica","il Lunedì","il Martedì","il Mercoledì","il Giovedì","il Venerdì","il Sabato");
	return nomiGG[_i];
}

function goPage(_frm, _target, _page)
{
	_frm.action=_page;
	_frm.target=_target;
	_frm.submit();
	return false;
}

function goPopup(_page, _title)
{
	var vWinCal = window.open(_page, _title,"width=200,height=240,status=no,resizable=yes,top=200,left=200");
	return false;
}

function goPopup(_page, _title, _width, _height)
{
	iLeft = (screen.width - parseInt(_width)) / 2;
	iTop = (screen.height - parseInt(_height)) / 2;
	featured = 'width='+_width+',height='+_height+',left='+iLeft+',top='+iTop+',scrollbars=yes,resizable=yes,status=no';
	window.open(_page, _title, featured);
}

	function setpass()
	{
		if (frmLogin.username.value == '')
		{
			alert("Prego, inserire l'utente.");
			frmLogin.username.focus();
			return false;
		}
		if (frmLogin.password.value == '')
		{
			alert("Prego, inserire la password.");
			frmLogin.password.focus();
			return false;
		}
		document.frmLogin.submit();
	}

	
	function saveOreAtt(_frm)
	{
		var lOreMese = 0;
/*
		var obj = document.getElementById("textOre1");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre2");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre3");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre4");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre5");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre6");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre7");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre8");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre9");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre10");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre11");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
		var obj = document.getElementById("textOre12");
		if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
		if (obj.value != "") {lOreMese += parseInt(obj.value * 1);}
*/
		var objOre = document.getElementById("textTotOre");
		var sId = document.getElementById("hiddenID").value;

		if (objOre.value == "")
		{
			alert("Prego, inserire il numero delle ore annuali.");
			objOre.focus();
			return false;
		}
		if (!isNumeric(objOre.value))
		{
			alert("Attenzione! Il Tot. Ore deve essere numerico.");
			objOre.focus();
			return false;
		}
		
		/*
		if (lOreMese > 0)
		{
			if (lOreMese != objOre.value)
			{
				alert("Attenzione! Il Tot. delle ore mensili non corrisponde alle ore annuali.");
				objOre.focus();
				return false;			
			}
		}
		*/
		
		objOre = document.getElementById("textTotOre");
		var iOreAtt = objOre.value;
		//var sId = document.getElementById("hiddenIDProgAtt").value;
		var iTotOreAtt = document.getElementById("hiddenTotOreAtt").value;
		var iTotOreProg = document.getElementById("hiddenTotOreProg").value;
		var iOreAttSaved = document.getElementById("hiddenOreAtt").value;
		iTotOreAtt = iTotOreAtt - iOreAttSaved;

		if (iOreAtt == "")
		{
			alert("Prego, inserire il numero delle ore.");
			objOre.focus();
			return false;
		}
		if (!isNumeric(iOreAtt))
		{
			alert("Attenzione! Il Tot. Ore deve essere numerico.");
			objOre.focus();
			return false;
		}
		if (parseFloat(iOreAtt * 1) < 0)
		{
			alert("Attenzione! Il Tot. Ore deve essere un numerico positivo.");
			objOre.focus();
			return false;
		}
		
		var iOreAttTot = parseFloat(iOreAtt * 1) + parseFloat(iTotOreAtt * 1);
		if (iOreAttTot > parseFloat(iTotOreProg * 1))
		{
			alert("Attenzione! Il Tot. Ore delle Attività (" + iOreAttTot + ") è maggiore del Tot. Ore del progetto (" + iTotOreProg + ").");
			objOre.focus();
			return false;
		}		
				
		_frm.action = "Detail.asp?action=saveOre&id=" + sId;
		_frm.target = "_self";
		_frm.submit();
		return false;
	}
	
	function addAtt(_frm)
	{
		var obj = document.getElementById("selectAttivita");
		var sIdAtt = obj.options[obj.selectedIndex].value;
		
		if (sIdAtt != "")
		{
			_frm.action = "Elenco.asp?action=addAtt&idP=" + document.getElementById("hiddenIDProg").value + "&idAtt=" + sIdAtt;
			_frm.target = "_self";
			_frm.submit();
		}
		return false;	
	}

	function remAtt(_frm, _id, _sIdCodAtt)
	{
		if (_id != "")
		{
			if (confirm("Prego, confermare la rimozione dell'attività."))
			{
				_frm.action = "Elenco.asp?action=remAtt&id=" + _id + "&idCodAtt=" + _sIdCodAtt + "&idP=" + document.getElementById("hiddenIDProg").value;
				_frm.target = "_self";
				_frm.submit();
			}
		}
		return false;	
	}
	
	function addOper()
	{
		var objSel = document.getElementById("selectOperatore");
		var sIdOper = objSel.options[objSel.selectedIndex].value;

		if (sIdOper != "")
		{
			document.frmDetail.action = "ElencoOper.asp?action=saveOper&id=" + document.getElementById("hiddenID").value + "&idOper=" + sIdOper;
			document.frmDetail.target = "_self";
			document.frmDetail.submit();
		}
		return false;	
	}

	
	function remOper(_sId)
	{
		if (confirm("Prego, confermare la rimozione dell'utente."))
		{
			document.frmDetail.action = "ElencoOper.asp?action=remOper&id=" + document.getElementById("hiddenID").value + "&idOper=" + _sId;
			document.frmDetail.target = "_self";
			document.frmDetail.submit();
		}
		return false;	
	}
		
		
	function delCosto(_sID)
	{
		if (confirm("Prego, confermare l'eliminazione del costo."))
		{
			if (confirm("Attenzione! Stai eliminando il costo dell'utente dal DB. Sei sicuro?"))
			{
				document.frmDetail.action = "Detail.asp?id=" + document.frmDetail.hiddenID.value + "&idCosto=" + _sID + "&action=delCosto";
				document.frmDetail.target = "_self";
				document.frmDetail.submit();
			}
		}
	}	
	
	function addCosto()
	{
		var oCosto = document.getElementById("textCosto");
		var sCosto = oCosto.value;
		if (sCosto=="")
		{
			alert("Prego, inserire il costo.");
			oCosto.focus();
			return false;
		}
		if (!isNumeric(sCosto))
		{
			alert("Attenzione! Il costo orario deve essere numerico.");
			oCosto.focus();
			return false;
		}
		
		var oDal = document.getElementById("textDal");
		var sDal = oDal.value;
		if (sDal=="")
		{
			alert("Prego, inserire la data 'Dal'.");
			oDal.focus();
			return false;
		}
		if (!isDate(sDal))
		{
			oDal.focus();
			return false;		
		}
		
		var oAl = document.getElementById("textAl");
		var sAl = oAl.value;
		if (sAl!="")
		{
			if (!isDate(sAl))
			{
				oAl.focus();
				return false;
			}
			
			var saAl = sAl.split("/");
			var sAl = saAl[2]+saAl[1]+saAl[0];
			var saDal = sDal.split("/");
			var sDal = saDal[2]+saDal[1]+saDal[0];
			if (parseInt(sDal * 1) > parseInt(sAl * 1))
			{
				alert("Attenzione! La data 'Dal' deve essere precedente della data 'Al'.");
				oAl.focus();
				return false;
			}
		}
		
		document.frmDetail.action = "Detail.asp?id=" + document.frmDetail.hiddenID.value + "&Action=addCosto";
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}	

	function saveCosto(_id)
	{
		var oCosto = document.getElementById("textCosto_"+_id);
		var sCosto = oCosto.value;
		if (sCosto=="")
		{
			alert("Prego, inserire il costo.");
			oCosto.focus();
			return false;
		}
		if (!isNumeric(sCosto))
		{
			alert("Attenzione! Il costo orario deve essere numerico.");
			oCosto.focus();
			return false;
		}
		
		var oDal = document.getElementById("textDal_"+_id);
		var sDal = oDal.value;
		if (sDal=="")
		{
			alert("Prego, inserire la data 'Dal'.");
			oDal.focus();
			return false;
		}
		if (!isDate(sDal))
		{
			oDal.focus();
			return false;		
		}
		
		var oAl = document.getElementById("textAl_"+_id);
		var sAl = oAl.value;
		if (sAl!="")
		{
			if (!isDate(sAl))
			{
				oAl.focus();
				return false;
			}
			
			var saAl = sAl.split("/");
			var sAl = saAl[2]+saAl[1]+saAl[0];
			var saDal = sDal.split("/");
			var sDal = saDal[2]+saDal[1]+saDal[0];
			if (parseInt(sDal * 1) > parseInt(sAl * 1))
			{
				alert("Attenzione! La data 'Dal' deve essere precedente della data 'Al'.");
				oAl.focus();
				return false;
			}
		}
		
		document.frmDetail.action = "Detail.asp?id=" + document.frmDetail.hiddenID.value + "&Action=saveCosto" + "&idCosto=" + _id;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}	
	
    function deselectPrj(_sGiorno)
	{
		var objSelectDetailAttivita = document.getElementById("selectDetailAttivita" + _sGiorno);
		var iCount = objSelectDetailAttivita.options.length;
		for (i=iCount; i>0; i--)
		{
			objSelectDetailAttivita.options.remove(i);
		}
		
		var selectObj = document.getElementById("selectDetailProgetto" + _sGiorno);
		selectObj.options(0).selected=true;
	}
	
    function deselectPerm(_sGiorno)
	{
		var selectObj = document.getElementById("selectDetailPermessi" + _sGiorno);
		if ((is_FF) || (is_chrome))
			selectObj.options[0].selected=true;			
		else
			selectObj.options(0).selected=true;				
		
	}
	
    function loadOptAtt(_sIdProg, _sGiorno, _sAnno) {
	
		if (_sIdProg=="")
			return false;
		
		var sName = "selectDetailAttivita" + _sGiorno;
		var objSelectDetailAttivita = null;
		if ((is_FF) || (is_chrome))
			objSelectDetailAttivita = document.getElementById(sName);
		else
			objSelectDetailAttivita = document.getElementById("selectDetailAttivita" + _sGiorno);
					
		if (objSelectDetailAttivita!=null)
		{
			var iCount = objSelectDetailAttivita.options.length;
			for (i=iCount; i>0; i--)
			{
				if ((is_FF) || (is_chrome))
					objSelectDetailAttivita.options.remove[i];
				else
					objSelectDetailAttivita.options.remove(i);
				
			}
		}

		for (i = 0; i < document.all.length; i++)
		{
			var obj = document.all[i];
			if (obj!=null)
			{
				if ((obj.id) && (obj.id=="hidAttOp_" + _sIdProg + "_" + _sAnno))
				{
					var sVal = obj.value;
					var saVal = sVal.split("|");
					var sIdAttivita_Operatore = saVal[0];
					var sCodAttivita = saVal[1];
					var sTitAttivita = saVal[2];
					if ((is_FF) || (is_chrome))
						newOption = document.createElement['<option value="' + sIdAttivita_Operatore + '">'];
					else
						newOption = document.createElement('<option value="' + sIdAttivita_Operatore + '">');

					if ((is_FF) || (is_chrome))
						objSelectDetailAttivita.options.add[newOption];
					else
						objSelectDetailAttivita.options.add(newOption);
					
					newOption.innerText = "[" + sCodAttivita + "] " + sTitAttivita;
				}
			}
		}
    }

	function checkOra(_sOra, _sSeparatoreOraMin)
	{
		if ((_sOra.length!=5) || (_sOra.indexOf(_sSeparatoreOraMin)!=2))
		{
			alert("Orario non valido (il formato valido è HH" + _sSeparatoreOraMin + "MM).");
			return false;
		}
		
		var saOra = _sOra.split(_sSeparatoreOraMin);
		sOra = saOra[0];
		sMin = saOra[1];
		
		if (!isNumeric(sOra))
		{
			alert("Orario non valido (il formato valido è HH" + _sSeparatoreOraMin + "MM).");
			return false;
		}
		
		if (!isNumeric(sMin))
		{
			alert("Orario non valido (il formato valido è HH" + _sSeparatoreOraMin + "MM).");
			return false;
		}
		
		if ((parseFloat(sOra * 1)<0) || (parseFloat(sOra * 1)>23))
		{
			alert("Attenzione! L'ora deve essere compreso dalle 00 alle 23.");
			return false;
		}
		
		if ((parseFloat(sMin * 1)<0) || (parseFloat(sMin * 1)>59))
		{
			alert("Attenzione! I minuti devono essere compresi tra 00 e 59.");
			return false;
		}

		
		return true;
	}
	
	function confrOrari(_sOraDalle, _sOraAlle, _sSeparatoreOraMin, _sTipoConfronto)
	{
		var saOraDalle = _sOraDalle.split(_sSeparatoreOraMin);
		sOraDalle = saOraDalle[0];
		sMinDalle = saOraDalle[1];
		
		var sOrario1 = sOraDalle + sMinDalle;
		if (sOrario1.indexOf("0")==0) sOrario1 = sOrario1.substr(1);
		
		var saOraAlle = _sOraAlle.split(_sSeparatoreOraMin);
		sOraAlle = saOraAlle[0];
		sMinAlle = saOraAlle[1];
		
		var sOrario2 = sOraAlle + sMinAlle;
		if (sOrario2.indexOf("0")==0) sOrario2 = sOrario2.substr(1);

		if (_sTipoConfronto=="DalleMaggioreAlle")
		{
			//alert(_sTipoConfronto + ": " +  parseInt(sOrario2) + " > " + parseInt(sOrario1));
			if (parseFloat(sOrario2 * 1) >= parseFloat(sOrario1 * 1))
				return true;
			else
				return false;
		}
		else
		{
			//alert(_sTipoConfronto + ": " +  parseFloat(sOrario2) + " < " + parseFloat(sOrario1));
			if (parseFloat(sOrario2 * 1) <= parseFloat(sOrario1 * 1))
				return true;
			else
				return false;
		}
		
		
	}

	function nuovoOrario(_sGG, _sGGsql, _sGiorno)
	{
		//apriDiv('divDetail',0,0);

		var tdTitolo = document.getElementById("tdTitolo" + _sGiorno);
		tdTitolo.innerHTML = "<b>[Nuova attività/permesso]</b>";
		
		var btnSave = document.getElementById("btnSave" + _sGiorno);
		var btnRem = document.getElementById("btnRem" + _sGiorno);
		
		btnSave.disabled=false;
		btnRem.disabled=true;

		var hiddLO = document.getElementById("hiddenElencoOrari");
		hiddLO.value = document.getElementById("hiddenElencoOrari" + _sGiorno).value;

		var hiddID = document.getElementById("hiddenDetailID" + _sGiorno);
		hiddID.value = "-1";
		
		var hiddGG = document.getElementById("hiddenDetailGG" + _sGiorno);
		hiddGG.value = _sGGsql;
		
		//var tdGG = document.getElementById("tdGG");
		//tdGG.innerHTML = _sGG;
		
		/*
		var textDalle = document.getElementById("textDetailDalle");
		textDalle.value="";

		var textAlle = document.getElementById("textDetailAlle");
		textAlle.value="";
		*/
		
		//var textNote = document.getElementById("textDetailNote" + _sGiorno);
		//textNote.value="";

		var selectOreLavorate = document.getElementById("selectOreLavorate" + _sGiorno);
		var opt = selectOreLavorate.options(0);
		opt.selected=true;
		opt.focus();
		
		/*
		var selectOraDalle = document.getElementById("selectOraDalle");
		var opt = selectOraDalle.options(0);
		opt.selected=true;
		opt.focus();

		var selectMinutiDalle = document.getElementById("selectMinutiDalle");
		var opt = selectMinutiDalle.options(0);
		opt.selected=true;
		
		var selectOraAlle = document.getElementById("selectOraAlle");
		var opt = selectOraAlle.options(0);
		opt.selected=true;

		var selectMinutiAlle = document.getElementById("selectMinutiAlle");
		var opt = selectMinutiAlle.options(0);
		opt.selected=true;
		*/
		
		var objSelectDetailProgetto = document.getElementById("selectDetailProgetto" + _sGiorno);
		objSelectDetailProgetto.options(0).selected=true;
		
		var objSelectDetailAttivita = document.getElementById("selectDetailAttivita" + _sGiorno);
		var iCount = objSelectDetailAttivita.options.length;
		for (i=iCount; i>0; i--)
		{
			objSelectDetailAttivita.options.remove(i);
		}
		
	}
	
	function selectOraMinuti(_sOra, _sSepOrario, _sSelectOra, _sSelectMin)
	{
		var saOrario = _sOra.split(_sSepOrario);
		var sOra = saOrario[0];
		var selectOra = document.getElementById(_sSelectOra);
		var iCount = selectOra.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = selectOra.options(i);
			if (opt!=null)
			{
				if (opt.value==sOra)
				{
					opt.selected=true;
					break;
				}
			}
		}
		var sMin = saOrario[1];
		var selectMin = document.getElementById(_sSelectMin);
		iCount = selectMin.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = selectMin.options(i);
			if (opt!=null)
			{
				if (opt.value==sMin)
				{
					opt.selected=true;
					break;
				}
			}
		}
	}
	
	function modificaOrario(_sDate, _sGG, _sGGsql, _sRow, _sSepOrario, _sGiorno, _sAnno)
	{
		var saRow = _sRow.split("|");
		var sId = saRow[0];
		var sIdProg = saRow[1];
		var sIdAtt = saRow[2];
		var sDalle = saRow[3];
		var sAlle = saRow[4];
		var sNote = saRow[5];
		var sNoteAgg = saRow[6];
		var bConf = saRow[7];
		var sOreLavorate = saRow[8];

		var tdTitolo = document.getElementById("tdTitolo" + _sGiorno);
		tdTitolo.innerHTML = "<font color=blue><b>[Modifica attività/permesso]</b></font>";

		//apriDiv('divDetail',0,0);
		
		var hiddEO = document.getElementById("hiddenElencoOrari");
		hiddEO.value = document.getElementById("hiddenElencoOrari" + _sGiorno).value;

		var btnSave = document.getElementById("btnSave" + _sGiorno);
		var btnRem = document.getElementById("btnRem" + _sGiorno);
		
		if (bConf=="True")
		{
			//btnSave.disabled=true;
			btnRem.disabled=true;
		}
		else
		{
			//btnSave.disabled=false;
			btnRem.disabled=false;
		}
		
		var hiddDate = document.getElementById("hiddenDetailDate" + _sGiorno);
		hiddDate.value = _sDate;
		
		var hiddID = document.getElementById("hiddenDetailID" + _sGiorno);
		hiddID.value = sId;
		
		var hiddGG = document.getElementById("hiddenDetailGG" + _sGiorno);
		hiddGG.value = _sGGsql;
		
		//var tdGG = document.getElementById("tdGG");
		//tdGG.innerHTML = _sGG;
		
		var objSelectOreLavorate = document.getElementById("selectOreLavorate" + _sGiorno);
		
		var iCount = objSelectOreLavorate.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = objSelectOreLavorate.options(i);
			if (opt!=null)
			{
				if (opt.value==sOreLavorate)
				{
					opt.selected=true;
					break;
				}
			}
		}
		
		//var textNote = document.getElementById("textDetailNote" + _sGiorno);
		//textNote.value = sNote;

		var objSelectDetailPermessi = document.getElementById("selectDetailPermessi" + _sGiorno);
		
		bFerie = false;
		var iCount = objSelectDetailPermessi.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = objSelectDetailPermessi.options(i);
			if (opt!=null)
			{
				if (opt.value==sIdAtt)
				{
					bFerie = true;
					opt.selected=true;
					break;
				}
			}
		}
		
		if (!bFerie)
		{
			deselectPerm(_sGiorno);
			
			var objSelectDetailProgetto = document.getElementById("selectDetailProgetto" + _sGiorno);

			var iCount = objSelectDetailProgetto.options.length;
			for (i=0; i<iCount; i++)
			{
				var opt = objSelectDetailProgetto.options(i);
				if (opt!=null)
				{
					if (opt.value==sIdProg)
					{
						opt.selected=true;
						break;
					}
				}
			}
			
			loadOptAtt(sIdProg, _sGiorno, _sAnno);
			
			var objSelectDetailAttivita = document.getElementById("selectDetailAttivita" + _sGiorno);

			var iCount = objSelectDetailAttivita.options.length;
			for (i=0; i<iCount; i++)
			{
				var opt = objSelectDetailAttivita.options(i);
				if (opt!=null)
				{
					if (opt.value==sIdAtt)
					{
						opt.selected=true;
						break;
					}
				}
			}
		}
		else
		{
			deselectPrj(_sGiorno);
		}
	}
	
	function getOraIntValue(_sOrario, _sSeparatoreOraMin)
	{
		var saOraDalle = _sOrario.split(_sSeparatoreOraMin);
		sOraDalle = saOraDalle[0];
		sMinDalle = saOraDalle[1];
		
		var sOrario1 = sOraDalle + sMinDalle;
		if (sOrario1.indexOf("0")==0) sOrario1 = sOrario1.substr(1);

		return parseFloat(sOrario1 * 1);
	}
	
	function saveOrario(_date, _sSeparatoreOraMin, _sGiorno, _sGGsql, _sId)
	{
		var btnSave = document.getElementById("btnSave" + _sGiorno);
		if (btnSave.disabled) return false;

		var oSelectOreLavorate = document.getElementById("selectOreLavorate" + _sGiorno);
		if (oSelectOreLavorate.value=="")
		{
			alert("Prego, selezionare le ore lavorate.");
			oSelectOreLavorate.focus();
			return false;
		}
		
		/*
		var oSelectOraDalle = document.getElementById("selectOraDalle");
		if (oSelectOraDalle.value=="")
		{
			alert("Prego, inserire il campo 'Dalle'.");
			oSelectOraDalle.focus();
			return false;
		}
		var oSelectMinutiDalle = document.getElementById("selectMinutiDalle");
		if (oSelectMinutiDalle.value=="")
		{
			alert("Prego, inserire il campo 'Dalle'.");
			oSelectMinutiDalle.focus();
			return false;
		}

		var oDalle = document.getElementById("textDetailDalle");
		oDalle.value = oSelectOraDalle.value + _sSeparatoreOraMin + oSelectMinutiDalle.value;
		var sDalle = oDalle.value;
		if (!checkOra(sDalle, _sSeparatoreOraMin))
		{
			oSelectOraDalle.focus();
			return false;
		}
		
		var oSelectOraAlle = document.getElementById("selectOraAlle");
		if (oSelectOraAlle.value=="")
		{
			alert("Prego, inserire il campo 'Alle'.");
			oSelectOraAlle.focus();
			return false;
		}
		var oSelectMinutiAlle = document.getElementById("selectMinutiAlle");
		if (oSelectMinutiAlle.value=="")
		{
			alert("Prego, inserire il campo 'Alle'.");
			oSelectMinutiAlle.focus();
			return false;
		}
		
		var oAlle = document.getElementById("textDetailAlle");
		oAlle.value = oSelectOraAlle.value + _sSeparatoreOraMin + oSelectMinutiAlle.value;
		var sAlle = oAlle.value;		
		if (!checkOra(sAlle, _sSeparatoreOraMin))
		{
			oSelectOraAlle.focus();
			return false;
		}
		
		if (!confrOrari(sDalle, sAlle, _sSeparatoreOraMin, "DalleMaggioreAlle"))
		{
			alert("Attenzione! L'orario 'Alle' deve essere maggiore dell'orario 'Dalle'.");
			oSelectOraAlle.focus();
			return false;
		}
		
		var hiddEO = document.getElementById("hiddenElencoOrari");
		var sElencoOrari = hiddEO.value;

		if (sElencoOrari!="")
		{
			var saElencoOrari = sElencoOrari.split("!");
			for(i=0;i<saElencoOrari.length;i++)
			{
				var sOrarioCheck = saElencoOrari[i];
				var saOrarioCheck = sOrarioCheck.split("|");
				
				var iId = saOrarioCheck[0];
				var iCheckOrarioDal = getOraIntValue(saOrarioCheck[1], _sSeparatoreOraMin);
				var iCheckOrarioAl = getOraIntValue(saOrarioCheck[2], _sSeparatoreOraMin);
				var iOraDal = getOraIntValue(sDalle, _sSeparatoreOraMin);
				var iOraAl = getOraIntValue(sAlle, _sSeparatoreOraMin);
				
				if (document.getElementById("hiddenDetailID").value != iId)
				{
					if ((iCheckOrarioDal <= iOraDal) && (iOraDal < iCheckOrarioAl))
					{
						alert("Attenzione! Gli orari delle attività non devono sovrapporsi.");
						oSelectOraDalle.focus();
						return false;
					}
					
					if ((iCheckOrarioDal < iOraAl) && (iOraAl <= iCheckOrarioAl))
					{
						alert("Attenzione! Gli orari delle attività non devono sovrapporsi.");
						oSelectOraAlle.focus();
						return false;
					}
				}
			}
		}
		*/
		
		var oPerm = document.getElementById("selectDetailPermessi" + _sGiorno);
		var sPerm = oPerm.value;

		var oProg = document.getElementById("selectDetailProgetto" + _sGiorno);
		var sProg = oProg.value;
		
		if ((sProg=="") && (sPerm==""))
		{
			alert("Prego, selezionare un Progetto/Attività o un Permesso.");
			oProg.focus();
			return false;
		}
		
		if (sPerm=="")
		{
			var oAtt = document.getElementById("selectDetailAttivita" + _sGiorno);
			var sAtt = oAtt.value;
			if (sAtt=="")
			{
				alert("Prego, selezionare l'attività.");
				oAtt.focus();
				return false;
			}
		}
		else
		{
			/*
			var oNote = document.getElementById("textDetailNote" + _sGiorno);
			if ((sPerm=="27") && (oNote.value==""))
			{
				alert("Attenzione! Occorre inserire le note.");
				oNote.focus();
				return false;				
			}
			*/
		}
		
		var hiddGG = document.getElementById("hiddenDetailGG" + _sGiorno);
		hiddGG.value = _sGGsql;
				
		document.frmDetail.action = "Detail.asp?action=save&sett=&date=" + _date + "&giornoSave=" + _sGiorno + "&idToSave=" + _sId;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
		
	
	}
	
	function saveNoteNew(_date, _sGiorno, _sGGsql)
	{
		
		var hiddGG = document.getElementById("hiddenDetailGG" + _sGiorno);
		hiddGG.value = _sGGsql;
				
		document.frmDetail.action = "Detail.asp?action=saveNoteNew&sett=&date=" + _date + "&giornoSave=" + _sGiorno;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
		
	}	

	function saveNote(_date, _sSeparatoreOraMin, _sGiorno, _sGGsql, _sId)
	{
		
		var hiddGG = document.getElementById("hiddenDetailGG" + _sGiorno);
		hiddGG.value = _sGGsql;
				
		document.frmDetail.action = "Detail.asp?action=save&sett=&date=" + _date + "&giornoSave=" + _sGiorno + "&idSave=" + _sId;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
		
	}	
	
	
	function changeStato(_date)
	{
		var hiddID = document.getElementById("hiddenDetailID");
		if (parseInt(hiddID.value * 1)<=0) 
			return false;
	
		var obj = document.getElementById("btnChgStato");
		
		document.frmDetail.action = "Detail.asp?action=chgStato&sett=&date=" + _date;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}	

	function confTutte(_date, _sId)
	{
		var hiddID = document.getElementById("hiddenDetailID");
		hiddID.value=_sId;
		document.frmDetail.action = "Detail.asp?action=confTutte&sett=&date=" + _date;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}	

	function annConfTutte(_date, _sId)
	{
		var hiddID = document.getElementById("hiddenDetailID");
		hiddID.value=_sId;
		document.frmDetail.action = "Detail.asp?action=annConfTutte&sett=&date=" + _date;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}
	
	function remOrario(_sGiorno, _sId)
	{
		var btnRem = document.getElementById("btnRem" + _sGiorno);
		if (btnRem.disabled) return false;
		
		var hiddID = document.getElementById("hiddenDetailID" + _sGiorno);
		if (parseInt(hiddID.value * 1)<=0) 
			return false;
	
		if (confirm("Prego, confermare l'eliminazione dell'attività svolta."))
		{
			if (confirm("Attenzione! Stai eliminando l'attività svolta dal DB. Sei sicuro?"))
			{
				document.frmDetail.action = "Detail.asp?action=remove&giornoSave=" + _sGiorno + "&IdToSave=" + _sId;
				document.frmDetail.target = "_self";
				document.frmDetail.submit();
			}
		}
	}	
	
	function setOperatore()
	{
		var objSel = document.getElementById("selectOperatore");
		var sId = objSel.options[objSel.selectedIndex].value;

		if (sId != "")
		{
			document.frmDetail.action = "Detail.asp?idOperatore=" + sId;
			document.frmDetail.target = "_self";
			document.frmDetail.submit();
		}
		return false;
	}

	function apriOrario(_sDate, _sGG, _sGGsql, _sRow, _sSepOrario, _sGiorno, _sAnno)
	{
		var saRow = _sRow.split("|");
		var sId = saRow[0];
		var sIdProg = saRow[1];
		var sIdAtt = saRow[2];
		var sDalle = saRow[3];
		var sAlle = saRow[4];
		var sNote = saRow[5];
		var sNoteAgg = saRow[6];
		var sConf = saRow[7];
		var	 sOreLavorate = saRow[8]	

		apriDiv('divDetail',0,0);

			
		var obj = document.getElementById("hiddenDetailDate" + _sGiorno);
		obj.disabled=false;
		obj.value = _sDate;
		obj.disabled=true;
		
		obj = document.getElementById("hiddenDetailID" + _sGiorno);
		obj.value = sId;
		
		obj = document.getElementById("hiddenDetailGG" + _sGiorno);
		obj.value = _sGGsql;
		
		obj = document.getElementById("tdGG");
		obj.innerHTML = _sGG;
		
		/*
		obj = document.getElementById("textDetailDalle");
		//obj.disabled=false;
		obj.value = sDalle;
		//obj.disabled=true;
		
		selectOraMinuti(sDalle, _sSepOrario, "selectOraDalle", "selectMinutiDalle");
		
		obj = document.getElementById("textDetailAlle");
		//obj.disabled=false;
		obj.value = sAlle;
		//obj.disabled=true;

		selectOraMinuti(sAlle, _sSepOrario, "selectOraAlle", "selectMinutiAlle");
		*/

		var iCount = document.all.selectOreLavorate.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = document.all.selectOreLavorate.options(i);
			if (opt!=null)
			{
				if (opt.value==sOreLavorate)
				{
					opt.selected=true;
					break;
				}
			}
		}
		
		/*
		obj = document.getElementById("textDetailNote");
		obj.disabled=false;
		obj.value = sNote;
		obj.disabled=true;
		*/

		/*
		obj = document.getElementById("textDetailNoteAgg");
		obj.value = sNoteAgg;
		obj.focus();
		*/
		
		document.all.selectDetailAttivita.disabled=false;
		document.all.selectDetailProgetto.disabled=false;
		document.all.selectDetailPermessi.disabled=false;
		
		bFerie = false;
		var iCount = document.all.selectDetailPermessi.options.length;
		for (i=0; i<iCount; i++)
		{
			var opt = document.all.selectDetailPermessi.options(i);
			if (opt!=null)
			{
				if (opt.value==sIdAtt)
				{
					bFerie = true;
					opt.selected=true;
					break;
				}
			}
		}
		
		if (!bFerie)
		{
			deselectPerm(_sGiorno);
			
			var iCount = document.all.selectDetailProgetto.options.length;
			for (i=0; i<iCount; i++)
			{
				var opt = document.all.selectDetailProgetto.options(i);
				if (opt!=null)
				{
					if (opt.value==sIdProg)
					{
						opt.selected=true;
						break;
					}
				}
			}
			
			loadOptAtt(sIdProg, _sGiorno, _sAnno);
			
			var iCount = document.all.selectDetailAttivita.options.length;
			for (i=0; i<iCount; i++)
			{
				var opt = document.all.selectDetailAttivita.options(i);
				if (opt!=null)
				{
					if (opt.value==sIdAtt)
					{
						opt.selected=true;
						break;
					}
				}
			}
		}
		else
		{
			deselectPrj(_sGiorno);
		}
		
		document.all.selectDetailAttivita.disabled=true;
		document.all.selectDetailProgetto.disabled=true;
		document.all.selectDetailPermessi.disabled=true;
		
		obj = document.getElementById("btnChgStato");
		
		if ((sConf=="True") || (sConf=="Vero"))
			btnChgStato.innerHTML="&nbsp;annulla conferma&nbsp;";
		else
			btnChgStato.innerHTML="&nbsp;conferma&nbsp;";
		
		
	}
	
	
	function openReportCDC()
	{
		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;
		if (sAnno=="")
		{
			alert("Prego, selezionare l'anno.");
			objSel.focus();
			return false;
		}
		
		objSel = document.getElementById("selectMese");
		var sMese = objSel.options[objSel.selectedIndex].value;
		objSelA = document.getElementById("selectMeseA");
		var sMeseA = objSelA.options[objSelA.selectedIndex].value;

		if ((sMese=="") && (sMeseA!=""))
		{
			alert("Attenzione! Periodo non valido.");
			objSel.focus();
			return false;
		}
		
		//alert(sMeseA + " < " + sMese);
		
		if ((sMese!="") && (sMeseA!=""))
		{
			if (parseInt(sMeseA * 1)<parseInt(sMese * 1))
			{
				alert("Attenzione! Periodo non valido. (" + sMeseA + " < " + sMese + ")");
				objSel.focus();
				return false;
			}
		}

		document.frmElenco.action = "ReportCDC.asp";
		document.frmElenco.target = "fraDetail";
		document.frmElenco.submit();
		return false;
	}
	
	function openReportProg()
	{
		var objSel = document.getElementById("codiceP");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare il progetto.");
			objSel.focus();
			return false;
		}

		var objSel = document.getElementById("anno");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare l'anno del progetto.");
			objSel.focus();
			return false;
		}
		
		/*
		var objSel = document.getElementById("annoEsercizio");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare l'Anno Esercizio del progetto.");
			objSel.focus();
			return false;
		}
		*/

		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;
		if (sAnno=="")
		{
			alert("Prego, selezionare l'anno.");
			objSel.focus();
			return false;
		}
		
		objSel = document.getElementById("selectMese");
		var sMese = objSel.options[objSel.selectedIndex].value;
		objSelA = document.getElementById("selectMeseA");
		var sMeseA = objSelA.options[objSelA.selectedIndex].value;

		if ((sMese=="") && (sMeseA!=""))
		{
			alert("Attenzione! Periodo non valido.");
			objSel.focus();
			return false;
		}
		
		//alert(sMeseA + " < " + sMese);
		
		if ((sMese!="") && (sMeseA!=""))
		{
			if (parseInt(sMeseA * 1)<parseInt(sMese * 1))
			{
				alert("Attenzione! Periodo non valido. (" + sMeseA + " < " + sMese + ")");
				objSel.focus();
				return false;
			}
		}

		document.frmElenco.action = "ReportProgetto.asp";
		document.frmElenco.target = "fraDetail";
		document.frmElenco.submit();
		return false;
	}

	function openReportProgTot()
	{
		var objSel = document.getElementById("codiceP");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare il progetto.");
			objSel.focus();
			return false;
		}

		var objSel = document.getElementById("anno");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare l'anno del progetto.");
			objSel.focus();
			return false;
		}

		/*
		var objSel = document.getElementById("annoEsercizio");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare l'Anno Esercizio del progetto.");
			objSel.focus();
			return false;
		}
		*/


		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;
		if (sAnno=="")
		{
			alert("Prego, selezionare l'anno.");
			objSel.focus();
			return false;
		}
		
		objSel = document.getElementById("selectMese");
		var sMese = objSel.options[objSel.selectedIndex].value;
		objSelA = document.getElementById("selectMeseA");
		var sMeseA = objSelA.options[objSelA.selectedIndex].value;

		if ((sMese=="") && (sMeseA!=""))
		{
			alert("Attenzione! Periodo non valido.");
			objSel.focus();
			return false;
		}
		
		//alert(sMeseA + " < " + sMese);
		
		if ((sMese!="") && (sMeseA!=""))
		{
			if (parseInt(sMeseA * 1)<parseInt(sMese * 1))
			{
				alert("Attenzione! Periodo non valido. (" + sMeseA + " < " + sMese + ")");
				objSel.focus();
				return false;
			}
		}

		document.frmElenco.action = "ReportProgettoTot.asp";
		document.frmElenco.target = "fraDetail";
		document.frmElenco.submit();
		return false;
	}
	
	function openReportIncarico()
	{
		var objSel = document.getElementById("selectOperatore");
		var sValue = objSel.options[objSel.selectedIndex].value;
		if (sValue=="")
		{
			alert("Prego, selezionare l'Operatore.");
			objSel.focus();
			return false;
		}

		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;
		if (sAnno=="")
		{
			alert("Prego, selezionare l'anno.");
			objSel.focus();
			return false;
		}
		
		document.frmElenco.action = "ReportIncarico.asp";
		document.frmElenco.target = "fraDetail";
		document.frmElenco.submit();
		return false;
	}


	function filtroProgetto()
	{
		document.frmElenco.action = "FiltroProgetto.asp";
		document.frmElenco.target = "_self";
		document.frmElenco.submit();
	}
	
	function filtroProgettoTot()
	{
		document.frmElenco.action = "FiltroProgettoTot.asp";
		document.frmElenco.target = "_self";
		document.frmElenco.submit();
	}
	
	function expDoc(_sPage)
	{
		var obj = document.getElementById("actionReport");
		obj.value="excel";
		document.frm.action = _sPage + ".asp";
		document.frm.target = "_blank";
		document.frm.submit();
	}	

	function printDoc(_sPage)
	{
		var obj = document.getElementById("actionReport");
		obj.value="print";
		document.frm.action = _sPage + ".asp";
		document.frm.target = "_blank";
		document.frm.submit();
	}	

	function selectAnnoPerm()
	{
		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;
		if (sAnno != "")
		{
			document.frm.action = "Detail.asp?anno=" + sAnno;
			document.frm.target = "_self";
			document.frm.submit();
		}
		
	}
	
	function savePerm()
	{

		var sValueSave = "";
		iLen = document.all.length;

		for (var i = 0; i < iLen; i++)
		{
			var obj = document.all[i];
			if (obj!=null)
			{
				sId = obj.id + "";
				if ((sId.length>0) && (sId.indexOf("text_")==0))
				{
					if (obj.value != "") {if (!isNumeric(obj.value)) {alert("Attenzione! I valori devono essere numerici."); obj.focus(); return false;}}
					if (obj.value != "")
					{
						sIdAttOp = sId.replace("text_","");
						if (sValueSave=="")
							sValueSave =  sIdAttOp + ";" + obj.value;
						else
							sValueSave =  sValueSave + "|" + sIdAttOp + ";" + obj.value;
					}
				}
			}
		}
		
		var objSel = document.getElementById("selectAnno");
		var sAnno = objSel.options[objSel.selectedIndex].value;

		document.frm.action = "Detail.asp?action=save&anno=" + sAnno + "&val=" + sValueSave;
		document.frm.target = "_self";
		document.frm.submit();
	}
	
	
	
	function show_calendar2(str_target, str_datetime, str_title) 
{
	var arr_months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno","Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
	var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)

	var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);

	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
	"<html>\n"+
	"<head>\n"+
	" <title>" + str_title + "</title>\n"+
	"</head>\n"+
	"<body onload=\"window.focus();\" bgcolor=\"ffbb32\">\n"+
	"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
	"<tr><td bgcolor=\"#4682B4\">\n"+
	"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
	"<tr>\n <td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar2('"+
	str_target+"', '"+ dt2dtstr(dt_prev_month)+"');\">"+
	"<img src=\"../images/prev.bmp\" width=\"16\" height=\"16\" border=\"0\""+
	" alt=\"mese precedente\"></a></td>\n"+
	" <td bgcolor=\"#4682B4\" colspan=\"5\">"+
	"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
	+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
	" <td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar2('"
	+str_target+"', '"+dt2dtstr(dt_next_month)+"');\">"+
	"<img src=\"../images/next.bmp\" width=\"16\" height=\"16\" border=\"0\""+
	" alt=\"mese successivo\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += " <td bgcolor=\"#87CEFA\">"+"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+week_days[(n_weekstart+n)%7]+"</font></td>\n";
	
	// print calendar table
	str_buffer += "</tr>\n";
	
	while (dt_current_day.getMonth() == dt_datetime.getMonth() || dt_current_day.getMonth() == dt_firstday.getMonth())
	{
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++)
		{
			if (dt_current_day.getDate() == dt_datetime.getDate() && dt_current_day.getMonth() == dt_datetime.getMonth())
				// print current date
				str_buffer += " <td bgcolor=\"#FFB6C1\" align=\"right\">";
			else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
				// weekend days
				str_buffer += " <td bgcolor=\"#DBEAF5\" align=\"right\">";
			else
				// print working days of current month
				str_buffer += " <td bgcolor=\"white\" align=\"right\">";
		
			if (dt_current_day.getMonth() == dt_datetime.getMonth())
				// print days of current month
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+dt2dtstr(dt_current_day)+"'; window.opener.goSettNr(); window.close();\">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
			else
				// print days of other months
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+dt2dtstr(dt_current_day)+"'; window.opener.goSettNr(); window.close();\">"+"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
			
			str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
			dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	

	// print calendar footer
	str_buffer +=
	/*
	"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
	"<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+
	"<input type=\"hidden\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
	"\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" +
	*/
	"</table>\n" +
	"</tr>\n</td>\n</table>\n" +
	"</body>\n" +
	"</html>\n";

	var vWinCal = window.open("", "Calendar","width=200,height=240,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}

function roundedDecimal(decimal,zeros) {
var mult = "1";
for (var i=0; i<zeros; i++)
mult += "0";
mult = parseInt(mult);
return parseFloat(Math.round(decimal*mult)/mult);
}

var bDisabled = false;

function recalcTot(_iTot)
{
	if (bDisabled)
		return;
			
	bDisabled = true;
	
	var iTotOre = 0;
	var iTotRes = 0;
	for (var i=1;i<=_iTot;i++)
	{
		var objOre = document.getElementById("txtOre_" + i);		
		if ((objOre) && (objOre.value!=""))
		{
			if (!isNumeric(objOre.value))
			{
				alert("Attenzione! I valori devono essere numerici (" + objOre.value + ")");
				objOre.focus();
				bDisabled = false;
				return;
			}
			
			iTotOre += roundedDecimal(objOre.value.replace(",","."), 2);
			iTotOre= roundedDecimal(iTotOre,2);
		}
		
	}	

	var objTotOre = document.getElementById("totOre");		
	if (objTotOre) {var sText = "<b>" + iTotOre + "</b>"; sText = sText.replace(".",","); objTotOre.innerHTML = sText;}

	bDisabled = false;
	
}

function recalcRes(_iTot)
{
	if (bDisabled)
		return;
			
	bDisabled = true;
	
	var iTotRes = 0;
	for (var i=1;i<=_iTot;i++)
	{
		var objRes = document.getElementById("txtRes_" + i);		
		if ((objRes) && (objRes.value!=""))
		{
			if (!isNumeric(objRes.value))
			{
				alert("Attenzione! I valori devono essere numerici (" + objRes.value + ")");
				objRes.focus();
				bDisabled = false;
				return;
			}
			
			iTotRes += roundedDecimal(objRes.value.replace(",","."), 2);
			iTotRes= roundedDecimal(iTotRes,2);
		}
		
	}	

	var objTotRes = document.getElementById("totRes");		
	if (objTotRes) {var sText = "<b>" + iTotRes + "</b>"; sText = sText.replace(".",","); objTotRes.innerHTML = sText;}

	bDisabled = false;
	
}

function saveOre()
{
	var iTotOreAtt = 0;
	var objTotOreAtt = document.getElementById("hiddenOreAtt");
	if (objTotOreAtt) {
		if (objTotOreAtt.value!="")
		{
			iTotOreAtt = objTotOreAtt.value + "";
			iTotOreAtt = iTotOreAtt.replace(",",".");
			iTotOreAtt = parseFloat(iTotOreAtt);
		}
	}
	
	var iTotOre = 0;
	var objTotOre = document.getElementById("totOre");
	var sTotOre = "";
	if (objTotOre) {if (objTotOre.innerHTML!="") {sTotOre = objTotOre.innerHTML;}}
	
	var sMsg = "";
	if (sTotOre!="")
	{
		sTotOre = sTotOre.toUpperCase();
		sTotOre = sTotOre.replace('<B>','');
		sTotOre = sTotOre.replace('</B>','');
		sTotOre = sTotOre.replace(',','.');
	}
	else
		sTotOre = "0";
	iTotOre = parseFloat(sTotOre);
	
	var iTotRes = 0;
	var sTotRes = "";
	var objTotRes = document.getElementById("totRes");
	if (objTotRes) {if (objTotRes.innerHTML!="") {sTotRes = objTotRes.innerHTML;}}
	
	var sMsg = "";
	if (sTotRes!="")
	{
		sTotRes = sTotRes.toUpperCase();
		sTotRes = sTotRes.replace('<B>','');
		sTotRes = sTotRes.replace('</B>','');
		sTotRes = sTotRes.replace(',','.');
	}
	else
		sTotRes = "0";
	iTotRes = parseFloat(sTotRes);

	iTotalone = parseFloat(iTotOre) + parseFloat(iTotRes);
	
	if (parseFloat(iTotalone) > parseFloat(iTotOreAtt))
	{
		sMsg = "Attenzione! \nImpossibile salvare le ore inserite.\nIl totale delle ore (" + iTotalone + ") è maggiore a quello dell\'attività (" + iTotOreAtt + ").";
		alert(sMsg);
		return false;
	}
	if (parseFloat(iTotalone) != parseFloat(iTotOreAtt))
	{
		sMsg = "Attenzione! Il totale delle ore (" + iTotalone + ")  non corrisponde a quello dell\'attività  (" + iTotOreAtt + ").";
		if (!confirm(sMsg + "\nContinuare?"))
			return false;
	}

	if(document.frmDetail)
	{
		document.frmDetail.action = "ElencoOper.asp?action=saveOre&id=" + document.getElementById("hiddenID").value;
		document.frmDetail.target = "_self";
		document.frmDetail.submit();
	}

}

function saveOreAssenze()
{
	document.frm.action = "Detail.asp?action=saveOre&id=" + document.getElementById("ID").value + "&anno=" + document.getElementById("hiddenAnno").value;
	document.frm.target = "_self";
	document.frm.submit();
}

	function openReportExcel()
	{
		var objSel = document.getElementById("Anno");
		var sAnno = objSel.options[objSel.selectedIndex].value;

		var objSel = document.getElementById("Progetto");
		var sProgetto = objSel.options[objSel.selectedIndex].value;

		var objSel = document.getElementById("CDC");
		var sCDC = objSel.options[objSel.selectedIndex].value;

		var objSel = document.getElementById("Operatore");
		var sOperatore = objSel.options[objSel.selectedIndex].value;

		if ((sAnno=="-1") && (sProgetto=="-1") && (sCDC=="-1") && (sOperatore=="-1") )
		{
			alert("Attenzione, selezionare almeno un filtro.");
			return false;
		}
		
		objSel = document.getElementById("selectMese");
		var sMese = objSel.options[objSel.selectedIndex].value;
		objSelA = document.getElementById("selectMeseA");
		var sMeseA = objSelA.options[objSelA.selectedIndex].value;

		if ((sMese=="") && (sMeseA!=""))
		{
			alert("Attenzione! Periodo non valido.");
			objSel.focus();
			return false;
		}
		
		//alert(sMeseA + " < " + sMese);
		
		if ((sMese!="") && (sMeseA!=""))
		{
			if (parseInt(sMeseA * 1)<parseInt(sMese * 1))
			{
				alert("Attenzione! Periodo non valido. (" + sMeseA + " < " + sMese + ")");
				objSel.focus();
				return false;
			}
		}

		document.frm.action = "ReportExcel.asp";
		document.frm.target = "fraDetail";
		document.frm.submit();
		return false;
	}

function recalcSomma()
{
	var objOre = document.getElementById("txtMonteOre");		
	var objResidue = document.getElementById("txtOreResidueAnnoPrec");			

	if (objOre.value=="") objOre.value = "0";
	if (objResidue.value=="") objResidue.value = "0";
	
	if (objOre.value!="")
	{
		if (!isNumeric(objOre.value))
		{
			alert("Attenzione! Il campo 'Monte ore' deve essere numerico");
			objOre.focus();
			return;
		}
	}
	
	if (objResidue.value!="")
	{
		if (!isNumeric(objResidue.value))
		{
			alert("Attenzione! Il campo 'Ore residue anno prec' deve essere numerico");
			objResidue.focus();
			return;
		}
	}

	var iTotOre = objOre.value;
	iTotOre = parseFloat(iTotOre.replace(",","."));
	var iTotRes = objResidue.value;
	iTotRes = parseFloat(iTotRes.replace(",","."));
	
	var iTot = roundedDecimal(iTotOre,2) + roundedDecimal(iTotRes,2);
	iTot = roundedDecimal(iTot,2);
	
	var objTot = document.getElementById("sommaOre");
	if (objTot) {var sText = "<b>Effettive:</b>&nbsp;"+iTot; sText = sText.replace(".",","); objTot.innerHTML = sText;}
	
}


