// TODO: Unifier avec les constantes PHP
var OBJECT_TYPE_IMAGE = 503;

// Les deux scripts suivants permettent de crï¿½er et supprimer un objet html (div, span...) // 
// situï¿½ ï¿½ l'intï¿½rieur d'un ï¿½lï¿½ment passï¿½ en paramï¿½tre (repï¿½rï¿½ par son identifiant) //
function createHtmlElement(targetId, newElement, newElementId, newElementContent)
{
	var target = document.getElementById(targetId);
	var elem = document.createElement(newElement);
   	var txt = document.createTextNode(newElementContent);
   	elem.appendChild(txt);
   	elem.id = newElementId;
   	target.appendChild(elem);
}

function deleteHtmlElement(elementId)
{
	var obj2delete = document.getElementById(elementId);
	var objParent = obj2delete.parentNode; 
    objParent.removeChild(obj2delete);
}

function addToFavorite(title, url) 
{
	if (navigator.appName != 'Microsoft Internet Explorer') 
	{
		window.sidebar.addPanel(title, url,"");
	} else {	
				window.external.AddFavorite(url, title);
	}
}

function addToBookmark(title, url) 
{
	if (document.all)
    	window.external.AddFavorite(url, title);
	else if (window.sidebar)
     	window.sidebar.addPanel(title, url, "");    	
}

function setAsHomePage(obj) 
{
	if (window.event)
	{
 		obj.style.behavior='url(#default#homepage)';
 		obj.setHomePage(obj.href);
 	}
 	else
 		alert(document.getElementById("setAsHomePageWarning").value);
}

function firstToUpperCase(texte) 
{
	var t = new Array();
	for(j=0 ; j < texte.length ;j++) {
    	if(j == 0) t[j] = texte.substr(j,1).toUpperCase();
    	else t[j] = texte.substr(j,1).toLowerCase();
    }
    return t.join('');
}

function selectAll(id,url) 
{
	var checkvalues = '';
	var objectid = '';
	var inputs = document.getElementsByTagName("input");
	if(document.getElementById(id).checked == true) {
		for(i=0;i<inputs.length;i++) {
			if(inputs[i].type.toLowerCase()=="checkbox") {
				if(inputs[i].className=="box") {
					inputs[i].checked=true;
					//if((i+1)<inputs.length) checkvalues += inputs[i+1].value+'#';
					checkvalues += inputs[i].value+'#';
				}
			}
			if((inputs[i].type.toLowerCase()=="hidden") && (inputs[i].className=="objparam")) {
				objectid += inputs[i].value+'#';
			}
		}
	} else {
				for(i=0;i<inputs.length;i++) {
					if(inputs[i].type.toLowerCase()=="checkbox"){
						if(inputs[i].className=="box") {
							inputs[i].checked=false;
							//if((i+1)<inputs.length) checkvalues = '';
							checkvalues = '';
							objectid = '';
						}
					}
				}
	}
	//alert("checkvalues = "+checkvalues);
	//alert("objectid = "+objectid);
	$.ajax({
			type:"POST",
			data:"checkvalues="+checkvalues+"&objectid="+objectid,
			url:url,
			success: function(msg){
				document.getElementById('DivCommentButton').innerHTML = msg;
	 		}
	});
}

//boxid est l'identifiant de la checkbox principal servant ï¿½ sï¿½lectionner toutes les autres //
function verifySelection(id,boxId,objectId,url) 
{
	var checkvalues = '';
	var checkbox = document.getElementsByName(id);
	for(i=0;i<checkbox.length;i++) {
		if(checkbox[i].checked==false)
			document.getElementById(boxid).checked=false;
		if(checkbox[i].checked==true) 
			checkvalues += checkbox[i].value+'#';
	}
	alert(checkvalues);
	$.ajax({
			type:"POST",
			data:"checkvalues="+checkvalues+"&objectId="+objectId,
			url:url,
			success: function(msg){
				document.getElementById('DivCommentButton').innerHTML = msg;
	 		}
	});
}

function ajaxComboBox(form,firstlist,loadinglist,url) 
{
	var l1 = document.getElementById(firstlist);
	var l2 = document.getElementById(loadinglist);
	var index = l1.selectedIndex;
	if(index < 1) {
		document.getElementById(loadinglist).disabled="true";
		l2.options.length = 0;
	}
 	else {
 			document.getElementById(loadinglist).disabled="";
	 		$.ajax({
	 			type:"POST",
	 			data:"firstlist="+escape(l1.options[index].value)+"&form="+form.name+"&listresult="+loadinglist,
	 			url:url,
	 			success: function(msg){
	 				eval(msg);
	 				$("#"+loadinglist).trigger("change");
	 			}
	 		});
	}
}

function commentDisplay(post,url) 
{
	var selectpost = document.getElementById(post);
	var index = selectpost.selectedIndex;
	$.ajax({
	 			type:"POST",
	 			data:"selectpost="+escape(selectpost.options[index].value),
	 			url:url,
	 			success: function(msg){
	 				//document.getElementById('pager_commentDisplay').innerHTML = "";
	 				document.getElementById('pager_commentDisplay').innerHTML = msg;
	 			}
	 		});
}

function addingAjaxNewOption(option_name,parentid,nextid,url,url_nextid) {
	var list_form = document.getElementsByTagName("form");
	for(var i=0; i<list_form.length; i++)
	{
		if(list_form[i].className == "addingAjaxNewOption")
		{
			var form = list_form[i].getAttribute("id");
		}
	}
	var nextidtest = 0;
	$.ajax({   
	 				type: "GET",   
	 				data: "",
	 				url: url_nextid,   
	 				success: function(msg){
	 						nextidtest = msg;
	 				}
				});
	
	$.ajax({   
	 	type: "POST",   
	 	data: "form="+form+"&optname="+option_name+"&parentid="+document.getElementById(parentid).value,
	 	url: url,   
	 	success: function(msg){
	 		document.getElementById('DivResult').innerHTML = msg;
	 		
	 	},
	 	complete: function(){
	 		if(document.getElementById(parentid).value=='null') {	
		 		var s = document.forms[form].elements[parentid];
				s.options[s.options.length] = new Option(firstToUpperCase(option_name),nextidtest);
	 		}
		}
	});
}

function tagAjax(option_name,parentid,nextid,url,url_nextid) 
{
	$.ajax({   
	 	type: "POST",   
	 	data: "form="+form+"&optname="+option_name+"&parentid="+document.getElementById(parentid).value,
	 	url: url,   
	 	success: function(msg){
	 		document.getElementById('DivResult').innerHTML = msg;
	 		
	 	},
	 	complete: function(){
	 		if(document.getElementById(parentid).value=='null') {	
		 		var s = document.forms[form].elements[parentid];
				s.options[s.options.length] = new Option(firstToUpperCase(option_name),nextidtest);
	 		}
		}
	});	
}

function deleteOption(id,list,url) 
{
	var list_form = document.getElementsByTagName("form");
	/*$("addingAjaxNewOption").
	for(var i=0; i<list_form.length; i++)
	{
		if(list_form[i].className == "addingAjaxNewOption")
		{
			var form = list_form[i].getAttribute("id");
		}
	}*/
	$.ajax({
		type: "POST",
		data: "id="+id,
		url: url,
		success: function(msg){
			document.getElementById('DivResult').innerHTML = msg;
		},
		complete: function() {
			/*jQuery.each($("#listchoose option"), function() {
				 alert($("#" + this).val());	
			});*/
			//alert($("#listchoose option 0 ").val());
			//$("#listchoose").removeOption("id"); 
			$("#listchoose").removeOption(id.toString());
			//alert('"'+id+'"');
			//var element_test = $("#listchoose option").val();
			
			//var options = $(".addingAjaxNewOption").elements[list].options;
			//alert(element_test);/*
			/*for(i=0 ; i<options.length ; i++){
				if(options[i].value == id)
					options[i] = null;
			}*/
		}
	});
}

function selectMedia(mediaId,objectType,url) 
{
	//document.getElementById("mediaResult").value = "";
	$.ajax({
		type:"POST",
		data:"ajaxMediaId="+mediaId+"&objectType="+objectType,
		url: url,
		success:function(msg) {
			document.getElementById("player").innerHTML = msg;
			//document.getElementById("mediaResult").value = mediaId;
		}
	})
}

function selectComment(mediaId,objectType,url) 
{
	$.ajax({
		type:"POST",
		data:"ajaxMediaId="+mediaId+"&objectType="+objectType,
		url: url,
		async: false,
		success:function(msg) {
			document.getElementById("CommentContent").innerHTML = msg;
			// Soulève l'évènement clique sur le lien thickbox //
			tb_init('.report a.thickbox');
			return false;
		}
	});
	$('div.pagerBlock').pager('div.pagerBlockPage', {navId: 'navigator', navClass: 'navigatorBlock'} );
}

function changeUrlMedia(media) 
{
	var motif = "[?^&]";
	var regexp = new RegExp(motif,"g");
	$("a.report").each(function() {
		var url =  $(this).attr('href');
		var strUrl = url.split(regexp);
		var mediaVar = strUrl[1];
		var strMedia = mediaVar.split('=');
		var mediaVar = strMedia[0];
		var mediaId = strMedia[1];
		var newStrMediaId = mediaVar + '=' + media;
		var newStrUrl = '';
		newStrUrl+=strUrl[0];
		newStrUrl+='?' + newStrMediaId;
		for(var i=2;i<strUrl.length;i++) {
			newStrUrl+='&' + strUrl[i];
		}
		$(".albumInfo .report").attr("href",newStrUrl);
	});
}

function updateMediaStats(media_url_key,url) {
	$.ajax({
			type:"POST",
			data:"media_url_key="+media_url_key,
			url: url,
			success:function(msg) {
				document.getElementById("statistiques").innerHTML = msg;
			}
	});
}

function updateMediaBlog(media_url_key,url) {
	$.ajax({
			type: "POST",
			data: "media_url_key="+media_url_key,
			url: url,
			success: function(msg) {
				eval(msg);
			} 
	});
}

$.fn.changeUploadForm = function(url)
{
	var uploadValue = $(this).find('input[@name=mediaType][@checked]').val();
	$('document').trigger("ready");
	$.ajax({
			type:"POST",
			data:"mediaTypeParam="+uploadValue,
			url: url,
			success:function(msg) {
				document.getElementById("uploadParamForm").innerHTML = msg;
				loadTags();
			}
	});
}

$.fn.menu = function(activemenu) 
{
	$(".sstab").css("display","none");
	var len = $(".tabcontent").length;
	
	$(".tabcontent").each(function(i){
		$("#tabmenu"+i).click(function() {
			//$("#tabmenu"+i).css("color","#FFA500");
			for(var j=0; j<len; j++){
				$("#tabsmenu"+j).css("display","none");
				//$("#tabmenu"+j+" a").removeClass("tabselected");
				//$("#tabmenu"+j).css("background-color","#ABC9E3");
			}
			//$("#tabmenu"+i+" a").addClass("tabselected");
			//$("#tabmenu"+i).css("background-color","#FFF");
			$(".ssdefaulttab").fadeIn("slow");
			$("#navigationMenu").after($("#tabsmenu"+i).fadeIn("slow").css("display","block"));
		})
		
		/*$("#tabmenu"+i).click(function() {
			for(var j=0; j<len; j++) {
				$("#tabmenu"+j+" a").removeClass("tabselected");
				$("#tabmenu"+j).css("background-color","#ABC9E3");
			}
			$("#tabmenu"+i+" a").addClass("tabselected");
			$("#tabmenu"+i).css("background-color","#FFF");
		})*/
		
		/*$("#tabmenu"+i).mouseover(function() {
			$("#tabmenu"+i).css("background-color","#FFF");
		}).mouseout(function() {
			if(i!=activemenu)
				$("#tabmenu"+i).css("background-color","#ABC9E3");
		})*/
	});
	
	var previousClass;	
	
	$(".tab").hover(
		function() {
			previousClass = $(this).attr("class");
			$(this).removeClass(previousClass);
			$(this).addClass('tabHover');
		}, 
		function() {
			$(this).addClass(previousClass);
			$(this).removeClass('tabHover');
		}
	);		
	
	//Activer le menu par dï¿½faut// 
	$("#navigationMenu").after($("#tabsmenu"+activemenu).css("display","block"));
	$("#tabmenu" + activemenu + ".tab").addClass("tabSelected");
	$("#tabmenu" + activemenu + ".tab").removeClass("tab");
}

function getFlashObject(movieName) 
{
     if (window.document[movieName]) {
         return window.document[movieName];
     }
     if (navigator.appName.indexOf("Microsoft Internet") == -1) {
         if (document.embeds && document.embeds[movieName])
             return document.embeds[movieName];
     } else {
         return document.getElementById(movieName);
     }
}

function play() 
{
     var flash = getFlashObject("player1");
     try {
  		   flash.SetVariable("player:jsPlay", "");
  		   alert('blu');
     } catch(err) {
     	alert(err);
     }
}

function linkMediaToAlbum(mediaId, url) 
{
	$.ajax({
		type:"POST",
		data:"mediaId="+mediaId,
		url: url,
		success:function(msg) {
			document.getElementById("assocMediaToCollection").innerHTML = msg;
		}
	})
}

function unlinkMediaToAlbum(mediaByCollectId, url) 
{
	$.ajax({
		type:"POST",
		data:"mediaByCollectId="+mediaByCollectId,
		url: url,
		success:function(msg) {
			document.getElementById("assocMediaToCollection").innerHTML = msg;
		}
	})
}

function deleteAlbum(album_url_key, confirmMsg, url) 
{
	if(confirm(confirmMsg)) {
		$.ajax({
				type:"POST",
				data:"album_url_key="+album_url_key,
				url: url,
				success:function(msg) {
					eval(msg);
				},
				complete: function() {
					deleteHtmlElement('album'+album_url_key);
				}
		})
	}
}

function deleteMedia(media_url_key, confirmMsg, url)
{
	if(confirm(confirmMsg)) {
		$.ajax({
				type: "POST",
				data:"media_url_key="+media_url_key,
				async: false,
				url: url,
				success:function(msg) {
					eval(msg);
				},
				complete: function() {
					deleteHtmlElement('mediaStorage'+media_url_key);
				}
		})
	}
}

// cette fonction est appelée à chaque fois que l'on tape sur une touche (onkeypress,onkeyup), que l'on quite un champ(onblur).
// l'aiguillage se fait à l'intérieur.
// A savoir: si l'élément d'éclencheur de l'évenemment a un attibut nomé 'control_length' et qu'il est mis à 1, alors on traite l'évenement,
// sinon, on passe la main 
// IMPORTANT A SAVOIR :  - il est possible de désactivé le control du nombre de caractère en passant l'attribut control_length à 0.
//						 - un attribut id_control_cell peut être utilisé afin d'afficher un texte indiquant le nombre de caractère restant.
function verif_textarea_length(e)
{
	var target = e.target || e.srcElement; // récupération de la cible
	var is_something_wrong = false; // initialisation variable

	if ((target.attributes) && (target.attributes['control_length']) && (target.attributes['control_length'].value = '1')) // 'control_length'?
	{
		max = target.attributes['maxlength'].value; //récupération de la valeur maxlength de la cible
		id_textarea = target.attributes['id'].value; //récupération de la valeur id de la cible
		//id_control_cell = target.attributes['id_control_cell'].value; //récupération de la valeur id de la div pour le compteur
		
		textarea = document.getElementById(id_textarea); //assignation du textarea dans un objet plus accessible
		if (textarea.value.length > max) //est-ce que la taille du texte est trop grande?
		{
			//oui, on affiche un message et on découpe ce qui traine après la limite
			alert(document.getElementById('commentMsgPart1').value + ' ' + max + ' ' + document.getElementById('commentMsgPart2').value);
			textarea.value=textarea.value.substring(0,max);
			is_something_wrong = true; // on prévient à la sortie que qque chose ne s'est pas bien passé
		}
		//show_counter_value(id_control_cell,textarea.value.length); //on affiche la taille du texte
	}
	return (!is_something_wrong); //retour à l'envoyeur
}

// affiche le nombre de caractères du textarea //
function show_counter_value(id_control_cell,counter_value)
{
	control_cell_div = document.getElementById(id_control_cell);
	control_cell_div.innerHTML = counter_value ; // on met à jour le champs de contrôle.
	return true;
}

// ajoute des évènements triggers //
function set_callback_events()
{
	if (document.addEventListener)
	{
		// alert('FF');
		document.addEventListener('keypress', verif_textarea_length, false);
		document.addEventListener('keyup', verif_textarea_length, false);
		document.addEventListener('blur', verif_textarea_length, false);
	} 
	else if (document.attachEvent)
	{
		// alert('IE');
		document.attachEvent('onkeypress', verif_textarea_length);
		document.attachEvent('onkeyup', verif_textarea_length);
		document.attachEvent('onblur', verif_textarea_length);
 	}
 }