/*
EKIMONDO scripts
Copyright 2007 Inpix.ca / macharron@inpix.ca 
Last édit: 2007-12-17
*/

var gid = function(leid) { return document.getElementById(leid);}
var Y = YAHOO.util;

/**
* fonction pour montrer une div en particulier
*
* @author Alexis
* @param integer intDivIdx : l'index de la div à montrer
* @param integer intNbPageTotal : le nombre total de page
* @param string origLng : la langue actuelle
* @param integer intNbAffichable : le nombre total d'éléments à afficher (pour la fonction de navigation)
**/

/** 
* fonction pour montrer la zone d'entrée de texte pour un commentaire
* 
* @author Alexis
* @param null
* @return void
**/
function showCommentArea()
{
	linkP = gid("linkAddComment");
	divComment = gid("divComment");
	linkP.style.display = 'none';
	divComment.style.display = 'block';
}

/** 
* fonction pour valider un commentaire
* 
* @author Alexis
* @param null
* @return mixed
**/	
function commentVerification()
{
	try 
	{
		if(gid("inputName"))
		{
			nameInput = gid("inputName").value;
		}
		else
		{
			nameInput = null;
		}
	}
	catch(e){ /* do nothing */ }
	var erreurName = '';
	var erreurComment = '';
	var erreurCaptcha = '';
	var labelName = gid("labelCommentName");
	var labelComment = gid("labelCommentComment");
	var labelCaptcha = gid("labelCommentCaptcha");
	var boolOk = true;
	var divError = gid("errorComment");
	Y.Dom.removeClass(divError, "error");
	Y.Dom.removeClass(labelName, "error");
	Y.Dom.removeClass(labelComment, "error");
	Y.Dom.removeClass(labelCaptcha, "error");
	divError.innerHTML = ''; // on efface les msgs d'erreur...
	var commentInput = gid("inputComment").value;
	var captchaInput = gid("inputCaptcha").value;
	if (nameInput =='')
	{
		erreurName = js_erreur_comment_name;
		boolOk = false;
	}
	if (commentInput == '')
	{
		erreurComment = js_erreur_comment_comment; 
		boolOk = false;
	}
	if (captchaInput == '')
	{
		erreurCaptcha = js_erreur_captcha;
		boolOk = false;
	}
	
	if (boolOk)
	{
		gid("formComment").submit();
	}
	else
	{
		Y.Dom.addClass(divError, "error");
      if (erreurName != '')
		{
			Y.Dom.addClass(labelName, "error");
			divError.innerHTML = '<p class="error">'+erreurName+'</p>';
		}
		if (erreurComment != '')
		{
			Y.Dom.addClass(labelComment, "error");
			divError.innerHTML += '<p class="error">'+erreurComment+'</p>';
		}
		if (erreurCaptcha != '')
		{
			Y.Dom.addClass(labelCaptcha, "error");
			divError.innerHTML += '<p class="error">'+erreurCaptcha+'</p>';
		}
	}	
}

/**
* fonction showConfirmation : fonction pour montrer la partie confirmation dans la zone des fans d'un membre
* 
* @author Alexis
* @param int idx : l'indice à montrer
* @return void
**/
function showConfirmation(idx)
{
	var divEki = document.getElementById("ekistops");
	var arrDl = divEki.getElementsByTagName("dl");
	var pIdOui;
	var pIdNon;
	var pIdLink;
	var pIdNoLink;
	for(i = 0; i < arrDl.length; i++)
	{
		pIdOui = gid("pOui"+i);
		pIdNon = gid("pNon"+i);
		pIdLink = gid("pLink"+i);
		pIdNoLink = gid("pNoLink"+i);
		if (i == idx)
		{
			pIdOui.style.display = "block";
			pIdNoLink.style.display = "block";
			pIdNon.style.display = "block";
			pIdLink.style.display = "none";
		}
		else
		{
			pIdOui.style.display = "none";
			pIdNon.style.display = "none";
			pIdNoLink.style.display = "none";
			pIdLink.style.display = "block";
		}
	}
}
/**
* fonction hideConfirmation : fonction pour cacher la partie confirmation dans la zone des fans d'un membre
* 
* @author Alexis
* @param int idx : l'indice à cacher
* @return void
**/
function hideConfirmation(idx)
{
	var pIdOui = gid("pOui"+idx);
	var pIdNon = gid("pNon"+idx);
	var pIdLink = gid("pLink"+idx);
	var pIdNoLink = gid("pNoLink"+idx);
	pIdOui.style.display = "none";
	pIdNon.style.display = "none";
	pIdNoLink.style.display = "none";
	pIdLink.style.display = "block";
}
/** 
* fonction pour montrer la barre de votation
* 
* @author Alexis
* @param int idEki, string origLng
* @return void
**/
function showRating(idEki, origLng)
{
	var showRatingHandler = function(o)
  	{
  		var divVote = gid("box_voter");
  		response = o.responseText;
  		if (response != "")
		{
			regexp = new RegExp("http:.*\.html$", "gi");
			url = response.match(regexp);
			if(url)
			{
				document.location.href = url;
			}
			else
			{
				divVote.style.display = "block";
				divVote.innerHTML = response;
			}
		}
	}

	var callback = 
	{
		success:showRatingHandler
	};
 	YAHOO.util.Connect.setDefaultPostHeader(false);
 	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/ekistop/showVote/'+idEki, callback);
}

/** 
* fonction pour montrer le vote fait par l'utilisateur
* 
* @author Alexis
* @param int idEki, int idM, int nbStar, string origLng
* @return void
**/
function showVote(idEki, idM, nbStar, origLng)
{
	var showVoteHandler = function(o)
	{
		var divVote = gid("box_voter");
		var pVoteLink = gid("pRatingLink");
		var pStaticVote = gid("staticVoteBar");
		response = o.responseText;
		if (response != "")
		{
			var tabRetour = response.split('¬¬');
			pStaticVote.innerHTML = '';
			pStaticVote.innerHTML = tabRetour[0];
			pVoteLink.innerHTML = '';
			//divVote.innerHTML = response;
			divVote.innerHTML = tabRetour[1];
		}
	}
	
	var callback = 
	{
		success:showVoteHandler
	};
	YAHOO.util.Connect.setDefaultPostHeader(false);
    	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/ekistop/vote/'+idEki+'/'+idM+'/'+nbStar, callback);
}

/** 
* fonction pour cacher le vote fait par l'utilisateur
* 
* @author Alexis
* @param null
* @return void
**/
function hideVote()
{
	var vote = gid("box_voter");
	vote.style.display = "none";
}

/** 
* fonction pour montrer à quoi correspondent les différentes étoiles pour le système de votation
*
* @author Alexis
* @param int intId : identifiant de l'étoile
* @return void
**/
function showExplanation(intId)
{
	// on a 5 étoiles, donc 5 explications, mais on a aussi une explication par défaut : donc 6
	for(i = 0; i < 6; i++)
	{
		if (i == intId)
		{
			if (i == 0)
			{
				var elH = gid("rating_desc_h_default");
				var elP = gid("rating_desc_p_default");
				Y.Dom.removeClass(elH, "none");
				Y.Dom.removeClass(elP, "none");
			}
			else
			{
				var strH = "rating_desc_h_" + i;
				var elH = gid(strH);
				var strp = "rating_desc_p_" + i;
				var elp = gid(strp);
				Y.Dom.removeClass(elH, "none");
				Y.Dom.removeClass(elp, "none");
			}
		}
		else
		{
			if (i == 0)
			{
				var elH = gid("rating_desc_h_default");
				var elP = gid("rating_desc_p_default");
				Y.Dom.addClass(elH, "none");
				Y.Dom.addClass(elP, "none");
			}
			else
			{
				var strH = "rating_desc_h_" + i;
				var elH = gid(strH);
				var strp = "rating_desc_p_" + i;
				var elp = gid(strp);
				Y.Dom.addClass(elH, "none");
				Y.Dom.addClass(elp, "none");
			}
		}
	}
}


/** 
* fonction pour montrer la zone pour devenir fan
* 
* @author Alexis
* @param string titre, int idM, string origLng
* @return void
**/
function becomeFan(titre, idM, origLng)
{
	var becomeFanHandler = function(o)
	{
		var divFanZone = gid("fanPictures");
		response = o.responseText;
		if(response != "")
		{
			divFanZone.innerHTML = response;
		}
	}
	
	var callback = 
	{
		success:becomeFanHandler
	};
	YAHOO.util.Connect.setDefaultPostHeader(false);
    	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/ekistop/fan/'+titre+'/'+idM, callback);
}

function showSuivant(idAFermer, idAOuvrir)
{
	var divFermer = gid(idAFermer);
	var divOuvrir = gid(idAOuvrir);
	Y.Dom.addClass(divFermer, "none");
	Y.Dom.removeClass(divOurvir, "none");
}

function getAllChilds(obj)
{
	if(obj.hasChildNodes()) 
	{
		for(var i=0; i<obj.childNodes.length; i++) 
		{
			//if(i==0) return obj;
                getAllChilds(obj.childNodes[i]);
		}
	} 
	else return obj;
}


/** 
* fonction pour montrer une liste
* 
* @author Alexis
* @param string idParent
* @return void
**/
function showListe(idParent)
{
	var elIdShow = "pShow_"+idParent;
	var elIdHide = "pHide_"+idParent;
	var pShow = gid(elIdShow);
	var pHide = gid(elIdHide);
	Y.Dom.addClass(pShow, "none");
	Y.Dom.removeClass(pShow, "item_plus");
	Y.Dom.removeClass(pHide, "none");
	Y.Dom.addClass(pHide, "item_moins");
	
	var itemParent = gid(idParent);
	for (i =0; i < itemParent.childNodes.length; i++)
	{
		Y.Dom.removeClass(itemParent.childNodes[i], "none");
	}
}

/** 
* fonction pour cacher une liste
* 
* @author Alexis
* @param string idParent, int nbToKeep
* @return void
**/
function hideListe(idParent, nbToKeep)
{
	var elIdShow = "pShow_"+idParent;
	var elIdHide = "pHide_"+idParent;
	var pShow = gid(elIdShow);
	var pHide = gid(elIdHide);
	Y.Dom.removeClass(pHide, "item_plus");
	Y.Dom.addClass(pHide, "none");
	Y.Dom.removeClass(pShow, "none");
	Y.Dom.addClass(pShow, "item_plus");
	
	var itemParent = gid(idParent);	
	//petit truc pour le cas ou  l'éditeur de texte rajoute des node texte......
	if (itemParent.childNodes[3].nodeName == '#text')	
		nbToKeep = nbToKeep * 2;
	for (i =nbToKeep; i < itemParent.childNodes.length; i++)
	{
		//alert(i+'=>'+itemParent.childNodes[i].nodeName);
		if (idParent.substr(0, 13) == 'pSectionListe')
		{
			if (itemParent.childNodes[i].nodeName == 'A')
				Y.Dom.addClass(itemParent.childNodes[i], "none");
		}
		else
		{
			if (itemParent.childNodes[i].nodeName == 'LI')
				Y.Dom.addClass(itemParent.childNodes[i], "none");
		}
	}
}

function showInfo(el)
{
	var arrChilds = Y.Dom.getChildren(el);
	for(i = 0; i < arrChilds.length; i++)
	{
		Y.Dom.removeClass(arrChilds[i], "none");
	}
	var pShow = gid("pShow_div_adresse")
	var pHide = gid("pHide_div_adresse");
	Y.Dom.removeClass(pShow, "item_plus");
	Y.Dom.addClass(pShow, "none");
	Y.Dom.removeClass(pHide, "none");
	Y.Dom.addClass(pHide, "item_moins");
}
function hideInfo(el)
{
	var arrChilds = Y.Dom.getChildren(el);
	for(i = 0; i < arrChilds.length; i++)
	{
		Y.Dom.addClass(arrChilds[i], "none");
	}
	var pShow = gid("pShow_div_adresse")
	var pHide = gid("pHide_div_adresse");
	Y.Dom.removeClass(pShow, "none");
	Y.Dom.addClass(pShow, "item_plus");
	Y.Dom.removeClass(pHide, "item_plus");
	Y.Dom.addClass(pHide, "none");
}

/**
* fonction pour gérer le changement de langue dans le menu
*
* @author Alexis
* @param string tgtLng : la langue cible;
* @param string origLng : la langue d'origine
* @param string ctlr : le controlleur appellant
* @return void
**/
function changeLanguage(tgtLng, origLng, ctlr)
{
	var lnghndlr = function(o)
     	{
		if (o.responseText != "")
		{
			regexp = new RegExp("http:.*\.html$", "gi");
			url = o.responseText.match(regexp);
			if(url)
			{
				document.location.href = url;
			}
			else
			{
				regexp = RegExp("http:.*/$", "gi");
				url = o.responseText.match(regexp);
				if(url)
				{
					document.location.href = url;
				}
			}
         	}
	}
	
	var callback = 
	{
		success:lnghndlr
	};
    	YAHOO.util.Connect.setDefaultPostHeader(false);
    	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/'+ctlr+'/change/', callback);
} // fin de la fonction change(tgtLng)
/******************************************************************************
 * Ajout Alexis pour la gestion des images dans la création d'ékistop
******************************************************************************/
/**
* fonction pour enlever dans la page html le bout de div contenant le fichier multimédia.
* permet aussi de faire l'enlevement de l'entrée de ce fichier dans la base de données.
*
* @author Alexis
* @param int divIndex l'index de la div en question
* @param string typeFichier Video / Photo
* @return void
**/
function enlever(divIndex, typeFichier, origLng)
{
	var uploadHandler =
    	{
		upload: function(o)
        	{
			var erreur = gid('erreur');
			var str;
			var el;
			if (typeFichier == "Video")
			{
				str = 'vid' + divIndex;
				el = gid('video');
			}
			else
			{
				str = 'img' + divIndex;
				el = gid('photo');
			}

			var img = gid(str);
			if (o.responseText == "bon")
			{
                	el.removeChild(img);
                	Y.Dom.removeClass(erreur, "error");
                	erreur.innerHTML = '';
            	}
            	else
            	{
				Y.Dom.addClass(erreur, "error");
                	erreur.innerHTML = '<p class="error">'+js_bd+'</p>';
            	}
        	}
    }; // fin de var uploadHandler
    YAHOO.util.Connect.setDefaultPostHeader(false);
    YAHOO.util.Connect.initHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 
    YAHOO.util.Connect.setForm('uploadFile', true);
    YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/upload/removeImg/'+divIndex+'/'+typeFichier, uploadHandler);
    } // fin de la fonction enlever(divIndex)

/**
 * Fonction permettant de mettre a jour la legende
 */
function modifierLegende(divIndex, typeFichier, origLng)
{
	var legende = gid('str_legende');
	var strLegende = 'legende' + typeFichier + divIndex;
	var strDd = 'dd' + typeFichier + divIndex;
	var strP = 'p' + typeFichier + divIndex;
	var oldLegende = gid(strLegende); 
	var erreur = gid('erreur');
	var lien = gid('lien');
	var link = "modifier('"+divIndex+"', '"+typeFichier+"', '"+origLng+"')";
	var oldPLink = gid(strP);

	try
	{
		if (document.getElementById(strLegende))
        	{
            	legende.value = oldLegende.innerHTML;
        	}
	}
	catch(err)
	{
		legende.value = '';
	}

	document.getElementById('modif').value = "true";
    	document.getElementById('fileId').value = divIndex;

	lien.setAttribute("href", "javascript:" + link);

	lien.innerHTML = '';
	lien.innerHTML = "<span>"+js_modifier+"</span>";
	
	return false;
}

/**
 * Fonction servant à modifier la légende
 * @param {Object} divIndex
 * @param {Object} typeFichier
 */
function modifier(divIndex, typeFichier, origLng)
{
	var uploadHandler =
    	{
		upload: function(o)
        	{
			var legende = gid('str_legende');
			// les différentes ID...
			var strLegende = 'legende' + typeFichier + divIndex;
			var strDd = 'dd' + typeFichier + divIndex;
			var strP = 'p' + typeFichier + divIndex;
			var oldLegende = gid(strLegende); 
			var erreur = gid('erreur');
			var lien = gid('lien');
			var link = "modifier('"+divIndex+"', '"+typeFichier+"', '"+origLng+"')";
			var oldPLink = gid(strP);
			
			if (document.getElementById('modif').value == 'false')
			{
				try
				{
					if (document.getElementById(strLegende))
	                	{
	                    		legende.value = oldLegende.innerHTML;
	                	}
				}
				catch(err)
				{
					legende.value = '';
				}

	                document.getElementById('modif').value = "true";
	                document.getElementById('fileId').value = divIndex;
	
				lien.setAttribute("href", "javascript:" + link);
				lien.innerHTML = '';
	                lien.innerHTML = "<span>"+js_modifier+"</span>";
					
				return false;
			}

	          	var chaineRetour = o.responseText;
			var tabRetour = chaineRetour.split('¬');
				
			if (tabRetour[0].substr(0,4) != 'null') // si on a une erreur...
			{
	           	Y.Dom.addClass(erreur, "error");
	                erreur.innerHTML = '<p class="error">'+tabRetour[0]+'</p>';
	                return false;
			}
	  		else if(document.getElementById('modif').value == 'true')
			{
				Y.Dom.removeClass(erreur, "error");
	                erreur.innerHTML = ''; // on efface les msgs d'erreur...
	
				lien.setAttribute("href","javascript:chargeFichier('"+origLng+"')");
	                lien.innerHTML = "<span>"+js_ajout+"</span>";
	                
				document.getElementById('modif').value = "false";
	               	document.getElementById('fileId').value = "";
				document.getElementById('str_legende').value = "";
	            
				oldLegende.innerHTML = tabRetour[1];
	
	                return true;
			}
			else
	           	return false;
		}
	}; // fin de var uploadHandler
	YAHOO.util.Connect.setDefaultPostHeader(false);
	YAHOO.util.Connect.initHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 
    	YAHOO.util.Connect.setForm('uploadFile', true);
    	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/upload/modifImg/'+typeFichier, uploadHandler);
} // fin de la fonction modifier(divIndex)

/**
* fonction servant à charger le fichier sur le serveur. Fait une première vérification du format du fichier. Passe ensuite la main
* au controlleur qui se chargera de la partie bdd. En retour, affiche un message d'erreur (advenant le cas ou ça ne va pas avec 
* la bdd), ou un div contenant le thumbnail du fichier, un lien pour modifier la légende, et un lien pour supprimer le fichier de la base
*
* @author Alexis
* @param null
* @return void
**/
function chargeFichier(origLng)
{
	var typeFichier;
	//on va modifier un peu le comportement de cette fonction pour prendre en compte le fait que maintenant, nous devons aussi gérer les vidéos.
	var uploadHandler = 
    	{
    		upload: function(o)
		{
			var file = gid('i_img_file');
			var legende = gid('str_legende');
			var erreur = gid('erreur');
			var response = gid('response');
			var video = gid('video');
			var photo = gid('photo');
			var mainPicture = gid('main_picture');
			if (file.value == '') // si on a pas rentré d'image...
			{
				Y.Dom.addClass(erreur, "error");
                	erreur.innerHTML = '<p class="error">'+js_fichier_rentre+'</p>';
                	return(false);
            	}
			else // ici on a un fichier
			{
				// on va tester pour voir si c'est une image ou non:
				var imgOk;
				var vidOk;
				var fichier = file.value;
				var tabFichier = fichier.split('.');
				var cptr = tabFichier.length;
				cptr--; // on recherche l'extension du fichier
				Y.Dom.removeClass(erreur, "error");
				erreur.innerHTML = '';
				
				document.getElementById('uploadFile').reset(); // effacer les champs
				
				imgOk = (tabFichier[cptr].match(/(jpg|jpeg|gif|png)/i));
				vidOk = (tabFichier[cptr].match(/(avi|mov|wmv|mpeg|mpg|flv|rm)/i));
                
				if (imgOk || vidOk)
				{
					
					if (imgOk)
					{typeFichier = 'image';}
					else
					{typeFichier = 'video';}
					
					var formulaire = gid('uploadFile');
					if (photo.value != '')
					{
						mainPicture.setAttribute("value", "false");
					}
					else
					{
						mainPicture.setAttribute("value", "true");
					}
                    
					Y.Dom.removeClass(erreur, "error");
					erreur.innerHTML = '';
					
					// on va tester selon la réponse de retour voir si on a eu une
					// erreur ou non. Si on a pas eu d'erreur, on va creer le div
					// pour l'Affichage d'image.
					var chaineRetour = o.responseText;
					var tabRetour = chaineRetour.split('¬');
					if (tabRetour[0].substr(0,4) != 'null') // si on a une erreur...
					{
						//rajout du formattage des messages d'erreur :
						Y.Dom.addClass(erreur, "error");
						erreur.innerHTML = '<p class="error">'+tabRetour[0]+'</p>';
						return false;
					}
					else
					{
						Y.Dom.removeClass(erreur, "error");
						erreur.innerHTML = ''; // on efface les msgs d'erreur...
						var chaine;
						var strIndex = tabRetour[1];
						var debut = strIndex.lastIndexOf("_") + 1;
						var fin = strIndex.lastIndexOf(".");                        
						var divIdx = strIndex.substring(debut, fin);
						var elPath;
						elPath = tabRetour[1];
						strLgr = elPath.length - 1;
						cLast = elPath.substr(strLgr, 1);
						//petit hack pour empecher safari d'afficher une erreur. la chaine retournée comporte un charactère invisible sinon....
						if ((cLast.toLowerCase() != 'g') && (cLast.toLowerCase() != 'f') && (cLast.toLowerCase() != 'v') && (cLast.toLowerCase() != 'i'))
							elPath = elPath.substr(0, strLgr);
						if (imgOk)
						{
							var imgOrig = elPath;
							imgOrig = imgOrig.replace(/small_/i,'original_');
							chaine = '<dl id="img'+divIdx+'"><dt><img src="'+elPath+'" alt=""></dt><dd id="ddPhoto'+divIdx+'">';
							if (tabRetour[2] != '')
							{
								chaine += '<p id="legendePhoto' + divIdx + '">' + tabRetour[2] + '</p>';
							}
							else
							{
								chaine += '<p id="legendePhoto' + divIdx + '"></p>';
							}
							chaine +='<p class="submit" id="pPhoto'+divIdx+'"><a href="#" onclick="modifierLegende(\''+divIdx+'\', \'Photo\', \''+origLng+'\')">'+js_modifier_legende+'</a> <span class="split">|</span> <a href="#" onclick="enlever(\''+divIdx+'\', \'Photo\', \''+origLng+'\')">'+js_supprimer+'</a></p></dd></dl>';
							photo.innerHTML += chaine;
						}
						else if (vidOk)
						{
							var vidOrig = elPath;
							vidOrig = vidOrig.replace(/video_thumb_/i, 'original_');
							vidOrig = vidOrig.replace(/\.jpg$/i, '.flv');
							chaine = '<dl id="vid'+divIdx+'"><dt><img src="'+elPath+'" alt=""></dt><dd id="ddVideo'+divIdx+'">';
							if (tabRetour[2] != '')
							{
								chaine += '<p id="legendeVideo' + divIdx + '">' + tabRetour[2] + '</p>';
							}
							else
							{
								chaine += '<p id="legendeVideo' + divIdx + '"></p>';
							}
							chaine +='<p class="submit" id="pVideo'+divIdx+'"><a href="#" onclick="modifierLegende(\''+divIdx+'\', \'Video\', \''+origLng+'\')">'+js_modifier_legende+'</a> <span class="split">|</span> <a href="#" onclick="enlever(\''+divIdx+'\', \'Video\', \''+origLng+'\')">'+js_supprimer+'</a></p></dd></dl>';
							video.innerHTML += chaine;
						}
						return true;
					} // if (tabRetour[0] != '') ... else
				} // if (imgOk || vidOk)
                	else // fichier pas du bon format
                	{
                    		Y.Dom.addClass(erreur, "error");
                    		erreur.innerHTML = '<p class="error">'+js_fichier_format+'</p>';
                	}
			}// if (fichier.value != '')... else
		} // upload : function(o)
	}; // var uploadHandler
    	YAHOO.util.Connect.setDefaultPostHeader(false);
	YAHOO.util.Connect.initHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 
	YAHOO.util.Connect.setForm('uploadFile', true);
    	YAHOO.util.Connect.asyncRequest('POST', '/index.php/'+origLng+'/upload/do_upload/'+typeFichier, uploadHandler);
} // fin de chargeFichier()

/*******************************************************************************
 * 
 * @param {string} objet : compte ou ekistop
 * @param {string} typeExplication : avis, suppression et suppressionTotale
 * @param (string) nomObjet : le nom, pour un ekistop, qu'on doit afficher
 * @param (string) currLng : le nom du  language courant.
 */
function explication(objet, typeExplication, nomObjet, lien, currLng)
{
	var chaine = '';
	if (typeExplication == 'avis')
	{
		if (objet == 'profil')
		{
			if (currLng == "en")
				objet += "e";
			chaine = js_profil_conforme(currLng)+'\n';
			chaine += '\n\n\n';
			chaine += js_change_48(objet);
		}
		else
		{
			chaine = js_eki_conforme(lien, nomObjet)+'\n';
			chaine += '\n\n\n';
			chaine += js_change_48(objet);
		}
	}
	else if (typeExplication == 'suppression')
	{
		if (objet == 'profil')
		{
			chaine = js_profil_delete+'\n\n\n';
		}
		else
		{
			chaine = js_eki_delete(nomObjet)+'\n\n\n';			
		}
	}
	else // ici,typeExplication vaut suppressionTotale
	{ //suppressionTotale ne peut arriver que dans un compte...
		chaine = js_profil_eki_delete+'\n\n\n';
	}
	var texteAdmin = document.getElementById('texteAdmin');
	texteAdmin.style.display = "block";
	texteAdmin.innerHTML = '<p><textarea cols="50" rows="10" id="texteExplication" name="texteExplication" value="">'+chaine+'</textarea></p>';
	texteAdmin.innerHTML += '<p><input type="submit" value="'+js_envoyer+'" id="envoyer" name="envoyer" onclick="document.formAdmin.submit()"></p>';
			
}

//-----------------------------------------------------------------------
//#form######################################
//-----------------------------------------------------------------------
    function formSubmit(lethis)
    {
        if (lethis.nodeName != "FORM")
            formSubmit(lethis.parentNode);
        if (lethis.nodeName == "FORM") // pour ne pas faire les callbacks
            document.getElementById(lethis.id).submit();
    }

//-----------------------------------------------------------------------
//#galerie#######################################
//-----------------------------------------------------------------------

/* debut fonctions galerie */
function nextImage(elId)
{
	var strGalerie = "galerie_image" + elId;
	var strTotal = "total"+elId;
	var strDebut = "debut"+elId;
	var strFin = "fin"+elId;
	var galerie = gid(strGalerie);
	var nbImageTotal = parseInt(document.getElementById(strTotal).innerHTML);
	var debut = parseInt(document.getElementById(strDebut).innerHTML);
	var fin = parseInt(document.getElementById(strFin).innerHTML);
	
	if(fin<nbImageTotal) // on ne veut pas avancer plus loin que la derniere image
	{
		galerie.childNodes[debut-1].style.display = "none";
		galerie.childNodes[fin].style.display = "inline";
	
		document.getElementById(strDebut).innerHTML = ++debut;
	    	document.getElementById(strFin).innerHTML = ++fin;
	}
}
function previousImage(elId)
{
	var strGalerie = "galerie_image" + elId;
	var strTotal = "total"+elId;
	var strDebut = "debut"+elId;
	var strFin = "fin"+elId;
	var galerie = gid(strGalerie);
	var nbImageTotal = parseInt(document.getElementById(strTotal).innerHTML);
	var debut = parseInt(document.getElementById(strDebut).innerHTML);
	var fin = parseInt(document.getElementById(strFin).innerHTML);
	
	if(debut>1) // on ne veut pas reculer avant la premiere image
	{
		galerie.childNodes[debut-2].style.display = "inline";
		galerie.childNodes[fin-1].style.display = "none";
	
		document.getElementById(strDebut).innerHTML = --debut;
	    	document.getElementById(strFin).innerHTML = --fin;
	}
}
/* fin fonctions galerie */

//-----------------------------------------------------------------------
//#ekistop######################################
//-----------------------------------------------------------------------
var o_ekistops = {}

o_ekistops.over_bgcolor = "#f9f0d9";

// mouseover on ekistops, change background color and link color
o_ekistops.ekistop_on =  function()
{
	Y.Dom.setStyle(this, "background", o_ekistops.over_bgcolor);
	Y.Dom.setStyle(this, "cursor", "pointer");
	var h4_link = this.getElementsByTagName("h4")[0].childNodes[0];
	Y.Dom.addClass(h4_link, "h4over");
}

// mouseout on ekistops, change background color and link color
o_ekistops.ekistop_off = function()
{
	Y.Dom.setStyle(this, "background", "none");
	var h4_link = this.getElementsByTagName("h4")[0].childNodes[0];
	Y.Dom.removeClass(h4_link, "h4over");
}

// click on ekistops, add link of the h4
o_ekistops.ekistop_link = function() 
{ 
	var url = this.getElementsByTagName("a")[0];
	window.location = url;
}

//-----------------------------------------------------------------------
//#blog########################################
//-----------------------------------------------------------------------
var o_blog = {}

// mouseover on blog post, change background color and link color
o_blog.blog_on = function()
{
	Y.Dom.setStyle(this, "background", o_ekistops.over_bgcolor);
	var h4_link = this.getElementsByTagName("h4")[0].getElementsByTagName("a") [0];
	Y.Dom.addClass(h4_link, "h4over");
}

// mouseout on blog post, change background color and link color
o_blog.blog_off = function()
{
	Y.Dom.setStyle(this, "background", "none");
	var h4_link = this.getElementsByTagName("h4")[0].getElementsByTagName("a") [0];
	Y.Dom.removeClass(h4_link, "h4over");
}

// click on blog post, add link of the h4
o_blog.blog_link = function() 
{ 
	var url = this.getElementsByTagName("a")[0];
	window.location = url;
}
	
//-----------------------------------------------------------------------
//#extraits######################################
//-----------------------------------------------------------------------

var o_extraits = {}
// defini onload at the bottom ()
o_extraits.bt_affiche = "";
o_extraits.extraits = "";
o_extraits.extraits_dl = "";

// montre tous les videos
o_extraits.show_extraits = function()
{
	for(x=0; x<o_extraits.extraits_dl.length; x++)
	{
		Y.Dom.removeClass(o_extraits.extraits_dl[x], "none");
	}
	o_extraits.bt_affiche.innerHTML = js_masquer;
	o_extraits.bt_affiche.href = "javascript:o_extraits.hide_extraits();"
}

// cache tous les videos sauf 4 premiers
o_extraits.hide_extraits = function()
{
	for(x=0; x<o_extraits.extraits_dl.length; x++)
	{
		if(x>3)Y.Dom.addClass(o_extraits.extraits_dl[x], "none")
	}
	//o_extraits.bt_affiche.innerHTML = "<?php echo $this->lang->line("js_afficher");?>";
	o_extraits.bt_affiche.innerHTML = js_afficher;
	o_extraits.bt_affiche.href = "javascript:o_extraits.show_extraits();"
}

//-----------------------------------------------------------------------
//#concours######################################
//-----------------------------------------------------------------------

function concours() {
	
	if(gid("bloc_connexion") && gid("bloc_connexion").style.display == "none" || gid("bloc_connexion").style.display == "")
	{
		Y.Dom.setStyle(gid("bloc_connexion"), "display", "block");
		Y.Dom.setStyle(gid("bloc_inscription"), "display", "none");
		return;
	}else{
		Y.Dom.setStyle(gid("bloc_inscription"), "display", "block");
		Y.Dom.setStyle(gid("bloc_connexion"), "display", "none");
		return;
	}
}


//-----------------------------------------------------------------------
//#onload######################################
//-----------------------------------------------------------------------
window.onload = function() {
	
	// add mouseover, mouseoff and click event on ekistops  //index
	var eki = gid("ekistops");
	if((gid("accueil") || gid("ekistop") || gid("explorateur")) && eki)
	{
		var eki_dl = eki.getElementsByTagName("dl");
		Y.Event.addListener(eki_dl,"mouseover",o_ekistops.ekistop_on);
		Y.Event.addListener(eki_dl,"mouseout",o_ekistops.ekistop_off);
		Y.Event.addListener(eki_dl,"click",o_ekistops.ekistop_link)
	}
		
	// add mouseover, mouseoff and click event on blog post  //index
	var blog = gid("blogue");
	if(gid("accueil") && blog)
	{
		var blog_div = blog.getElementsByTagName("div");
		Y.Event.addListener(blog_div,"mouseover",o_blog.blog_on);
		Y.Event.addListener(blog_div,"mouseout",o_blog.blog_off);
		Y.Event.addListener(blog_div,"click",o_blog.blog_link)
	}
   
   
	
	// cache les video en surplus
	if(gid("extraits")) 
	{
		if(gid("bt_affiche")) o_extraits.bt_affiche = gid("bt_affiche");
		o_extraits.extraits = gid("extraits");
		o_extraits.extraits_dl = gid("extraits").getElementsByTagName("dl");
		o_extraits.hide_extraits();
	}
	
}
function initializeVideoThumbs() {
	// add mouseover, mouseoff and click event on ekistops  //index
	var eki = gid("ekistops");
	if((gid("accueil") || gid("ekistop") || gid("explorateur")) && eki)
	{
		var eki_dl = eki.getElementsByTagName("dl");
		Y.Event.addListener(eki_dl,"mouseover",o_ekistops.ekistop_on);
		Y.Event.addListener(eki_dl,"mouseout",o_ekistops.ekistop_off);
		Y.Event.addListener(eki_dl,"click",o_ekistops.ekistop_link)
	}
		
	// add mouseover, mouseoff and click event on blog post  //index
	var blog = gid("blogue");
	if(gid("accueil") && blog)
	{
		var blog_div = blog.getElementsByTagName("div");
		Y.Event.addListener(blog_div,"mouseover",o_blog.blog_on);
		Y.Event.addListener(blog_div,"mouseout",o_blog.blog_off);
		Y.Event.addListener(blog_div,"click",o_blog.blog_link)
	}
	
	// cache les video en surplus
	if(gid("extraits")) 
	{
		o_extraits.bt_affiche = gid("bt_affiche");
		o_extraits.extraits = gid("extraits");
		o_extraits.extraits_dl = gid("extraits").getElementsByTagName("dl");
		o_extraits.hide_extraits();
	}
	
}

//-----------------------------------------------------------------------
//#map########################################
//-----------------------------------------------------------------------
var o_map = {}

// mouseover on map eki, change class on map
o_map.map_on = function()
{
	for(x=1;x<=5;x++){Y.Dom.removeClass(gid("the_map"), "continent" + x);}
	Y.Dom.addClass(gid("the_map"), this.id);
}

// mouseout on map eki, change class on map
o_map.map_off = function()
{
	for(x=1;x<=5;x++)
	{ Y.Dom.removeClass(gid("the_map"), "continent" + x);}
}

//-----------------------------------------------------------------------
//#form input########################################
//-----------------------------------------------------------------------
var o_forminput = {};
o_forminput.leinput = gid("explorateur_requete");

o_forminput.clic_on = function()
{
	if(gid("explorateur_requete").value == o_forminput.leinputValue)
	{gid("explorateur_requete").value = "";}	
};

o_forminput.clic_off = function()
{
	if(gid("explorateur_requete").value == "")
	{gid("explorateur_requete").value = o_forminput.leinputValue;}
};
