<!--script src="Scripts/swfobject_modified.js" type="text/javascript"></script-->

//Gestisce la selezione di marca e modello nei vari motori di ricerca del sito
//NOTA: è possibile visualizzare un solo form di questo tipo per pagina (a causa dell'utilizzo dell'ID al posto della classe)
var setupBrandsAndModels =
{
	init: function() {
		//inizializzo le marche
		var targetBrandSelect = document.getElementById('brandSelect');
		if (targetBrandSelect != null) {
			targetBrandSelect.disabled=false;
			targetBrandSelect.style.color='#000';
			Core.addEventListener(targetBrandSelect, 'change', setupBrandsAndModels.showModels);
			//inizializzo i modelli
			targetModelSelect = document.getElementById('modelSelect');
			var keyModel = document.getElementById('keyModelName').value;
			if(targetBrandSelect.value!=0) {
				setupBrandsAndModels.showModels(); 
			}
			else {
				targetModelSelect.disabled=true;
				targetModelSelect.style.color='#999';
				targetModelSelect.innerHTML = '<select name="'+ keyModel +'"><option value="0">--------------------</option></select>';
			}
		}
	},
	showModels: function(event) {
		var brandId = document.getElementById('brandSelect').value;
		var modelSelect = document.getElementById('modelSelect');
		var keyModel = document.getElementById('keyModelName').value;
		var hiddenModel = document.getElementById('hiddenModel').value;
		var req = createXMLHttpRequest();
		//funzione per interrogare il DB
		function sendRequest(brandId) {
			var linkWS;
			if(hiddenModel) {
				//il form è stato già interrogato, passo il valore per rendere selezionato l'option corretto
				linkWS = 'http://www.jollyauto.it/includes/showModels.php?selectedModel=' + hiddenModel + '&brandID=' + brandId;
			} else {
				linkWS = 'http://www.jollyauto.it/includes/showModels.php?brandID=' + brandId;
			}
			req.open('get', linkWS);
			req.onreadystatechange = handleResponse;
			req.send(null);
		}
		//funzione per gestire la risposta
		function handleResponse() {
			if(req.readyState == 4) {
				var response = '<select name="'+ keyModel +'"><option value="0">------- tutti -------</option>' + req.responseText + '</select>';
				modelSelect.innerHTML = response;
				modelSelect.disabled = false;
				modelSelect.style.color = '#000';
			}
		}
		if (brandId==0) {
			modelSelect.disabled=true;
			modelSelect.style.color='#999';
			modelSelect.innerHTML = '<select name="'+ keyModel +'"><option value="0">---------------------</option></select>';
		} else {
			sendRequest(brandId);
		}
		if(!hiddenModel) {
			Core.preventDefault(event);
		}
	}

};


//Imposta lo stile del link per accedere all'area riservata
var ReservedAreaArrowControl =
{
	init: function() {
		var matchedArray = [];
		var exception = document.getElementById('login-form');
		matchedArray = Core.getElementsByClass('switchArrow');
		for (var i=0; i<matchedArray.length; i++) {
			Core.addEventListener(matchedArray[i], 'click', ReservedAreaArrowControl.changeArrow);
			if (!exception && matchedArray[i].name == "p-reserved-area-form-box") {
				//l'utente è loggato, quindi 
				//lascio visibile il box con i link
				var target = document.getElementById('reserved-area-form-box');
				Core.removeClass(target,'hide_element');
				Core.addClass(target,'show_element');
				//e la frecceta attiva saltando la stringa
				continue;
			}
			matchedArray[i].parentNode.setAttribute('id', 'hidden-'+matchedArray[i].parentNode.id.substr(8));
		}
	},
	changeArrow: function(event) {
		var target = this.parentNode;
		if (target.id.substr(0,6) == 'hidden') {
			target.setAttribute('id','visible-'+target.id.substr(7));
		} else {
			target.setAttribute('id','hidden-'+target.id.substr(8));
		}
		Core.preventDefault(event);
	}

};

//Convalida i form
var ValidateForm =
{
	init: function() {
		var matchedArray = Core.getElementsByClass('validateForm');
		for (var i=0; i<matchedArray.length; i++) {
			Core.addEventListener(matchedArray[i], 'submit', ValidateForm.testForm);
		}
	},
	testForm: function(event) {
		var error = false;
		var errorMSG = "Attenzione! Per proseguire è necessario:\n\n";
		if (this.joinform.value == 1) {
			if (this.companyAff.value == '') {
				errorMSG += "- indicare la ragione sociale\n";
				error = true;
			}
			if (this.vatNumberAff.value == '') {
				errorMSG += "- inserire la partita iva\n";
				error = true;
			}
			if (this.phoneAff.value == '') {
				errorMSG += "- indicare un recapito telefonico aziendale\n";
				error = true;
			}
			if (this.nomeCommerc.value == '') {
				errorMSG += "- inserire il nome del referente\n";
				error = true;
			}
			if (this.cognomeCommerc.value == '') {
				errorMSG += "- inserire il cognome del referente\n";
				error = true;
			}
			if (this.emailCommerc.value == '') {
				errorMSG += "- indicare l'email del referente\n";
				error = true;
			}
			if (this.nickCommerc.value == '') {
				errorMSG += "- inserire un nick d'accesso all'area riservata\n";
				error = true;
			}
		}
		if (this.privacy.checked == false) {
			errorMSG += "- leggere ed accettare l'informativa sulla privacy";
			error = true;
		}
		if (error) {
			alert(errorMSG);
			Core.preventDefault(event);
		}
		// data was ok
		return true;
	}
};


//Attiva il multibox sulle gallery
//E' in grado di gestirne diversi all'interno della stessa pagina, anche con img non sequenziali
//SPIEGARE FUNZIONAMENTO (ved es. cambio password)
//la classe aggiuntiva del link deve essere uguale alla prima parte dell'id
//la classe aggiuntiva del div deve essere uguale all'id completo
var ActivateMultibox =
{
	init: function() {
		var box = {};
		var currentMBarray = [];
		var matchedArray = Core.getElementsByClass('mb');
		for (var i=0; i<matchedArray.length; i++) {
			var splittedArray = matchedArray[i].id.split('_');
			if (!in_array(splittedArray[0],currentMBarray)) {
				currentMBarray.push(splittedArray[0]);
			}
		}
		for (var i=0; i<currentMBarray.length; i++) {
			box = new MultiBox(currentMBarray[i], {descClassName: 'multiBoxDesc', useOverlay: true});
		}
	}
};

//Attiva il codice javascript che controlla la visualizzazione del visore flash in home page
//Se javascript non è supportato, viene visualizzata l'immagine di default
var ActivateSWFobject =
{
	init: function() {
    	var flashvars1 = {}
        flashvars1.xmlPath = "http://www.jollyauto.it/assets/slotsFeed.php";
		swfobject.embedSWF("http://www.jollyauto.it/images/visore_test.swf", "visore", "742", "210", "9.0.0","http://www.jollyauto.it/images/expressInstall.swf", flashvars1);
        var flashvars2 = {}
        flashvars2.xmlPath = "http://www.jollyauto.it/usato/";
        swfobject.embedSWF("http://www.jollyauto.it/images/marchi_test.swf", "slider", "712", "115", "9.0.0","http://www.jollyauto.it/images/expressInstall.swf", flashvars2);
	}
};


//Attiva l'Event Listener sui checkbox del pannello di controllo DDT
var EventsOnDdt =
{
	init: function() {
    		var radios = Core.getElementsByClass('step1_radio');
		for(var i=0; i<radios.length; i++) {
			Core.addEventListener(radios[i],"click",EventsOnDdt.toggleStatus);
		}
		Core.addEventListener(document.getElementById('add_user'),"click",EventsOnDdt.showUserBox);
		Core.addEventListener(document.getElementById('is_partner'),"click",EventsOnDdt.showActiveOption);
	},	
	toggleStatus: function(event) {
		var radioDdtInverse=0;
		var radioDdt = this.value;
		if(radioDdt==1) radioDdtInverse=2;
		else radioDdtInverse=1;
		//alert ('radioDdtInverse: '+radioDdtInverse);
		//alert('radioDdt: '+radioDdt);
		Core.removeClass(document.getElementById('step1_box'+radioDdt),'hide_element');
		Core.addClass(document.getElementById('step1_box'+radioDdtInverse),'hide_element');		
	},
	showUserBox: function(event) {
		if (this.checked == true) {
			Core.removeClass(document.getElementById('add_user_box'),'hide_element');
			Core.addClass(document.getElementById('is_partner_box'),'hide_element');
		} else {
			Core.addClass(document.getElementById('add_user_box'),'hide_element');
			Core.removeClass(document.getElementById('is_partner_box'),'hide_element');
		}
	},
						
	showActiveOption: function(event) {
		if (this.checked == true) {
			Core.addClass(document.getElementById('activeAff'),'hide_element');
		} else {
			Core.removeClass(document.getElementById('activeAff'),'hide_element');
		}
	}
};


//##################################
//Inizializzo tutte le funzioni init
//##################################
//NB: l'ordine è importante se gli input con valori di default sono contenuti nei box a comparsa 
//(AutomaticDel prima di SwitcherLink)
Core.start(AutomaticDel);
Core.start(setupBrandsAndModels);
Core.start(SwitcherLink);
Core.start(ValidateForm);
Core.start(ActivateMultibox);
Core.start(ActivateSWFobject);
Core.start(ReservedAreaArrowControl);
Core.start(EventsOnDdt);
