	Array.prototype.inArray = function(val) {
	   for(var i = 0; i < this.length; i++) {
	      if(this[i] == val) return true;
	   }
	   return false;
	}
	
	// Permet d'afficher un élément
	function showElement(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = 'block';
	}
	
	// Permet de masquer un élément
	function hideElement(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = 'none';
	}
	
	// Permet d'afficher un élément
	function showElementTable(elementId) {
		var element = document.getElementById(elementId);
		element.style.visibility = 'visible';
	}
	
	// Permet de masquer un élément
	function hideElementTable(elementId) {
		var element = document.getElementById(elementId);
		element.style.visibility = 'collapse';
	}
	
	// Permet d'afficher un élément
	function toggleVisibilityElementTable(elementId) {
		var element = document.getElementById(elementId);
		if(element.style.visibility == 'visible') {
			element.style.visibility = 'collapse';
		}
		else {
			element.style.visibility = 'visible';
		}
	}
	
	// Change le nom de classe Css
	function toggleClassElementTable(element, class1, class2) {
		if(element.className == class1) {
			element.className = class2;
		}
		else {
			element.className = class1;
		}
	} 
	
	// Change une propriété css d'un élément
	function toggleStyleElementTable(elementId, property, value1, value2) {
		var element = document.getElementById(elementId);
		var commandGet = "";
		var commandSet = "";
		var oldValue = "";
		commandGet = "oldValue = element.style." + property; window.eval(commandGet);
		
		if(oldValue == value1) {
			commandSet = "element.style." + property + " = \"" + value2 + "\""; window.eval(commandSet);
		}
		else {
			commandSet = "element.style." + property + " = \"" + value1 + "\""; window.eval(commandSet);
		}
	
	} 
		
	
	// Charge du contenu a partir d'un fichier
	function loadHtmlFromPage(conteneur, page, displayLoading) {
	
		if(displayLoading && document.getElementById ){
			lediv = document.getElementById(conteneur);
			lediv.innerHTML = '<div><img id="loading" src="./Css/Ressources/image_loading.gif"/></div>';
		}
	
	
		var xhr_object = null; 
		if(window.XMLHttpRequest) // Firefox 
			xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // Internet Explorer 
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else { // XMLHttpRequest non support%uFFFD par le navigateur 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			return; 
		} 
		xhr_object.open("GET", page, true); 
		xhr_object.onreadystatechange = function() { 
			if(xhr_object.readyState == 4) { 	
			
			
				var tmp = xhr_object.responseText; 
				if(document.getElementById){
					lediv = document.getElementById(conteneur);
					lediv.innerHTML = tmp;


					var allscript = lediv.getElementsByTagName('script');
					for(var i = 0; i < allscript.length; i++){
						window.eval(allscript[i].text);
					}
	
				}
				
			} 
		}
		xhr_object.send(null);
	}
	
	// Charge du contenu a partir d'un fichier et l'ajoute au contenu de l'élément
	function addHtmlFromPage(conteneur, page, displayLoading) {
		if(displayLoading && document.getElementById ){
			lediv = document.getElementById(conteneur);
			lediv.innerHTML = '<div><img id="loading" src="./Css/Ressources/image_loading.gif"/></div>';
		}
	
		var xhr_object = null; 
		if(window.XMLHttpRequest) // Firefox 
			xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // Internet Explorer 
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else { // XMLHttpRequest non support%uFFFD par le navigateur 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			return; 
		} 
		xhr_object.open("GET", page, false); 
		xhr_object.onreadystatechange = function() { 
			if(xhr_object.readyState == 4) { 	
			
				var tmp = xhr_object.responseText; 
				if(document.getElementById){
					lediv = document.getElementById(conteneur);
					lediv.innerHTML += tmp;
	
					var allscript = lediv.getElementsByTagName('script');
					for(var i = 0; i < allscript.length; i++){
						window.eval(allscript[i].text);
					}
	
				}
				
			} 
		}
		xhr_object.send(null);
	}
	
	function uploadFormulaireAndGetResponse(FormId, page) {

		var Form = document.getElementById(FormId);
		
		var data = "";
		var key = 0;
		for(key = 0; key < Form.elements.length; key++) {
			data+=Form.elements[key].name+"="+encodeURI(Form.elements[key].value)+"&";
		}
		data = data.substr(0, data.length-1);
	
		var xhr_object = null; 
		if(window.XMLHttpRequest) // Firefox 
			xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // Internet Explorer 
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else { // XMLHttpRequest non support%uFFFD par le navigateur 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			return; 
		} 
		xhr_object.open("POST", page, true); 
		
		xhr_object.onreadystatechange = function() { 
			if(xhr_object.readyState == 4) { 	
			
			
				var tmp = xhr_object.responseText; 
				if(document.getElementById){
					var lediv = document.getElementById("masqueContenuBoxContent");
					lediv.innerHTML = tmp;
					
					var allscript = lediv.getElementsByTagName('script');
					for(var i = 0; i < allscript.length; i++){
						window.eval(allscript[i].text);
					}
					
				}
				
			} 
		} 
		
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
		xhr_object.send(data);
	}
	
	function setInnerHTML(divId, texte) {
		var lediv = document.getElementById(divId);
		lediv.innerHTML = texte;
	}
	
	function deleteElement(parentId, elementId) {
		var element = document.getElementById(elementId);
		var parent = document.getElementById(parentId);
		
		parent.removeChild(element);
	}
	
	
	
	
	
	function displayModalWindow(width, height, marginTop, pageUrl) {

		loadHtmlFromPage('masqueContenuBoxContent', pageUrl, true);

		var masqueBoxTable = document.getElementById('masqueBoxTable');
		masqueBoxTable.style.width = width + 'px';
		masqueBoxTable.style.height = height + 'px';
		masqueBoxTable.style.marginTop = marginTop + 'px';

		showElement('masqueBox')

		displayModalWindowMask();
		displayModalWindowWindow();

	}
	
	function displayModalWindowWithRawHtml(width, height, marginTop, html) {
		
		document.getElementById('masqueContenuBoxContent').innerHTML = html;

		var masqueBoxTable = document.getElementById('masqueBoxTable');
		masqueBoxTable.style.width = width + 'px';
		masqueBoxTable.style.height = height + 'px';
		masqueBoxTable.style.marginTop = marginTop + 'px';

		showElement('masqueBox')

		displayModalWindowMask();
		displayModalWindowWindow();

	}
	
	function hideModalWindow() {
	
		hideModalWindowMask();
		hideModalWindowWindow();
		setTimeout("hideElement('masqueBox')", 800);
		
	}
	
	function displayModalWindowMask() {
		setTimeout("makeVisibleProgressively('masqueFondBox', 0, 70, 200)", 600);
 
		$('object').each(function(i){ $(this).hide(); });
		$('embed').each(function(i){ $(this).hide();});


 		
	}
	
	function displayModalWindowWindow() {
		makeVisibleProgressively('masqueContenuBox', 0, 99, 500);		
	}
	
	function hideModalWindowMask() {
		makeVisibleProgressively('masqueFondBox', 70, 0, 200);
	}
	
	function hideModalWindowWindow() {
		setTimeout("makeVisibleProgressively('masqueContenuBox', 99, 0, 500)", 10);
		$('object').each(function(i){ $(this).show(); });
		$('embed').each(function(i){ $(this).show();});
	}
	


	function makeVisibleProgressively(id, opacStart, opacEnd, millisec) {
	    //speed for each frame
	    var speed = Math.round(millisec / 100);
	    var timer = 0;
	
	    //determine the direction for the blending, if start and end are the same nothing happens
	    if(opacStart > opacEnd) {
	        for(i = opacStart; i >= opacEnd; i--) {
	            setTimeout("setOpacity('" + id + "', " + i + ")", (timer * speed));
	            timer++;
	        }
	    } else if(opacStart < opacEnd) {
	        for(i = opacStart; i <= opacEnd; i++)
	            {
	            setTimeout("setOpacity('" + id + "', " + i + ")", (timer * speed));
	            timer++;
	        }
	    }
	}


	//change the opacity for different browsers
	function setOpacity(id, opacity) {
	    var object = document.getElementById(id).style;
	    object.opacity = (opacity / 100);
	    object.MozOpacity = (opacity / 100);
	    object.KhtmlOpacity = (opacity / 100);
	    object.filter = "alpha(opacity=" + opacity + ")";
	}
	
	
	// Générer un thumbnail et le mettre dans le conteneur
	function generateThumbnailPicture(thumbnailsToCreate, itemIndex) {
		if(itemIndex < thumbnailsToCreate.length) {
			page = "ajax.php5?content=sgeneratethumbnailpicture&picturePath=" + thumbnailsToCreate[itemIndex][0];
			conteneur = thumbnailsToCreate[itemIndex][1];

			var xhr_object = null; 
			if(window.XMLHttpRequest) // Firefox 
				xhr_object = new XMLHttpRequest(); 
			else if(window.ActiveXObject) // Internet Explorer 
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
			else { // XMLHttpRequest non support%uFFFD par le navigateur 
				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				return; 
			} 
			xhr_object.open("GET", page, true); 
			xhr_object.onreadystatechange = function() { 
				if(xhr_object.readyState == 4) { 	
				
					var tmp = xhr_object.responseText; 
					if(document.getElementById){
						lediv = document.getElementById(conteneur);
						lediv.innerHTML = tmp;

						var allscript = lediv.getElementsByTagName('script');
						for(var i = 0; i < allscript.length; i++){
							window.eval(allscript[i].text);
						}
						
						if(itemIndex + 1 < thumbnailsToCreate.length) {
							generateThumbnailPicture(thumbnailsToCreate, itemIndex + 1);
						}
						
					}
					
				} 
			}
			xhr_object.send(null);
		}
	}
	
	// Génère les miniatures pour les galleries
	function generateLimitedSizePicture(limitedSizePictureToCreate, itemIndex) {
		if(itemIndex < limitedSizePictureToCreate.length) {
			page = "ajax.php5?content=sgenerateminipicture&picturePath=" + limitedSizePictureToCreate[itemIndex][0];
			conteneur = "miniGeneratorProcessBox";
			var xhr_object = null; 
			if(window.XMLHttpRequest) // Firefox 
				xhr_object = new XMLHttpRequest(); 
			else if(window.ActiveXObject) // Internet Explorer 
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
			else { // XMLHttpRequest non support%uFFFD par le navigateur 
				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				return; 
			} 
			xhr_object.open("GET", page, true); 
			xhr_object.onreadystatechange = function() { 
				if(xhr_object.readyState == 4) { 	
				
					var tmp = xhr_object.responseText; 
					if(document.getElementById){
					
						lediv = document.getElementById(conteneur);
						lediv.innerHTML = tmp;
						
						var allscript = lediv.getElementsByTagName('script');
						for(var i = 0; i < allscript.length; i++){
							window.eval(allscript[i].text);
						}
						
						
						if(itemIndex + 1 < limitedSizePictureToCreate.length) {
							generateLimitedSizePicture(limitedSizePictureToCreate, itemIndex + 1);
						}
						else {
							uploadFormulaireAndGetResponse('galleryEditForm', 'ajax.php5?content=supdategallery');
						}
						
					}
					
				} 
			}
			xhr_object.send(null);
		}
		else {
			uploadFormulaireAndGetResponse('galleryEditForm', 'ajax.php5?content=supdategallery');
		}

	}
	
	
	// Envoyer les newsletters mails à une liste des abonnés
	function sendNewsletterMail(newsletterMailsToSend, itemIndex) {
		
		if(itemIndex < newsletterMailsToSend.length) {
			page = "ajax.php5?content=ssendnewsletter&newsletter=" + newsletterMailsToSend[itemIndex][0] + "&subscriber=" + newsletterMailsToSend[itemIndex][1] ;
			
			conteneur = "sendNewsletterMailProcessBox";
			var xhr_object = null; 
			if(window.XMLHttpRequest) // Firefox 
				xhr_object = new XMLHttpRequest(); 
			else if(window.ActiveXObject) // Internet Explorer 
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
			else { // XMLHttpRequest non support%uFFFD par le navigateur 
				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				return; 
			} 
			xhr_object.open("GET", page, true); 
			xhr_object.onreadystatechange = function() { 
				if(xhr_object.readyState == 4) { 	
							
					var percentage = Math.floor(100 * (itemIndex + 1) / newsletterMailsToSend.length);
					$("#sendingProgressBar").progressBar(percentage);
					//Ext.ComponentMgr.get("sendingProgressBar").progressBar(percentage);
					$("#sendingLog").append(xhr_object.responseText);
					
					if(itemIndex + 1 < newsletterMailsToSend.length) {
						sendNewsletterMail(newsletterMailsToSend, itemIndex + 1);
					}
					else {
						loadHtmlFromPage('masqueContenuBoxContent', "ajax.php5?content=supdatenewsletterstatus&newsletter=" + newsletterMailsToSend[itemIndex][0], false);
					}
				} 
			}
			xhr_object.send(null);
		}
		else {
			loadHtmlFromPage('masqueContenuBoxContent', "ajax.php5?content=supdatenewsletterstatus&newsletter=" + newsletterMailsToSend[itemIndex][0], false);
		}
	}
	

	
	
