Event.observe(window, 'load', function() {

	   var n = new snapscroller($('stage'));
	   var w = new weather($('weather'));

	   $$('.scrollto').each(function(el) {
				el.observe('click', function() {
							 n.scrollto('#' + el.readAttribute('title'));
				});
		});   
});

var snapscroller=Class.create({
	initialize: function(stage) {
		
		this.options = Object.extend({
			   'layerclass': 'layer',
			   'duration': 3,
			   'layerdistance': 1.2
			  }, arguments[1] || { });		
		
		this.stage = stage;
    	this.layers = this.stage.select(' .'+ this.options.layerclass).reverse();
	},

	scrollto: function(el) {
		el = $$(el)[0];		
			var to = parseInt(el.getStyle('left'));

			var duration = this.options.duration;
			var layerdistance = this.options.layerdistance;
			
			this.aftermove(el);
			this.layers.each(function(el, n) {
				new Effect.Move(el, {
								x: -(to / (layerdistance*n+1)),
								y: 0,
								mode:'absolute',
								transition:  Effect.Transitions.sinoidal,
								duration: duration
					}); /*end move */
			}); /*end move layers */
							
		var result  = pageTracker._trackEvent('Navigation', el.identify());
				
},

	aftermove: function(el) {
		
			$$('#nav td').each(function(td) {
									td.removeClassName('sel');
									if (td.childElements().first().getAttribute('title') == el.id) td.addClassName('sel');
							});
	}
});
var weather = Class.create({

	initialize: function(stage) {
		
		this.options = Object.extend({
			   'layerclass': 'layer',
			   'duration': 5,
			   'holdfor': 15000
			}, arguments[1] || { });

		this.stage = stage;
    	this.layers = this.stage.select('div');

		this.timer = '';
		this.start();
	},

	start: function () {
		var ob = this;
		this.timer = setInterval (function() {
							ob.changeLayer();
							}, this.options.holdfor);	
	},
	stop: function() {
		clearInterval(this.timer);
	},

	changeLayer: function() {
				// CROSS FADE WEATHER			
							var selectedlayer = this.stage.select('.sel').first();					
							var nextlayer = selectedlayer.next();				
							if (!nextlayer) nextlayer = this.stage.childElements().first();	
														
							nextlayer.addClassName('sel');
							new Effect.Appear(nextlayer, { 
										transition:  Effect.Transitions.sinoidal,
										duration: this.options.duration });
							
							selectedlayer.removeClassName('sel');
							new Effect.Fade(selectedlayer, { 
										transition:  Effect.Transitions.sinoidal,
										duration: this.options.duration});		
	}
});