// Modulo contenenti gli script Ajax utilizzati nel sito TFS.

//-- Funzione per il caricamento dell'oggetto XMLHttpRequest
//-- compatibile con i browsers più recenti e diffusi
function getXMLHttpRequest() {
	// lista delle variabili locali
	var XHR = null;
	// informazioni sul nome del browser
	var browserUtente = navigator.userAgent.toUpperCase();
	// browser standard con supporto nativo
	// non importa il tipo di browser
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object") {
		 // browser Internet Explorer
		 // è necessario filtrare la versione 4
  		XHR = new XMLHttpRequest();
	}
    else if ( window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0 ) {
		// la versione 6 di IE ha un nome differente
		// per il tipo di oggetto ActiveX
		if(browserUtente.indexOf("MSIE 5") < 0) {
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
		}
		else {
			// le versioni 5 e 5.5 invece sfruttano lo stesso nome
		    XHR = new ActiveXObject("Microsoft.XMLHTTP");
		}
	 }
	 return XHR;
} 

//-- Functione che permette di svuotare una select
function svuotaHtmlSelect(sel) {
	num_option=sel.options.length;	
	for(a=num_option;a>=0;a--) {		
		sel.options[a]=null;	 
	}		
}

function aggiungiItemSelect(sel, valore, testo) {
	num_option=sel.options.length;	
	sel.options[num_option]=new Option(testo,valore,false,false);
}

//-- Funzione per il caricamento delle versioni vettura
//-- Questa funzione presuppone che ci sia una combo box da popolare con
function getVersioneVettura() {
	var ajaxObj = getXMLHttpRequest();
	var vettura = document.getElementById('model')
	var elemento = document.getElementById('version');
	
	// svuoto la select e il campo prezzo
	svuotaHtmlSelect(elemento);
	prezzo = document.getElementById('price');
	prezzo.value = 0;

	// inizializzo la richiesta in post
	ajaxObj.open("post", "tfs_ajaxSrvVetture.asp", true);
	// imposto il giusto header
	ajaxObj.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    // imposto la callback per la ricezione dei dati
    ajaxObj.onreadystatechange = function() {  
      // nel caso in cui la funzione sia completata verifico l'esito
      if(ajaxObj.readyState == 4) {
        // verifico la risposta del server
        if(ajaxObj.status == '200') {
          // operazione avvenuta con successo carico la lista di vetture
		  if ( ajaxObj.responseText.length > 0 ) {
			  aggiungiItemSelect(elemento,'','Selezionare')
			  var arrVersioni = ajaxObj.responseText.split(',');
			  for ( i=0; i<arrVersioni.length; i++ ) {
			  		aggiungiItemSelect(elemento, arrVersioni[i], arrVersioni[i]);
			  }
			  document.getElementById('ecoincentivo_si').checked = false;
			  document.getElementById('ecoincentivo_no').checked = true;			  
		  }
		  document.getElementById('ecoincentivo_prezzo').innerHTML = '';
		  document.getElementById('info_ecoincentivo').innerHTML = '';			  			  
		}
        else {
          // errore di caricamento
		  alert('Errore riscontrato: ' + ajaxObj.status);
        }
      } 
    }
	// effettuo la richiesta inviando la variabile leggi con contenuto Dante
	ajaxObj.send("op=carica_versione&vettura="+escape(vettura.value)); 
}

//-- Funzione per il caricamento delle immagini vettura
function getImageVettura() {
	var ajaxObj = getXMLHttpRequest();
	var vettura = document.getElementById('model')
	
	// inizializzo la richiesta in post
	ajaxObj.open("post", "tfs_ajaxSrvVetture.asp", true);
	// imposto il giusto header
	ajaxObj.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    // imposto la callback per la ricezione dei dati
    ajaxObj.onreadystatechange = function() {  
      // nel caso in cui la funzione sia completata verifico l'esito
      if(ajaxObj.readyState == 4) {
        // verifico la risposta del server
        if(ajaxObj.status == '200') {
          // operazione avvenuta con successo carico la lista di vetture
		  if ( ajaxObj.responseText.length > 0 ) {
			  document.getElementById('img_vettura').innerHTML = ajaxObj.responseText;
		  }
		}
        else {
          // errore di caricamento
		  alert('Errore riscontrato: ' + ajaxObj.status);
        }
      } 
    }
	// effettuo la richiesta inviando la variabile leggi con contenuto Dante
	ajaxObj.send("op=carica_img&vettura="+escape(vettura.value)); 
}


//-- Funzione per il caricamento del prezzo della vettura
function getPrezzoVettura(vettura, versione) {
	var ajaxObj = getXMLHttpRequest();
	var vettura = document.getElementById('model')
	var versione = document.getElementById('version');
	// nel caso in cui la versione non sia stata selezionata rimuovo il 
	// prezzo senza lanciare lo script ajax
	if ( versione.value=='Selezionare' ) {
		prezzo = document.getElementById('price')
		prezzo.value = 0;
	}
	// inizializzo la richiesta in post
	ajaxObj.open("post", "tfs_ajaxSrvVetture.asp", true);
	// imposto il giusto header
	ajaxObj.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    // imposto la callback per la ricezione dei dati
    ajaxObj.onreadystatechange = function() {  
      // nel caso in cui la funzione sia completata verifico l'esito
      if(ajaxObj.readyState == 4) {
        // verifico la risposta del server
        if(ajaxObj.status == '200') {
          // operazione avvenuta con successo carico il prezzo della vettura
		  prezzo = document.getElementById('price')
		  arr = ajaxObj.responseText.split(',');
		  prezzo.value = arr[0];
		  //prezzo.value = ajaxObj.responseText;
		  document.getElementById('ecoincentivo_error').value = '';
		  if ( document.getElementById('ecoincentivo_si').checked ) {
			  if ( arr[1] > 0 ) {
				  document.getElementById("info_ecoincentivo").innerHTML="*Rottamando un Euro 0, un Euro 1 o un Euro 2 immatricolati fino al 31.12.1999 (Decreto Legge 10.02.2009 n. 5) godrai dell'ecoincentivo di 1.500 euro."
				  if ( vettura.value == 'Prius' ) {
					  document.getElementById("ecoincentivo_prezzo").innerHTML="&nbsp;-5000 &euro; con ecoincentivo ***"
					  document.getElementById("info_ecoincentivo").innerHTML = document.getElementById("info_ecoincentivo").innerHTML + "<br /><br />**Grazie alle sue minime emissioni di CO2, oggi la Nuova Prius gode dell'ecoincentivo di 3.500,00 euro per l acquisto di auto ecologica (DL 10.02.2009 n. 5).";
				  }
				  else
					  document.getElementById("ecoincentivo_prezzo").innerHTML="&nbsp;-1500 &euro; con ecoincentivo *"
			  }
			  else {
				  document.getElementById('ecoincentivo_error').value="Il modello selezionato non usufruisce<br> di ecoincentivo ai sensi del Decreto <br> Legge 10.02.2009 n. 5";
			  }
		  }
		  else {
			  if ( vettura.value == 'Prius' ) {
					  document.getElementById("ecoincentivo_prezzo").innerHTML="&nbsp;-3500 &euro; con ecoincentivo **"
					  document.getElementById("info_ecoincentivo").innerHTML = "**Grazie alle sue minime emissioni di CO2, oggi la Nuova Prius gode dell''ecoincentivo di 3.500,00 euro per l acquisto di auto ecologica (DL 10.02.2009 n. 5).";
			  }
			  else {
				  document.getElementById("info_ecoincentivo").innerHTML= "";
				  document.getElementById("ecoincentivo_prezzo").innerHTML=""
			  }
		  }
		  /**
		  if ( vettura.value == 'Prius' ) {
			   document.getElementById('alert_prius_prezzo').style.visibility = 'visible';
			   document.getElementById('prius_ecoincentivo').style.visibility = 'visible';			  
		  }
		  else {
			   document.getElementById('alert_prius_prezzo').style.visibility = 'hidden';
			   document.getElementById('prius_ecoincentivo').style.visibility = 'hidden';			  			  
	      }
			**/
		}
        else {
          // errore di caricamento
		  alert('Errore riscontrato: ' + ajaxObj.status);
        }
      } 
    }
	// effettuo la richiesta inviando la variabile leggi con contenuto Dante
	ajaxObj.send("op=carica_prezzo&vettura="+escape(vettura.value)+"&versione="+escape(versione.value)); 
}

//-- Funzione di caricamento del multimedia calcolatore
function carica_multimedia(page) {
	var ajaxObj = getXMLHttpRequest();
	if ( page=='' ) ajaxObj.open("get", "multimedia/calcolo/info/tfs_info_calcolo_multimedia.html", true);
	else ajaxObj.open("get", "multimedia/calcolo/info/"+page+"_info_calcolo_multimedia.html", true);
	ajaxObj.onreadystatechange = function() {  
      // nel caso in cui la funzione sia completata verifico l'esito
      if(ajaxObj.readyState == 4) {
        // verifico la risposta del server
        if(ajaxObj.status == '200') {
		  	var obj = document.getElementById('id_multimedia');
			obj.innerHTML = ajaxObj.responseText;
		}
        else {
          // errore di caricamento
		  alert('Errore riscontrato: ' + ajaxObj.status);
        }
      } 
    }
	// effettuo la richiesta inviando la variabile leggi con contenuto Dante
	ajaxObj.send(null); 
}

//-- Funzione di caricamento della box accessori
function carica_accessori(ope, page) {
	// nel caso in cui l'operazione sia di apertura ed il flag
	// sia già selezionato, viene disattivata la check e rimossi
	// gli accessori dal preventivo.
	if (ope && !document.getElementById("check_accessori").checked ) {
		document.getElementById("check_accessori").checked = false;
		for (i=1;i<5;i++) {
			document.getElementById('chkAccessorio_'+i).value = "";
			document.getElementById('descAccessorio_'+i).value = "";			
		}
		f = document.getElementById('form_calcolo');
		f.submit();
		return;
	}
	
	// nel caso di chiusura del box, viene rieseguito in automatico il calcolo
	if ( !ope ) {
		if ( !document.getElementById("check_accessori").checked ) {
			for (i=1;i<5;i++) {
				document.getElementById('chkAccessorio_'+i).value = "";
				document.getElementById('descAccessorio_'+i).value = "";			
			}
		}
		f = document.getElementById('form_calcolo');
		f.submit();
		return;
	}
	
	var ajaxObj = getXMLHttpRequest();
	// inizializzo la richiesta in post
	if ( page == "" ) ajaxObj.open("post", "tfs_ajaxSrvAccessori.asp", true);
	else {ajaxObj.open("post", page+"_ajaxSrvAccessori.asp", true);
	}
	// imposto il giusto header
	ajaxObj.setRequestHeader("content-type", "application/x-www-form-urlencoded");	
	// nel caso in cui è un operazione di chiusura carico lo stato del flag per
	// abilitarlo di nuovo
	stato = document.getElementById("check_accessori").checked
	// imposto la funzione di callback
	ajaxObj.onreadystatechange = function() {  
    // nel caso in cui la funzione sia completata verifico l'esito
    if(ajaxObj.readyState == 4) {
        // verifico la risposta del server
        if(ajaxObj.status == '200') {
		  	var obj = document.getElementById('id_accessori');
			obj.innerHTML = ajaxObj.responseText;
			calcolaPrezzoAccessorio();
		}
        else {
          // errore di caricamento
		  alert('Errore riscontrato: ' + ajaxObj.status);
        }
      } 
    }
	// inizializzo i parametri
	chk = document.getElementById('check_accessori');
	vett = document.getElementById('id_vettura');
	acc1 = document.getElementById('chkAccessorio_1').value;
	acc2 = document.getElementById('chkAccessorio_2').value;
	acc3 = document.getElementById('chkAccessorio_3').value;
	acc4 = document.getElementById('chkAccessorio_4').value;	
	params = 'check_accessori=' + chk.value + '&op=open&id_vettura=' + vett.value + '&accessorio1=' + acc1 + '&accessorio2=' + acc2 + '&accessorio3=' + acc3 + '&accessorio4=' + acc4;
	// effettuo la richiesta inviando la variabile leggi con contenuto Dante
	ajaxObj.send(params); 	
}

//-- Funzione di calcolo del prezzo totale degli accessori selezionati
function calcolaPrezzoAccessorio() {
	var totale = 0.0
	for (i=1;i<5;i++) {
		p = document.getElementById('pa_'+i);	
		d = document.getElementById('da_'+i);	
		if ( p != null ) {
		    if ( p.checked ) {
			    totale += parseFloat(p.value);
			    document.getElementById('chkAccessorio_'+i).value = p.value;
			    document.getElementById('descAccessorio_'+i).value = d.value;
		    }
		    else {
			    document.getElementById('chkAccessorio_'+i).value = "";
			    document.getElementById('descAccessorio_'+i).value = "";
		    }
		}
	}
	price = document.getElementById('prezzo_accessori');
	price.innerHTML = 'Prezzo totale degli accessori &euro; ' + totale;
}

function carica_dettagli_finanziari() {
    var ajaxObj = getXMLHttpRequest();
    // inizializzo la richiesta in post
	ajaxObj.open("get", "tfs_ajaxDettaglioPiano.asp", true);
	
    ajaxObj.onreadystatechange = function() {  
        // nel caso in cui la funzione sia completata verifico l'esito
        if(ajaxObj.readyState == 4) {
            // verifico la risposta del server
            if(ajaxObj.status == '200') {
	  	        var obj = document.getElementById('dettaglio_finanziario');
		        obj.innerHTML = ajaxObj.responseText;
		    }
            else {
              // errore di caricamento
		      alert(ajaxObj.responseText);
		      alert('Errore riscontrato: ' + ajaxObj.status);
		    }
        }
    } 
    ajaxObj.send(null);
}