/**
 * Librairie javascript des images des pages de texte
 *
 * @author		Julie Tétard <julie@2jstudio.com> 
 * @version		2.0
 * @package		Mediaweb
 * @subpackage 	js
 * @category 	text
 */
 


/**
 * Instructions de chargement des fonctions d'initialisation
 */
	
	MW_smartAttachEvent(window, 'load', MW_pix_initEvents, false);



/**
 * Fonctions d'initalisation
 */

	/**
	 * Fonction initialisant les actions
	 *
	 * @return		-
	 */
	function MW_pix_initEvents() 
	{
		// Target des liens
		if (document.getElementById('pixTable')) {
			var imgTags = document.getElementById('pixTable').getElementsByTagName('img');
			for(i = 0 ; i < imgTags.length ; i++) {
				MW_smartAttachEvent(imgTags[i], 'click', MW_pix_gallery_show, false);
			}
			MW_smartAttachEvent(document.getElementById('pixPreview'), 'click', MW_pix_gallery_hide, false);
		} else if (document.getElementById('pixDiv')) {
			var imgTags = document.getElementById('pixDiv').getElementsByTagName('img');
			for(i = 0 ; i < imgTags.length ; i++) {
				MW_smartAttachEvent(imgTags[i], 'click', MW_pix_text_show, false);
				MW_smartAttachEvent(imgTags[i], 'mouseout', MW_pix_text_hide, false);
			}
		}
	}



/**
 * Fonctions d'exécution
 */

	/**
	 * Fonction affichant une image galerie
	 *
	 * @param		object	event		Objet évenement
	 */
	function MW_pix_gallery_show(event) {
		// On récupère l'image cible
		var target = MW_smartGetTarget(event);
		// Append img
		document.getElementById('pixPreview').getElementsByTagName('img')[0].src = target.src;
		document.getElementById('pixPreview').getElementsByTagName('img')[0].title = target.title;
		document.getElementById('pixPreview').getElementsByTagName('img')[0].alt = target.alt;
		// Class
		document.getElementById('pixPreview').className = 'visible';		
	}
	
	/**
	 * Fonction enlevant une image galerie
	 *
	 * @param		object	event		Objet évenement
	 */
	function MW_pix_gallery_hide(event) {
		// Append img
		document.getElementById('pixPreview').getElementsByTagName('img')[0].src = '';
		document.getElementById('pixPreview').getElementsByTagName('img')[0].title = '';
		document.getElementById('pixPreview').getElementsByTagName('img')[0].alt = '';
		// Class
		document.getElementById('pixPreview').className = 'hidden';		
	}
	
	/**
	 * Fonction enlevant une image à côté du texte
	 *
	 * @param		object	event		Objet évenement
	 */
	function MW_pix_text_show(event) {
		// Suppression de l'apreçu s'il existe déjà
		if (document.getElementById('pixShow')) {
			document.getElementById('pixShow').parentNode.removeChild(document.getElementById('pixShow'));
		}
		// On récupère l'image cible
		var target = MW_smartGetTarget(event);
		var img = document.createElement('img');
		img.id = 'pixShow';
		img.src = target.src;
		img.style.position = 'absolute';
		// On position l'image fullsize
		var posx = 0;
		var posy = 0;
		if (event.pageX || event.pageY){
			posx = event.pageX - img.width;
			posy = event.pageY;
		} else if (event.clientX || event.clientY){
			posx = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - img.width;
			posy = event.clientY + document.body.scrollTop + document.documentElement.scrollTop; 
		}
		img.style.top = posy + 'px';
		img.style.left = posx + 'px';
		// On attache l'image
		document.getElementById('global').appendChild(img);
	}
	
	/**
	 * Fonction effaçant une image à côté du texte
	 *
	 * @param		object	event		Objet évenement
	 */
	function MW_pix_text_hide(event) {
		if (document.getElementById('pixShow')) {
			document.getElementById('pixShow').parentNode.removeChild(document.getElementById('pixShow'));
		}
	}
