function scheduleClass(id){
	if(!isset(id)) return;
	var id = id;
	var current;
	
	var member={};
	var data;
	var host;
	var msgDisplay;
	
	var count=0;

	var isMsgDisplayOpen=false;
	var c1=jml.obj
	var c2=jml.xml.node;
	var c3=jml.events;
	var c4=jml.server;
	function init(){
		var o=getObj(id);
		if(isset(o)){
			member.box=o;
			cacheStructure();
			getData();
		}
	}
	function getData(){
		if(!isset(msgDisplay)){
			msgDisplay=c2.create('DIV',document.body);
			c1.set(msgDisplay,'className','msgDisplay');
			c1.set(msgDisplay,'id','msgDisplayContainer');
		}
		setDisplayPosition(null,'Téléchargement en cours...');
		var cx=new c4.connection();
		cx.url=host.filesPath+'schedule_0'+count+'.txt';
		cx.data={};
		cx.onLoad=function(dta){
			if(isset(dta)){
				data=decode(dta);
				setDisplayPosition(null,null);
				displayData(0,true);
			}
		}
		cx.onError=function(elementId,msg){
		
			setDisplayPosition(null,'Horaire non-disponible<br /><a href="javascript:var a1=jml.obj.set(\'msgDisplayContainer\',\'display\',\'none\');var a1=jml.obj.set(\''+id+'\',\'alpha\',\'100\');">Cliquez ici</a> pour fermer cette fenêtre.');
			
		};
		cx.connect();		
	}
	function setDisplayPosition(e,s){
		if(isset(s)){
			c1.set(msgDisplay,'innerHTML',s);
			c1.set(id,'alpha','20');
			c1.set(msgDisplay,'display','block');
			c1.set(msgDisplay,'width',(c1.get(id,'offsetWidth')-2-20)+'px');
			c1.set(msgDisplay,'left',(c1.get(id,'offsetLeft')-1)+'px');
			c1.set(msgDisplay,'top',(c1.get(id,'offsetTop')+(c1.get(id,'offsetHeight')/2)-(c1.get(msgDisplay,'offsetHeight')/2))+'px');
			isMsgDisplayOpen=true;
		}else{
			c1.set(id,'alpha','100');
			c1.set(msgDisplay,'innerHTML','');
			c1.set(msgDisplay,'display','none');
			isMsgDisplayOpen=false;
		}
	}
	function displayData(n,b){
		if(isMsgDisplayOpen) return;
		var b1=true;
		
		var n1 = current + (n*0.5);
		
		if(n1==24){
			if(count<6){
				count++;
				b1=false;
				n1=0;
			}else{
				n1=23.5;
			}
		}
		if(n1==-0.5){
			if(count>0){
				count--;
				b1=false;
				n1=23.5;
			}else{
				n1=0;
			}
		}

		current  = n1;
		var n3=Math.floor(current);
		var n4=Math.abs(n3-current)*60;

		if(b){
		
			if(b1){
				c1.set(member.date,'innerHTML',data.date);	
				c1.set(member.time,'innerHTML',(n3<10?'0'+n3:n3)+'h'+(n4<10?'0'+n4:n4));
				for(var i in data.schedule){
					c1.set(member.channel[lower(i)],'innerHTML',data.schedule[i][n3][n4].title);
				}
			}else{
				getData();
			}
			
		}
	}
	function cacheStructure(){
		var o=member.box;
		member.date=c2.byPath('0.0.0.0',o);
		member.time=c2.byPath('1.0.0.1.2',o);
		member.channel={};
		member.channel.src=c2.byPath('1.0.1.1',o);
		member.channel.tva=c2.byPath('1.0.2.1',o);
		member.channel.tqs=c2.byPath('1.0.3.1',o);
		member.channel.rds=c2.byPath('1.0.4.1',o);
		member.channel.tv5=c2.byPath('1.0.5.1',o);
		member.channel.tqc=c2.byPath('1.0.6.1',o);
	}
	return {
		$:function(){
			host=this;
			c3.add(window,'load',init);
			return this;
		},
		filesPath:null,
		getNext:function(){displayData(1,true);},
		getPrevious:function(){displayData(-1,true);},
		setTime:function(o){
			var n1 = o.minute;
			if(n1>0&&n1<30){
				o.minute=30;
				o.hour+=1;
			}else{
				if(n1==0){
					o.hour+=1;
				}else{
					o.minute=0;
					o.hour+=2;
				}
			}
			current = o.hour + o.minute/60;
		},
		setDisplayPosition:setDisplayPosition
	}.$();
}
