var AnagraficaId = "content"
var AnagraficaInit = false
var AnagraficaModo  
var AnagraficaPagina
var AnagraficaLoaded = false;
var AnagraficaStyle = false;
var AnagraficaServerPage = "/webiris/Modules/Anagrafica/AjaxServer/index.aspx";
var AnagraficaForm
var AnagraficaFunc = false;

var AnagraficaTipo  
var AnagraficaSequ  

function Anagrafica_init(ajaxIndex)
{
	var response = ajaxObjects[ajaxIndex].responseXML;

	// inizializza il modulo
	try
	{
	  	var moduleStyle=response.getElementsByTagName("style")[0].childNodes[0].nodeValue;
		if (AnagraficaStyle == false) {
			AnagraficaStyle = true;
			//addStyle(ajaxObjects[ajaxIndex].response); 
			addStyle(moduleStyle); 
		}
	} catch (err) {
	}

	if (modulename != "Anagrafica" && AnagraficaInit==false) {
		modulename = "Anagrafica"
	  	AnagraficaId=response.getElementsByTagName("contenitore")[0].childNodes[0].nodeValue;

		// moduli contenuti nel "modulo"
		var x = response.getElementsByTagName("struttura")
	   	for (var i=0;i<x.length;i++) {
			var nome=XmlGet(x,0,"nome");
			var contenitore=XmlGet(x,0,"contenitore");
			eval(nome + "Id='" + contenitore + "'")
			eval(nome + "Init=true")
			eval(nome+"_initAjax()")
		}
	}

	clearAjaxSession(ajaxIndex);
	AnagraficaForm = false;

	if (AnagraficaModo=='list' || AnagraficaModo=='sort'  || AnagraficaModo=='fatturazione' || AnagraficaModo=='select') {
		if (AnagraficaModo=='list') {
			AnagraficaForm = new FormValidate(AnagraficaModo);
			AnagraficaForm.add('Tipo', 'req','Y', 'Dati non validi')
			AnagraficaForm.add('Sequenza', 'req|numeric','Y', 'Dati non validi')
			AnagraficaForm.add('Destinatario', 'req','Y', 'Dati non validi')		
			AnagraficaForm.add('TipoIndirizzo', 'req','Y', 'Dati non validi')		
			AnagraficaForm.add('Indirizzo', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Civico', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Cap', 'req|numeric','Y', 'Dati non validi')		
			AnagraficaForm.add('Citta', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Prov', 'req|alpha','Y', 'Dati non validi')		
			AnagraficaForm.add('Telefono', 'phone','Y', 'Dati non validi')		
			AnagraficaForm.add('Cellulare', 'phone','Y', 'Dati non validi')		
			AnagraficaForm.add('Scala', 'alpha','Y', 'Dati non validi')		
			AnagraficaForm.add('Piano', 'alpha','Y', 'Dati non validi')		
		}

		if (AnagraficaModo=='fatturazione') {
			AnagraficaForm = new FormValidate(AnagraficaModo);
			// AnagraficaForm.add('pwd', 'req|psw','Y', 'Password non valida')		
			// AnagraficaForm.add('pwd2', 'req|psw','N', 'Password non valida')		
			AnagraficaForm.add('TipoUtente', 'checked','Y', 'Selezionare tipo utente')

			AnagraficaForm.add('Nome', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.add('Cognome', 'req|mixed', 'Y', 'Dati non validi')		
			AnagraficaForm.add('CodiceFiscale', 'req|mixed','Y', 'Dati non validi')

			AnagraficaForm.disable('NomeAzienda', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.disable('CognomeAzienda', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.disable('RagioneSociale', 'req|none', 'Y', 'Dati non validi')		
			AnagraficaForm.disable('PartitaIva', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.disable('CodiceFiscaleA', 'req|mixed','Y', 'Dati non validi')		

			AnagraficaForm.add('TipoIndirizzo', 'req','Y', 'Dati non validi')		
			AnagraficaForm.add('Indirizzo', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Civico', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Cap', 'req|numeric','Y', 'Dati non validi')		
			AnagraficaForm.add('Citta', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Prov', 'req|alpha','Y', 'Dati non validi')		
			AnagraficaForm.add('Telefono', 'phone','Y', 'Dati non validi')		
			AnagraficaForm.add('Cellulare', 'phone','Y', 'Dati non validi')		
			/*
				CodiceAttivazione
			*/
		}

		Anagrafica_listAjax();
    }

	if (AnagraficaModo=='form' || AnagraficaModo=='registra' || AnagraficaModo=='edit' || AnagraficaModo=='password') {
		if (AnagraficaModo=='registra') {
			AnagraficaForm = new FormValidate(AnagraficaModo);
			AnagraficaForm.add('NomeUtente', 'req|email','Y', 'Nome utente non valido')		
			AnagraficaForm.add('NomeUtente2', 'req|email','N', 'Dati non validi')		
			AnagraficaForm.add('pwd', 'req|psw','Y', 'Password non valida')		
			AnagraficaForm.add('pwd2', 'req|psw','N', 'Password non valida')		
			AnagraficaForm.add('TipoUtente', 'checked','Y', 'Selezionare tipo utente')

			AnagraficaForm.add('Nome', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.add('Cognome', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.add('CodiceFiscale', 'req|mixed', 'Y', 'Dati non validi')		

			AnagraficaForm.add('NomeAzienda', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('CognomeAzienda', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('RagioneSociale', 'req|none','Y', 'Dati non validi')
			AnagraficaForm.add('PartitaIva', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.add('CodiceFiscaleA', 'req|mixed', 'Y', 'Dati non validi')		

			AnagraficaForm.add('PrivacyNewsletter', 'checked','Y', 'Dati non validi')		
			AnagraficaForm.add('PrivacyAgevolazioni', 'checked','Y', 'Dati non validi')		
			AnagraficaForm.add('CondizioniVendita', 'checked','Y', 'Dati non validi')

			AnagraficaForm.disable('NomeAzienda', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.disable('CognomeAzienda', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.disable('RagioneSociale', 'req|none', 'Y', 'Dati non validi')
			AnagraficaForm.disable('PartitaIva', 'req|mixed', 'Y', 'Dati non validi')
			AnagraficaForm.disable('CodiceFiscaleA', 'req|mixed', 'Y', 'Dati non validi')		

			AnagraficaForm.add('TipoIndirizzo', 'req','Y', 'Dati non validi')		
			AnagraficaForm.add('Indirizzo', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Civico', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Cap', 'req|numeric','Y', 'Dati non validi')		
			AnagraficaForm.add('Citta', 'req|mixed','Y', 'Dati non validi')		
			AnagraficaForm.add('Prov', 'req|alpha','Y', 'Dati non validi')		
			AnagraficaForm.add('Telefono', 'phone','Y', 'Dati non validi')		
			AnagraficaForm.add('Cellulare', 'phone','Y', 'Dati non validi')		
			/*
				CodiceAttivazione
			*/
		}

		if (AnagraficaModo=='password') {
			AnagraficaForm = new FormValidate(AnagraficaModo);
			AnagraficaForm.add('NomeUtente', 'req|email','Y', 'Nome utente non valido')		
		}

		Anagrafica_formAjax();
	}
}

function Anagrafica_showForm(ajaxIndex)
{
	replace_html(AnagraficaId, ajaxIndex)
	//var R = document.getElementById(AnagraficaId);
    //R.innerHTML = ajaxObjects[ajaxIndex].response
	//R.style.display="block";
	//R.style.visibility = "visible";

	//Anagrafica_ExecuteScript(R)

	//AnagraficaLoaded = true;
	//clearAjaxSession(ajaxIndex); 
}
    
function Anagrafica_showList(ajaxIndex)
{
	replace_html(AnagraficaId, ajaxIndex)
	
	//var R = document.getElementById(AnagraficaId);
    //R.innerHTML = ajaxObjects[ajaxIndex].response
	//R.style.display="block";
	//R.style.visibility = "visible";
	
	//Anagrafica_ExecuteScript(R)
	
	//AnagraficaLoaded = true;
	//clearAjaxSession(ajaxIndex); 
}

function Anagrafica_initAjax(modo, tipo, sequ)
{
	if ( arguments.length==1 && typeof modo == 'object' ) {
		params = modo
		modo = params['modo']  	
		tipo = params['tipo']  	
		sequ = params['sequ']  	
	}

    if (modo == "null" || typeof(modo) == "undefined") modo = "list";
    if (tipo == "null" || typeof(tipo) == "undefined") tipo = "S";
    if (sequ == "null" || typeof(sequ) == "undefined") sequ = "0";

    AnagraficaModo = modo;  
    AnagraficaTipo = tipo;  
    AnagraficaSequ = sequ;  

	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = AnagraficaServerPage;
	ajaxObjects[ajaxIndex].onLoading = show_progressbar(AnagraficaId);	
	ajaxObjects[ajaxIndex].setVar('init',' ');
	ajaxObjects[ajaxIndex].onCompletion = function(){ Anagrafica_init(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function Anagrafica_getForm(ajaxIndex)
{
	hide_progressbar(AnagraficaId)	

	var response = ajaxObjects[ajaxIndex].responseXML;
	try
	{
	  	var stato=response.getElementsByTagName("stato")[0].childNodes[0].nodeValue;
		if (stato!='ok') {
	  		var msg=response.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
	  		var field=response.getElementsByTagName("field")[0].childNodes[0].nodeValue;
			AnagraficaForm.error(field, msg)
		} else {
			AnagraficaForm = false;

			var code = response.getElementsByTagName("redirect")[0].childNodes[0].nodeValue
			if (code!='')
				eval(code)	
		}
	} catch (err) {
	}
}

function Anagrafica_formAjax()
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = AnagraficaServerPage;
	ajaxObjects[ajaxIndex].onLoading = show_progressbar(AnagraficaId);	
	ajaxObjects[ajaxIndex].setVar('form', '*');
	ajaxObjects[ajaxIndex].setVar('modo', AnagraficaModo);
	ajaxObjects[ajaxIndex].onCompletion = function(){ Anagrafica_showForm(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}


function Anagrafica_listAjax()
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = AnagraficaServerPage;
	ajaxObjects[ajaxIndex].onLoading = show_progressbar(AnagraficaId);	
	ajaxObjects[ajaxIndex].setVar('list',AnagraficaModo);
	ajaxObjects[ajaxIndex].setVar('tipo',AnagraficaTipo);
	ajaxObjects[ajaxIndex].setVar('sequ',AnagraficaSequ);
	ajaxObjects[ajaxIndex].onCompletion = function(){ Anagrafica_showList(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function Anagrafica_Submit(form)
{
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = AnagraficaServerPage;
	ajaxObjects[ajaxIndex].setVar('submit',form);

	AnagraficaForm.submit( ajaxObjects[ajaxIndex] )

	ajaxObjects[ajaxIndex].onLoading = show_progressbar(AnagraficaId);	
	ajaxObjects[ajaxIndex].onCompletion = function(){ Anagrafica_getForm(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();
}


function Anagrafica_ExecuteScript(div)
{
	// execute script
   	var x = div.getElementsByTagName("script");    
   	for( var i=0; i < x.length; i++) {   
      	eval(x[i].text);   
	}   
}


function Anagrafica_Validate(form)
{
	if ( AnagraficaForm.checkform() ) {
		if (AnagraficaForm.GetValue('NomeUtente') != AnagraficaForm.GetValue('NomeUtente2'))
			AnagraficaForm.error('NomeUtente', 'Valore diverso da Nome Utente')
		else if (AnagraficaForm.GetValue('pwd') != AnagraficaForm.GetValue('pwd2'))
			AnagraficaForm.error('pwd2', 'Valore non corretto')
		else
			Anagrafica_Submit(AnagraficaModo)
	}
}

/* *******************************************************
   Form Registrazione
********************************************************* */
function checkT(v) {
	if (v=="P") {
        gid("tblPrivato").style.display="block";
		AnagraficaForm.enable('Nome', 'req|mixed','Y', 'Dati non validi')
		AnagraficaForm.enable('Cognome', 'req|mixed', 'Y', 'Dati non validi')
		AnagraficaForm.enable('CodiceFiscale', 'req|mixed', 'Y', 'Dati non validi')		
        
		gid("tblAzienda").style.display="none";
		AnagraficaForm.disable('NomeAzienda', 'req|mixed','Y', 'Dati non validi')		
		AnagraficaForm.disable('CognomeAzienda', 'req|mixed','Y', 'Dati non validi')
		AnagraficaForm.disable('RagioneSociale', 'req|none', 'Y', 'Dati non validi')
		AnagraficaForm.disable('PartitaIva', 'req|mixed', 'Y', 'Dati non validi')
		AnagraficaForm.disable('CodiceFiscaleA', 'req|mixed', 'Y', 'Dati non validi')		

    } else {
        gid("tblPrivato").style.display="none";
        AnagraficaForm.disable('Nome', 'req|mixed', 'Y', 'Dati non validi')
        AnagraficaForm.disable('Cognome', 'req|mixed', 'Y', 'Dati non validi')
        AnagraficaForm.disable('CodiceFiscale', 'req|mixed', 'Y', 'Dati non validi')		
        
		gid("tblAzienda").style.display="block";
		AnagraficaForm.enable('NomeAzienda', 'req|mixed','Y', 'Dati non validi')		
		AnagraficaForm.enable('CognomeAzienda', 'req|mixed','Y', 'Dati non validi')
		AnagraficaForm.enable('RagioneSociale', 'req|none', 'Y', 'Dati non validi')		
		AnagraficaForm.enable('PartitaIva', 'req|mixed','Y', 'Dati non validi')
		AnagraficaForm.enable('CodiceFiscaleA', 'req|mixed', 'Y', 'Dati non validi')		
    }    
}
