// JavaScript Document

	function noHtml(txt) {
	  a = txt.indexOf('<');
	  b = txt.indexOf('>');
	  len = txt.length;
	  c = txt.substring(0, a);
	  if(b == -1) {
		 b = a;
	  }
	  d = txt.substring((b + 1), len);
	  txt = c + d;
	  cont = txt.indexOf('<');
	  if (cont != -1) {
		txt = noHtml(txt);
	  }
	  return txt;
	  }
	  
     var flashVideoPlayer;
	 function initialize() {
			var isIE = navigator.appName.indexOf("Microsoft") != -1;
			flashVideoPlayer = (isIE) ? window['myVideo'] : document['myVideo'];
	 }
	  function makeCall(str) {
		   if(flashVideoPlayer!=undefined)  flashVideoPlayer.playVideo(str);
	 }
	
	var undefined;
	
	// *************************************************************
	// *************************************************************
	// ******************  BROWSER SNIFFER *************************
	// *************************************************************
	// *************************************************************
		var exclude=1;
		var agt=navigator.userAgent.toLowerCase();
		var win=0;var mac=0;var lin=1;
		if(agt.indexOf('win')!=-1){win=1;lin=0;}
		if(agt.indexOf('mac')!=-1){mac=1;lin=0;}
		var lnx=0;if(lin){lnx=1;}
		var ice=0;
		var ie=0;var ie4=0;var ie5=0;var ie6=0;var com=0;var dcm;
		var op5=0;var op6=0;var op7=0;
		var ns4=0;var ns6=0;var ns7=0;var mz7=0;var kde=0;var saf=0;
		if(typeof navigator.vendor!="undefined" && navigator.vendor=="KDE"){
			var thisKDE=agt;
			var splitKDE=thisKDE.split("konqueror/");
			var aKDE=splitKDE[1].split("; ");
			var KDEn=parseFloat(aKDE[0]);
			if(KDEn>=2.2){
				kde=1;
				ns6=1;
				exclude=0;
				}
			}
		else if(agt.indexOf('webtv')!=-1){exclude=1;}
		else if(typeof window.opera!="undefined"){
			exclude=0;
			if(/opera[\/ ][5]/.test(agt)){op5=1;}
			if(/opera[\/ ][6]/.test(agt)){op6=1;}
			if(/opera[\/ ][7-9]/.test(agt)){op7=1;}
			}
		else if(typeof document.all!="undefined"&&!kde){
			exclude=0;
			ie=1;
			if(typeof document.getElementById!="undefined"){
				ie5=1;
				if(agt.indexOf("msie 6")!=-1){
					ie6=1;
					dcm=document.compatMode;
					if(dcm!="BackCompat"){com=1;}
					}
				}
			else{ie4=1;}
			}
		else if(typeof document.getElementById!="undefined"){
			exclude=0;
			if(agt.indexOf("netscape/6")!=-1||agt.indexOf("netscape6")!=-1){ns6=1;}
			else if(agt.indexOf("netscape/7")!=-1||agt.indexOf("netscape7")!=-1){ns6=1;ns7=1;}
			else if(agt.indexOf("gecko")!=-1){ns6=1;mz7=1;}
			if(agt.indexOf("safari")!=-1 || (typeof document.childNodes!="undefined" && typeof document.all=="undefined" && typeof navigator.taintEnabled=="undefined")){mz7=0;ns6=1;saf=1;}
			}
		else if((agt.indexOf('mozilla')!=-1)&&(parseInt(navigator.appVersion)>=4)){
			exclude=0;
			ns4=1;
			if(typeof navigator.mimeTypes['*']=="undefined"){
				exclude=1;
				ns4=0;
				}
			}
		if(agt.indexOf('escape')!=-1){exclude=1;ns4=0;}
		if(typeof navigator.__ice_version!="undefined"){exclude=1;ie4=0;}
	
	
	// *************************************************************
	// *************************************************************
	// ******************  BROWSER SNIFFER *************************
	// *************************************************************
	// *************************************************************
	
	function jsUser(IDUTENTE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminUsersEXEC.asp?sOp='+sOp+'&IDUTENTE='+IDUTENTE;
		}
	}
	// home page
	function jsHomePage(ID, IDIMG, fileType, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminHomePageEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDIMG='+IDIMG+'&fileType='+fileType;
		}
	}
	function jsHomePageFiles(ID, IDFILE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminHomePageFilesEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDFILE='+IDFILE;
		}
	}
	// news
	function jsNews(ID, IDIMG, fileType, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminNewsEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDIMG='+IDIMG+'&fileType='+fileType;
		}
	}
	function jsNewsFiles(ID, IDFILE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminNewsFilesEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDFILE='+IDFILE;
		}
	}
	// faq
	function jsFaq(ID, IDIMG, fileType, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminFaqEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDIMG='+IDIMG+'&fileType='+fileType;
		}
	}
	function jsFaqFiles(ID, IDFILE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminFaqFilesEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDFILE='+IDFILE;
		}
	}
	function jsFaqCategorie(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminFaqCategorieEXEC.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	// link
	function jsLink(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminLinkEXEC.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	function jsLinkCategorie(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminLinkCategorieEXEC.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	// segnalazioni e reclami
	function jsSegnalazioni(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminSegnalazioniExec.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	// segnalazioni e reclami
	function jsSegnalazioniCategorie(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminSegnalazioniCategorieExec.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	// CMS
	function jsCMSMenu(ID, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminCmsTreeExec.asp?sOp='+sOp+'&ID='+ID;
		}
	}
	function jsCMS(ID, IDIMG, fileType, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminCMSEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDIMG='+IDIMG+'&fileType='+fileType;
		}
	}
	function jsCMSFiles(ID, IDFILE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminCmsFilesEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDFILE='+IDFILE;
		}
	}
	function jsCMSElements(ID, IDIMG, fileType, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminCMSElementsEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDIMG='+IDIMG+'&fileType='+fileType;
		}
	}
	function jsCMSElementsFiles(ID, IDFILE, sOp){
		if(confirm("Sei sicuro di voler proseguire?")){
		window.location = 'adminCmsElementsFilesEXEC.asp?sOp='+sOp+'&ID='+ID+'&IDFILE='+IDFILE;
		}
	}
	
	/**********************************************************************
	   Evidenziazione Links nelle pagine
	***********************************************************************/
	function HighlightVisitedLink(){
		var obj = document.getElementsByTagName('a');
		if (document.links || obj){
			for (var i=0; i < obj.length ;i++) {
				if (parseInt(jsInstr(obj[i].href, getCurrentLocation() )) > 0) {
					obj[i].style.color = '#FFFC81';
				}
			}
		}
	}
	
	function getCurrentLocation(sStrLocation){
		var currentLocation, nStart, nEnd
		currentLocation = document.location.toString();
		nStart = currentLocation.lastIndexOf("\/")
		currentLocation = Mid(currentLocation, nStart, 1000);
		nEnd = jsInstr(currentLocation, '.' )+1;
		return Mid(currentLocation, 0, nEnd);
	}

	function jsInstr(strSearch, charSearchFor){
		var s = strSearch.indexOf(charSearchFor);
		return(s);
	}

	function Mid(str, start, len){
			if (start < 0 || len < 0) return "";
			var iEnd, iLen = String(str).length;
			if (start + len > iLen)
					iEnd = iLen;
			else
					iEnd = start + len;

			return String(str).substring(start,iEnd);
	}
	/**********************************************************************
	   END Evidenziazione Links nelle pagine
	***********************************************************************/

	function isDateString(dateStr) {
		var datePat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		var TipoDiErrore = '';
		if (matchArray == null) {
			return false;
		}
	   day = matchArray[1]; // parse date into variables
	   month = matchArray[3]; 
	   year = matchArray[5];
		if (month < 1 || month > 12) { // check month range
			return false;
		}
		if (day < 1 || day > 31) {
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			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)) {
				return false;
			}
		}
		return true; // date is valid
	}
	

	function isTime (sTime, bSeconds){
		var timePat;
		if (bSeconds == true){
			timePat = /^(\d{1,2})(\.)(\d{2})(\.)(\d{2})$/;			
		}else{
			timePat = /^(\d{1,2})(\.)(\d{2})$/;			
		}
		var matchArray = sTime.match(timePat); // is the format ok?

		if (matchArray == null) {
			return false;
		}
		var intHour, intMinute, intSecond;
		intHour = matchArray[1]; 
		intMinute = matchArray[3]; 
		if (bSeconds == true) { intSecond = matchArray[5] } else { intSecond = 00 };

		var objTempTime = new Date( 0, 0, 1, intHour, intMinute, intSecond );
		return	( ( objTempTime.getHours()   == intHour   ) &&
				  ( objTempTime.getMinutes() == intMinute ) &&
				  ( objTempTime.getSeconds() == intSecond ) ) ? true : false
	}

	function date2ISO(dateStr, bTime, timeStr){ // gg-mm-aaaa
		var datePat = /^(\d{1,2})(-)(\d{1,2})(-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		if (matchArray == null) {
			return false;
		}
	
	   day = matchArray[1]; 
	   month = matchArray[3]; 
	   year = matchArray[5];
	   
	   var date;
	   
	   if (bTime == true) {
		
			var timePat = /^(\d{1,2})(\.)(\d{1,2})$/;	
			
			var matchArray = timeStr.Replace(":",".").match(timePat); // is the format ok?
	
			if (matchArray == null) return false;
			
			var intHour, intMinute;
			intHour = matchArray[1]; 
			intMinute = matchArray[3]; 
			
			if (intHour.toString().length <=1) intHour = '0'+intHour;
			if (intMinute.toString().length <=1) intMinute = '0'+intMinute;

			date = new Date(year+'/'+month+'/'+day+' '+intHour+':'+intMinute+':00');
	   } else {
		    date = new Date(year+'/'+month+'/'+day);
	   }
	   return date;
	}	
	
	function todayDate(){
	   var d, s = "";          
	   d = new Date();
	   var giorno, mese, anno;
	   giorno = d.getDate();
	   if (giorno.toString().length <= 1) {
		giorno = '0' + giorno;
	   }  
	   mese = d.getMonth() + 1;
	   if (mese.toString().length <= 1) {
		mese = '0' + mese;
	   }  
	   anno = d.getYear();
	   
	   s += giorno + "/";                   
	   s += mese + "/";            
	   s += anno;                         
	   return(s);                               
	}
	
	/**********************************************************************
	   Controllo se campo passato è un anno valido compreso fra 1900 e oggi
	***********************************************************************/
	function isYear (s) {
			var d;
			d = new Date();
			var yyyy = d.getFullYear()
			if ((notNull(s)) && (notBlank(s)) && (isSize(s, 4)) && (!isNaN(s)) && (isInRange(s, 1900, yyyy)) ) { 
				return true; 
			} else { 
				return false;
			}
	}
	
	
	function popup(sUrl){
		openPopupStd( sUrl, 600, 400, 'yes');	
	}

	function openPopupStd( url, dimx, dimy, sScroll) {
		dimwidth = dimx;
		dimheight = dimy;
		x = (800 - dimwidth)/2, y = (600 - dimheight)/2;
		if (screen) {
			x = (screen.availWidth - dimwidth)/2;
			y = (screen.availHeight - dimheight)/2;
		}
		var rand_no = Math.random().toString().Replace(".", "");

		var finestra1 = window.open(url,'win_'+rand_no,'location=no,status=no,scrollbars='+sScroll+',resizable=no,width='+dimwidth+',height='+dimheight+',screenX='+x+',screenY='+y+',top='+y+',left='+x);
		finestra1.focus();
	}
	
	String.prototype.Replace = function(s1, s2){
		return this.split(s1).join(s2);
	}
	
	function replaceHtmlSpecialChars(str) {
		var sHtml = str;
		return sHtml.Replace("’","'").Replace("“","\"").Replace("”","\"").Replace("–", "-").Replace("€", "&euro;");
		return sHtml;
	}
	
	function isBoxChecked(obj) {
		if (obj.length != undefined ) {
			for (var i=0; i < obj.length ;i++) {
				if (obj[i].checked) return true;
			}
		} else {
			if (obj.checked) return true;
		}
	}

	function moveCheckedValues(obj1, obj2){
		obj2.value = '';
		if (obj1.length != undefined) {
			for (var i=0; i < obj1.length ;i++) {
				if (obj1[i].checked) obj2.value += obj1[i].value + ",";
			}
		} else {
			if (obj1.checked) obj2.value += obj1.value + ",";
		}
	}
	
	function txtValida(oObj1, oObj2, sTrue, sFalse){
	  if (document.getElementById(oObj1).checked){
		  document.getElementById(oObj2).innerHTML = sTrue.toString();
	  }else{
		  document.getElementById(oObj2).innerHTML = sFalse.toString();
	  }
    }
	
	//**************************************************************
	// SHOW - HIDE OBJECT
	//**************************************************************
	//if(document.layers) { var ns4 = true; }
	//if(document.all && !document.getElementById) { var ie4 = true; }
	//if(document.all && document.getElementById) {var ie5 = true;};
	//if(document.addEventListener) {var nn6 = true};
	
	function showObject(obj) {
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 myObj.visibility = "show";
		}else if (ie4) {
			 myObj = document.all[obj];
			 myObj.style.visibility = "visible";
		} else {
			document.getElementById(obj).style.display = '';
		}
	}
	
	function hideObject(obj) {
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 myObj.visibility = "hide";
		} else if (ie4) {
			 myObj = document.all[obj];
			 myObj.style.display = "none";
		} else {
			document.getElementById(obj).style.display = 'none';
		}
	}
	
	function JsShowHideObject(obj){
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 if (myObj.visibility == "show") { myObj.visibility = "hide" }
			  else { myObj.visibility = "show" }
		}else if (ie4) {
			 myObj = document.all[obj];
			 if (myObj.style.visibility == "visible") { myObj.style.visibility = "none" }
			  else { myObj.style.visibility = "visible" }
		} else {
			myObj = document.getElementById(obj);
			 if (myObj.style.display == '') { myObj.style.display = 'none' }
			  else { myObj.style.display = '' }
		}
	}
	//**************************************************************
	// SHOW - HIDE OBJECT
	//**************************************************************
	
	// CROSS-BROWSER PRINT
	function printit(){  
		if (window.print) {
			window.print() ;  
		} else {
			var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
			document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
			WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
		}
	}
	
	function menuRedirect(oObj, sLink){
		document.location.href = sLink;	
		oObj.style.cursor = "hand";
	}

	function bgAlternate(oObj, sColor){
		oObj.style.backgroundColor=sColor;
	}

	function classAlternate(oObj, sClass){
		oObj.className=sClass;
	}
	
	String.prototype.Replace = function(s1, s2){
		return this.split(s1).join(s2);
	}
	
	function replaceHtmlSpecialChars(str) {
		var sHtml = str;
		return sHtml.Replace("’","'").Replace("“","\"").Replace("”","\"").Replace("–", "-").Replace("€", "&euro;");
		return sHtml;
	}
	
	function textCounter(field, countfield, maxlimit) {
		if (field.value.length > maxlimit) { // if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
			// otherwise, update 'characters left' counter
		} else { 
			countfield.value = maxlimit - field.value.length;
		}
	}

	var numb = '0123456789';
	var lwr = 'abcdefghijklmnopqrstuvwxyz';
	var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	 
	function isValid(parm,val) {
	  if (parm == "") return false;
	  for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) return false;
	  }
	  return true;
	}
	function isNum(parm) {return isValid(parm,numb);}
	function isLower(parm) {return isValid(parm,lwr);}
	function isUpper(parm) {return isValid(parm,upr);}
	function isAlpha(parm) {return isValid(parm,lwr+upr);}
	function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
	
	// return the value of the radio button that is checked
	// return an empty string if none are checked, or
	// there are no radio buttons
	function getCheckedValue(radioObj) {
		if(!radioObj)
			return "";
		var radioLength = radioObj.length;
		if(radioLength == undefined)
			if(radioObj.checked)
				return radioObj.value;
			else
				return "";
		for(var i = 0; i < radioLength; i++) {
			if(radioObj[i].checked) {
				return radioObj[i].value;
			}
		}
		return "";
	}
	
	// set the radio button with the given value as being checked
	// do nothing if there are no radio buttons
	// if the given value does not exist, all the radio buttons
	// are reset to unchecked
	function setCheckedValue(radioObj, newValue) {
		if(!radioObj)
			return;
		var radioLength = radioObj.length;
		if(radioLength == undefined) {
			radioObj.checked = (radioObj.value == newValue.toString());
			return;
		}
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].checked = false;
			if(radioObj[i].value == newValue.toString()) {
				radioObj[i].checked = true;
			}
		}
	}
	//***************************************************************************************
	// GETFIELDVALUE(FORM_NAME, FIELD_NAME, FIELD_TYPE)
	// ACQUISIZIONE DEL VALORE DI UN CAMPO ALL'INTERNO DI UN FORM
	//***************************************************************************************
	function getFieldValue(form_name, field_name, field_type){
		var field_value;
		switch (field_type) {   
			case "TEXT" :     
				field_value = eval("document."+form_name+"."+field_name+".value");
				break;    
			case "SELECT" :       
				field_value = eval("document."+form_name+"."+field_name+".options[document."+form_name+"."+field_name+".selectedIndex].value");
				break;    
			case "RADIO" :       
				field_value = 0;
				for (i=0 ; i < eval("document."+form_name+"."+field_name+".length") ; i++){
					if ( eval("document."+form_name+"."+field_name+"[i].checked") )
						field_value = eval("document."+form_name+"."+field_name+"[i].value");
				}
				break;    
			case "CHECKBOX" :
				field_value = false;
				if ( eval("document."+form_name+"."+field_name+".checked") )
					field_value = true;
			//default :       
				//document.write("Sorry, we are out of " + i + ".<BR>"); 
		} 
		return field_value;
	}
	//***************************************************************************************
	// LTRIM(S)
	// ELIMINAZIONE DI SPAZI ALL'INIZIO DI UNA STRINGA
	//***************************************************************************************
	function Ltrim(s){
		
		var s1
		var re;
	  
		re=/^\s+/g;
		
		s1 = s.replace(re,"");
		
		return s1;
	}
	
	//***************************************************************************************
	// RTRIM(S)
	// ELIMINAZIONE DI SPAZI ALLA FINE DI UNA STRINGA
	//***************************************************************************************
	function Rtrim(s){
		
		var s1
		var re;
	  
		re=/\s+$/g;
		
		s1 = s.replace(re,"");
		
		return s1;
	}
	
	//***************************************************************************************
	// TRIM(S)
	// ELIMINAZIONE DI SPAZI ALL'INIZIO E ALLA FINE DI UNA STRINGA
	//***************************************************************************************
	function Trim(s){
		
		var s1
		var re;
		
		re = /\s+$|^\s+/g;
		s1 = s.replace(re,"");
		
		return s1;
	}
	
	// sostituisce , con .
	function replaceComma( obj ){
	   var r, re;                    
	   var ss = obj.value;
	   re = new RegExp(",");
	   obj.value = ss.replace(re, ".");    
	   return(obj.value);                   
	}

	// sostituisce 0 con 0.00
	function setZero( obj ){
	   var ss = Trim(obj.value);
	   if ( (isNumber(ss) && parseFloat(ss)==0) || !isNumber(ss) )  ss = "0.00" ;
	   obj.value = ss;
	   return(obj.value);                   
	}
	
	function setZeroNoComma( obj ){
	   var ss = Trim(obj.value);
	   if ( !isNum(ss) ) ss = "0" ;
	   obj.value = ss;
	   return(obj.value);                   
	}
	
	function isCodFisc(cod_fisc)
	   {
	   var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
	   Codice=Trim(cod_fisc.toUpperCase());
		return re.test(Codice)
	   }
