function openWindowIT(theURL,winName,windowW,windowH) {
  wX =Math.ceil((screen.width  - windowW)/2);
  wY =Math.ceil((screen.height - windowH)/2);
  param='width='+windowW+',height='+windowH+',top='+wY+',left='+wX;
  newwindow=window.open(theURL,winName,param);
  newwindow.creator=self;
  newwindow.focus();	
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

//-------------------------------------------
//				gestione campi form
//-------------------------------------------

var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var defaultEmptyOK = false
var whitespace = " \t\n\r";

function makeArray(n) {
   for (var i = 1; i <= n; i++) {
      this[i] = 0
   } 
   return this
}

var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;

function isEmpty(s){   
	return ((s == null) || (s.length == 0))
}

function stripCharsInBag (s, bag){   
	var i;
    var returnString = "";
	for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
   return returnString;
}

function stripCharsNotInBag (s, bag){   
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }
	return returnString;
}

function charInString (c, s){   
	for (i = 0; i < s.length; i++){   
		if (s.charAt(i) == c) return true;
    }
    return false
}

function stripWhitespace (s){
	return stripCharsInBag (s, whitespace)
}

function stripInitialWhitespace (s){
	var i = 0;
    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;
    return s.substring (i, s.length);
}

function isWhitespace (s){   
	var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function isLetter (c){   
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c){   
	return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c){   
	return (isLetter(c) || isDigit(c))
}

function isInteger (s){  
	var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

function isIntegerMax (s,maxval){  
	var i;
    if (isEmpty(s)) return defaultEmptyOK;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
	if (s>maxval) return false;
    return true;
}


function isFloat (s,decimalPointDelimiter){   
	var i;
    var seenDecimalPoint = false;
    if (s == decimalPointDelimiter) return false;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }
    return true;
}

function isEmail (s){   
	if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@")){ 
	i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != ".")){ 
		i++
    }
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isAlphabetic (s){   
	var i;
    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (!isLetter(c))
        return false;
    }
    return true;
}

function isAlphanumeric (s){   
	var i;
    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }
	return true;
}

function checkEmail (theField, emptyOK)
{   if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, iEmail);
    else return true;
}

function verifica_form () {
	var i,args = verifica_form.arguments;
	var errori=0, msg="";
	if ((args.length-1)>0) {
		for (i=0; i<(args.length-1); i+=5) {
			objSel = MM_findObj (args[i]);
			if (objSel.type!='hidden' ) {
				objSel.className ="box-input";
				objSel.value = stripInitialWhitespace (objSel.value);
			}
			FlagOblig = args[i+3];
				
			if (FlagOblig && isWhitespace (objSel.value)) { 
				objSel.className ="box-input2";
				errori+=1;
				msg += "- "+args[i+1]+": richiesto\n";
			}
				
			switch(args[i+2]) {
					
				case "email":
					if(!isEmail(objSel.value) && !isWhitespace (objSel.value)) {
						objSel.className ="box-input2";
						errori+=1;
						msg += "- "+args[i+1]+": deve essere un indirizzo e-mail valido\n";					
					}
				break;
			}//switch (args[i+2])				
		}
	}
	if (errori>0) {
		alert ("Sono presenti n. "+errori+" errori:\n"+msg);
		document.MM_returnValue = false;
	} else {
		document.MM_returnValue = true;
	}

}