window.addEvent('domready', function() {
    var cu_portlet = $(document.body).getElement('#comingup');
	var cu_tabs = $$('#comingup .tabs li');
	var cu_blocks = $$('#comingup .programlist');

	$each(cu_blocks, function (asset, index){

		if (!(asset.hasClass('selected'))) { asset.fade('hide'); }

		if (asset.hasClass('selected')) {
			cu_tabs[index].addClass('selected');
		} else {
			cu_tabs[index].removeClass('selected')
		}
		
		cu_tabs[index].addEvents({
			'click': function(){		    
				if (!(cu_tabs[index].hasClass('selected'))) {
					
					var current_comingup = cu_portlet.getElement('div.selected');
					var new_comingup = asset;
					var current_comingup_fx = new Fx.Tween(current_comingup,{'property':'opacity','duration':150});
					var new_comingup_fx = new Fx.Tween(new_comingup,{'property':'opacity','duration':500});
					var new_progs = $$('#comingup #comingup_cat' + index +' .program');
					current_comingup_fx.addEvent('complete',function(){
						cu_portlet.getElement('div.selected').removeClass('selected');
						cu_portlet.getElement('li.selected').removeClass('selected');
						if(cu_portlet.getElement('div.selected div.current')){
						    cu_portlet.getElement('div.selected div.current').removeClass('current');
						}
												
						if(new_progs && new_progs.length > 0){
						    new_progs[0].addClass('current');
						}
						
						cu_portlet.getElement('#comingup_cat' + index).addClass('selected');
						cu_portlet.getElement('#comingup_tab' + index).addClass('selected');
						
						new_comingup_fx.start(0,1);
					});

					current_comingup_fx.start(1,0);
					$clear(CuSwitchTimer);
					
					var np = 1;
					var ni = index;
					if(new_progs.length < 1){
					    np = 0;
					    ni = index+1;
					} 
					CuSwitchTimer = CuFeatureSwitch.delay(15000,cu_portlet,[ni,np]);
				}
			}
		});
	});
		
	
	var CuSwitchTimer;
	var CuMaxSwitchRuns = 3600;
	var CuFeatureSwitch = function(i,prog_idx,j) {
	
		j++;
		
		var progs = $$('#comingup #comingup_cat' + i +' .program');
		if(!progs || progs.length <= prog_idx){
		   //try next
		    i++;
		    if (i >= cu_blocks.length) { i = 0; }
		    prog_idx = 0;
		    progs = $$('#comingup #comingup_cat' + i +' .program');
		}	

		if(j > CuMaxSwitchRuns || (cu_blocks.length < 2 && (!progs || progs.length < 2))) return;

		var current_comingup = cu_portlet.getElement('div.selected');
		var new_comingup = cu_portlet.getElement('#comingup_cat'+i);
		
		var curr_comingup_fx = new Fx.Tween(current_comingup,{'property':'opacity','duration':250});
		var new_comingup_fx = new Fx.Tween(new_comingup,{'property':'opacity','duration':1000});
		
		curr_comingup_fx.addEvent('complete',function(){
			current_comingup.removeClass('selected');
			var more = cu_portlet.getElement('div.selected');
			if(more) more.removeClass('selected');
			cu_portlet.getElement('li.selected').removeClass('selected');
			
			if(current_comingup.getElement('div.current')){
				current_comingup.getElement('div.current').removeClass('current');
			}

            if(cu_portlet.getElement('div.selected div.current')){
				cu_portlet.getElement('div.selected div.current').removeClass('current');
			}//in case somone was sloppy with html
												
			if(progs && progs.length > 0){
				progs[prog_idx].addClass('current');
			}
			
			new_comingup.addClass('selected');
			cu_portlet.getElement('#comingup_tab' + i).addClass('selected');
			
			new_comingup_fx.start(0,1);
		});
		curr_comingup_fx.start(1,0);
		
		var new_prog_idx = prog_idx + 1;
		CuSwitchTimer = CuFeatureSwitch.delay(10000, cu_portlet, [i, new_prog_idx, j]);
	}
	
	CuSwitchTimer = CuFeatureSwitch.delay(7000,cu_portlet,[0,1,0]);
		
	
});