// package anonyme : rotate news image
(function(data){
	
	// protected
	function updatePic(anchor, vignData){
		
		anchor.style.backgroundImage = "url(" + PIC_PREFIX + vignData.pic + ")";
		anchor.setAttribute("href", vignData.url);
		anchor.setAttribute("title", vignData.txt);
		if(vignData.blank === true) anchor.setAttribute("target", "_blank");
		else anchor.removeAttribute("target");
	}
	
	var focusRotateZone = document.getElementById("focusRotateZone"),
		frzSlider = document.getElementById("frz_slider"),
		frzPrev = document.getElementById("frz_prev"),
		frzCurr = document.getElementById("frz_curr"),
		frzNext = document.getElementById("frz_next"),
		frzBack = document.getElementById("frz_back"),
		frzAdvn = document.getElementById("frz_advn"),
		PIC_PREFIX = "../../include/data/accueil/images/";
	
	// singleton
	var focusRotator = (function(){
		
		// private
		var _active = false,
			_cursor = 1,
			_max = data.vigns.length,
			_timer,
			_lock = null;
		
		function reflow(){
			
			if(data.vigns.length > 1){
			
				if(_cursor - 1 === -1)
					updatePic(frzPrev, data.vigns[_max-1]);
				else
					updatePic(frzPrev, data.vigns[_cursor-1]);
					
				updatePic(frzCurr, data.vigns[_cursor]);
				
				if(_cursor + 1 === _max)
					updatePic(frzNext, data.vigns[0]);
				else
					updatePic(frzNext, data.vigns[_cursor+1]);
			}
			else{
				
				updatePic(frzPrev, data.vigns[0]);
				updatePic(frzCurr, data.vigns[0]);
				updatePic(frzNext, data.vigns[0]);
			}
			frzSlider.style.left = "-196px";
		}
		
		// public
		var _instance = {
		
			'goto' : function(goRight){
				
				_lock = new Amed.Anim.Tween([frzSlider.style], 'left', 'strong', -196, (goRight ? -392 : 0), 500, 'px');
			},
			'pause' : function(){
				
				_active = false;
			},
			'run' : function(){
				
				_active = true; 
			},
			'prev' : function(){
				
				if(_lock === null || _lock.inactive){
					
					reflow();
					_instance.goto(false);
					_cursor--;
					if(_cursor === -1) _cursor = _max-1;
				}
			},
			'next' : function(){
				
				if(_lock === null || _lock.inactive){
					
					reflow();
					_instance.goto(true);
					_cursor++;
					if(_cursor === _max) _cursor = 0;
				}
			},
			'autonext' : function(){
				
				if(_active === true) _instance.next();
			},
			'setTo' : function(ms){
				
				reflow();
				_timer = window.setInterval(this.autonext, ms);
			}
		}
		
		return _instance;
	})();
	
	// init
	Amed.Event.add(frzBack, 'click', function(e){ e.preventDefault(); focusRotator.prev(); });
	Amed.Event.add(frzAdvn, 'click', function(e){ e.preventDefault(); focusRotator.next(); });
	Amed.Event.add(frzBack, 'mouseover', function(e){
		
		Amed.DOM.addClassName(focusRotateZone, "innerHoverB");
	});
	Amed.Event.add(frzBack, 'mouseout', function(e){
		
		if(e.relatedTarget == frzBack || Amed.DOM.isAChildOfB(e.relatedTarget, frzBack)) return;
		Amed.DOM.removeClassName(focusRotateZone, "innerHoverB");
	});
	Amed.Event.add(frzAdvn, 'mouseover', function(e){
		
		Amed.DOM.addClassName(focusRotateZone, "innerHoverA");
	});
	Amed.Event.add(frzAdvn, 'mouseout', function(e){
		
		if(e.relatedTarget == frzAdvn || Amed.DOM.isAChildOfB(e.relatedTarget, frzAdvn)) return;
		Amed.DOM.removeClassName(focusRotateZone, "innerHoverA");
	});
	Amed.Event.add(focusRotateZone, 'mouseover', function(e){
		
		Amed.DOM.addClassName(focusRotateZone, "hover");
		focusRotator.pause();
	});
	Amed.Event.add(focusRotateZone, 'mouseout', function(e){
		
		if(e.relatedTarget == focusRotateZone || Amed.DOM.isAChildOfB(e.relatedTarget, focusRotateZone)) return;
		Amed.DOM.removeClassName(focusRotateZone, "hover");
		focusRotator.run();
	});
	
	focusRotator.setTo(6000);
	focusRotator.run();
	
})(focusSummary);

// package anonyme : rotate news texte
(function(){
	
	// protected
	var n = Amed.DOM.$('nrz_groupRight'),
		nn = [],
		w = Amed.DOM.$('nrz_news').getElementsByTagName('a'),
		temp = document.createDocumentFragment(),
		ws = temp.appendChild(document.createTextNode(' '));
	
	// singleton
	var rotator = (function(){
		
		// private
		var _active = false,
			_cursor = 0,
			_max = w.length,
			_timer;
		
		// public
		var _instance = {
		
			'goto' : function(go){
				
				for(var i = _max; i--;){
					
					if(go === i) {
						
						w[i].style.display =  'block';
						Amed.DOM.addClassName(nn[i], 'solidBtnActive');
					}
					else{
						
						w[i].style.display = 'none';
						Amed.DOM.removeClassName(nn[i], 'solidBtnActive');
					}
				}
			},
			'pause' : function(){
				
				_active = false;
			},
			'run' : function(){
				
				_active = true;
			},
			'next' : function(){
				
				if(_active === true){
					
					if(++_cursor === _max) _cursor = 0;
					_instance.goto(_cursor);
				}
			},
			'setTo' : function(ms){
				
				_timer = window.setInterval(this.next, ms);
			}
		}
		
		return _instance;
	})();
	
	// init
	for(var i = 0, j = w.length; i < j ; i++){
		
		nn[i] = Amed.DOM.build('a', {'_text' : i+1, 'class' : 'solidBtn', 'href' : w[i].getAttribute('href')}, {'marginLeft' : '3px'});
		temp.insertBefore(nn[i], ws);
		
		Amed.Event.add(nn[i], 'mouseover', function(e, i){
			
			rotator.pause();
			rotator.goto(i);
		}, i);
		Amed.Event.add(nn[i], 'mouseout', function(e, i){
			
			rotator.run();
			rotator.goto(i);
		}, i);
		
		Amed.Event.add(w[i], 'mouseover', rotator.pause);
		Amed.Event.add(w[i], 'mouseout', rotator.run);
	}
	n.insertBefore(temp, n.firstChild);
	
	rotator.goto(0);
	rotator.setTo(5000);
	rotator.run();
})();
