News = function() {
	var listMask;	

	return {

		init : function() {

			var newsRules = {
			    'div#news-filter ul li a': function(a) {
				    Event.stopObserving(element, 'click', News.newsList);
					Event.observe(element, 'click', News.newsList);
				},
				
				'div#news-list ul li a': function(a) {
				    Event.stopObserving(element, 'click', News.showNews);
					Event.observe(element, 'click', News.showNews);
				},
				
				'div#winetip-list ul li a': function(a) {
				    Event.stopObserving(element, 'click', News.showWineTips);
					Event.observe(element, 'click', News.showWineTips);
				}
			};

			Behaviour.register(newsRules);

			News.buildMask();
		},

		buildMask : function() {
			listMask = new EBase.Controls.Mask( {
				parent : 'news-list',
				msg : 'Loading...'
			});
		},
		
		newsList : function(evt) {
			Event.stop(evt);

            $('news-filter').getElementsBySelector('a').each(function(aa) {
                $(aa).removeClassName('selected');
            });
            
			listMask.show();
            
            
			var aEle = Event.element(evt);
            
            $(aEle).addClassName('selected');
            
			if ($(aEle).href != '#') {
				new Ajax.Updater($('news-list'), $(aEle).href, {
					method : 'post',
					parameters : {
						dt : new Date(),
						p : 1
					},
					evalScripts : true,
					onComplete : function() {
						listMask.hide();
					}
				});
			}
		},
		
		showNews: function(evt) {
		    Event.stop(evt);
		    
			var aEle = Event.element(evt);

			
			Modalbox.show($(aEle).href, { width: 850, 			                              			                             
			                              title: $(aEle).readAttribute('rel')});
		},
		
		showWineTips: function(evt) {
		    Event.stop(evt);

		    var aEle = Event.element(evt);
 
			if ($(aEle).href != '#') {
				new Ajax.Updater($('winetip-details'), $(aEle).href, {
					method : 'post',
					parameters : {
						dt : new Date()
					},
					evalScripts : true,
					onComplete : function() {
						
					}
				});
			}

		}
	};

}();

Event.observe(window, 'load', function() {
	News.init();

	Behaviour.apply();
});