function Zoom() {
}

Zoom.init = function(pageName, elementName) {
	Zoom.pageName = pageName;
	Zoom.elementName = elementName;
	Zoom.element = Zoom.checkAll();
	for (var i = 0; i < Zoom.element.length; i ++) {
		Zoom.element[i].setAttribute("idZoom", i);
		Zoom.element[i].firstChild.onclick = Zoom.roll;
	}
};

Zoom.checkAll = function() {
	var allElements = document.getElementsByTagName("h1");
	var allResults = new Array();
	for (var i = 0; i < allElements.length; i ++) {
		if (allElements[i].className == "fleche_droite" || allElements[i].className == "fleche_bas") {
			allResults.push(allElements[i]);
		}
	}
	return allResults;
};

Zoom.roll = function() {
	if (this.parentNode.className == "fleche_droite") {
		Zoom.rollOut(this.parentNode.getAttribute("idZoom"));
	} else {
		Zoom.rollIn(this.parentNode.getAttribute("idZoom"));
	}
	return false;
};

Zoom.rollOut = function(id) {
	var current = Zoom.element[id];
	var idElement = Zoom.getIdElement(current.firstChild.getAttribute("href"));
	var target = Zoom.pageName + "?" + Zoom.elementName + "=" + idElement;
	current.className = "fleche_bas";
	
	//Loading
	var loading = document.createElement("div");
	var loadingParag = document.createElement("p");
	loadingParag.className = "italic";
	loadingText = document.createTextNode("Chargement...");
	current.parentNode.insertBefore(loading, current.nextSibling);
	loading.appendChild(loadingParag);
	loadingParag.appendChild(loadingText);
	
	var xhr = getXHR();
	xhr.open("GET", target, true);
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200) {
			current.parentNode.removeChild(loading);
			var div = document.createElement("div");
			div.innerHTML = xhr.responseText;
			current.parentNode.insertBefore(div, current.nextSibling);
			PhotoPreview.init();
		}
	};
	xhr.send(null);
};

Zoom.rollIn = function(id) {
	var current = Zoom.element[id];
	var next = current;
	while(current.nextSibling.className != "fleche_droite" && current.nextSibling.className != "fleche_bas" && current.nextSibling.className != "numero_page") {
		next = current.nextSibling;
		current.parentNode.removeChild(next);
	}
	current.className = "fleche_droite";
};

Zoom.getIdElement = function(href) {
	var reg = new RegExp("[&]+", "g");
	var tab = href.split(reg);
	
	reg = new RegExp("[" + Zoom.elementName + "=]+", "g");
	for (var i = 0; i < tab.length; i ++) {
		if(tab[i].match(reg)) {
			var result = tab[i];
		}
	}
	
	reg = new RegExp("[=]+", "g");
	var tab2 = result.split(reg);
	return tab2[1];
}

function getXHR() {
	xhr = null;
	if(window.XMLHttpRequest) { // Firefox 
		xhr = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject) { // Internet Explorer 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur doit être mis à jour."); 
		xhr = false;
	}
	return(xhr);
}

