window.onload = function(){
	if( document.getElementById("layerIntro") )	oClubMed.removeClass( document.getElementById("layerIntro"), "dNone");
};

function playerReady(){
	oClubMed.init();
}

var oClubMed = {
	
	init : function(){
		
		this.layerIntro 		= document.getElementById("layerIntro");
		this.wall 				= document.getElementById("wall");
		this.wallLeft			= $(this.wall).getLeft();
        this.thumbs 			= document.getElementById("wallContainer").getElementsByTagName("a");
        this.wallTop			= $(this.wall).getTop();
		this.player				= document.getElementById("swfPlayer");
		this.playerContainer	= document.getElementById("player");
		this.layerVideo 		= document.getElementById("layerVideo");
		this.playerLayer		= document.getElementById("playerLayer");
		this.lenInterval		= 10000;
		this.isFromNav			= this.checkFromNav();
		this.autoLayer			= this.checkAutoLayer();
		
		if( !this.isInit && this.layerIntro && !this.autoLayer ) 
		{
			this.isInit = true;
			
			this.initThumbsEvents();
			this.initLayerVideoEvents();
			
			if( Cookie.read("alreadySeen") == "true" )
			{
				document.getElementById("layerIntro").innerHTML = "";
				document.getElementById("layerIntro").className += " dNone";
				document.getElementById("layerHow").className = document.getElementById("layerHow").className.replace(/dNone/, "");
				this.initStep2Events();
				/*
				this.interval = setInterval("oClubMed.playVideo()", this.lenInterval);
				this.playVideo();
				*/
			}
			else
			{
				document.getElementById("playerIntro").addModelListener('STATE', 'oClubMed.stateMonitor');
				this.initStep1Events();
			}
		}
		else
		{
				// si un id video est defini dans l url
				if( this.autoLayer && !isNaN(this.getId()) && this.getId() < 28 )
				{
					if(document.getElementById("layerIntro")) document.getElementById("layerIntro").className += " dNone";
					else this.playerContainer.className += " dNone";
					var thumb = this.thumbs[ this.getId() ];
					this.populateVideoLayer( thumb.getElementsByTagName("img")[0], thumb );
					this.removeClass( document.getElementById("layerVideo"), "dNone" );
					
					this.initThumbsEvents();
					this.initLayerVideoEvents(true);
					// GLA bloquage layer video
					//this.initVideoLayer(); 
				}
				else
				{
					if ( this.hasClass( document.getElementById("layerVideo"), "dNone" ) )
					{
						this.initLayerVideoEvents();
						this.interval = setInterval("oClubMed.playVideo()", this.lenInterval);
						setTimeout("oClubMed.playVideo()", 200 );
						this.initThumbsEvents();
					}
					else
					{
						
						if( navigator.appName.match(/Microsoft/) ) {
							// GLA bloquage layer video
							//if ( this.alreadyInit ) this.initVideoLayer();
							//else this.alreadyInit = true;
							this.alreadyInit = true;
						}else{
							// GLA bloquage layer video
							//this.initVideoLayer();
						}
					}
				}
			
		}
	},
	
	checkFromNav : function(){
		var temp = ( document.location.href.match(/#fromNav/) ) ? true : false;
		return temp;
	},
	
	checkAutoLayer : function(){
		var temp = ( document.location.href.match(/\?id=/) ) ? true : false;
		if ( !temp ) temp = ( document.location.href.match(/\&id=/) ) ? true : false;
		return temp;
	},
	
	getId : function(){
		var temp = parseInt( document.location.href.split("?id=")[1] );
		if ( !temp ) temp = parseInt( document.location.href.split("&id=")[1] );
		return temp;
	},
	
	stateMonitor : function (obj){
		if ( obj.newstate == 'COMPLETED' ) 
		{
			document.getElementById("layerIntro").className += " dNone";
			oCM.removeClass( document.getElementById("layerHow"), "dNone");
			oCM.initStep2Events();
		}
	},
	
	
	initStep1Events : function(){
		var oCM = this;
		var a = document.getElementById("toStep2");
		
		var fog = null;
		var aDiv = document.getElementById("layerIntro").getElementsByTagName("div");
		for( var i = 0; i < aDiv.length; i++ )
			if( aDiv[i].className.match(/bg/) ) fog = aDiv[i];
			
		a.onclick = step1Handler;
		fog.onclick = step1Handler;
		
		function step1Handler(){
			document.getElementById("layerIntro").className += " dNone";
			oCM.removeClass( document.getElementById("layerHow"), "dNone");
			oCM.initStep2Events();
			return false;
		}
	},
	
	initStep2Events : function(){
		
		if( Cookie.read("alreadySeen") !== "true" ) Cookie.create( "alreadySeen", "true", 14 );
		
		var oCM = this;
		var a = document.getElementById("closeBtnHow").getElementsByTagName("a")[0];
		if( !a ) return false;
		
		var fog = null;
		var aDiv = document.getElementById("layerHow").getElementsByTagName("div");
		for( var i = 0; i < aDiv.length; i++ )
			if( aDiv[i].className.match(/bg/) ) fog = aDiv[i];
		
		a.onclick = step2Handler;
		fog.onclick = step2Handler;
		if(this.isFromNav) step2Handler()
		
		function step2Handler(){
			oCM.removeClass( oCM.playerContainer, "dNone");
			document.getElementById("layerHow").className += " dNone";
			return false;
		}
	},
	
	initThumbsEvents : function(){
		
		var oCM		= this;
		var len 	= this.thumbs.length;
		
		for ( var i = 0; i < this.thumbs.length; i++ )
		{
			this.thumbs[i].className = "thumb";
			this.thumbs[i].onclick = function(e){
				
				var img;
				if (!e) var e = window.event;
				if (e.target) img = e.target;
				else if (e.srcElement) img = e.srcElement;
				if (img.nodeType == 3) // fix bug Safari
					img = img.parentNode;
				
				if ( !oCM.layerVideo ) return false;
				oCM.populateVideoLayer( img, img.parentNode );
				//oCM.toggleDisplay( oCM.layerVideo );
				alert('click');
				oCM.clearVideoPlayer();
				
				if( navigator.appName.match(/Microsoft/) ) oCM.init();
				
				return false;
			}
			this.thumbs[i].onmouseout = function(){
				if(oCM.inside) 
				{
					oCM.removeClass( oCM.playerContainer, "loin");
					oCM.removeClass( oCM.currentEl, "hover");
					oCM.inside = false;
				}
			}
		}
		
		this.inside = false;
		
		this.playerContainer.onmouseover = function(){
			if(!oCM.inside) 
			{
				oCM.playerContainer.className += " loin";
				oCM.currentEl.className +=  " hover";
				oCM.inside = true;
			}
		}
		
		/*
		this.currentEl.onmouseout = function(){
			if(oCM.inside ) 
			{
				oCM.removeClass( oCM.playerContainer, "loin");
				oCM.removeClass( oCM.currentEl, "hover");
				oCM.inside = false;
			}
		}
		*/
		/*
		this.playerContainer.onmouseout = function(){
			//console.log("onmouseout");
			if( oCM.currentEl && oCM.inside ) 
			{
				oCM.removeClass( oCM.playerContainer.firstChild, "invisible");
				oCM.removeClass( oCM.currentEl, "hover");
				oCM.inside = false;
			}
		}*/
		
		this.playerContainer.onclick = function(){
			if( oCM.currentEl ) 
			{
				oCM.populateVideoLayer(oCM.currentEl.getElementsByTagName("img")[0], oCM.currentEl);
				oCM.toggleDisplay( oCM.layerVideo );
				oCM.clearVideoPlayer();
			}
			return false;
		}
	},
	
	initLayerVideoEvents : function(hasId){
		var oCM 		= this;
		var close 		= document.getElementById("closeLayerVideo");
		if( !close ) return false;
		
		close.onclick = function(){
			oCM.toggleDisplay( oCM.layerVideo );
			oCM.reloadVideoPlayer();
			if( !hasId ) return false;
			else 
			{
				location.search = "";
				return false;
			}
		}
	},
	
	
	

	
	
	populateVideoLayer : function(img, a){
		
		//if( !a.getElementsByTagName("span")[0] ) return false;
		
		var oCM			= this;
		var infos 		= a.getElementsByTagName("span")[0].getElementsByTagName("span");
		
		for( var i = 0; i < infos.length; i++ )
		{
			if ( oCM.hasClass(infos[i], "cat") ) 		var cat 		= infos[i].innerHTML;
			if ( oCM.hasClass(infos[i], "titre") ) 		var titre 		= infos[i].innerHTML;
			if ( oCM.hasClass(infos[i], "lieu") ) 		var lieu 		= infos[i].innerHTML;
			if ( oCM.hasClass(infos[i], "textLink1") ){
				var textLink1 	= infos[i].innerHTML;
			}
			if ( oCM.hasClass(infos[i], "textLink2") ){
				var textLink2 	= infos[i].innerHTML.replace(/&amp;/g,'&');
			}
			if ( oCM.hasClass(infos[i], "textLink3") ){
				var textLink3 	= infos[i].innerHTML.replace(/&amp;/g,'&');
			}
			if ( oCM.hasClass(infos[i], "hrefLink1") ){
				var hrefLink1 	= infos[i].innerHTML.replace(/&amp;/g,'&');
			}
			if ( oCM.hasClass(infos[i], "hrefLink2") ){
				var hrefLink2 	= infos[i].innerHTML.replace(/&amp;/g,'&');
			}
			if ( oCM.hasClass(infos[i], "hrefLink3") ){
				var hrefLink3 	= infos[i].innerHTML.replace(/&amp;/g,'&');
			}
			if ( oCM.hasClass(infos[i], "options") ) 	var options 	= infos[i].innerHTML;
			/*if ( oCM.hasClass(infos[i], "offre") ) 		var offre 		= infos[i].innerHTML;*/
			var offre = false;
		}
		
		/* url de la video et image */
		document.getElementById("urlVideo").innerHTML = a.rel;
		document.getElementById("urlImg").innerHTML = img.src;
		/* POUR REMPLACER LE REPERTOIRE DE LA GRANDE IMAGE */
			var repo = 'vignettes/img-big';
			document.getElementById("urlImg").innerHTML = img.src.replace(/vignettes/, repo);
		/* */
		/* // url de la video et image */
		
		/* categorie, titre et lieu */
		document.getElementById("videoHeader").getElementsByTagName("h2")[0].innerHTML = cat;
		document.getElementById("video").getElementsByTagName("h3")[0].innerHTML = titre;
		document.getElementById("video").getElementsByTagName("h4")[0].innerHTML = lieu;
		/* // categorie, titre et lieu */
		
		var aDiv 	= document.getElementById("video").getElementsByTagName("div");
		var aBtns	= aDiv[ aDiv.length - 1 ].getElementsByTagName("span");
		
		/* LeftOptions */
		var aOpt	= options.split("_");
		var target	= document.getElementById("videoOptions");
		var aSource	= document.getElementById("options").getElementsByTagName("li");
		target.innerHTML = "";
		for ( var i = 0; i < aOpt.length; i++ )
		{
			var sourceClean = cleanText( aSource[ aOpt[i] ].innerHTML)
			target.innerHTML += "<li>" + sourceClean + "</li>";
		}
		/* //LeftOptions */
		
		/* Offre Speciale */
		if( offre ) oCM.removeClass( document.getElementById("specialOffer"), "dNone");
		else document.getElementById("specialOffer").className += " dNone";
		/* // Offre Speciale */
		
		/* Liens sous la video */
		createLink( textLink1, hrefLink1, 0 );
		createLink( textLink2, hrefLink2, 1 );
		createLink( textLink3, hrefLink3, 2 );
		
		function createLink( text, href, num )
		{
			if( text != undefined && href != undefined && text != "" && href != "" )
			{
				oCM.removeClass( aBtns[num], "dNone" );
				if( text.length > 30 ) {
					aBtns[num].getElementsByTagName("strong")[0].style.paddingTop = "2px";
				}
				aBtns[num].getElementsByTagName("strong")[0].innerHTML 	= text;
				aBtns[num].getElementsByTagName("a")[0].href			= href;
			}
			else aBtns[num].className += " dNone";
		}
		/* // Liens sous la video */
		
		
		/* function cleanText (decoupe le mot si plus de 20 caracteres */
		function cleanText(str){
			var maxChar = 20;
			var cleanStr = "";
			str = str.replace(/<strong>|<\/strong>/g, "")
			str = str.replace(/<sup class="em08">/g, " __SUP__ ")
			str = str.replace(/<\/sup>/g, " __END_SUP__ ")
			
			var aStr = str.split(" ");
			for ( var i = 0; i < aStr.length; i++ )
			{
				var tmpStr = aStr[i]+" ";
				if( aStr[i].length > maxChar && !aStr[i].match(/-/g) )
				{
					var half = Math.floor( aStr[i].length / 2 );
					var firstHalf = aStr[i].substring(0, half);
					var lastHalf = aStr[i].substring(half, aStr[i].length);
					
					tmpStr = firstHalf + "-" + lastHalf+" ";
				}
				cleanStr += tmpStr;
			}
			
			cleanStr = cleanStr.replace(/ __SUP__ /, '<sup class="em08">');
			cleanStr = cleanStr.replace(/ __END_SUP__ /, '</sup>')
			return cleanStr;
		}
		/* // function cleanText */
	},
	
	initVideoLayer : function(){
		if( navigator.appName.match(/Microsoft/) ) {
			setTimeout((function(){
				var urlFLV = document.getElementById("urlVideo").innerHTML;
				var urlIMG = document.getElementById("urlImg").innerHTML;
				
				this.playerLayer.sendEvent("LOAD", { "file" : urlFLV, "image" : urlIMG });
				this.playerLayer.sendEvent("PLAY", true);
				this.playerLayer.sendEvent("MUTE", true);
			}), 100);
		}else{
			var urlFLV = document.getElementById("urlVideo").innerHTML;
			var urlIMG = document.getElementById("urlImg").innerHTML;
			
			this.playerLayer.sendEvent("LOAD", { "file" : urlFLV, "image" : urlIMG });
			this.playerLayer.sendEvent("PLAY", true);
			this.playerLayer.sendEvent("MUTE", true);
		}
	},
	
	clearVideoPlayer : function(){
		clearInterval( this.interval );
		this.player.sendEvent("PLAY", false);
		this.toggleDisplay( this.player );
	},
	
	reloadVideoPlayer : function(){
		this.toggleDisplay( this.player );
		this.interval = setInterval("oClubMed.playVideo()", this.lenInterval);
		setTimeout( "oClubMed.playVideo()", 200 );
	},
	
	playVideo : function(){
		if(this.playerContainer.firstChild) this.removeClass( this.playerContainer.firstChild, "invisible");
		if(this.currentEl) this.removeClass( this.currentEl, "hover");
		
		var min 			= 0;
		var max 			= this.thumbs.length-1;
		var rand 			= Math.round((max-min) * Math.random(new Date()) + min);
		this.currentEl		= $(this.thumbs[rand]);
		var urlFLV 			= this.currentEl.getAttribute('rel');
		var _coord			= $(this.currentEl).getCoordinates();
		this.currentVideo 	= rand;
		
		var line 			= Math.floor(rand / 4);
		this.playerContainer.style.top 	= (line * 101) + "px";
		
		var unit 			= rand % 4;
		this.playerContainer.style.left	= (unit * 176) + "px";
		
		if( !urlFLV ) return false;
		
		if( typeof this.player.sendEvent === "function" )
		{
			this.player.sendEvent("LOAD", urlFLV);
			this.player.sendEvent("PLAY", true);
			this.player.sendEvent("MUTE", true);
		}
	},
	
	toggleDisplay : function( el ){
		el.className = ( el.className.match(/dNone/) ) ?  el.className.replace(/dNone/, "") : el.className += " dNone";
	},
	
	removeClass : function( el, targetedCN ){
		var regExp = new RegExp( targetedCN );
		if( el.className.match(regExp) ) el.className = el.className.replace( regExp, "" );
	},
	
	hasClass : function(el, targetedCN){
		var regExp = new RegExp( targetedCN );
		if( el.className.match(regExp) ) return true;
		else return false;
	}
}


/**
 * COOKIES
 * @class : Cookie
 * @depends: none
 */

if(typeof Cookie !== 'undefined') {
	throw new Error("La variable Cookie existe deja.");
}
var Cookie = (function() {
	// Creation de cookie
	var _create = function(name, value, days) {
		if(days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
			var expires = "; expires=" + date.toGMTString();
		}
		else var expires = "";
		document.cookie = name + "=" + value + expires + "; path=/";
	};
	// Lecture de cookie
	var _read = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i = 0, t = ca.length; i < t; i++) {
			var c = ca[i];
			while(c.charAt(0) == ' ') {
				c = c.substring(1, c.length);
			}
			if(c.indexOf(nameEQ) == 0) {
				return c.substring(nameEQ.length, c.length);
			}
		}
		return null;
	};
	// Suppression de cookie
	var _erase = function(name) {
		_create(name, "", -1);
	};
	// Suppression de tous les cookies
	var _eradiquate = function() {
		var cook = document.cookie.split(";");
		for(var i = 0, c = cook.length; i < c; i++){
			_erase(cook[i].split('=')[0]);
		}
	};
	return {
		'create': _create,
		'read': _read,
		'erase': _erase,
		'eradiquate': _eradiquate
	};
})();


/* Help from Mootools */
var $check = function(event){
	var related = event.relatedTarget;
	if (related == undefined) return true;
	if (related === false) return false;
	return (typeof this != 'document' && related != this && related.prefix != 'xul');
};

