function getLeft(id, current) {
	if(!bandeauLocked) {
		bandeauLocked = true;
		if(hiddenLeft != null) {
			hiddenRight = document.getElementById("bandeauContainer").lastChild;
			document.getElementById("bandeauContainer").removeChild(document.getElementById("bandeauContainer").lastChild);
			document.getElementById("bandeauContainer").insertBefore(hiddenLeft, document.getElementById("bandeauContainer").firstChild);
			
			new Ajax.Request(
				bandeauUrl,
				{
					asynchronous: false,
					parameters: {
						type: 'left',
						id: id,
						PHPSESSID: dv_phpsessid,					
						current: current
					},
					method: 'post',
					onSuccess: function(transport) {
						var imgs = transport.responseXML.getElementsByTagName('image');
						if(imgs.length > 0) {
							var newImg = new Image();
							var newA = document.createElement("a");
							newA.style.borderBottom = "0px";
							newA.href = imgs[0].getElementsByTagName('url')[0].firstChild.nodeValue;
							newImg.id = imgs[0].getElementsByTagName('id')[0].firstChild.nodeValue;
							newImg.src = imageBaseRef + newImg.id + '_VIG.jpg';
							newImg.className = 'bandeauVig';
							newA.appendChild(newImg);
							var isCurrent = imgs[0].getAttribute("current");
							if(isCurrent == 'y') {
								newImg.className = 'bandeauCurrentVig';
							} else {
								newImg.className = 'bandeauVig';
							}
							hiddenLeft = newA;
							
						} else {
							hiddenLeft = null;
						}
					}
				}
			);
		}
		bandeauLocked = false;
	}
}
function getRight(id, current) {
	if(!bandeauLocked) {
		bandeauLocked = true;
		if(hiddenRight != null) {
			hiddenLeft = document.getElementById("bandeauContainer").firstChild;
			document.getElementById("bandeauContainer").removeChild(document.getElementById("bandeauContainer").firstChild);
			document.getElementById("bandeauContainer").appendChild(hiddenRight);
			
			new Ajax.Request(
				bandeauUrl,
				{
					asynchronous: false,
					parameters: {
						type: 'right',
						PHPSESSID: dv_phpsessid,					
						id: id,
						current: current
					},
					method: 'post',
					onSuccess: function(transport) {
						var imgs = transport.responseXML.getElementsByTagName('image');
						if(imgs.length > 0) {
							var newImg = new Image();
							var newA = document.createElement("a");
							newA.style.borderBottom = "0px";
							newA.href = imgs[0].getElementsByTagName('url')[0].firstChild.nodeValue;
							newImg.id = imgs[0].getElementsByTagName('id')[0].firstChild.nodeValue;
							newImg.src = imageBaseRef + newImg.id + '_VIG.jpg';
							newImg.className = 'bandeauVig';
							var isCurrent = imgs[0].getAttribute("current");
							if(isCurrent == 'y') {
								newImg.className = 'bandeauCurrentVig';
							} else {
								newImg.className = 'bandeauVig';
							}
							newA.appendChild(newImg);
							hiddenRight = newA;
						} else {
							hiddenRight = null
						}
					}
				}
			);
		}
		bandeauLocked = false;
	}
}

function getBegin(id) {
	new Ajax.Request(
		bandeauUrl,
		{
			asynchronous: false,
			parameters: {
				type: 'begin',
				id: id
			},
			method: 'post',
			onSuccess: function(transport) {
				document.getElementById("bandeauContainer").innerHTML = '';
				var imgs = transport.responseXML.getElementsByTagName('image');
				var firstImg = 1;
				var lastImg = imgs.length-1;
				for(var i = 0; i < imgs.length; ++i) {
					var newImg = new Image();
					var newA = document.createElement("a");
					newA.href = imgs[i].getElementsByTagName('url')[0].firstChild.nodeValue;
					newImg.id = imgs[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					var isCurrent = imgs[i].getAttribute("current");
					var isHidden = imgs[i].getAttribute("hidden");
					if(isCurrent == 'y') {
						newImg.className = 'bandeauCurrentVig';
					} else {
						newImg.className = 'bandeauVig';
					}
					newA.style.borderBottom = "0px";
					newImg.src = imageBaseRef + newImg.id + '_VIG.jpg';
					newA.appendChild(newImg);
					if(isHidden == 'no') {
						document.getElementById("bandeauContainer").appendChild(newA);	
					} else {
						if(isHidden == 'left') {
							hiddenLeft = newA;
						}
						if (isHidden == 'right') {
							hiddenRight = newA;
						}
					}
				}
			}
		}
	);
}

function getEnd(id) {
	new Ajax.Request(
		bandeauUrl,
		{
			asynchronous: false,
			parameters: {
				type: 'end',
				id: id
			},
			method: 'post',
			onSuccess: function(transport) {
				document.getElementById("bandeauContainer").innerHTML = '';
				var imgs = transport.responseXML.getElementsByTagName('image');
				var firstImg = 1;
				var lastImg = imgs.length-1;
				for(var i = 0; i < imgs.length; ++i) {
					var newImg = new Image();
					var newA = document.createElement("a");
					newA.href = imgs[i].getElementsByTagName('url')[0].firstChild.nodeValue;
					newImg.id = imgs[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					var isCurrent = imgs[i].getAttribute("current");
					var isHidden = imgs[i].getAttribute("hidden");
					if(isCurrent == 'y') {
						newImg.className = 'bandeauCurrentVig';
					} else {
						newImg.className = 'bandeauVig';
					}
					newA.style.borderBottom = "0px";
					newImg.src = imageBaseRef + newImg.id + '_VIG.jpg';
					newA.appendChild(newImg);
					if(isHidden == 'no') {
						document.getElementById("bandeauContainer").appendChild(newA);	
					} else {
						if(isHidden == 'left') {
							hiddenLeft = newA;
						}
						if (isHidden == 'right') {
							hiddenRight = newA;
						}
					}
				}
			}
		}
	);
}

function getCenter(id, idNext) {
	if(!bandeauLocked) {
		bandeauLocked = true;
		new Ajax.Request(
			bandeauUrl,
			{
				asynchronous: false,
				parameters: {
					type: 'full',
					PHPSESSID: dv_phpsessid,						
					id: id,
					idNext: idNext
				},
				method: 'post',
				onSuccess: function(transport) {
					//alert(transport.responseText);  // Ligne à laisser pour debugguer. Voir wiki : Ajax Bandeau Galerie
					var imgs = transport.responseXML.getElementsByTagName('image');
					var firstImg = 1;
					var lastImg = imgs.length-1;
					for(var i = 0; i < imgs.length; ++i) {
						var newImg = new Image();
						var newA = document.createElement("a");
						newA.href = imgs[i].getElementsByTagName('url')[0].firstChild.nodeValue;
						newImg.id = imgs[i].getElementsByTagName('id')[0].firstChild.nodeValue;
						var isCurrent = imgs[i].getAttribute("current");
						var isHidden = imgs[i].getAttribute("hidden");
						if(isCurrent == 'y') {
							newImg.className = 'bandeauCurrentVig';
						} else {
							newImg.className = 'bandeauVig';
						}
						newA.style.borderBottom = "0px";
						newImg.src = imageBaseRef + newImg.id + '_VIG.jpg';							
						newA.appendChild(newImg);
						if(isHidden == 'no') {
							document.getElementById("bandeauContainer").appendChild(newA);	
						} else {
							if(isHidden == 'left') {
								hiddenLeft = newA;
							}
							if (isHidden == 'right') {
								hiddenRight = newA;
							}
						}
					}
				}
			}
		);
		bandeauLocked = false;
	}
}

function bandeauListImg(send, id, idNext, nb) {
	currentId = id;
	var type;
	
	switch(send) {
		case -2:
			getBegin(id);
			break;
		case -1:
			if(nb > 0) {
				for(i = 0; i < nb; ++i) {
					getLeft(hiddenLeft.firstChild.id, id);
				}
			} else {
				while(hiddenLeft != null) {
					getLeft(hiddenLeft.firstChild.id, id);
				}
			}
			break;
		case 0:
			getCenter(id, idNext);
			break;
		case 1:
			if(nb > 0) {
				for(i = 0; i < nb; ++i) {
					getRight(hiddenRight.firstChild.id, id);
				}
			} else {
				while(hiddenRight != null) {
					getRight(hiddenRight.firstChild.id, id);
				}
			}
			break;
		case 2:
			getEnd(id);
			break;
	}
}

YAHOO.util.Event.onDOMReady(function() {
	document.onkeydown = function(e) {
		var code;
		var isIE = false;
		
		if (navigator.appName == "Microsoft Internet Explorer") {
			code = event.keyCode;
			isIE = true;
		} else {
			code = e.keyCode;
		}
		switch(code) {
			case 37:
				if(isIE) {
					document.getElementById('bandeauPrev').fireEvent("onclick");
				} else {
					document.getElementById('bandeauPrev').dispatchEvent(makeEvent('bandeauPrev', 'click'));
				}
			break;
			case 39:
				if(isIE) {
					document.getElementById('bandeauNext').fireEvent("onclick");
				} else {
					document.getElementById('bandeauNext').dispatchEvent(makeEvent('bandeauNext', 'click'));
				}
			break;
		}
	};
	
	if(document.getElementById("btPrev")) {
		document.getElementById("bandeauPrev").onclick = document.getElementById("btPrev").onclick;	
	}
	if(document.getElementById("btNext")) {
		document.getElementById("bandeauNext").onclick = document.getElementById("btNext").onclick;
	}
});

function bandeauToggle() {
	if(!bandeauIsVisible) {
		document.getElementById('bandeauDiv').style.display = 'block';
		document.getElementById('bandeauLink').style.display = 'none';
		bandeauIsVisible = true;
		ajaxToggleBandeau(true);
	} else {
		document.getElementById('bandeauDiv').style.display = 'none';
		document.getElementById('bandeauLink').style.display = 'block';
		bandeauIsVisible = false;
		ajaxToggleBandeau(false);
	}
}

function makeEvent(targetId, type) {
	oEvent = document.createEvent("MouseEvents");
	oEvent.initMouseEvent(
	  type,    // le type d'evenement souris
	  true,       // est-ce que l'evenement doit se propager (bubbling)?
	  true,       // est-ce que le défaut pour cet evenement peut être annulé?
	  window,     // l' 'AbstractView' pour cet evenement
	  1,          // details -- Pour les evenements click, le nombre de clicks
	  1,          // screenX
	  1,          // screenY
	  1,          // clientX
	  1,          // clientY
	  false,      // est-ce que la touche Ctrl est pressée?
	  false,      // est-ce que la touche Alt est pressée?
	  false,      // est-ce que la touche Shift est pressée?
	  false,      // est-ce que la touche Meta est pressée?
	  0,          // quel est le bouton préssé
	  document.getElementById(targetId)      // l'élement source de cet evenement
	);	return oEvent;
}

function ajaxToggleBandeau(val) {
	new Ajax.Request(
		bandeauUrl,
		{
			asynchronous: true,
			parameters: {
				type: 'toggle',
				val: val
			},
			method: 'post'
		}
	);
}
