//*********************************************************************
//***************	FUNZIONI DI UTILITA

//*********************************************************************
//***************	FUNZIONI DI UTILITA

//*********************************************************************
//***	openPopup
// apertura popup
openPopup.newWindow=null;
function openPopup(theURL,winName,features, myWidth, myHeight, isCenter) { //v3.0
	window.name='myOpener';
	if((openPopup.newWindow!=null)&&(!openPopup.newWindow.closed)){
		//alert('closing...'+openPopup.newWindow.closed);
		//openPopup.newWindow.close();
		openPopup.newWindow.focus();
		openPopup.newWindow.location=theURL;
	}else{
	 	if(window.screen)if(isCenter)if(isCenter=="true"){
	    var myLeft = (screen.width-myWidth)/2;
	    var myTop = (screen.height-myHeight)/2;
	    features+=(features!='')?',':'';
	    features+=',left='+myLeft+',top='+myTop;
	   }
	 	openPopup.newWindow=window.open(theURL,'',features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
		openPopup.newWindow.opener=window;
		//alert(features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight)
	}
}	//	end function openPoUp
//*********************************************************************

//*********************************************************************
// *** showLayer
//
function showLayer(oDiv, bShow, width, height, hCenter, vCenter, left, top){
	if(bShow){
		var l, t;
		l = (hCenter == true ? (screen.width - width) / 2 : left);
		t = (vCenter == true ? (screen.height - height) / 2 : top);
		
		if(width!=null)	oDiv.style.width = width;
		if(height!=null) oDiv.style.height = height;
		if(l!=null) oDiv.style.left = l 
		if(t!=null) oDiv.style.top = t;
		
		oDiv.style.visibility = 'visible';
	}else{
		oDiv.style.visibility = 'hidden';
	}
}// end showLayer
//*********************************************************************

//*********************************************************************
//***	checkRegular
// utilizzata per verificare il match con una regular expression
function checkRegular(regS,value){
	var re=new RegExp(regS);
	return re.test(value)
}	// end function checkRegular
//*********************************************************************


//*********************************************************************
//*** isEmail
// true - email formalmente valida
// false - email non valida
function isEmail(value){
	return checkRegular('^(.+)@(.+)\.([a-z]{2,4})$',value);
}	// end function isEmail
//*********************************************************************

//*********************************************************************
//*** isEmpty
// true - valore vuoto o di soli spazi
// false 
function isEmpty(value){
	var s = value.replace(/\s*/,'');
	return (s=='');
}	// end function isEmpty
//*********************************************************************

//*********************************************************************
//*** isInteger
// true - la stringa è un intero
// false 
function isInteger(value){
	return !(isNaN(parseInt(value, 10)));
}	// end function isInteger
//*********************************************************************

//*********************************************************************
//*** isFloat
// true - valore è un numero decimale
// false 
function isFloat(value){
	return !(isNaN(parseFloat(value, 10)));
}	// end function isFloat
//*********************************************************************

//*********************************************************************
//*** getInteger
// true - valore è un numero decimale
// false 
function getInteger(value){
	var i = parseInt(value, 10);
	if(isNaN(i))return 0;
	else return i;
}	// end function getInteger
//*********************************************************************

//*********************************************************************
//*** getFloat
// true - valore è un numero decimale
// false 
function getFloat(value){
	var f = parseFloat(value);
	if(isNaN(f))return 0.0;
	else return f;
}	// end function isFloat
//*********************************************************************

//*********************************************************************
//*** chkSelectedSelect (IN: oggetto select, riferimento per non selezionata)
// true - select selezionata
// false - select non selezionata
function chkSelectedSelect(oSlc,sRef){
	if(oSlc!=null){
		var cSel = oSlc.options[oSlc.selectedIndex].value;
		return cSel!=sRef;
	}else{
		return false;
	}
}	// end function isEmail
//*********************************************************************

//

//detect dell'evento enter
// utile per submit non desiderati
// aggiungere nella pagina
//document.onkeydown = myFunc;
// function myFunc(e){
//		if (checkEnter(e))	{
		//do it
//		}
// }

function checkEnter(e) {

	var nav4 = window.Event ? true : false;
	var bVal = false;
	if (nav4){ // Navigator 4.0x
		var whichCode = e.which;
	}
	else // Internet Explorer 4.0x
		var whichCode = event.keyCode;
	if 	(whichCode == '13')
		bVal = true
	return bVal
}


//controlla se la data passata è valida
function isValidDate(sDta){
	var sRet = true;
	var ss;
	if(sDta!=null && sDta!=''){
		// indexof
		if (sDta.indexOf('/') > 0) {
			ss = sDta.split('/');
		}
		else {
			ss = sDta.split('-');
		}
				
		if(ss.length==3 && isInteger(ss[0]) && isInteger(ss[1]) && isInteger(ss[2])){
				var d = parseInt(ss[0],10);
				var m = parseInt(ss[1],10);
				var y = parseInt(ss[2],10);

				if (ss[2].length==3) {
					sRet = false;
				}
				else{
					var dta = new Date(y, m-1, d);
					if (isNaN(dta)) {
						sRet = false;
					}
					else {
					if (d != dta.getDate() || m != dta.getMonth()+1 || y != dta.getFullYear()){
						sRet = false;
					}	
					}
				}
		}else{
			sRet = false;
		}
	}else{
		sRet = false;
	}
	return sRet;
}


function isDecimal(value){
 return checkRegular('^[-]{0,1}[0-9]+([.,]{0,1}[0-9]+){0,1}$',value);
}

function setSelectValue(oSlc, val){
	if(oSlc!=null)

	for(var i=0; i<oSlc.options.length; i++)
		if(oSlc.options[i].value==(val+'')){
			oSlc.options[i].selected = true;
			break;
		}
}
function setRadioValue(oRdo, val){
	if(oRdo!=null)
	for(var i=0; i < oRdo.length; i++)
		if(oRdo[i].value==(val+'')){
			oRdo[i].checked = true;
			break;
		}
}

function addZeri(val,nZeri){
	var sRet;
	if ((val+'').length >= nZeri){
		sRet = val+'';
	}	
	else{
		sRet = val;
		for(var i=0;i<nZeri-(val+'').length;i++){
			sRet = '0' + sRet;
		}	
	}
	
	return sRet 
}


function getSelectValue(slc){
	return slc.options[slc.selectedIndex].value
}

function orderBy(objSort,ob,objDT,dataType){
	objSort.value=ob;
	objDT.value=dataType;
	submitForm(objSort.form);
}

function returnCalendarDta(obj,dta){
	var slc=document.getElementById('day'+obj)
	setSelectValue(slc,addZeri(dta.getDate(),2))
	if (slc.name.indexOf('tart')>0) { gestDayChange(slc); }
	
	slc=document.getElementById('month'+obj)
	setSelectValue(slc,addZeri(dta.getMonth()+1,2))
	if (slc.name.indexOf('tart')>0) { gestMonthChange(slc); }
	
	slc=document.getElementById('year'+obj)
	setSelectValue(slc,dta.getFullYear());
	if (slc.name.indexOf('tart')>0) { gestYearChange(slc); }
}

function setCheckboxValue(oRdo, listVal){
	var arVal
	if(oRdo!=null && isArray(oRdo)){
		arVal = listVal.split(',');
		for(var i=0; i < oRdo.length; i++){
			for (var j=0; j<arVal.length;j++){
				if(oRdo[i].value==(arVal[j]+'')){
					oRdo[i].checked = true;
					break;
				}
			}	
		}	
	}	
	if(oRdo!=null && !isArray(oRdo)){
		arVal = listVal.split(',');
		for (var j=0; j<arVal.length;j++){
			if(oRdo.value==(arVal[j]+'')){
				oRdo.checked = true;
				break;
			}
		}	
	}	
}

function isCheckboxChecked(oRdo){
	var bRet = false
	if(oRdo!=null && isArray(oRdo)){
		for(var i=0; i < oRdo.length; i++){
			if(oRdo[i].checked){
				bRet = true
				break;
			}
		}	
	}	
	if(oRdo!=null && !isArray(oRdo)){
		if(oRdo.checked){
			bRet = true
		}	
	}
	return bRet	
}



function gestDayChange(slc){
	var objDE = document.getElementById('dayEnd')
	setSelectValue(objDE,addZeri(parseInt(getSelectValue(slc),10)+1,2))	
}

function gestYearChange(slc){
	var objYE = document.getElementById('yearEnd')
	setSelectValue(objYE,getSelectValue(slc))	
}

function gestMonthChange(slc){
	var objYS = document.getElementById('yearStart')
	if (objYS){
		var mToday = new Date()
		var mMonth = addZeri(mToday.getMonth(),2)
		if(mMonth > getSelectValue(slc)){
			//aggiungo un anno
			var mYear = mToday.getFullYear()
			setSelectValue(objYS,mYear+1)
			var objYE = document.getElementById('yearEnd')
			setSelectValue(objYE,getSelectValue(objYS))
		}
	}
	var objM = document.getElementById('monthEnd')
	if (objM){
		return setSelectValue(objM,getSelectValue(slc));
	}

}


function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}


//function isInteger(val){if(isBlank(val)){return false;}for(var i=0;i<val.length;i++){if(!isDigit(val.charAt(i))){return false;}}return true;}
//function isNumeric(val){return(parseFloat(val,10)==(val*1));}
function LTrim(str){if(str==null){return null;}for(var i=0;str.charAt(i)==" ";i++);return str.substring(i,str.length);}
function RTrim(str){if(str==null){return null;}for(var i=str.length-1;str.charAt(i)==" ";i--);return str.substring(0,i+1);}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str){if(str==null){return str;}for(var i=0;str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t";i++);return str.substring(i,str.length);}
function RTrimAll(str){if(str==null){return str;}for(var i=str.length-1;str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t";i--);return str.substring(0,i+1);}
function TrimAll(str){return LTrimAll(RTrimAll(str));}
function isNull(val){return(val==null);}
function isBlank(val){if(val==null){return true;}for(var i=0;i<val.length;i++){if((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}}return true;}
function isDigit(num){if(num.length>1){return false;}var string="1234567890";if(string.indexOf(num)!=-1){return true;}return false;}		



