function gGotoPage(page){

	//Valider le numero de page
	if (page < 1)
		page = 1;
	if (page > nbPages)
		page = nbPages;
	
	var gImgs = document.getElementById('gImgs');
	curPage = page;
	getInfos(location.href+'?gAction=getPage&p='+page, gImgs, fillContainer);
}

function gShowBigImg(picID)
{
	
	getInfos(location.href+"?gAction=getFullPic&id="+picID,null,function(rAct){
		if (rAct.readyState == 4 && rAct.status == 200)	
		{
			var imgPaths = rAct.responseText.split("|");
			var preload  = "";
			
			//Code de preload				
			if (imgPaths[0] != -1)
				preload = preload + '<img style="display:none" src="'+imgPaths[0]+'" >';
			if (imgPaths[2] != -1)
				preload = preload + '<img style="display:none" src="'+imgPaths[2]+'" >';
				
			//Conserver l'image courrante en mémoire
			curImgId = picID;

			//Boite image + navigation
			var html = 
				'<div style="width:'+vWidth+'px;height:'+vHeight+'px;position:relative" id="imgViewer">' +
					'<img width="100%" height="100%" style="position:absolute" src="'+imgPaths[1]+'" >' +
					preload +
				 '</div>' +
				 '<center>' +
					'<img class="navBtns" src="'+gGetLeftBtnSrc(imgPaths[0])+'" onclick="gImgNavigate(\'prev\')">' +
					'<img class="navBtns" src="'+gGetRightBtnSrc(imgPaths[2])+'" onclick="gImgNavigate(\'next\')">' +
				'</center>';
	
			showBigViewer(html, vWidth, vHeight, vOpac, vColor, coreRel+"images/");
		}
	});				
}

function gGetLeftBtnSrc(prevImg){
	return coreRel+'images/navLeft'+((prevImg== -1)?'_inactive':'')+'.gif';
}

function gGetRightBtnSrc(nextImg){
	return coreRel+'images/navRight'+((nextImg == -1)?'_inactive':'')+'.gif';
}


function gImgNavigate(navTo)
{
	var viewerElem = document.getElementById('imgViewer');

	getInfos(location.href+'?gAction=getFullPic&id='+curImgId+'&goto='+navTo, null, function(rAct){					
			if (rAct.readyState == 4 && rAct.status == 200)					
			{
				//trouver les boutons de navigations
				var nextBtn = viewerElem.parentNode.lastChild.lastChild;
			    var backBtn = viewerElem.parentNode.lastChild.firstChild;
			
				var imgPaths = rAct.responseText.split("|");
				
				backBtn.src = gGetLeftBtnSrc(imgPaths[0]);
				nextBtn.src = gGetRightBtnSrc(imgPaths[2]);
				
				preload1 = new Image();						
				preload1.src = imgPaths[0];	
				preload2 = new Image();						
				preload2.src = imgPaths[2];	
				
				curImgId = imgPaths[3];
			
				oldImg    = viewerElem.firstChild;
				imgToShow = document.createElement("IMG");						
				imgToShow.src = imgPaths[1];						
				imgToShow.style.position = "absolute";
				imgToShow.style.width = vWidth+"px";
				imgToShow.style.height = vHeight+"px";
				changeOpac(0, imgToShow);
				viewerElem.appendChild(imgToShow);
				
				fadeInOut(100, imgToShow, 25);
				fadeInOut(0, oldImg, 25, function(){viewerElem.removeChild(oldImg);});
			}
		}  );
}

//Ajoute le fichier choisi a la queue de tranferts
function gAddImgToQueue(picElem)
{			
	//Detecter si on modifie un élément
	var editing = (findElementById(picElem, 'dbId').value.length > 0);
	
	//Cacher l element fichier et l ajouter a la queue
	var fileElem = findElementsByClass(picElem, 'fileElem')[0];
	fileElem.style.display = 'none';
	sendQueue.push(fileElem);
	
	//Mettre l element en attente
	var preview = findElementsByClass(picElem, 'picPreview')[0];
	preview.innerHTML = "<center>En attente ...</center>";
	preview.style.display = "";

	//Ajouter un autre element fichier
	if (editing == false){
		
		//Afficher les combo des pieces	
		var ctlElem = findElementsByClass(picElem, 'ctlElem')[0];
		ctlElem.style.display = "";
		
		var gImgs = picElem.parentNode;
		
		var newPic = document.createElement("DIV");
		newPic.className = "picElem";
		newPic.innerHTML = document.getElementById('picTpl').innerHTML;
		gImgs.appendChild(newPic);
	}

	//Partir le traitement de la queue au besoin
	if (sendingPic == false)
		gPicQueueManager();
}

function gPicQueueManager(){
	
	sendingPic = (sendQueue.length > 0);

	//Completer lenvoie de lelement pr�c�dent
	if (curPicElem != null){
		
		//Detecter si on modifie un élément
		var dbId = findElementById(curPicElem, 'dbId').value;
		var editing = (dbId.length > 0);
		
		if (editing){
			var picPreview = findElementsByClass(curPicElem, 'picPreview')[0];
			
			tmpImg = frames['gServWindow'].document.body.innerHTML;
			picPreview.innerHTML  = '<img width="100%" height="100%" src="'+frames['gServWindow'].document.body.innerHTML+'">';
		}
		else
			curPicElem.innerHTML = frames['gServWindow'].document.body.innerHTML;
		
		if(sendingPic == false)
			curPicElem = null;
	}
		
	if (sendingPic) {
		
		//Detacher lelement fichier de lelement photo
		var fileElem = sendQueue.shift();
		curPicElem = fileElem.parentNode;
		/*curPicElem.removeChild(fileElem);*/

		//Afficher lanimation dans lelement preview
		var picPreview = findElementsByClass(curPicElem, 'picPreview')[0];
		picPreview.innerHTML  = '<center><img class="gLoader" src="'+coreRel+'/images/loader.gif"></center>';
		
		//Effacer les enfants existant du formulaire
		var gSender = document.getElementById('gSender');
		for(var i=gSender.childNodes.length-1; i >= 0 ; i--)
			gSender.removeChild( gSender.childNodes[i] );
		
		//envoyer l'element
		//gSender.appendChild(fileElem.cloneNode(true));
		gSender.appendChild(fileElem);

		//Envoyer la catégorie
		var hCateg = document.createElement("INPUT");
		hCateg.type = "HIDDEN"
		hCateg.name = "categ";
		hCateg.value = document.getElementById('gCategFilter').value;
		gSender.appendChild(hCateg);
		
		//Detecter si on modifie un élément
		var dbId = findElementById(curPicElem, 'dbId').value;
		var editing = (dbId.length > 0);
		
		if (editing){
			var hId = document.createElement("INPUT");
			hId.type = "HIDDEN"
			hId.name = "id";
			hId.value = dbId;
			gSender.appendChild(hId);
		}
		
		gSender.submit();
	}
}

function gDeleteImg(picElem){
	//Trouver l<id de la photo
	var id = findElementById(picElem, 'dbId').value;
	
	var answer = confirm ("Êtes-vous sûr de vouloir supprimer l'image '"+id+"'?")
	if (answer){
		if (curPicElem == picElem){
			var servWin = document.getElementById('gServWindow');
			servWin.src = "";
			curPicElem = null;
		}
		
		//Effacer l'objet js
		var gImgs = picElem.parentNode;
		gImgs.removeChild(picElem);
	
		getInfos(location.href+"?gAction=delImg&id="+id, null, function(rAct){
			if (rAct.readyState == 4 && rAct.status == 200){
				if (rAct.responseText.indexOf('success') == -1){
					alert('Erreurs lors de la suppression de l\'image \''+id+'\'');
				}	
			}
		});
	}
}

function gEndModifyImg(picElem, isModif){
	
	if (typeof isModif == "undefined") isModif = false;
	
	//Cacher l'element file
	var fileElem = findElementsByClass(picElem, 'fileElem')[0];
	fileElem.style.display = "none";
	
	//Afficher le loader
	var picPreview = findElementsByClass(picElem, 'picPreview')[0];
	picPreview.innerHTML = '<center><img class="gLoader" src="'+coreRel+'/images/loader.gif"></center>';
	
	//Mettre la hauteur initial de la boite d'édition
	elems = findElementsByClass(picElem.parentNode, 'gAdditional');
	for(var i = 0; i < elems.length; i++)
		elems[i].style.height = "";
	
	//cacher l'element d'information additionnel
	var addElem = findElementsByClass(picElem, 'gAdditional')[0];
	addElem.innerHTML = "";
	//addElem.style.display = "none";

	//Telecharger les information de l'element du serveur
	var dbId = findElementById(picElem, 'dbId').value;
	getInfos(location.href+"?gAction=getPicElem&id="+dbId, null, function(rAct){
		if (rAct.readyState == 4 && rAct.status == 200){
			picElem.innerHTML = rAct.responseText;
			
			//Si on est en mode modification, conserfer la hauteur pour les controles d editions	
			if (isModif){
				var addElem = findElementsByClass(picElem, 'gAdditional')[0];
				addElem.style.height = eHeight+"px";				
			}
		}
	});

		
	tmpImg =null;
}

function gModifyImg(picElem){
	
	
	//Trouver l'id de l'element et la position dans les colones
	var curId = picElem.id;
	pos = curId % admCols;
	var startId = curId - pos;
	
	//Canceler l'edition de l'element precedent
	if (modElem != null){
		var modId = parseInt(modElem.id);
		gEndModifyImg(modElem, (modId >= startId && modId <= startId+admCols));
	}
		
	//Changer la hauteur de la boite d edition
	elems = findElementsByClass(picElem.parentNode, 'gAdditional');
	tpl = elems.shift();
	for(var i = startId; i < startId+admCols; i++)
	if (typeof elems[i] != "undefined"){
		elems[i].style.height = eHeight+"px";
	}
	
	//Cacher les boutons de controles
	var ctlElem = findElementsByClass(picElem, 'ctlElem')[0];
	ctlElem.style.display = "none";
	
	//Afficher lelement fichier pour modifier les images
	var fileElem = findElementsByClass(picElem, 'fileElem')[0];
	fileElem.style.display = "";
	
	//Trouver l'element d'information additionnel
	var addElem = findElementsByClass(picElem, 'gAdditional')[0];
	//addElem.style.position = "absolute";
	//addElem.style.zIndex   = 999;
	
	//Conserver le label
	var labelText = addElem.innerHTML;
	addElem.innerHTML = "";
	
	//Ajouter le input pour modifier le label
	var iLabel = document.createElement("INPUT");
	iLabel.type = "text"
	iLabel.id = "label";
	iLabel.value = labelText;
	iLabel.style.width = (pWidth-5)+"px";
	addElem.appendChild(iLabel);
	
	addElem.appendChild(document.createElement("BR"));
	
	//Ajouter le bouton pour enregistrer les modification
	var dbId = findElementById(picElem, 'dbId').value;
	var iSave = document.createElement("INPUT");
	iSave.type = "button"
	iSave.value = "ok";
	iSave.style.width = (pWidth/2)+"px";
	iSave.onclick = function (){
		//Mettre la hauteur initial de la boite d'édition
		elems = findElementsByClass(picElem.parentNode, 'gAdditional');
		for(var i = 0; i < elems.length; i++)
			elems[i].style.height = "";
		
		getInfos(location.href+"?gAction=saveModif&id="+dbId+"&label="+iLabel.value+"&img="+tmpImg, null, function(rAct){
			if (rAct.readyState == 4 && rAct.status == 200){
				picElem.innerHTML = rAct.responseText;
				modElem = null;
				tmpImg  = null;
			}
		});	
	}
	addElem.appendChild(iSave);
	
	var iCancel = document.createElement("INPUT");
	iCancel.type = "button"
	iCancel.value = "cancel";
	iCancel.style.width = (pWidth/2)+"px";
	iCancel.onclick = function (){ gEndModifyImg(modElem); modElem = null;};
	addElem.appendChild(iCancel);
	
	//Conserver l'element à modifier
	modElem = picElem;
}

function gLoadCategory(categs, type){
	if (typeof type == "undefined")
		type = "client";
	getInfos(location.href+"?gAction=loadCateg&categ="+categs.value+"&type="+type, null, function(rAct){
		if (rAct.readyState == 4 && rAct.status == 200){
			var gImgs = document.getElementById('gImgs');
			gImgs.innerHTML = rAct.responseText;
			getInfos(location.href+"?gAction=getNbPages", null, function(rAct){
				if (rAct.readyState == 4 && rAct.status == 200){
					curPage = 1;
					nbPages = rAct.responseText;
				}
			});
		}
	});
}

