var loader=new YAHOO.util.YUILoader({
	require:["slider"],
	loadOptional:true,
	onSuccess:function(){
		var Event=YAHOO.util.Event,
			Dom  =YAHOO.util.Dom,
			lang =YAHOO.lang,
			slider,
			station;
		Event.onDOMReady(function(){
			// radio stations, div el, hz, bandwidth
			station=[
				["artists",53.8,3],
				["reception",60.1,3],
				["history",71,3],
				["preserve",85.4,3],
				["todayfm",106.7,20],
				["dj1",138.6,5],
				["dj2",154,5],
				["dj3",171.5,5],
				["requests",180,3]
			];
			// slider
			slider=YAHOO.widget.Slider.getHorizSlider(
				"slider-bg",
				"slider-thumb",
				0, //topConstraint
				220, //bottomConstraint
				1	// increment
			);
			slider.tune=function(z){
				for(var i=0,l=station.length,a;i<l;i++){
					if(Math.abs(z-station[i][1])<station[i][2]){
						a=Math.abs(z-station[i][1]);
						YAHOO.util.Dom.setStyle(station[i][0],'display','block');
						YAHOO.util.Dom.setStyle(station[i][0],'opacity',1-a/station[i][2]);
					}else YAHOO.util.Dom.setStyle(station[i][0],'display','none');
				}
			};
			slider.subscribe("change",function(x){
				// aprox interpolation formula maps slider x to dial
				var z=Math.round((53.3+.15*x +.002*x*x -.265E-6*x*x*x)*10)/10;
				slider.tune(z);
				Dom.get("slider-value").innerHTML=z; // add x to determine reverse values
			});
			slider.setValue(131);
			// setValue, false here means to animate if possible
			Event.on("play0"  ,"click",function(e){slider.setValue(131,false);});
			Event.on("play1"  ,"click",function(e){slider.setValue(3  ,false);});
			Event.on("play2"  ,"click",function(e){slider.setValue(32 ,false);});
			Event.on("play3"  ,"click",function(e){slider.setValue(64 ,false);});
			Event.on("play4"  ,"click",function(e){slider.setValue(95 ,false);});
			Event.on("playDJ1","click",function(e){slider.setValue(174,false);});
			Event.on("playDJ2","click",function(e){slider.setValue(192,false);});
			Event.on("playDJ3","click",function(e){slider.setValue(211,false);});
			Event.on("playRequests","click",function(e){slider.setValue(220,false);});
		});
    }
});
loader.insert();
