

/**
 * Fichier obsolète : utiliser ev/gui/overlay.js à la place.
 */
(function() {
	var window = this,
			ev = window.ev,
			document = window.document;

	if (window.console && window.console.error) {
		window.console.error('FATAL : effects/overlay.js est DEPRECATED !! => Utiliser ev/gui/overlay.js à la place.');
	}

	window.Overlay = function(_overlayElt, _ctOverlayElt, _voirOverlay1Elt, _cacherOverlay1Elt, foldedClass) {
		foldedClass = foldedClass || 'folded';
		if (_overlayElt === undefined) {throw 'overlayElt is undefined'; }
		if (_ctOverlayElt === undefined) {throw 'ctOverlayElt is undefined'; }
		var overlayElt = _overlayElt,
				ctOverlayElt = _ctOverlayElt,
				voirOverlay1Elt = _voirOverlay1Elt || undefined,
				cacherOverlay1Elt = _cacherOverlay1Elt || undefined,
				bodyEl = document.documentElement,
				BODY = document.body;
		/* CSS*/
		//On style par défaut la div d'overlay
		ev.dom.addClass(overlayElt, foldedClass);
		if (overlayElt !== null) {
			overlayElt.style.position = 'fixed';
			overlayElt.style.top = '0';
			overlayElt.style.left = '0';
			overlayElt.style.width = '100%';
			overlayElt.style.height = '100%';
			overlayElt.style.zIndex = '999998';
		}
		//On style par défaut la div du contenu de l'overlay
		ev.dom.addClass(ctOverlayElt, foldedClass);
		if (ctOverlayElt !== null) {
			ctOverlayElt.style.position = 'fixed';
			ctOverlayElt.style.top = '50%';
			ctOverlayElt.style.left = '50%';
			ctOverlayElt.style.zIndex = '999999';
		}
		//On cache par defaut le bouton 'Cacher l'overlay'
		if (cacherOverlay1Elt !== undefined) {ev.dom.addClass(cacherOverlay1Elt, foldedClass); }
		/**
		 * REDISPOSE : Get the currents positions of element & window to rearrange the positions
		 * @private
		 */
		function redispose() {
			var windowW = BODY.offsetWidth,
					windowH,
					overlay = ctOverlayElt,
					elementW = parseInt((overlay.offsetWidth), 10),
					elementH = parseInt((overlay.offsetHeight), 10),
					elementX,
					elementY;
			if (typeof (window.innerWidth) === 'number') {
				windowH = window.innerHeight;/*Non-IE*/
			} else if (bodyEl && (bodyEl.clientWidth || bodyEl.clientHeight)) {
				windowH = bodyEl.clientHeight;/*IE 6+ in 'standards compliant mode'*/
			} else if (BODY && (BODY.clientWidth || BODY.clientHeight)) {
				windowH = BODY.clientHeight;/*IE 4 compatible*/
			}
			if (elementW <= 0) {elementX = 0; }
			if (elementH <= 0) {elementY = 0; }
			overlay.style.top = '50%';
			overlay.style.marginTop = '-' + (elementH / 2) + 'px';
			if (windowH <= elementH) {
				overlay.style.top = '0px';
				overlay.style.marginTop = '0px';
			}
			overlay.style.left = '50%';
			overlay.style.marginLeft = '-' + (elementW / 2) + 'px';
			if (windowW <= elementW) {
				overlay.style.left = '0px';
				overlay.style.marginLeft = '0px';
			}
		}
		/**
		 * SHOWOVERLAY : 'block' display for Overlay's elements.
		 */
		this.showOverlay = function() {
			ctOverlayElt.style.opacity = '0';
			ev.dom.removeClass(overlayElt, foldedClass);
			ev.dom.removeClass(ctOverlayElt, foldedClass);
			redispose();
			window.onresize = redispose;
			ctOverlayElt.style.opacity = '1';
			if (cacherOverlay1Elt) {ev.dom.addClass(cacherOverlay1Elt, foldedClass); }
			if (voirOverlay1Elt) {ev.dom.removeClass(voirOverlay1Elt, foldedClass); }
		};
		/**
		 * HIDEOVERLAY : 'none' display for Overlay's elements.
		 */
		this.hideOverlay = function() {
			ev.dom.addClass(overlayElt, foldedClass);
			ev.dom.addClass(ctOverlayElt, foldedClass);
			window.onresize = null;
			if (cacherOverlay1Elt) {
				ev.dom.addClass(cacherOverlay1Elt, foldedClass);
			}
			if (voirOverlay1Elt) {
				ev.dom.removeClass(voirOverlay1Elt, foldedClass);
			}
		};
		/**
		 * TOGGLEOVERLAY : switch display for Overlay's elements.
		 */
		this.toggleOverlay = function() {
			if (ev.dom.hasClass(overlayElt, foldedClass)) {
				ev.dom.removeClass(overlayElt, foldedClass);
				ev.dom.removeClass(ctOverlayElt, foldedClass);
				ev.dom.removeClass(cacherOverlay1Elt, foldedClass);
				redispose();
				window.onresize = function() {};
			} else {
				ev.dom.addClass(overlayElt, foldedClass);
				ev.dom.addClass(ctOverlayElt, foldedClass);
				ev.dom.addClass(cacherOverlay1Elt, foldedClass);
				redispose();
				window.onresize = redispose;
			}
		};
	};
}());

