addEvent(window,'load',assegna);	//funzione per le mappe
addEvent(window,'load',loadingEnd);	//funzione per la newsletter


function assegna(){
	var menu = document.getElementById("punto_vendita");
	var links = menu.getElementsByTagName("a");
	
	for(var i=0; i < links.length; i++){
	links[i].onclick = ( function(j) {
		return function(){
		var linkSel = links[j];
		sendData(linkSel);
		return false;
		};
	})(i);
	}
	
	var lat = '39.2204604';
	var lon = '9.1302364';
	var txt = '<strong>Ottica Massidda</strong><br/>Largo Gennari, 12/B Cagliari<br/>Tel: 070/497255';
	doveFunction(lat, lon, txt);
}
	


function sendData(linkSel) {
	var url = linkSel.href;
	url = url.slice(url.indexOf("?"));

	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
		parseResponse(request);
		};
		request.open( "GET", "response.php" + url, true );
		request.send(null);
		return true;
	} 
	else {
		return false;
	}
}

function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}

function parseResponse(request) {	
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
		var xml = request.responseXML;
        createHTML(xml);	//chiama la funzione che  crea l'html di risposta. ha come parametro la risposta in xml
		aggiornaMenu();
      }
  }
}


function createHTML(xml){
	if(xml.getElementsByTagName("mappe")[0] != undefined){
		var menu = document.getElementById("punto_vendita");
		while(menu.firstChild){
			menu.removeChild(menu.firstChild);
		}
		var menuXml = xml.getElementsByTagName("mappe")[0];
		menu.innerHTML = menuXml.firstChild.nodeValue; 
		
		var latXml = xml.getElementsByTagName("lat")[0];
		var lat = latXml.firstChild.nodeValue; 
		
		var lonXml = xml.getElementsByTagName("lon")[0];
		var lon = lonXml.firstChild.nodeValue; 
		
		var txtXml = xml.getElementsByTagName("txt")[0];
		var txt = txtXml.firstChild.nodeValue; 
		
		doveFunction(lat, lon, txt);
	}
	
	if(xml.getElementsByTagName("campi")[0] != undefined){
		var formNews = document.getElementById("form_contatti");
		while(formNews.firstChild){
			formNews.removeChild(formNews.firstChild);
		}
		var campiXml = xml.getElementsByTagName("campi")[0];
		formNews.innerHTML = campiXml.firstChild.nodeValue;
		
		var submitInput = document.getElementById("ct_submit");
		submitInput.onclick = function(){
			var cancella = '1';
			validateEmail(cancella);
			return false;
		};
		
		var linksInd = formNews.getElementsByTagName("a");
		linksInd[0].onclick = function(){
			sendData(linksInd[0]);
			return false;
		};
	}
	
	if(xml.getElementsByTagName("campi2")[0] != undefined){
		var formNews = document.getElementById("form_contatti");
		while(formNews.firstChild){
			formNews.removeChild(formNews.firstChild);
		}
		var campiXml = xml.getElementsByTagName("campi2")[0];
		formNews.innerHTML = campiXml.firstChild.nodeValue;
		
		loadingEnd();
	}
}

function aggiornaMenu(){
	var menu = document.getElementById("punto_vendita");
	var links = menu.getElementsByTagName("a");
	
	for(var i=0; i < links.length; i++){
	links[i].onclick = ( function(j) {
		return function(){
		var linkSel = links[j];
		sendData(linkSel);
		return false;
		};
	})(i);
	}
}

function displayLoading(element) {
	var image = document.createElement("img");
	image.setAttribute("src","images/loading.gif");
	image.setAttribute("alt","Loading...");
	element.appendChild(image);
}
/***************************	FINE PARTE AJAX	****/



/***************************	PAGINA DOVE SIAMO	*/
function doveFunction(lat, lon, txt){
   if (GBrowserIsCompatible()) {
	   var map = new GMap2(document.getElementById("goog_maps"));
	   map.setMapType(G_NORMAL_MAP);
	   map.addControl(new GLargeMapControl());
	   map.addControl(new GMapTypeControl());
		
	 	map.setCenter(new GLatLng(lat, lon), 15);

	   var marker = new GMarker(new GLatLng(lat, lon));
	   GEvent.addListener(marker, "click",     function() {
			this.openInfoWindowHtml(txt);
			}
	   );
	   map.addOverlay(marker);
	   marker.openInfoWindowHtml(txt);
	   marker = null;
   }     
} 
/***************************	FINE PAGINA DOVE SIAMO	*/


/***************************	PAGINA CONTATTI	*/
function loadingEnd(){
	testoDivPrivacy = document.getElementById("box_cont_text");
		
	var linkPresa = document.getElementById("presa");
	linkPresa.onclick = function(){
		overboxPrivacy();
		return false;
	}; 
		
	var submitInput = document.getElementById("ct_submit");
	submitInput.onclick = function(){
		validateEmail();
		return false;
	};
	
	var divCancella = document.getElementById("formrow_campi");
	var linksCanc = divCancella.getElementsByTagName("a");
	linksCanc[0].onclick = function(){
		sendData(linksCanc[0]);
		return false;
	};
	
}

function getE(id) {
	return document.getElementById(id);
}


function validateEmail(cancella){
	var testresults;
	function checkemail(email_addr) {
		var filter=/^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,3}$/i;
		if (filter.test(email_addr)) {
			testresults = true;
		}
		else {
			testresults = false;
		}
		return(testresults);
	}
	
	getE('ct_submit').disabled = true;
	
	if(cancella != 1){	//se NON arriva dal link cancellami
		if (getE('ct_nome').value=="" || getE('ct_email').value=="" || !getE('ct_consenso').checked) {
			alert("E' necessario riempire tutti i campi.");
			getE('ct_submit').disabled = false;
			return;
		}
	}
	
	if (!checkemail(getE('ct_email').value)) {
		alert("E' necessario inserire un indirizzo e-mail corretto.");
		getE('ct_submit').disabled = false;
		return;
	}
	
	if(cancella == 1){	//se arriva dal link cancellami
		var url = '?form_email=' + getE('ct_email').value;
	}
	else{
		var url = '?form_nome=' + getE('ct_nome').value + '&form_email=' + getE('ct_email').value + '&form_consenso=' + getE('ct_consenso').checked ;
	}
	
	var divLoading = document.createElement("div");
	divLoading.id = "loading";
	document.getElementById("form_contatti").appendChild(divLoading);
	var request = getHTTPObject();
	if (request) {
		displayLoading(divLoading);
		request.onreadystatechange = function() {
		parseResponse2(request);
		};
		request.open( "get", "email.php" + url, true );
		request.send(null);
		return true;
	} 
	else {
		return false;
	}
	return;
}


function parseResponse2(request) {	
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
		
		var xml = request.responseText;
		var formContatti = getE('form_contatti');
		while(formContatti.firstChild){
			formContatti.removeChild(formContatti.firstChild);
		}
		formContatti.innerHTML = xml;
		var linksInd = formContatti.getElementsByTagName("a");
		linksInd[0].onclick = function(){
			sendData(linksInd[0]);
			return false;
		};
      }
  }
}

function overboxPrivacy(){
	var divFilter = document.createElement("div");
	divFilter.id = "overbox_filter";
	
	var divOuter = document.createElement("div");
	divOuter.id = "overbox_outer";
	var w = 400;	//larghezza div
	var h = 200;	//altezza div
	var l = Math.floor((screen.width-w)/2); //(larghezza dello schermo-larghezza scelta)/2
	var t = Math.floor((screen.height-h)/2);	//(altezza dello schermo-altezza scelta)/2
	divOuter.style.left=l+'px';
	divOuter.style.top=t+'px';
	
	var divOuterInner = document.createElement("div");
	divOuterInner.className = "overbox_outer_inner";
	
	divOuterInner.appendChild(testoDivPrivacy);
	divOuter.appendChild(divOuterInner);
	
	var divClose = document.createElement("div");
	divClose.id = "overbox_close_link";
	var linkClose = document.createElement("a");
	linkClose.href="#";
	linkClose.title = "chiudi";
	linkClose.onclick = function(){
		chiudiOverbox();
		return false;
	}; 
	divClose.appendChild(linkClose);
	divOuter.appendChild(divClose);
	
	var body = document.getElementsByTagName("body");
	body[0].appendChild(divOuter);
	body[0].appendChild(divFilter);
}

function chiudiOverbox(){
	var divToDelete = document.getElementById("overbox_outer");
	divToDelete.parentNode.removeChild(divToDelete);
	var divToDelete = document.getElementById("overbox_filter");
	divToDelete.parentNode.removeChild(divToDelete);
	
	var linkPresa = document.getElementById("presa");
	linkPresa.onclick = function(){
		overboxPrivacy();
		return false;
	}; 
}
/***************************	FINE PAGINA CONTATTI	*/


function addEvent(obj,ev,fn){
	if(obj.addEventListener) {
		// metodo w3c
		obj.addEventListener(ev, fn, false);
	} else if(obj.attachEvent) {
		// metodo IE
		obj.attachEvent('on'+ev, fn);
	} else {
		// se i suddetti metodi non sono applicabili
		// se esiste gia' una funzione richiamata da quel gestore evento
		if(typeof(obj['on'+ev])=='function'){
			// salvo in variabile la funzione gia' associata al gestore
			var f=obj['on'+ev];
			// setto per quel gestore una nuova funzione 
			// che comprende la vecchia e la nuova
			obj['on'+ev]=function(){if(f)f();fn()}
		}
		// altrimenti setto la funzione per il gestore
		else obj['on'+ev]=fn;
	}
}

window.onUnload = function() {
	GUnload();
}
