
function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

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 SetUniqueRadioButton(nameregex, current)
{
    re = new RegExp(nameregex);
    for(i = 0; i < document.forms[0].elements.length; i++)
    {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio')
        {
            if (re.test(elm.name))
            {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}


function err( mex, fld )
{
    alert(mex);
	fld.focus();
	return false;
}


function documentTrim(str)
{
	var ret = ''+str;
	while (ret.length>0)
	{
		if (ret.charAt(0)==' ' || ret.charAt(0)=='\t')
			ret = ret.substr(1);
		else
		if (ret.charAt(ret.length-1)==' ' || ret.charAt(ret.length-1)=='\t')
			ret = ret.substr(0,ret.length-1);
		else
			return ret;
	}
	return ret;
}

function fld_select_value(fld)
{
	return fld.options[fld.selectedIndex].value;
}

function isChecked(fld) 
{
	if(!fld)
		return false;
	if(!fld.length) {
		return fld.checked;
	} else {
		for(i=0; i < fld.length; i++) {
			if(fld[i].checked)
    			return true;
		}
	}
	return false;
}

function setChecked(fld,value) 
{
	if(fld)
    {
        fld.checked  = value;
    }
}

function resetChecked(fld) 
{
    if(!fld)
	  return false;
	if(!fld.length) {
		fld.checked = false;
	} else {
		for(i=0; i < fld.length; i++) {
				fld[i].checked = false;
    	}
	}
}

function setValue(name,value)
{
    var fldName = $get(name);
    if (fldName!=null)
    {
        fldName.value = value;
    }
}

function getValue(name)
{
   return getValueDef(name,'');
}

function getValueDef(name,defValue)
{
    var fldName = $get(name);
    if (fldName!=null)
    {
        return fldName.value;
    } else {
        return defValue;
    }
}

function toggleMe(a)
{
    var e=document.getElementById(a);
    if(!e)return true;
    if(e.style.display=="none"){
        e.style.display="block"
    } else {
        e.style.display="none"
    }
    return true;
}

function isPhoneNumber(s){
    var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (!documentIsdigit(c)) return false;
    }
    // All characters are numbers.
    return true;
}

function documentEmailValida(email)
{
    var isValid = false;
    var objRegExp  = /(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)/;
    //check for valid email
    isValid = objRegExp.test(email);
    
    if (isValid==true)
    {
    	email =  documentTrim(email);
    	 
        var i;
	    var j;
	    
	    i = email.indexOf("@")
	    // Non contiene @ -> false
	    if (i == -1)
	        return false;
	    // @ è il 1 car -> false
	    if (i == 0)
		   return false;
	    // Non contiene . dopo @ -> false
	    j = email.indexOf(".",i+1);
	    if (j == -1)
		   return false;
	    // . dopo @ senza carattere -> false
	    if (j == i +1)
		    return false;
	    // . ultimo carattere -> false
	    if (j == email.length-1)
		    return false;
		// dopo . almeno 2 caratteri -> false
	    if (j + 1 == email.length-1)
		    return false;
		    
	    // Contiene @ dopo @ -> false
	    j = email.indexOf("@",i+1);
	    if (j != -1)	  
		    return false;
		
        // Caratteri validi
        var isValidChar;
        var iChar;
        i = 0;
        isValidChar = true;
        while (i<email.length&&isValidChar)
        {
	        iChar =  email.charAt(i);
	        isValidChar = documentIsdigit(iChar) || documentStandardChar(iChar) || iChar=="_" ||  iChar=="." ||  iChar=="@" || iChar=="-"
	        i++;
        }
        isValid = isValidChar;
     }
	  
    
    return (isValid);
}

function isCodFiscaleValid(s){
    var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (documentIsdigit(c)==false&&documentStandardChar(c)==false) return false;
    }
    // All characters are numbers or char
    return true;
}

function documentStandardChar(c)
{
	//lettere minuscole
	return  (c.charCodeAt(0)>="a".charCodeAt(0) && c.charCodeAt(0)<="z".charCodeAt(0)) || (c.charCodeAt(0)>="A".charCodeAt(0) && c.charCodeAt(0)<="Z".charCodeAt(0));
}


function documentIsdigit( c )
{
	return c.charCodeAt(0)>="0".charCodeAt(0) && c.charCodeAt(0)<="9".charCodeAt(0);
}

function CVVlenght(s){
    if (s.length > 4)
    {
        // verifica che il cvv non abbia più di 4 cifre.
        return false;
    }
    //altrimenti è ok...
    return true;
}

function isValidFirstNameLastName(s){
    var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (documentIsdigit(c)==true) return false;
        if (isValidCharForFirstNameLastName(c)==false) return false;
    }
    // All characters are numbers.
    return true;
}

function isValidCharForFirstNameLastName( c )
{
	//lettere minuscole
	return ((c.charCodeAt(0)>="a".charCodeAt(0) && c.charCodeAt(0)<="z".charCodeAt(0)) || (c.charCodeAt(0)>="A".charCodeAt(0) && c.charCodeAt(0)<="Z".charCodeAt(0)) || (c.charCodeAt(0)=="`".charCodeAt(0)) || (c.charCodeAt(0)=="'".charCodeAt(0))|| (c==" "));
}

function documentLeftPad( str, size, padchar )
{
	while (str.length<size)
		str = padchar + str;
	return str;
}

///
/// Return a XMLHTTPRequest in a browser independent fashion.
///
function GetXMLHttp()
{
    var xmlhttp=false;
    
    try 
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) 
    {
        try 
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
        {
            xmlhttp = false;
        }
    }

    // Mozilla then?
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
       xmlhttp = new XMLHttpRequest();
    }
    
    return xmlhttp;
}


AC_FL_RunContent = 0;
// -----------------------------------------------------------------------------
// DETECT
var requiredMajorVersion = 8;
var requiredMinorVersion = 0;
var requiredRevision = 0;
// Location visited after installation is complete if installation is required
var MMredirectURL = window.location;
// DO NOT MODIFY THE FOLLOWING TWO LINES
document.title = document.title.slice(0, 47) + "";
var MMdoctitle = document.title;
// -----------------------------------------------------------------------------