// JavaScript Document

var hFormResNazione;
var hFormResProvincia;
var hFormResComune;
var hFormResCap;
var sFormName = 'registrazione_form';

function Form_Init()
{
	hFormResNazione   = document.getElementById( sFormName ).elements['RES_Nazione'];
	hFormResProvincia = document.getElementById( sFormName ).elements['RES_Provincia'];
	hFormResComune    = document.getElementById( sFormName ).elements['RES_Comune'];
	hFormResCap       = document.getElementById( sFormName ).elements['RES_Cap'];

	if( hFormResProvincia.options && !hFormResProvincia.options.length )
		Form_RES_Nazione_Change();
}

function Form_RES_Nazione_Change()
{
	if( hFormResNazione && hFormResNazione.value == 'San Marino' )
		Comuni_CaricaSelectProvincieRSM( hFormResProvincia );
	else
		Comuni_CaricaSelectProvincieITA( hFormResProvincia );

	Comuni_ImpostaSelectComuni(
		  hFormResProvincia
		, hFormResComune
		, hFormResCap );
}

function Form_RES_Provincia_Change()
{
	Comuni_ImpostaSelectComuni(
		  hFormResProvincia
		, hFormResComune
		, hFormResCap );
}

function Form_RES_Comune_Change()
{
	Comuni_SelezionaComuni(
		  hFormResProvincia
		, hFormResComune
		, hFormResCap );
}


function Form_RES_Comune_Switch( ASwitchToCombo )
{
	hFormResComuneDiv = document.getElementById('DIV_RES_Comune');
	
	if( ASwitchToCombo == true )
		hFormResComuneSel = document.getElementById('DIV_RES_Comune_Lista').innerHTML;
	else
		hFormResComuneSel = document.getElementById('DIV_RES_Comune_Testo').innerHTML;

	hFormResComuneDiv.innerHTML = hFormResComuneSel;

	hFormResComune = document.getElementById( sFormName ).elements['RES_Comune'];
	
	if( ASwitchToCombo == true )
		Form_RES_Provincia_Change();
}


function Form_Submit_Check()
{
var CampiOk = true;
var Campi;
var Valore;
var PIVAErr = false;
var MailErr = false;
var MD5Text = '';
var MD5Value;
var WEB_User;
	
	Campi = document.getElementById( sFormName ).elements;

	for( xx=0; xx<Campi.length && CampiOk == true && PIVAErr == false && MailErr == false; xx++ )
	{
		Valore = new String( Campi[xx].value );
		Valore = Valore.replace(/^\s+|\s+$/g,'');
		if(    Campi[xx].name.substr( 0, 4 ) != 'md5_'
		   	&& Campi[xx].name != 'pi_GEN_Note' 
			&& Campi[xx].name != 'pi_COM_Tel_2'
			&& Campi[xx].name != 'pi_COM_Cell'
			&& Campi[xx].name != 'pi_COM_Web'
			&& Valore == '' )
				CampiOk = false;

		if( CampiOk && Campi[xx].name == 'pi_GEN_PIVA_CF'
            && ( ( document.getElementById( 'RES_Nazione' ).value == 'Italia' && Valore.length != 11 )
				|| ( document.getElementById( 'RES_Nazione' ).value == 'San Marino' && Valore.length != 7 ) ) )
					PIVAErr = true;

		if( CampiOk && Campi[xx].name == 'pi_COM_Email' )
			MailErr = !MailCheck( Valore );
			
		if( CampiOk && Campi[xx].name.substr( 0, 4 ) != 'md5_' )
			MD5Text = MD5Text + Campi[xx].name + MD5_FieldNormalize( Valore );

		if( Campi[xx].name == 'pi_WEB_User' )
			WEB_User = Campi[xx].value;
	}

	if( MailErr )
		alert( "L'indirizzo E-mail inserito non e' corretto.\r\n\r\nRicontrollare l'indirizzo E-mail!" );
	else if( PIVAErr )
		alert( "La Partita IVA deve essere lunga 11 cifre per le aziende italiane\r\ne 7 caratteri (SMxxxxx) per le aziende sammarinesi" );
	else if( !CampiOk )
		alert( 'Non sono state ancora inserite alcune informazioni obbligatorie' );
	else
	{
		MD5Value = hex_md5( MD5_ValueNormalize( '' + GetCookie('Best_Session_Reg') + MD5Text ) );
		document.getElementById( 'md5_Request' ).value = MD5Value;
		document.getElementById( 'md5_Text'    ).value = MD5_ValueNormalize( '' + GetCookie('Best_Session_Reg') + MD5Text );

		hUserCheckForm = frames['submit_frame'].document.getElementById( 'registrazione_iframe' );
		hUserCheckForm.elements[0].value = WEB_User;
		hUserCheckForm.submit();
	}
}

function MD5_FieldNormalize( AText )
{
var Normalized = new String("");

	for( yy=0; yy<AText.length; yy++ )
	{
		if( AText.charAt(yy) != '\r' && AText.charAt(yy) != '\n' )
			Normalized = Normalized + AText.charAt(yy);
	}
	
	Normalized = Normalized.replace(/^\s+|\s+$/g,'');
	
	return( Normalized );
}

function MD5_ValueNormalize( AText )
{
var Dictionary = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var Normalized = "";
var UpperText = "";

	for( xx=0; xx<AText.length; xx++ )
	{
		if( Dictionary.lastIndexOf( AText.charAt(xx) ) == -1 )
			CurCar = '' + (xx % 10);
		else
			CurCar = '' + AText.charAt(xx);
		Normalized = Normalized + CurCar;
	}
	return( Normalized );
}

