function execRequest(url) {
	var http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// Vedi note sotto
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				//
			}
		}
	}
	
	if (!http_request) {
		alert('Giving up :( Non riesco a creare una istanza XMLHTTP');
		return false;
	}
	
	http_request.onreadystatechange = function() { computeResponse(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function computeResponse(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var doc = window.document;
			var dinElements = doc.getElementsByName("ajax");
			
			var xmlDoc = http_request.responseXML;
			
			var i = 0;
			var iter = dinElements.length;
			while (i < iter) {
				var currentElement = dinElements.item(i);
				var sos = xmlDoc.getElementsByTagName(currentElement.className);
				
				if (sos.length > 1) {
					var subiter = sos.length;
					for (j = 0; j < subiter; j++) {
						dinElements.item(i+j).textContent = sos.item(j).textContent;
					}
					
					i += sos.length;
				} else {
					currentElement.textContent = sos.item(0).textContent;
					i++;
				}
			}
			
		} else {
			alert('Si è verificato un problema con la richiesta');
		}
	}
}

function getCookie(name) {
	if (document.cookie.length > 0) {
		begin = document.cookie.indexOf(name + "=");
		if (begin != -1) {
			begin += name.length + 1;
			end = document.cookie.indexOf(";", begin);
			if (end == -1) end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end));
		}
	}
	return null;
}

function setCookie(name, value, expireDays) {
	var expireDate = new Date ();
	expireDate.setTime(expireDate.getTime() + (expireDays * 24 * 3600 * 1000));
	document.cookie = name + "=" + escape(value) + ((expireDays == null) ? "" : "; expires=" + expireDate.toGMTString());
}

function delCookie(name) {
	if (getCookie(name)) {
		document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

function testCookie(name) {
	var myCookie = getCookie(name);
	if (myCookie != null) {
		//alert('Cookie found!');
		return true;
	}
	else {
		//alert('Cookie NOT found!');
		return false;
	}
}

function setLang(name) {
	if (testCookie(name)) {
		var transName = '';
		var transPath = getCookie(name);
		var pageUrl = document.URL;
		
		if (pageUrl.indexOf('.html') == -1) {
			transName = 'index.xml';
		} else {
			var splits = pageUrl.split('/');
			//alert(splits[splits.length - 1].split('.')[0]);
			var transName = splits[splits.length - 1].split('.')[0] + '.xml';
		}
		
		var transUrl = transPath + transName;
		execRequest(transUrl);
	} else {
		return;
	}
}
