// 02-11-2009
// Jérémie Román
// Control de errores si fallan los ficheros del arafem.
 
//// CONSTANTS ////

// URL base NOW&NEXT.
var URL_ARAFEM		= "http://www.tv3.cat/ptv3/arafem";
//var URL_ARAFEM		= "http://www.tv3.cat/ptv3/arafem/test";


// Interval refresc NOW&NEXT.
var URL_ARAFEM_INTERVAL	= 30; // 30segons

// Nom layer NOW&NEXT emissores
var LAYER_HTML_ZONE			= "html_zone";
var LAYER_HTML_ZONE_DIRECTE = "html_zone_directe";

// Senyals de retorn entre objectes.
var RET_CHANGED_TRUE	= "CHANGED=true";
var RET_CHANGED_FALSE	= "CHANGED=false";

// canals implicats
//var CHANNELS = "TV3|33D|K3D|300|324|TVI".split("|");
var CHANNELS = "TV3|33D|SUPER3|300|324|TV3CAT".split("|");

var ERROR_1 = "L\'emissi&oacute; actual no està disponible a 3alacarta.";
var ERROR_2 = "Informació no disponible";

var reqGeneral=null;
//// VARIABLES ////

// Per referenciar de forma externa l'objecte OBSERVABLE actual.
var _observable = null;

// Per referenciar de forma externa l'objecte OBSERVER actual.
var _observer = null;

var isVideo = false;
var toggleMS = false; // Per mostrar o no els ministreams
var lloc_geo = ''; // Per saber el geo que s'ha connectat l'stream
var lloc_geo_anterior = null; // Per saber si ha canviat el tipus de geo
var estat_tapa = false;

////////////////////////////////////////////////////////////////////////////////////////////////

//// TVCRefreshController ////

// Constructor. Agrega tants observadors com emissores es passin com a parm.
function TVCRefreshController(channels) {
	this.name = "TVCRefreshController";
	this.url = URL_ARAFEM + "/refresher.xml";
	this.interval = URL_ARAFEM_INTERVAL;
	this.observers = new Map();
	for (var j=0; j<channels.length; j++) {
		this.addObserver( new TVCChannel(channels[j]) );
	}
}

// Herencia.
TVCRefreshController.prototype = new Observable();

// Sobreescrit.
TVCRefreshController.prototype.addObserver = function() {
	var observer = arguments[0];
	this.observers.put(observer.getName(), observer);
}

// Sobreescrit. Efectua notificació sobre observadors.
// Marca '_observable' per referència externa.
TVCRefreshController.prototype.notifyObservers = function() {
	_observable = this;
	var txh = new XmlHttp(this.url, CACHE_SYSTEM_SERVER, URL_ARAFEM_INTERVAL);
	//txh.doPost("TVCRefreshControllerNotifyObservers");
	txh.doGet("TVCRefreshControllerNotifyObservers");
}

//
TVCRefreshController.prototype.getChannel = function() {
	var channel = arguments[0];
	return this.observers.get(channel);
}

// Mètode TimeTask.
TVCRefreshController.prototype.run = function() {
	URL_ARAFEM_INTERVAL = this.interval;
	this.notifyObservers();
}

// Mètode TimeTask.
TVCRefreshController.prototype.reset = function() {
	URLCached_CacheSystemServer_reset();
}

// Mètode TimeTask.
TVCRefreshController.prototype.pause = function() {
	
}

TVCRefreshController.prototype.updatePlayer = function(observer) {
	var channel = vCadenaDirecte;
	var oChannel = this.getChannel(channel);
	if (!observer || !oChannel.isBroadcasts() || !isVideo){
		
		isVideo = oChannel.isBroadcasts();
		
	  // APJ
		var buff = '<div class="directe_inner">';
		buff += programacioCanal_getNowNext(reqGeneral,channel); 
		buff += '</div>';   
		document.getElementById('directe_desc_holder').innerHTML = buff; 
	  /*
		buff += '<div class="directe_desc_holder">';
		buff += '<div class="directe_inner">';
		buff += programacioCanal_getNowNext(reqGeneral,channel); 
		buff += '</div>';                    
		buff += '</div>';
		oChannel.setValue(LAYER_HTML_ZONE_DIRECTE, buff);
		*/
		
	}
	else{
		//Vienes del observador Y tienes permisos Y tu anterior tenia permisos
		document.getElementById('directe_desc_holder').innerHTML = programacioCanal_getNowNext(reqGeneral,channel);                      
	}
	
	var facebook = oChannel.getValue('facebook');
	var idPrograma = oChannel.getValue('idPrograma');
	if (facebook==1){
		document.getElementById('superdestacat').style.display = 'none';
		document.getElementById('directe_related').style.display = '';
		document.getElementById('dest_promo').style.display = '';
		facebook_connect(idPrograma);	
	}
	else{
		document.getElementById('directe_related').style.display = 'none';
		document.getElementById('dest_promo').style.display = 'none';
		document.getElementById('superdestacat').style.display = '';
	}
	
}


//
TVCRefreshController.prototype.connect = function() {
	var channel = arguments[0];
	if ( this.observers.containsKey(channel) ) {
		vCadenaDirecte = channel;

		// reset 'timestamp' observadors
		var channels = this.observers.entryKeys(); 
		for (var i=0; i<channels.length; i++) { 
			this.observers.get(channels[i]).setValue("timestamp",null);
		}
		this.run();
	}
}

// Representació textual.
TVCRefreshController.prototype.toString = function() {
	var buff = "TVCRefreshController : [ observers:{";
	var ch = this.observers.entryKeys();
	for (var i=0; i<ch.length; i++) {
		buff += "\n" + this.observers.get(ch[i]) + ", ";
	}
	buff += "\n}]";
	return buff;
}

//// MÈTODES ////

// APJ
function posarCanal(canal) {
	
	try {
		
		var novaCadenaDirecte = canal;
		//if (canal=='TV3CAT') novaCadenaDirecte = 'TVI';
		if (canal=='K3D') novaCadenaDirecte = 'CS3';

		if (novaCadenaDirecte!=vCadenaDirecte) {

			try {
				
				document.getElementById('playerEVP').loadItem('D'+canal);
				estat_tapa = false;

			} catch (err) {}
			_ctrl.connect(novaCadenaDirecte);
		}
	} catch (err) {}
}

// Capturador sincron especific.
// Comunica als observadors de "_observable" si han estat modificats (variació timestamp),
// i acaba actualitzant una zona html (actualitza layer amb el codi HTML de cada observador).
function synchronousHandlerTVCRefreshControllerNotifyObservers(req) {
	try {
		
		if (req.readyState==4 && req.status==200) {
			
			// APJ : Posar geo actual i guardar anterior
			if (playerEVP__notificacion != null) {
				lloc_geo_anterior = lloc_geo;
				
				lloc_geo = playerEVP__notificacion.currentGeo.ambit;
			}
			
	    var result = req.responseXML;
			// es procesa els elements del xml, es notifica a cada emissora si s'ha actualitzat o no.
			var eItems = result.documentElement.getElementsByTagName("item");
			for (var i=0; i<eItems.length; i++) {
				var item = eItems.item(i);
				var channel = getNodeValue(item, "channel");
				
				if (channel=='TVI') channel='TV3CAT';
				
				var timestamp = getNodeValue(item, "timestamp");
				var observer = _observable.observers.get(channel);
				
				if (observer!=null) {
					var observer_timestamp = observer.getValue("timestamp");
					var changed = observer_timestamp==null || observer_timestamp!=timestamp || lloc_geo_anterior!=lloc_geo;
					observer.update(_observable, changed ? RET_CHANGED_TRUE : RET_CHANGED_FALSE);
					observer.setValue("timestamp", timestamp);
					
					if (changed && (channel==vCadenaDirecte)) {
						_observable.updatePlayer(observer_timestamp);
					}
				}
			}

			// es monta l'HTML, es segueix l'ordre d'emissores establert.
			// APJ
			var buffDirecte = "";
			var buffDirecte3ac = ""; 
			var channels = _observable.observers.entryKeys();
			for (var i=0; i<channels.length; i++) {

				var observer = _observable.observers.get(channels[i]);
				var buff = observer.getValue(LAYER_HTML_ZONE);
				buffDirecte3ac += buff;
				if (buffDirecte=="") {
					buffDirecte = observer.getValue(LAYER_HTML_ZONE_DIRECTE);
				}
				observer.setValue(LAYER_HTML_ZONE_DIRECTE,""); // Tornem a deixar buit pel proxim cop.



				if (channels[i]==vCadenaDirecte){
				// Si canal seleccionat

					$('#lithumbnail'+channels[i]).addClass("stream_selected");
					$('#nodisponible'+channels[i]).removeClass("hidden");
					$('#divthumbnail'+channels[i]).removeClass("hidden");

						try { 
							if (document.getElementById('thumbnail'+channels[i]).thumbnailIsPlaying()=="true") 
								document.getElementById('thumbnail'+channels[i]).thumbnailStop();
						} catch (err) {}
							
						if (buff==ERROR_1) tapaPlayer(true); // Això és una xapusa pq no es quedi el bucle de no visibilitat amb el sò de fons

				} else {
					
					$('#lithumbnail'+channels[i]).removeClass("stream_selected");
					
					if (buff==ERROR_1) {
					// Canal no disponible

					$('#nodisponible'+channels[i]).removeClass("hidden");
					$('#divthumbnail'+channels[i]).addClass("hidden");
					
						try { 
							if (document.getElementById('thumbnail'+channels[i]).thumbnailIsPlaying()=="true") 
								document.getElementById('thumbnail'+channels[i]).thumbnailStop();
						} catch (err) {}
					
					try{ document.getElementById('aratext'+channels[i]).innerHTML = "No disponible." } catch (err) {}
					
					} else {
						
						$('#nodisponible'+channels[i]).addClass("hidden");
						$('#divthumbnail'+channels[i]).removeClass("hidden");
						
						try{

							if (toggleMS) {
								// No es veuen els ministreams

								if (document.getElementById('thumbnail'+channels[i]).thumbnailIsPlaying()=="true") {
									document.getElementById('thumbnail'+channels[i]).thumbnailStop();
								}
							} else { 
								// Es veuen els ministreams

								if (document.getElementById('thumbnail'+channels[i]).thumbnailIsPlaying()=="false") {
									document.getElementById('thumbnail'+channels[i]).thumbnailPlay();
								}
							}
						} catch (err) {}

						try{ 
							if (buff.length >= 15) buff =  buff.substring(0,15)+"...";
							document.getElementById('aratext'+channels[i]).innerHTML = buff; 
						} catch (err) {}
					}
				}
			}
				if (presentacio=="3alacarta"){
					document.getElementById(LAYER_HTML_ZONE).innerHTML = buffDirecte3ac;
				}
				else{
					if (buffDirecte!="") {
						document.getElementById(LAYER_HTML_ZONE_DIRECTE).innerHTML = buffDirecte;
					}
				}
			options();
			
		}
	} 
	catch (e) {
//alert(":"+e);

	}
}

////////////////////////////////////////////////////////////////////////////////////////////////

//// TVCChannel ////

// Constructor. A partir del ID de emissora s'obté la URL del "Arafem" corresponent.
function TVCChannel(name) { 
	this.name = name;
	this.values	= new Map();
	
	this.setValue("url", URL_ARAFEM + "/arafem_" + name + ".xml");
	//if (name!='TV3CAT') this.setValue("url", URL_ARAFEM + "/arafem_" + name + ".xml");
	//else this.setValue("url", URL_ARAFEM + "/arafem_TVI.xml");
	
	
	this.setValue(LAYER_HTML_ZONE, "");
	this.setValue(LAYER_HTML_ZONE_DIRECTE, "");
	this.setValue("emissio", "NO");
}    

// Herencia.
TVCChannel.prototype = new Observer();

// Sobreescrit. Si ha canviat actualitza la seva zona html.
// Marca '_observer' per referència externa.
TVCChannel.prototype.update = function() {
	_observer = this;
	var observable = arguments[0];
	var arg	= arguments[1];
	if (arg==RET_CHANGED_TRUE) {
		var txh = new XmlHttp(this.getValue("url"), CACHE_SYSTEM_SERVER_READER, URL_ARAFEM_INTERVAL);
		//txh.doPost("TVCChannelUpdate");
		txh.doGet("TVCChannelUpdate");
	}
}

// Nom emissora.
TVCChannel.prototype.getName = function() {
	return this.name;
}

// Obté si el canal actual está en emissió.
TVCChannel.prototype.isBroadcasts = function() {
	return this.getValue('emissio')=='SI';
}

// Sobreescrit.
TVCChannel.prototype.toString = function() {
	var buff = "TVCChannel : [ " +
		"key:" + this.name + ", isB:" + this.getValue("emissio") + ", url:" + this.getValue("url") + 
		" ]";
	return buff;
}

//// MÈTODES ////

//
function solveConnectHref(canal) {
	var shref = 'http://www.tv3.cat/ptv3/tv3EnDirecte.jsp?canal='+canal;
	try {
		var existLayerDirecte = document.getElementById(LAYER_HTML_ZONE_DIRECTE)!=null;
		if (existLayerDirecte) {
			shref = 'javascript:_ctrl.connect(\''+canal+'\')';
		}
	} catch (e) {}
	return shref;
}

// a cada click lo llama por todos los programas activos
function TVCChannel_getNowHtml(item) {
	var cadena = getNodeValue(item, 'cadena');
	var hora = getNodeValue(item, 'hora');
	var titol = getNodeValue(item, 'titol');
	
	// APJ :
	buff = titol;

	return buff;
}

//funcion para tv3.cat/3alacarta
function TVCChannel_getNowHtml_3alacarta(item) {
    var cadena = getNodeValue(item, 'cadena');
    var hora = getNodeValue(item, 'hora');
    var titol = getNodeValue(item, 'titol');
    var buff = '<li>';
    buff += ' <div class="text nofoto">';
    buff += ' <div class="ico">';
    buff += ' <img class="floatleft" src="/img/ico_directe_'+cadena+'.gif" alt="'+cadena+'">';
    if (cadena!=vCadenaDirecte) {
        buff += '<div class="connecta"><a title="Connecta" href="'+solveConnectHref(cadena)+'">Connecta</a></div>';
    }
    buff += ' </div>';
    buff += ' <div class="hora">'+hora+'</div><p>'+titol+'</p></div><div class="clear">&nbsp;</div>';
    buff += '</li>';
    return buff;
}


// Next HTML
function TVCChannel_getNextHtml(item) {
	var cadena = getNodeValue(item, 'cadena');
	var hora = getNodeValue(item, 'hora');
	var titol = getNodeValue(item, 'titol');
	
	// APJ
	buff = ERROR_1;

	return buff;
}



// Pinta la informació referent al que s'està emetent actualment al canal i el següent que s'emetrà
function programacioCanal_getNowNext(req,canal){

	try{
		
		var result = req.responseXML;
		var eItems = result.documentElement.getElementsByTagName('item');
		var buff = "";
		var buffNow = "";
		var buffNext = "";
		var buffNoPermis = "";
		var now_fet = false;
		var next_fet = false;
		
		for (var i=0; i<eItems.length; i++) {
			
			var item = eItems.item(i);
			var cadena = getNodeValue(item, 'cadena');
			if (cadena=='TVI') cadena = 'TV3CAT';			
			
			if(cadena == canal){
				var hora = getNodeValue(item, 'hora');
				var titol = getNodeValue(item, 'titol');
				if (titol.length > 58){
					titol= titol.substring(0,58)+'...';
				}
				var taula = getNodeValue(item, 'taula');
				var sinopsi = getNodeValue(item,'sinopsi');
				var sinopsi_mini = sinopsi;
				
				//alert("1-"+":36:"+sinopsi_mini.indexOf("<BR>")+":"+sinopsi_mini);
				if (sinopsi_mini.indexOf("<BR>")!=-1) sinopsi_mini= sinopsi_mini.substring(0,sinopsi_mini.indexOf("<BR>"));
				//alert("2-"+sinopsi_mini);
				
				if (sinopsi_mini.length > 105){

					sinopsi_mini= sinopsi_mini.substring(0,105)+'... ';
				}
				if (sinopsi.length > 480){
					sinopsi = sinopsi.substring(0,480)+'... ';
				}
				if (now_fet== false && taula == 'now' && hasPermission(item)) {
					
					tapaPlayer(false);
					
					var cadena = getNodeValue(item, 'cadena');
					var hora = getNodeValue(item, 'hora');
					var titol = getNodeValue(item, 'titol');
					if(cadena == '33D'){cadena='33';}
					if(cadena == 'K3D'){cadena='K3';} 
					buffNow += '<div class="directe_desc">';
	 	 			buffNow += '	<p class="directe_atitol">ESTÀS VEIENT</p>';
	    		buffNow += '		<h2>'+titol+'</h2>';
	    		buffNow += '		<h3 id="directedesc">';
	    		buffNow += '<div id="directedesc_minisinopsi">';
	    		buffNow += sinopsi_mini;
	    		if (sinopsi.length > 105){
						buffNow += '<span class="directe_mesinfo">';
						buffNow += '(<a title="Més informació" href="javascript:mostraDirecteMesInfo(true);">+ informació</a>)';
						buffNow += '</span>';
					}
					buffNow += '</div>';
					buffNow += '<span class="directe_fullinfo">';
					buffNow += sinopsi;
					buffNow += '<div class="fullinfo_tanca"><a title="Més informació" href="javascript:mostraDirecteMesInfo(false);">tanca</a></div>';
					buffNow += '</span>'; 		
	    		buffNow += '		</h3> ';
	 	 		  buffNow += '</div>';  
	 	 		  now_fet = true;                  
				} else if (now_fet== false && taula=='now' && hasPermission(item)== false) {
					
					tapaPlayer(true);
					
					var cadena = getNodeValue(item, 'cadena');
					var hora = getNodeValue(item, 'hora');
					var titol = getNodeValue(item, 'titol');
					if(cadena == '33D'){cadena='33';}
					if(cadena == 'K3D'){cadena='K3';}
					buffNoPermis += '<div class="directe_desc">';
					if (lloc_geo!='') {
	 	 				buffNoPermis += '	<p class="directe_atitol">EMISSI&Oacute; ACTUAL NO DISPONIBLE PER INTERNET</p>';
		    		buffNoPermis += '		<h2>'+titol+'</h2>';
		    		buffNoPermis += ' 	<h3 class="directe_nodrets">Per motius legals lligats als drets de difusió, no podem oferir-te aquest programa en directe per internet</h3>';
		    	}
	    	  buffNoPermis += '</div>';
	    	  now_fet = true;

				} else if (lloc_geo!='' && next_fet==false && taula=='next' && hasPermission(item)) {

	 					var cadena = getNodeValue(item, 'cadena');
						var hora = getNodeValue(item, 'hora');
						var titol = getNodeValue(item, 'titol');
						if (titol.length > 58){
							titol= titol.substring(0,58)+'...';
						}
						if(cadena == '33D'){cadena='33';}
						if(cadena == 'K3D'){cadena='K3';}
						buffNext += '<div id="nextdesc" class="next_desc">';
	  	  		buffNext += '<p class="directe_atitol">I DESPRÉS ';
	  	  		buffNext += '<span class="directe_minillegenda">Proper programa amb drets per emetre per internet</span>';
	  	  		buffNext += '</p>';
	  	  		buffNext += ' <p class="directe_hora">'+hora+'h</p>';
	  	  		buffNext += '	<h2>'+titol+'</h2>';
	  	  		buffNext += '</div>';
	  	  		next_fet = true;
				}
			}
		}
		buff = buffNow + buffNoPermis + buffNext;		
		return buff;
	}
	catch (e) {
		
		tapaPlayer(true);
		
		return '<div class="directe_desc"><p class="directe_atitol">Per problemes tècnics en aquests moments no podem mostrar-te aquesta emissió.</p></div>';
	}
}


// Drets
function hasPermission(item) {
	
	var drets = getNodeValue(item, 'drets');
	var geo = getNodeValue(item, 'geo');
	var tit = getNodeValue(item, 'titol');

	var retorn = false;

	if (drets=='SI') {

		if (lloc_geo=='') {
			
			if (geo=='TOTS') retorn = true;
			
		} else {

			if (geo==lloc_geo) retorn = true;
			else if (geo=='TOTS') retorn = true;
		}
/*		
		if (geo=='TOTS') retorn = true;
		else {
			if (lloc_geo=='') retorn = true;
			else if (geo==lloc_geo) retorn = true;
		}
*/
	}

	return retorn;
	//return (drets=='SI' && geo=='TOTS');
}

function tapaPlayer(tapar) {

	if (tapar) 
	{
		if (lloc_geo!='') {
			document.getElementById("noSignalAlert").style.visibility = "visible";
			try { 
				
				document.getElementById('playerEVP').pausePlayback(); 
				estat_tapa = true;
				
			} catch (e) {/*alert(e);*/}
			
		}
		
	} else {

		document.getElementById("noSignalAlert").style.visibility = "hidden";
		try { 
			
			if (estat_tapa) document.getElementById('playerEVP').resumePlayback(); 
			estat_tapa = false;
			
		} catch (e) {/*alert(e);*/}
	}

}


// Capturador sincron especific. Regeneració de la zona html de '_observer'.
// No actualitza cap layer, solament regenera el codi HTML.
function synchronousHandlerTVCChannelUpdate(req) {
	reqGeneral = req;
	try {
    if (req.readyState==4 && req.status==200) {
			var result = req.responseXML;
			var eItems = result.documentElement.getElementsByTagName('item');
			var buffNow = '';
			var buffNext = '';
			var cadena = '';
			var title = '';
			var facebook='';
			var idPrograma='';
			var emissio = 'NO';
			for (var i=0; i<eItems.length; i++) {
				var item = eItems.item(i);
				var taula = getNodeValue(item, 'taula');
				cadena = getNodeValue(item, 'cadena');
				if (taula=='now' && hasPermission(item)) {
					emissio = 'SI';
					title = getNodeValue(item, 'titol');
					facebook = getNodeValue(item, 'fbconect');
					idPrograma = getNodeValue(item, 'id_ptvc');
	        if (presentacio == '3alacarta')
	         	buffNow = TVCChannel_getNowHtml_3alacarta(item);
	        else
	        	buffNow = TVCChannel_getNowHtml(item);
				} else 
				if (taula=='next' && hasPermission(item)) {
					//buffNext = TVCChannel_getNextHtml(item);
					buffNext = buff = ERROR_1; // APJ
				}
			}
			_observer.setValue('facebook',facebook);
			_observer.setValue('titol', title);
			_observer.setValue('idPrograma',idPrograma);
			_observer.setValue('emissio', emissio);
			_observer.setValue(LAYER_HTML_ZONE, buffNow=='' ? buffNext : buffNow);
		}
		else{
			var cadena = this._observer.name;
			// APJ
			var buff = ERROR_2;

			_observer.setValue('facebook','0');
			_observer.setValue('titol', '0');
			_observer.setValue('idPrograma','0');
			_observer.setValue('emissio', 'NO');
			_observer.setValue(LAYER_HTML_ZONE, buff);
		}
	} 
	catch (e) { }
}

// Instancia del controlador
var _ctrl = new TVCRefreshController(CHANNELS);

function options(){
		$("#tabs_canals > li")
		.click(function(){
			carregant();
			_ctrl.connect(this.id);
			$(this).mouseout();
		})
		.mouseover(function(){if($(this).hasClass("stream_selected") == false)$(this).addClass("over");})
		.mouseout(function(){$(this).removeClass("over");});
	}
	
	function carregant(){
		// APJ:
		//document.getElementById("dMediaPlayer").className="wmvPlayer wmvCarregant";
	}
 

function facebook_connect(idPrograma){
   	buff = '		<div class="mod_facebook">';
    buff += '		<div class="txt_facebook">';    
    buff += '			<fb:comments xid="'+idPrograma+'" css="http://www.tv3.cat/css/fbcm.css?3333" canpost="true" candelete="false" publish_feed="true" numposts="8" width="300px" height="508px"><fb:title>Participa! El teu comentari pot sortir per pantalla</fb:title></fb:comments>';    
		buff += '		</div>';    
    buff += '	</div>';    
		buff +='<div id="fb-root"></div>';
    document.getElementById("directe_related").innerHTML = buff;

		window.fbAsyncInit = function() {FB.init({
			appId: 'e7a2c54dd7befcac04592d4abd4e0d55', 
			status: true, 
			cookie: true,
			xfbml: true});};
  	(function() {
    	var e = document.createElement('script'); e.async = true;
    	e.src = document.location.protocol +
    	'//connect.facebook.net/ca_ES/all.js';
    	document.getElementById('fb-root').appendChild(e); }());
}

// FUNCION MOSTRA/AMAGA EL ZÀPING
function toggleMiniStreams(){
	
	if(toggleMS){
		$(".tabs_canals").removeClass("tabs_compacte");
		$("#buto_zaping").removeClass("buto_zaping_on");
		$("#buto_zaping").addClass("buto_zaping_off");
		
	}else{
		$(".tabs_canals").addClass("tabs_compacte");
		$("#buto_zaping").removeClass("buto_zaping_off");
		$("#buto_zaping").addClass("buto_zaping_on");

	}
	
	toggleMS = !toggleMS;
}
