var News = new Object();
News.animSpeed = 300;
News.teaserLength = 380;
News.closedHeight = 110;
News.stories = new Array();
News.current = null; 

News.init = function() {
	var i = 0;
	var newsElems = $('content_col_l_inner').getElements('.news_story');
	newsElems.each(function(story) {
		var element = story.getElement('.news_story_inner');
		// Format teaser text
		var aText = element.innerHTML.replace(/<p(?:.|\s)*?>/gi, '');
		if(aText.length > News.teaserLength) {
			aText = aText.split(" ");
			var tText = "";
			while(tText.length < News.teaserLength) {
				tText+= aText.shift().stripWhitespace().trim() + " ";				
			}
			tText = "<p>"+tText.stripWhitespace().trim()+"&hellip;&nbsp;<a class='news_link more' href='javascript:News.toggle("+i+",true)'>more</a></p>";
			// Format full text
			var fText = "";
			var fTextPs = element.getElementsByTagName("p");
			fTextPs[(fTextPs.length - 1)].innerHTML+= " <a class='news_link close' href='javascript:News.toggle("+i+",false)'>close&nbsp;article</a>";
			for(var x = 0; x < fTextPs.length; x++) {
				fText+= "<p>"+fTextPs[x].innerHTML+"</p>";
			}
			var thisStory = {
				fText: 	 fText,
				fHeight: element.offsetHeight + 30,
				tText:	 tText
			}
			element.innerHTML = thisStory.tText;
			var fx = new Fx.Styles(element.parentNode);
			fx.set({
				'height': News.closedHeight
			});
			News.stories[i] = thisStory;
			i++;
		}
	});
	
	if(window.location.search.substring(1) == 'latest') {
		News.toggle(0,true);
	}
};

News.toggle = function(i, bOpen) {
	var oArticle = $('news_story_'+i);
	var oArticleInner = $('news_story_'+i+'_inner');
		
	switch(bOpen) {
		
		case true:
			// Close an open article
			if(News.current != null) {
				News.toggle(News.current, false);
			}
			
			// Open the required article
			var fx = new Fx.Styles(oArticle, {duration:News.animSpeed, wait:false});
			fx.set({
				'background-color': '#ffffff',
				'height': News.closedHeight
			});
			oArticleInner.innerHTML = News.stories[i].fText;
			fx.start({
				'background-color': '#eeeeee',
				'height': News.stories[i].fHeight
			});
			News.current = i;
			break;
			
		case false:
			// Close the required article
			oArticleInner.innerHTML = News.stories[i].tText;
			var fx = new Fx.Styles(oArticle, {duration:News.animSpeed, wait:false});
			fx.start({
				'background-color': '#ffffff',
				'height': News.closedHeight
			});
			News.current = null;
			break;
	}
};

News.checkSignup = function(oForm) {
	var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!emailRegex.test(oForm['signup_text'].value)) {
		return false;
	}
};

window.addEvent('domready', function() {
	News.init();
});
