/**
 * Librairie javascript commune
 *
 * @author		Julie Tétard <julie@2jstudio.com> 
 * @version		2.0
 * @package		Mediaweb
 * @subpackage 	js
 * @category 	shared
 */
 


/**
 * Fonctions d'initalisation
 */

	/**
	 * Fonction attachant un événement a un objet selon le navigateur
	 *
	 * @param  		object	obj				objet auquel on doit attacher l'événement
	 * @param  		string	evenType		nom de l'évenement 
	 * @param  		string	functionName	nom de la fonction
	 * @param  		bool	capture			methode de capture
	 * @return		-
	 */
	function MW_smartAttachEvent(obj, evenType, functionName, capture)
	{
		// Cas de type Mozilla
		if (window.addEventListener) {
			obj.addEventListener(evenType, functionName, capture);
		// Cas MSIE
		} else {
			obj.attachEvent('on' + evenType, functionName);	
		}
	}
	
	/**
	 * Fonction récupérant l'élément déclencheur
	 *
	 * @param		object	event		Objet évenement
	 * @return		object	élément déclencheur
	 */
	function MW_smartGetTarget(event)
	{
		if(event.currentTarget) {
			return objOrigin = event.currentTarget;
		} else {
			return objOrigin = event.srcElement; 
		}
	}



/**
 * Fonctions du DOM
 */

	/**
	 * Fonction permettant d'accéder à un noeud élément enfant
	 *
	 * @param		object	parentNode	Noeud parent dont on doit trouver l'enfant
	 * @param		object	childRank	Rang du noeud à récupérer
	 * @return		object	le noeud enfant récupéré
	 */
	function MW_smartChild(parentNode, childRank) 
	{ 
		var rank = 0;
		var i = 0;
		// On passe en revue tout le noeud parent
		for(i=0 ; i<parentNode.childNodes.length ; i++) {
			// S'il s'agit d'un bien d'un noeud élément
			if (parentNode.childNodes[i].nodeType == 1) {
				rank ++;
			}
			// Si on est arrivé au bon rang, on retourne
			if (rank == childRank) {
				return parentNode.childNodes[i]; 
			}
		}
		return false;
	} 



/**
 * Fonctions d'interactivité
 */

	/**
	 * Fonction de rollover
	 *
	 * @param		object	event		Objet évenement
	 * @return		-
	 */
	function MW_rollOver(event) {
		// On récupère l'image cible
		var target = MW_smartGetTarget(event);
		//
		curClassName = target.className;
		//
		target.className = 'over';
	}
	
	/**
	 * Fonction de rollout
	 *
	 * @param		object	event		Objet évenement
	 * @return		-
	 */
	function MW_rollOut(event) {
		// On récupère l'image cible
		var target = MW_smartGetTarget(event);
		//
		target.className = curClassName;
	}