function createXMLHttpRequest() { 
  if (typeof XMLHttpRequest != "undefined") {
    return new XMLHttpRequest();
  } else if (typeof ActiveXObject != "undefined") { 
    return new ActiveXObject("Microsoft.XMLHTTP"); 
  } else { 
    throw new Error("XMLHttpRequest not supported");
  }
}

function getObject(obj){
	var strObj
	if (document.all){
		strObj = document.all.item(obj);
	} else if (document.getElementById) {
		strObj = document.getElementById(obj);
	}

	return strObj;
}

function replace_html(el, html){
	if( el ) {
        var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
        var newEl = document.createElement(oldEl.nodeName);

        // Preserve any properties we care about (id and class in this example)
        newEl.id = oldEl.id;
        newEl.className = oldEl.className;

        //set the new HTML and insert back into the DOM
        newEl.innerHTML = html;
        if(oldEl.parentNode)
	        oldEl.parentNode.replaceChild(newEl, oldEl);
        else
        	oldEl.innerHTML = html;

        //return a reference to the new element in case we need it
        return newEl;
	}
}

function caricaPagina(pagina_da_caricare, parametriGet, riquadro){
	if (document.all) e = event;

	// variabili di funzione
	var nomeFile = pagina_da_caricare, 
		// assegnazione oggetto XMLHttpRequest
		ajax = createXMLHttpRequest(),
		// assegnazione elemento del documento
		elemento = getObject(riquadro), 
		elementoTmp = replace_html(riquadro, elemento.innerHTML), 
		// risultato booleano di funzione
		usaLink = true;

	// se l'oggetto XMLHttpRequest non è nullo
	if (ajax){
		if (parametriGet == '') parametriGet = 'id=none';
		ajax.open("GET", nomeFile+"?tempo="+new Date().getTime()+"&"+parametriGet,true);
		ajax.onreadystatechange = function(){
			try {
				//alert(riquadro + '\r\n' + elementoTmp.tagName);
				if (ajax.readyState == 0){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Inizializzazione...</span></h4></div>";
				} else if (ajax.readyState == 1){
					elementoTmp.innerHTML = "";
				} else if (ajax.readyState == 2){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Richiesta riconosciuta</span></h4></div>";
				} else if (ajax.readyState == 3){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Caricamento in corso. Attendere...</span></h4></div>";
				} else if (ajax.readyState == 4 && ajax.status == 200){
					//alert(riquadro + '\n\n\n' + elementoTmp + '\n\n\n' + ajax.responseText);
					elementoTmp.innerHTML = ajax.responseText;
				}
			}
			catch(ex)
			{
				alert(riquadro + ' => ' + document.getElementById(riquadro) + '\r\n\r\n' + ex.message);
			}
		}

		ajax.send(null);

		scroll(0,0);
	}
}

function mostraIngrandimento(pagina_da_caricare, parametriGet, padre, figlio){
	if (document.all) e = event;

	// variabili di funzione
	var nomeFile = pagina_da_caricare, 
		// assegnazione oggetto XMLHttpRequest
		ajax = createXMLHttpRequest(),
		// assegnazione elemento del documento
		objPadre = getObject(padre), 
		objFiglio = getObject(figlio), 
		elementoTmp = replace_html(figlio, objFiglio.innerHTML), 
		// risultato booleano di funzione
		usaLink = true;

	document.getElementById(padre).style.visibility = 'visible';
	document.getElementById(padre).style.display = 'block';
	//alert(padre + '\r\n' + document.getElementById(padre) + '\r\nvisibility:' + document.getElementById(padre).style.visibility);

	// se l'oggetto XMLHttpRequest non è nullo
	if (ajax){
		if (parametriGet == '') parametriGet = 'id=none';
		ajax.open("GET", nomeFile+"?tempo="+new Date().getTime()+"&"+parametriGet,true);
		ajax.onreadystatechange = function(){
			try {
				//alert(riquadro + '\r\n' + elementoTmp.tagName);
				if (ajax.readyState == 0){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Inizializzazione...</span></h4></div>";
				} else if (ajax.readyState == 1){
					elementoTmp.innerHTML = "";
				} else if (ajax.readyState == 2){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Richiesta riconosciuta</span></h4></div>";
				} else if (ajax.readyState == 3){
					elementoTmp.innerHTML = "<div class=\"contenuto\"><h4 class=\"loading\"><span>Caricamento in corso. Attendere...</span></h4></div>";
				} else if (ajax.readyState == 4 && ajax.status == 200){
					//alert(riquadro + '\n\n\n' + elementoTmp + '\n\n\n' + ajax.responseText);
					elementoTmp.innerHTML = ajax.responseText;
				}
			}
			catch(ex)
			{
				alert(riquadro + ' => ' + document.getElementById(riquadro) + '\r\n\r\n' + ex.message);
			}
		}

		ajax.send(null);

		scroll(0,0);
	}
}

function nascondiFilmato(nomeFilmato){
	if (typeof nomeFilmato === "string"){
		try {
			var	objDiv = document.getElementById(nomeFilmato);
			objDiv.style.visibility = 'hidden';
			objDiv.style.display = 'none';
		}
		catch (ex){	}
	}
}

function isNumberKey(evt){
	evt = (evt) ? evt : ((window.event) ? window.event : null);
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

function selezionaPartitaIva(objCampo){
	if (trim(objCampo.value) != '' && trim(objCampo.value).length > 2){
		objCampo.selectionStart = 2;
		objCampo.SelectionEnd = 13;
	} else {
		objCampo.select();
	}
}

function cambiaNazione(nazione, objForm){
	if (nazione == 'Italia'){
		objForm.elements['rdoNazione'][0].checked = true;
		objForm.elements['nazione'].className = 'textDis';
		objForm.elements['nazione'].value = 'Italia';
		objForm.elements['nazione'].setAttribute('readonly','readonly');

		objForm.elements['citta'].className = 'textDis';
		objForm.elements['citta'].setAttribute('readonly','readonly');

		objForm.elements['provincia'].className = 'textDis';
		objForm.elements['provincia'].setAttribute('readonly','readonly');
	} else {
		objForm.elements['rdoNazione'][1].checked = true;
		objForm.elements['nazione'].className = 'text';
		objForm.elements['nazione'].value = '';
		objForm.elements['nazione'].removeAttribute('readonly');
		objForm.elements['nazione'].focus();
		objForm.elements['nazione'].select();

		objForm.elements['citta'].className = 'text';
		objForm.elements['citta'].removeAttribute('readonly');

		objForm.elements['provincia'].className = 'text';
		objForm.elements['provincia'].removeAttribute('readonly');
	}
}

function digitaNazione(nazione, objForm){
	if (nazione == 'Italia'){
		objForm.elements['rdoNazione'][0].checked = true;

		objForm.elements['nazione'].className = 'textDis';
		objForm.elements['nazione'].value = 'Italia';
		objForm.elements['nazione'].setAttribute('readonly','readonly');

		objForm.elements['citta'].className = 'textDis';
		objForm.elements['citta'].setAttribute('readonly','readonly');

		objForm.elements['provincia'].className = 'textDis';
		objForm.elements['provincia'].setAttribute('readonly','readonly');

		objForm.elements['indirizzo'].focus();
	}
}

function trim(stringa){
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

function addslashes(str){
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	//str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
}

function caricaCitta(cap, objForm){
	if (cap.length == 5 && (objForm.elements['rdoNazione'][0].checked || objForm.elements['nazione'].value == 'Italia')){
		var ajax = createXMLHttpRequest();
	
		// se l'oggetto XMLHttpRequest non è nullo
		if (ajax){
			ajax.open("GET", "_cap.php?tempo="+new Date().getTime()+"&cap="+cap, true);
			ajax.onreadystatechange = function(){
				if (ajax.readyState == 4 && ajax.status == 200){
					//alert(cap + '\r\n\r\n' + ajax.responseText);

					var nodes = ajax.responseXML.getElementsByTagName("wclass")[0].getElementsByTagName("dove");
					var arrayItem = new Array();
					for (i = 0; i < nodes.length; i++){
						arrayItem[i] = {
											'Comune' 	: ((nodes[i].getElementsByTagName("comune")[0].childNodes.length > 0) ? nodes[i].getElementsByTagName("comune")[0].childNodes[0].nodeValue : ''), 
											'Comune2' 	: ((nodes[i].getElementsByTagName("comune2")[0].childNodes.length > 0) ? nodes[i].getElementsByTagName("comune2")[0].childNodes[0].nodeValue : ''), 
											'Provincia' : ((nodes[i].getElementsByTagName("provincia")[0].childNodes.length > 0) ? nodes[i].getElementsByTagName("provincia")[0].childNodes[0].nodeValue : '')
									   };
						//alert(nodes[i].getElementsByTagName("provincia")[0].childNodes[0].nodeValue);
   					}

   					if (arrayItem.length > 1){
   						if(document.getElementById && document.createElement){
   							elementi = document.getElementById("divSceltaComuni").getElementsByTagName("DIV");
   							for (i = 0; i < elementi.length; i++){
   								document.getElementById("divSceltaComuni").removeChild(elementi[i]);
   							}
	   						for (i = 0; i < arrayItem.length; i++){
	   							/**/
	   							bgCol = (i % 2) ? '#ECECEC' : '#FFFFFF';
	   							nome_comune = (trim(arrayItem[i]['Comune']) + ' ' + trim(arrayItem[i]['Comune2']));
	   								nome_comune = trim(nome_comune);
	   								nome_comune = addslashes(nome_comune);
	   							divCI = null;
	   							try {
	   								costruttore = '<div style="background:'+bgCol+';" onmouseover="this.style.backgroundColor=\'#FC3\';" onmouseout="this.style.backgroundColor=\''+bgCol+'\';" onclick="impostaCitta(\''+objForm.id+'\',\''+nome_comune+'\',\''+trim(arrayItem[i]['Provincia'])+'\');" />';
	   								divCI = document.createElement(costruttore);
	   								//alert(costruttore);
	   							} catch (e){
	   								divCI = document.createElement("DIV");
									divCI.setAttribute("style","background:"+bgCol+";");
									divCI.setAttribute("onmouseover","this.style.backgroundColor='#FC3';");
									divCI.setAttribute("onmouseout","this.style.backgroundColor='"+bgCol+"';");
									//divCI.setAttribute("class","classe_esempio_li");
									divCI.setAttribute("onclick","impostaCitta('"+objForm.id+"','"+(trim(arrayItem[i]['Comune']) + ' ' + trim(arrayItem[i]['Comune2']))+"','"+trim(arrayItem[i]['Provincia'])+"')");
	   							}

	   							try {
		   							spanCI = document.createElement("SPAN");
		   							cont = document.createTextNode('(' + trim(arrayItem[i]['Provincia']) + ') ' + (trim(arrayItem[i]['Comune']) + ' ' + trim(arrayItem[i]['Comune2'])));

	   								spanCI.appendChild(cont);
	   								divCI.appendChild(spanCI);
	   								document.getElementById("divSceltaComuni").appendChild(divCI);
	   							} catch (e){
	   								
	   							}
   							}
   						}
   						document.getElementById("divSceltaComuni").style.visibility = 'visible';
   						document.getElementById("divSceltaComuni").style.display = 'block';
   					} else if (arrayItem.length == 1){
						objForm.elements['citta'].value = (trim(arrayItem[0]['Comune']) + ' ' + trim(arrayItem[0]['Comune2']));
						objForm.elements['provincia'].value = trim(arrayItem[0]['Provincia']);
   					} else {
   						alert('Il CAP inserito non e\' presente nel database.');
   					}
				}
			}
	
			ajax.send(null);
		}
	}
}

function impostaCitta(idForm, comune, provincia){
	if(document.getElementById){
		objForm = document.getElementById(idForm);
		objForm.elements['citta'].value = comune;
		objForm.elements['provincia'].value = provincia;

		document.getElementById("divSceltaComuni").style.visibility = 'hidden';
		document.getElementById("divSceltaComuni").style.display = 'none';
	}
}

function controllaPreiscrizione(objForm){
	var cat_selez = 0;

	if (objForm.elements['nome'].value.trim() == ''){
		alert('Il campo Nome e\' obbligatorio!');
		objForm.elements['nome'].focus();
		return false;
	}
	if (objForm.elements['cognome'].value.trim() == ''){
		alert('Il campo Cognome e\' obbligatorio!');
		objForm.elements['cognome'].focus();
		return false;
	}
	if (objForm.elements['azienda'].value.trim() == ''){
		alert('Il campo Azienda e\' obbligatorio!');
		objForm.elements['azienda'].focus();
		return false;
	}

	if (objForm.elements['nazione'].value.trim() == ''){
		alert('Il campo Nazione e\' obbligatorio!');
		objForm.elements['nazione'].focus();
		return false;
	}

	if (objForm.elements['rdoNazione'][1].checked){
	  // Estero
	  
	} else {
	  // Italia
	  if (objForm.elements['partita_iva'].value.trim() == '' || objForm.elements['partita_iva'].value.trim() == 'IT___________'){
		  alert('Il campo Partita IVA e\' obbligatorio!');
		  objForm.elements['partita_iva'].focus();
		  objForm.elements['partita_iva'].select();
		  return false;
	  }
	  if (objForm.elements['indirizzo'].value.trim() == ''){
		  alert('Il campo Indirizzo e\' obbligatorio!');
		  objForm.elements['indirizzo'].focus();
		  return false;
	  }
	  if (objForm.elements['cap'].value.trim() == ''){
		  alert('Il campo CAP e\' obbligatorio!');
		  objForm.elements['cap'].focus();
		  return false;
	  }
	  if (objForm.elements['citta'].value.trim() == ''){
		  alert('Il campo Citta\' e\' obbligatorio!');
		  objForm.elements['citta'].focus();
		  return false;
	  }
	  if (objForm.elements['provincia'].value.trim() == ''){
		  alert('Il campo Provincia e\' obbligatorio!');
		  objForm.elements['provincia'].focus();
		  return false;
	  }
	  if (objForm.elements['telefono'].value.trim() == ''){
		  alert('Il campo Telefono e\' obbligatorio!');
		  objForm.elements['telefono'].focus();
		  return false;
	  }
	  if (objForm.elements['fax'].value.trim() == ''){
		  alert('Il campo Fax e\' obbligatorio!');
		  objForm.elements['fax'].focus();
		  return false;
	  }
	}

	if (objForm.elements['email'].value.trim() == ''){
		alert('Il campo e-Mail e\' obbligatorio!');
		objForm.elements['email'].focus();
		return false;
	}

	if (objForm.elements['tipologia'].value.trim() == 'Espositore'){
		for (i = 0; i < objForm.elements['categorie[]'].length; i++){
			if (objForm.elements['categorie[]'][i].checked)
				cat_selez++;
		}

		if (cat_selez <= 0){
			alert('E\' necessario selezionare almeno una categoria di appartenenza.!');
			objForm.elements['categorie[]'][0].focus();
			return false;
		}
	}

	return true;
}

function controllaRegistrazione(objForm){
	var cat_selez = 0;

	if (objForm.elements['nome'].value.trim() == ''){
		alert('Il campo Nome e\' obbligatorio!');
		objForm.elements['nome'].focus();
		return false;
	}
	if (objForm.elements['cognome'].value.trim() == ''){
		alert('Il campo Cognome e\' obbligatorio!');
		objForm.elements['cognome'].focus();
		return false;
	}
	if (objForm.elements['azienda'].value.trim() == ''){
		alert('Il campo Azienda e\' obbligatorio!');
		objForm.elements['azienda'].focus();
		return false;
	}
//	if (objForm.elements['partita_iva'].value.trim() == '' || objForm.elements['partita_iva'].value.trim() == 'IT___________'){
//		alert('Il campo Partita IVA e\' obbligatorio!');
//		objForm.elements['partita_iva'].focus();
//		objForm.elements['partita_iva'].select();
//		return false;
//	}
	if (objForm.elements['nazione'].value.trim() == ''){
		alert('Il campo Nazione e\' obbligatorio!');
		objForm.elements['nazione'].focus();
		return false;
	}
	if (objForm.elements['indirizzo'].value.trim() == ''){
		alert('Il campo Indirizzo e\' obbligatorio!');
		objForm.elements['indirizzo'].focus();
		return false;
	}
	if (objForm.elements['cap'].value.trim() == ''){
		alert('Il campo CAP e\' obbligatorio!');
		objForm.elements['cap'].focus();
		return false;
	}
	if (objForm.elements['citta'].value.trim() == ''){
		alert('Il campo Citta\' e\' obbligatorio!');
		objForm.elements['citta'].focus();
		return false;
	}
	if (objForm.elements['provincia'].value.trim() == ''){
		alert('Il campo Provincia e\' obbligatorio!');
		objForm.elements['provincia'].focus();
		return false;
	}
	if (objForm.elements['telefono'].value.trim() == ''){
		alert('Il campo Telefono e\' obbligatorio!');
		objForm.elements['telefono'].focus();
		return false;
	}
//	if (objForm.elements['fax'].value.trim() == ''){
//		alert('Il campo Fax e\' obbligatorio!');
//		objForm.elements['fax'].focus();
//		return false;
//	}
	if (objForm.elements['email'].value.trim() == ''){
		alert('Il campo e-Mail e\' obbligatorio!');
		objForm.elements['email'].focus();
		return false;
	}

	return true;
}

function mostraTendina(div, nomeTendina){
	var cont = div.innerHTML
		objTendina = document.getElementById(nomeTendina);

	if (objTendina.style.display == 'none'){
		cont = stripSpan(cont);

		objTendina.style.display = 'block';
		objTendina.style.visibility = 'visible';

		objLista = objTendina.getElementsByTagName('UL');
		if (objLista.length > 0){
			objItems = objLista[0].getElementsByTagName('LI');

			for (i = 0; i < objItems.length; i++){
				itm = objItems[i];
				valore = stripSpan(itm.innerHTML);
				valore = (valore == '&nbsp;') ? '' : valore;
				if (valore == cont){
					itm.style.background = '#000080';
					itm.style.color = '#FFF';
					pos = findPos(itm);
					objTendina.scrollTop = pos[1] - 60;
					//alert(valore + '\r\n' + pos[0] + ' x ' + pos[1]);
				} else {
					itm.style.backgroundColor = (i % 2) ? '#EEE' : '#FFF';
					itm.style.color = '#333';
				}
			}
		}
	} else {
		objTendina.style.display = 'none';
		objTendina.style.visibility = 'hidden';
	}
}

function selezionaCampo(nomeCampo, idSim, divTendina, valore, testo){
	var objCampo = document.forms['frmRicerca'].elements[nomeCampo], 
		objSimul = document.getElementById(idSim);
		objTendi = document.getElementById(divTendina);

	objCampo.value = valore;
	objSimul.innerHTML = "<span>"+testo+"</span>";

	objTendi.scrollTop
	objTendi.style.display = 'none';
	objTendi.style.visibility = 'hidden';
}

function stripSpan(stringa){
	stringa = stringa.substr(6, stringa.length);
	stringa = stringa.substr(0, stringa.length - 7);

	return stringa;
}

function findPos(obj){
	var curLeft = curTop = 0;
	try {
		if (obj.offsetParent){
			curLeft += obj.offsetLeft;
			curTop += obj.offsetTop;
		}
	} 
	catch (ex){}

	return [curLeft, curTop];
}

function findDims(obj){
	var curWidth = curHeight = 0;
	try {
		if (obj.offsetParent){
			curWidth += obj.offsetWidth;
			curHeight += obj.offsetHeight;
		}
	} 
	catch (ex){}

	return [curWidth, curHeight];
}

function findAbsPos(obj){
	var curLeft = curTop = 0;
	if (obj.offsetParent){
		do {
			curLeft += obj.offsetLeft;
			curTop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}

	return [curLeft, curTop];
}

function scrollMiniature(direzione){
	var objMiniature = document.getElementById('scrThumbs'),
		pos = findPos(objMiniature), 
		dim = findDims(objMiniature);

	//alert(pos[1] + '\r\n' + objMiniature.offsetHeight + '\r\n' + (pos[1] + objMiniature.offsetHeight - 15));
	switch (direzione){
		case "su":
			if (pos[1] < 15)
				objMiniature.style.top = (pos[1] + 60) + 'px';
			break;
		case "giu":
			if ((pos[1] + objMiniature.offsetHeight - 15) > 180)
				objMiniature.style.top = (pos[1] - 60) + 'px';
			break;
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;

	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
										if (oldonload) {
											oldonload();
										}
										func();
									}
	}
}



scrollTime = null;
step = -3;
function scrollOrganizzatori(){
	var objOrganizzatori = document.getElementById('divLoghi'),
		listeLoghi = objOrganizzatori.getElementsByTagName('UL');
		larghezza = 0;
	if (listeLoghi.length == 1){
		objItems = listeLoghi[0].getElementsByTagName('LI');
		if (objItems.length > 0){
			for (i = 0; i < objItems.length; i++){
				//alert(findDims(objItems[i])[0]);
				larghezza += findDims(objItems[i])[0];
			}
		}
	}
	//119; 72; 92; 100; 333; 248
	//alert(larghezza);

	objOrganizzatori.style.width = larghezza+'px';

	start();
}

function start(){
	scrollTime = setInterval("muovi()", 90);
}

function muovi(){
	var obj  = document.getElementById('divLoghi'),
		obj1 = document.getElementById('divRiquadroOrganizzatori'),
		pos = findPos(obj), 
		dim = findDims(obj);
		dim1 = findDims(obj1);

	try {
		//alert(dim1[0]);
		if (pos[0] >= 10){
			step = -2;
		} else if (pos[0] <= dim1[0] - dim[0]){
			step = 2;
		}

		obj.style.left = (pos[0] + step) + 'px';
	} 
	catch (ex){}
}

function stop(){
	clearInterval(scrollTime);
}



