function isNumeric(text) {
	if (text == undefined || text.length == 0) {
		return false;
	}
	var validChars = "0123456789.";
	for (i = 0; i < text.length; i++) {
		var char = text.charAt(i);
		if (validChars.indexOf(char) == -1) {
			return false;
		}
	}
	return true;

}

function getHash() {
	var hash = window.location.hash;
	if (hash != "") {
		hash = hash.substring(1);
	}
	return hash;
}

function isYearId(id) {
	return id.indexOf('year') == 0;
}

function isNewsId(id) {
	return id.indexOf('news') == 0;
}

function extractYearFromHash(hash) {
	var YEAR = 'year';
	return hash.substring(YEAR.length);
}

$(document).ready( function() {
	setLIStyles('newsSubmenu');
	var hash = getHash();
	if (hash != '') {
		if (isNewsId(hash)) {
			var yearId = $('#' + hash).parent().attr('id');
			var NEWS_ID_PREFIX = 'newsContent';
			var idPos = yearId.indexOf(NEWS_ID_PREFIX) + NEWS_ID_PREFIX.length;
			var year = yearId.substring(idPos);
			changeYearClientSide(year);
			$.scrollTo('#' + hash);
		} else if (isYearId(hash)) {
			changeYearClientSide(extractYearFromHash(hash));
		}
	} else {
		updateSelection();
	}
});

function changeYear(value) {
	var hiddenInput = document.getElementById('newsForm:selectedYear');
	if (hiddenInput.value != value) {
		hiddenInput.value = value;
		$('#newsContentHolder').css( {
			'display' :'none'
		});

		O$.ajax.request(undefined, undefined, {
			render : 'newsForm:newsContent',
			execute: 'newsForm:selectedYear',
			onajaxend : changeYearCallback,
			immediate :true
		});
	}
}

function changeYearCallback() {
	updateSelection();
	DLINK.highlight(document.getElementById("newsForm:newsContent"));
}

function changeNewsIdCallback() {
	changeYearCallback();
	$.scrollTo('#news' + getHash());
}

function removeSelection() {
	$('#newsSubmenu li span').removeClass('selected');
}

function updateSelection() {
	removeSelection();
	var selectedYear = getSelectedYear();
	$('#newsSubmenu li span#' + selectedYear).addClass('selected');
	$('#newsContentHolder').slideDown('normal');
}

function setLIStyles(ulId) {
	var startHeight = 2.5;
	var endHeight = 0.8;
	var numberOfYears = $("#" + ulId + " li").length;
	if (numberOfYears != 0) {
		var divider = Math.pow(startHeight / endHeight, 1 / numberOfYears);
		startHeight = startHeight * divider;
		var yearHeight = startHeight;
		for ( var counter = 0; counter < numberOfYears; counter++) {
			yearHeight = yearHeight / divider;
			$('#' + ulId + ' li:eq(' + counter + ')').css( {
				'font-size' :(yearHeight + 'em')
			});
		}
	}
}

function getSelectedYear() {
	var itemValue = document.getElementById("newsForm:selectedYear").value;
	if (itemValue == undefined || itemValue == '') {
		itemValue = $('#newsSubmenu li:eq(0) span a').html();
	}
	return itemValue;
}

function changeYearClientSide(year) {
	var hiddenInput = document.getElementById('newsForm:selectedYear');
	hiddenInput.value = year;
	$('#newsContentHolder div.news').hide();
	$('#newsContent' + year).show();
	updateSelection();
}
