// ----------------------------------------------------------------------------
// eni-world.js - Scripts per ENI nel mondo
// ----------------------------------------------------------------------------

	var eniWorldGlobalForm;
	var eniWorldAjaxRequest = false;
	var eniWorldDebug = false;
	var eniWorldComunicati = '/it_IT/media/comunicati-stampa/comunicati.page';
	var eniWorldMessage1 = "La pagina richiesta non e' stata trovata";	
	var eniWorldMessage2 = "Devi selezionare almeno il paese";

	// --------------------------------------------------------------------------
	// eniWorldCheckPageExists ()
	// Verifica via AJAX l'esistenza della pagina destinazione
	// --------------------------------------------------------------------------
	function eniWorldCheckPageExists () {
		
		var url = eniWorldGlobalForm.action;
		
		if(window.XMLHttpRequest && !(window.ActiveXObject)) {
			try {
				ajaxRequest = new XMLHttpRequest();
			} catch(e) {
				ajaxRequest = false;
			}
		} else if(window.ActiveXObject) {
			try {
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {
					ajaxRequest = false;
				}
			}
		}
		
		if(ajaxRequest) {
			ajaxRequest.onreadystatechange = new Function ("eniWorldCallback();");
			ajaxRequest.open("GET", url, true);
			ajaxRequest.send(null);
		} else {
			eniWorldGlobalForm.submit();
		}
	}


	// --------------------------------------------------------------------------
	// eniWorldCallback ()
	// Callback per la verifica via AJAX
	// --------------------------------------------------------------------------
	function eniWorldCallback() {
		
		if ( ajaxRequest==null ) return;
	
		if (ajaxRequest.readyState == 4) {
			if (ajaxRequest.status == 200) {
				eniWorldGlobalForm.submit();
			} else {
				window.alert (eniWorldMessage1);
			}
		}
	}

	// --------------------------------------------------------------------------
	// eniWorldDispatch
	// --------------------------------------------------------------------------
	function eniWorldDispatch(formName, action_fast, action_open, prefix) {
		eniWorldGlobalForm = formName;
		var countrySelect = formName.country;
		var categorySelect = formName.category;
		var keyWord = formName.keyword.value;
		var locale = formName.locale.value;
			
		//Variabili per le action
		var URL_fast = action_fast;
		var URL_open =  action_open + '?country=' + countrySelect[countrySelect.selectedIndex].value.split('|')[0];
			
		if (countrySelect.options[countrySelect.selectedIndex].value == '') {
			alert(eniWorldMessage2);
			countrySelect.focus();
		} else {
			if(keyWord == '') {
				if(categorySelect.options[categorySelect.selectedIndex].value == '') {
					// Paese selezionato, Keyword vuota, Categoria vuota ==> Pagina ENI nel mondo Open
					for(i=0;i<countrySelect.options.length;i++){
						var value = new Array();
						value = countrySelect.options[i].value.split('|');
						countrySelect.options[i].value = value[0];
					}
					formName.action = URL_open;
					if (eniWorldDebug) alert("Pagina Open: "+formName.action);
					formName.submit();
				} else {
					// Paese selezionato, Keyword vuota, Categoria selezionata ==> Pagina di dettaglio
					var catValue = new Array();
					catValue = categorySelect.options[categorySelect.selectedIndex].value.split('|');
					var couValue = new Array();
					couValue = countrySelect.options[countrySelect.selectedIndex].value.split('|');
					if (catValue[0]=='comunicati') {
						// Categoria selezionata = Comunicati stampa
						var newLocation = eniWorldComunicati+'?country='+couValue[0];
						if (eniWorldDebug) alert("Pagina comunicati: "+newLocation);
						location.href = newLocation;
					} else {
						//sostituisco il valore del country che passa la form al solo codice del paese
								for(i=0;i<countrySelect.options.length;i++){
								var value = new Array();
								value = countrySelect.options[i].value.split('|');
								countrySelect.options[i].value = value[0];
							}
						// Categoria selezionata != Comunicati stampa
						formName.action = prefix + couValue[1] + '/' + catValue[1] + '/' + catValue[1] + '.shtml';
						if (eniWorldDebug) alert("Pagina di dettaglio: "+formName.action);
						eniWorldCheckPageExists();
					}
				}
			} else {
				// Paese selezionato, Keyword non vuota ==> Pagina di Fast
				for(i=0;i<categorySelect.options.length;i++){
					var value = new Array();
					value = categorySelect.options[i].value.split('|');
					categorySelect.options[i].value = value[0];
				}
				for(h=0;h<countrySelect.options.length;h++){
					var vCou = new Array();
					vCou = countrySelect.options[h].value.split('|');
					countrySelect.options[h].value = vCou[0];
				}
				formName.action = URL_fast;
				if (eniWorldDebug) alert("Pagina FAST: "+formName.action);
				formName.submit();					
			}
		}
	}

