// JavaScript Document

function trim( str )
{
  return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function goToLocation()
{
  var locationVal = findObj( 'hfLocation' ).value;
  if( locationVal != '' )
    document.location = '#' + locationVal;
}

function isRadioChecked ( radioObj )
{
  if ( radioObj == null )
    return false;

  var radioLength = radioObj.length;
  if ( radioLength == undefined )
  {
    if ( radioObj.checked )
      return true;
    else
      return false;
  }

  for ( var i = 0; i < radioLength; i++ )
  {
    if ( radioObj[i].checked )
    {
      return true;
    }
  }

  return false;
}

function getIdRadioChecked ( radioObj )
{
  if ( radioObj == null )
    return null;

  var radioLength = radioObj.length;
  if ( radioLength == undefined )
  {
    if ( radioObj.checked )
      return radioObj.value;
    else
      return null;
  }

  for ( var i = 0; i < radioLength; i++ )
  {
    if ( radioObj[i].checked )
    {
      return radioObj[i].value;
    }
  }

  return null;
}

function CtrlCodiceFiscale( cf )
{
    if( cf == '' )
        return true;

    if( cf.length != 16 )
        return false;

    cf = cf.toUpperCase();

    var cf_re = new RegExp( '^[A-Z0-9]+$' );
    if( cf_re.test( cf ) == false )
        return false;

    s = 0;
    for( i = 1; i <= 13; i += 2 )
    {
        c = cf.charAt(i);
        if
        (
          '0' <= c
          &&
          c <= '9'
        )
            s += (c + '' ).charCodeAt(0) - '0'.charCodeAt(0);
        else
            s += (c + '' ).charCodeAt(0) - 'A'.charCodeAt(0);
    }

    for( i = 0; i <= 14; i += 2 )
    {
        c = cf.charAt(i);
        switch( c )
        {
            case '0':
                s += 1;
                break;
            case '1':
                s += 0;
                break;
            case '2':
                s += 5;
                break;
            case '3':
                s += 7;
                break;
            case '4':
                s += 9;
                break;
            case '5':
                s += 13;
                break;
            case '6':
                s += 15;
                break;
            case '7':
                s += 17;
                break;
            case '8':
                s += 19;
                break;
            case '9'  :
                s += 21;
                break;
            case 'A':
                s += 1;
                break;
            case 'B':
                s += 0;
                break;
            case 'C':
                s += 5;
                break;
            case 'D':
                s += 7;
                break;
            case 'E':
                s += 9;
                break;
            case 'F':
                s += 13;
                break;
            case 'G':
                s += 15;
                break;
            case 'H':
                s += 17;
                break;
            case 'I':
                s += 19;
                break;
            case 'J':
                s += 21;
                break;
            case 'K':
                s += 2;
                break;
            case 'L':
                s += 4;
                break;
            case 'M':
                s += 18;
                break;
            case 'N':
                s += 20;
                break;
            case 'O':
                s += 11;
                break;
            case 'P':
                s += 3;
                break;
            case 'Q':
                s += 6;
                break;
            case 'R':
                s += 8;
                break;
            case 'S':
                s += 12;
                break;
            case 'T':
                s += 14;
                break;
            case 'U':
                s += 16;
                break;
            case 'V':
                s += 10;
                break;
            case 'W':
                s += 22;
                break;
            case 'X':
                s += 25;
                break;
            case 'Y':
                s += 24;
                break;
            case 'Z':
                s += 23;
                break;
        }
    }

    if( String.fromCharCode(( s % 26 +  'A'.charCodeAt(0) )) != cf.charAt(15) )
        return false;

    return true;
}

function CtrlCodiceFiscalePersonaGiuridica(pi)
{
	if( pi == '' )
    return '';

	if( pi.length != 11 )
		return false;

	validi = "0123456789";

	for( i = 0; i < 11; i++ )
  {
		if( validi.indexOf( pi.charAt(i) ) == -1 )
			return false;
	}

  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 false;

	return true;
}
function selezionaRadioByValore( valore ){

  inputs = $$('input');
  l = inputs.length;
    for(i=0; i<l; i++){
      if(inputs[i].value == valore && inputs[i].type =='radio'){
        inputs[i].checked = true;
        break;
      }


    }

}
