//Editeur du contenu des pages easysites

var saved=1;

//Initialisation tinyMCE
function initMCE(){
	tinyMCE.init({
		mode : "textareas",
		theme : "advanced",
		entity_encoding : "raw" ,
		plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist",
		language: "fr",
		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,advhr,|,ltr,rtl,visualchars,fullscreen",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		 setup : function(ed) {
	      ed.onChange.add(function(ed, l) {
	         saved=0;
	         iconSave();
	      });
	   }
	});
}


//Gestion des images 



//Boite de dialogue des images
function initImages() {
	if ($("#imgPanel")){
	
			$("#imgPanel").dialog("destroy");
		
			$("#imgPanel").dialog({
				height: 480,
				width: 580,
				title:"Images",
				modal: true,
				draggable:true,
				resizable:true,
				autoOpen:false
			});
		
	}
}

//Tableaux pour indexation images
var indexImages=new Array();
var selectedImages=new Array();

//Chargement du contenu d'un repertoire
function loadContent(path,sousDir) {
	//Affichage
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "path="+path+"&sousDir="+sousDir+"&mode=normal&espaceClient=1",
		success: function(msg) {
			document.getElementById("imgPanel").innerHTML=msg;
		}
			
	});
	
	//Construction index
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "path="+path+"&sousDir="+sousDir+"&mode=buildIndex",
		success: function(msg) {
			var tmp=msg.split("/");
			indexImages=new Array(tmp.length);
			selectedImages=new Array(tmp.length);
			for(var i=0; i<tmp.length; i++) {
				indexImages[i]=tmp[i];
				selectedImages[i]=0;
			}
		}		
	});
	
}

//Selection d'une image (au clic)
function selectImg(idImg) {
	if(selectedImages[idImg]==0) {
		document.getElementById("img"+idImg).style.backgroundColor="#C0C0C0";
		selectedImages[idImg]=1;
	}
	else {
		document.getElementById("img"+idImg).style.backgroundColor="#FFFFFF";
		selectedImages[idImg]=0;
	}
}

//Selection de toutes les images
function selectAll() {
	for(i=0; i<indexImages.length; i++) {
		selectImg(i);
	}
}


//Affichage du formulaire de creation de dossier
function newDirForm(path) {
	var body="<p>Saisissez un nom pour le nouveau répertoire :</p><p><input type='text' id='dirName' value='' /></p>";
	body+="<p><input type='button' value='&lt; Retour' onclick=\"loadContent('"+path+"','')\" >&nbsp;<input type='button' value='Créer' onclick=\"createDir('"+path+"')\"</p>";
	document.getElementById("imgPanel").innerHTML=body;
}

//Traitement de creation de dossier
function createDir(path){
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "path="+path+"&newDir="+document.getElementById("dirName").value+"&mode=newdir",
		success: function(msg) {
			if(msg!=0) {
				alert(msg);
			} else {
				loadContent(path,'');
			}
		}
			
	});
}

//Suppression d'un dossier et de son contenu
function delDir(path,sousDir){
	if(confirm("Supprimer ce répertoire son contenu ? (les images ne pourront plus etre visibles sur le site)")) {
		$.ajax({
			type:"POST",
			url: 'admin/pictures.php',
			data: "path="+path+"&sousDir="+sousDir+"&mode=deldir",
			success: function(msg) {
				if(msg!=0) {
					alert(msg);
				} else {
					loadContent(path,'');
				}
			}
				
		});
	}
}

//Affichage du NAS Uploader
function addImages(path,sousDir) {
	var folder="varget=folder%3D../../../easysites/"+path+"/images/";
	if(sousDir!="") {
		folder+=sousDir+"/";
	}
	var so = new SWFObject("admin/nas/applications/NasUploader15.swf?varget=folder%3D../../../easysites/"+path+"/images/", "nasuploader", "550", "400", "8");
	//alert(folder);
	//so.addParam ('FlashVars',folder);
	so.write("imgPanel");
	document.getElementById("imgPanel").innerHTML+="<p><input type='button' value='&lt; Retour aux images' onclick=\"loadContent('"+path+"','"+sousDir+"')\" /></p>";
}


//Affichage du gestionnaire d'images
function toggleImg(path){
	loadContent(path,"");
	$("#imgPanel").dialog("open");
}

//Insertion d'images dans l'editeur
function insertImg(path) {
	var body="";
	var ok=0;
	var gallery=new Array();
	var nbImg=document.getElementById("nbImg").value;
	var j=0;
	for(i=0;i<nbImg;i++) {
		if(selectedImages[i]==1) {
			gallery[j]=indexImages[i];
			j++;
			ok++; 
		}
	}
	if(ok==0) {
		alert("Aucune image sélectionnée");
		return false;
	}
	imgPath=path;
	var pos=0;
	for(i=0;i<gallery.length;i++) {
		body+="<img src='"+imgPath+gallery[i]+"' />"; 
		body+="\n";	
	}
	//alert(body);
	tinyMCE.execCommand("mceInsertContent", "mce_editor_0", body);  
}


//Insertion d'une gallerie photo dans l'editeur
function insertGallery(path) {
	var body="";
	var ok=0;
	var gallery=new Array();
	var nbImg=document.getElementById("nbImg").value;
	var j=0;
	for(i=0;i<nbImg;i++) {
		if(selectedImages[i]==1) {
			gallery[j]=indexImages[i];
			j++;
			ok++; 
		}
	}
	if(ok==0) {
		alert("Aucune image sélectionnée");
		return false;
	}
	imgPath=path;
	thumbPath=imgPath+"thumbs/";
	body+="<table>\n"
	var pos=0;
	for(i=0;i<gallery.length;i++) {
		if(i%4==0) {
			body+="<tr>";
			pos=i;
		}
		body+="<td><a href='"+imgPath+gallery[i]+"' rel='lightbox[roadtrip]'><img src='"+thumbPath+gallery[i]+"'></a></td>"; 
		if(i==pos+3) {
			body+="</tr>";
		}
			
		
		body+="\n";
		
	}
	if(i%4!=0) {
		body+="</tr>";
	}
	body+="</table>";
	//alert(body);
	tinyMCE.execCommand("mceInsertContent", "mce_editor_0", body); 
}

//Renommer une image ou un répertoire (formulaire)
function renameForm(type, file, id){
	document.getElementById(type+"Name"+id).style.display="none";
	document.getElementById(type+"NewName"+id).value=file;
	document.getElementById(type+"NewName"+id).style.display="block";
	document.getElementById(type+"NewName"+id).focus();
}

//Renommage fichier / dossier
function saveName(type,path,sousDir, newName, extension, id){
	//Recuperation du nom actuel
	var oldName=document.getElementById(type+"Name"+id).innerHTML;
	//Requete AJAX
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "mode=rename&idSite="+document.getElementById("idSite").value+"&path="+path+"&sousDir="+sousDir+"&type="+type+"&oldName="+oldName+"&newName="+newName+"&extension="+extension,
		success: function(msg) {
			//alert(msg);
			//Traitement des messages d'erreur susceptibles d'etre retournes par le script php
			if(msg=="<tooShort>") {
				alert("Veuillez spécifier un nom plus long");
			}
			else if (msg=="<alreadyUsed>") {
				alert("Nom déjà utilisé");
			}
			else if(msg=="<dbError>") {
				alert("Erreur de traitement");
			}
			else {
				
				
				//Passage du mode formulaire au mode affichage
				document.getElementById(type+"Name"+id).style.display="block";
				document.getElementById(type+"NewName"+id).style.display="none";
				
				//Cas d'une image
				if(type=="img") {
					//Retour du script (decoupage pour separer le nom de l'extension dans le cas d'un fichier)
					var fileName="";
					var tmp=msg.split(".");
					for(i=0; i<tmp.length-1;i++) {
						fileName+=tmp[i];
					}
					var extension=tmp[tmp.length-1];
					//Mise à jour appel fonction de renommage avec le nouveau nom
					$("#"+type+"Name"+id).dblclick(function(){ renameForm(type,fileName,id); });
					
					//Affichage nouveau nom
					document.getElementById(type+"Name"+id).innerHTML=fileName;
					
					//Mise à jour index images
					indexImages[id]=msg;
					
					//Mise à jour du contenu de l'editeur
					var tmp=new String(tinyMCE.get('txt0').getContent());
					if(sousDir!="") { 
						var reg=new RegExp("(/images/"+sousDir+"/"+oldName+"."+extension+"\")");
						tmp=tmp.replace(reg,"/images/"+sousDir+"/"+msg+"\""); 
						//Miniatures
						var reg=new RegExp("(/images/"+sousDir+"/thumbs/"+oldName+"."+extension+"\")");
						tmp=tmp.replace(reg,"/images/"+sousDir+"/thumbs/"+msg+"\""); 
					}
					else { 
						var reg=new RegExp("(/images/"+oldName+"."+extension+"\")");
						tmp=tmp.replace(reg,"/images/"+msg+"\""); 
						//Miniatures
						var reg=new RegExp("(/images/thumbs/"+oldName+"."+extension+"\")");
						tmp=tmp.replace(reg,"/images/thumbs/"+msg+"\""); 
					}
					
					tinyMCE.get('txt0').setContent(tmp);
				}
				
				//Cas d'un repertoire 
				else if(type=="rep") {
					//Affichage du nouveau nom
					document.getElementById(type+"Name"+id).innerHTML=msg;
					
					//Mise à jour appel fonction d'ouverture du dossier avec le nouveau nom
					$("#iconRep"+id).dblclick(function(){ loadContent(path,msg); });
					
					//Mise à jour du contenu de l'editeur
					var tmp=new String(tinyMCE.get('txt0').getContent());
					var reg=new RegExp("(/images/"+oldName+"/)");
					tmp=tmp.replace(reg,"/images/"+msg+"/");
					tinyMCE.get('txt0').setContent(tmp);
				}
			}
		}
	});
	
	
}

//Deplacer des fichiers (formulaire)
function moveFilesForm(path, sousDir) {
	//Verification si elements selctionnes
	var noSelect=1;
	for(i=0;i<selectedImages.length;i++) {
		if(selectedImages[i]==1) {
			noSelect=0;
		}
	}
	if(noSelect==1) {
		alert("Aucun fichier sélectionné");
		return false;
	}
	//Obtention liste des repertoires
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "mode=getDirs&path="+path+"&sousDir="+sousDir,
		success: function(msg) {
			var tmp=msg.split(",");
			var dirList="<select id='destDir' size='10'>\n"
			for(i=0;i<tmp.length;i++) {
				if(tmp[i]=="..") {
					dirList+="<option value='..'>Images (racine)</option>\n";
				} else {
					dirList+="<option value='"+tmp[i]+"'>"+tmp[i]+"</option>\n";
				}
				
			}
			dirList+="</select><br />\n";
			dirList+="<input type='button' value='&lt; Retour' onclick=\"loadContent('"+path+"','"+sousDir+"')\" />&nbsp;";
			dirList+="<input type='button' value='Déplacer' onclick=\"moveFiles('"+path+"','"+sousDir+"')\" />"
			document.getElementById("imgPanel").innerHTML="Sélectionner une destination : <br />\n"+dirList+"<br />";
		}
	});
}

//Déplacer des fichiers (traitement) 
function moveFiles(path, sousDir) {
	//Concatenation liste fichiers
	var files="";
	for(i=0;i<selectedImages.length;i++) {
		if(selectedImages[i]==1) {
			files+=indexImages[i]+"/";
		}
	}
	//Recuperation destination dans le select
	var destDir=document.getElementById("destDir").value;
	
	//Requete AJAX
	$.ajax({
		type:"POST",
		url: 'admin/pictures.php',
		data: "mode=moveFiles&idSite="+document.getElementById("idSite").value+"&path="+path+"&sousDir="+sousDir+"&destDir="+destDir+"&files="+files,
		success: function(msg) {
			//Erreurs de deplacement, on se replace dans le repertoire courant
			if(msg=="1") {
				alert("Attention : des fichiers portant les mêmes noms que certains fichiers à déplacer se trouvent dans le dossier de destination, ces derniers n'ont pas été déplacés.");
				loadContent(path,sousDir);
			}
			else if(msg=="<dberror>") {
				alert("Erreur de traitement");
				loadContent(path,sousDir);
			}
			//Deroulement correct, on se place dans le repertoire de destination
			else {
				if(destDir=="..") { destDir=""; }
				loadContent(path,destDir);
				//Mise à jour du contenu de l'éditeur
				var tmp2=new String(tinyMCE.get('txt0').getContent());
				if(sousDir!="") { sousDir+="/"; }
				if(destDir!="") { destDir+="/"; }
				tmp=files.split("/");
				for(i=0; i<tmp.length; i++) {
					var reg=new RegExp("(/images/"+sousDir+tmp[i]+"\")");
					tmp2=tmp2.replace(reg,"/images/"+destDir+tmp[i]+"\"");
					//Miniatures
					var reg=new RegExp("(/images/"+sousDir+"thumbs/"+tmp[i]+"\")");
					tmp2=tmp2.replace(reg,"/images/"+destDir+"thumbs/"+tmp[i]+"\"");
				}
				tinyMCE.get('txt0').setContent(tmp2);
			}
		}
	});
}

//Suppression d'images
function delImg(path,sousDir) {
	files="";
	for(i=0;i<indexImages.length; i++) {
		if(selectedImages[i]==1) {
			files+=indexImages[i]+"/";
		}
	}

	if(confirm("Attention : les images supprimées ne seront plus affichées sur le site. Continuer ?")){
		$.ajax({
			type:"POST",
			url: 'admin/nas/delImg.php',
			data: "path="+path+"&sousDir="+sousDir+"&files="+files,
			success: function(msg) {
				loadContent(path,sousDir);
			}
		});
	}
}

//Switch de l'icone sauvegarde (selon l'état courant)
function iconSave() {
	if(saved==1) {
		document.getElementById("saveBtn").innerHTML="<img src='admin/images/save2.png' alt='' />&nbsp;<span style='color:#BBBBBB'>Sauvegarder</span>";
	}
	else {
		var formAct="add";
		if(document.getElementById("modeEdit").value==1) {
			formAct="update";
		}
		document.getElementById("saveBtn").innerHTML="<a onclick=\"save("+document.getElementById("idSite").value+",'"+formAct+"')\"><img src='admin/images/save.png' alt='' />&nbsp;Sauvegarder</a>";
	}
}

//Prévisualisation
function preview() {
	document.pageSite.target="_blank";
	document.getElementById("bufferContenu").value=tinyMCE.get('txt0').getContent();
	document.pageSite.submit();
}

//Sauvegarde de la page
function save(idSite,formAct) {
	error=0;
	if(document.getElementById("titrePage").value=="") {
		error=1;
	}
	if(document.getElementById("fichier") && document.getElementById("fichier").value=="") {
		error=1;
	}
	if(error==1) {
		alert("Veuillez remplir les champs obligatoires");
		return false;
	}
	var dataVar;
	document.getElementById("bufferContenu").value=tinyMCE.get('txt0').getContent();
	dataVar="id="+document.getElementById("idPage").value+"&idSite="+idSite+"&titrePage="+document.getElementById("titrePage").value;
	if(document.getElementById("fichier")) dataVar+="&fichier="+document.getElementById("fichier").value;
	dataVar+="&bufferContenu="+document.getElementById("bufferContenu").value;
	
	
	//document.pageSite.submit();
	$.ajax({
		type:"POST",
		url: "ecEzsPages.php?"+idSite+"|"+formAct,
		data: dataVar,
		success: function(msg) {
			if(msg!="0"){
				alert("Erreur de sauvegarde.\n"+msg);
			}
			else {
				if(document.getElementById("modeEdit").value==0) {
					document.getElementById("modeEdit").value=1;
				}
				saved=1;
				iconSave();
			}
		}
	});
}


