
(function () {

	// Namespace variable is SKON, through this you reach all of the library 
	var window = this;
	var SKON = {};
	window.SKON = SKON;
	
	/*
	$()-function is just a shorthand for document.getElementById()
	@param id : element id in document
	@return : reference to the element with that id
	*/
	var $ = function (id) {
		return document.getElementById(id);
	};
	
	SKON.$ = $;
	
	SKON.validator = {};
	
	SKON.validator.validateDate = function (date) {
		var regexp = /^\d{4}-\d{2}-\d{2}$/;
		if (regexp.test(date)) {
			var month = +date.substr(5, 2);
			var day = +date.substr(8, 2);
			
			return month >= 1 && month <= 12 && day >= 1 && day <= 31;
		}
		else {
			return false;
		}
	};
	
	SKON.validator.testValidateDate = function () {
		var results = "";
		results += SKON.validator.validateDate("2009-08-28");
		results += "\n" + SKON.validator.validateDate("09-08-28");
		results += "\n" + SKON.validator.validateDate("090828");
		results += "\n" + SKON.validator.validateDate("");
		results += "\n" + SKON.validator.validateDate("");
		results += "\n" + SKON.validator.validateDate("");
		
		return results;	
	};
	
	/** Very naive email validation, basically [something]@[something].[something] matches.
	 *  It's still better than nothing. Validating all the possible cases are hard... */
	SKON.validator.validateEmail = function (email) {
		var regexp = /^.+@.\..+$/;
		
		return regexp.test(email);
	};
	
	SKON.validator.testValidateEmail = function () {
		var results = "";
		results += SKON.validator.validateEmail("johan.jortso@j.se");
		results += "\n" + SKON.validator.validateEmail("j@jse");
		results += "\n" + SKON.validator.validateEmail("jaj.se");
		results += "\n" + SKON.validator.validateEmail("j@jse");
		results += "\n" + SKON.validator.validateEmail("j@");
		results += "\n" + SKON.validator.validateEmail("@j.se");
		
		return results;
	};
	
	SKON.validator.validateTime = function (time) {
		var regexp = /^\d{2}:\d{2}$/;
		var match = regexp.test(time);
		if (!match) {
			return false;
		}
		var hours = +(time.split(":")[0]);
		var minutes = +(time.split(":")[1]);
		
		return hours >= 0 && hours <= 23 && minutes >= 0 && minutes <= 59;
	};	
	
	/*
		Helper function.
		Checks if a character is part of a numeric value or not
	*/
	function isNumeric(sText) {
		var ValidChars = "0123456789.";
		var IsNumber=true;
		var Char;
		
		for (i = 0; i < sText.length && IsNumber == true; i++) { 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber = false;
			}
		}
		
		return IsNumber;
   }

})();


/**
 * TODO
 * @return
 */
function initMenu() {
	$('#menu ul:first-child li').click(function(e) {
		if ($(this).attr('id') === 'home') {
			return true;
		}
		$('.menuSelected').removeClass("menuSelected");
		$(this).addClass("menuSelected");
		$('#submenu ul').hide();
		var submenu =  "#" + $(this).attr('id') + "Sub";
		$('.submenuSelected').removeClass('submenuSelected');
		//$(submenu).children(":first").addClass("submenuSelected");
		$(submenu).show();
		
		return false;
	});
	$('#submenu li').click(function(e) {
		$('.submenuSelected').removeClass('submenuSelected');
		var choice = "#" + $(this).attr('id');
		$(choice).addClass("submenuSelected");
	
		//return false;
	});
	$('#memberlogin').click(function(e) {
		$('#loginform').slideToggle();
	
		return false;
	});
}

/*
Dialog box to confirm adding new information on the admin page.
*/
function add_dialog() {
	var agree = confirm("Är informationen korrekt, vill du lägga till en ny post?");
	if (agree) {
		return true;
	}
	else {
		return false;
	}
}

/*
Dialog box to confirm changes made to information on the admin page.
*/
function update_dialog() {
	var agree = confirm("Vill du verkligen uppdatera informationen?");
	if (agree) {
		return true ;
	}
	else {
			return false;
	}
}

/*
Dialog box to confirm deleting information on the admin page.
*/
function delete_dialog() {
	var agree=confirm("Vill du verkligen ta bort angiven post?");
	if (agree) {
		return true ;
	}
	else {
			return false;
	}
}
