// add colors to event list items
$(function() {
	$('ul.event-list li').each(function(i) {
		$(this).addClass("r"+(1+i%4));
	});
	
	// form submit control
	$("form").submit(function() {
		var valid = true;
		$("p.error").each(function(){$(this).remove();});
		$("li.error").each(function(){$(this).removeClass("error");});
		$(this).find(":input, :radio, :checkbox").each(function() {
			var v = validate_field($(this));
			var o = (v.obj==undefined)? $(this).get(0) : $(v.obj).get(0);
			var t = o.nodeName.toLowerCase();
			if (!v.valid) {
				valid = false;
				outerLi = $(o).parent().parent();
				outerLi.addClass("error");
				outerLi.append("<p class='error'>"+v.msg+"</p>");
			}
		});
		return valid;
	});
	
	
});

function validate_field(o) {
	var v = {valid:false, msg:""};
	
	switch($(o).attr("name")) {
			
		case "navn":
			v.valid = ($(o).val().match(pattern.fullname))? true:false;
			v.msg = "Du skal indtaste både for- og efternavn";
			break;
		
		case "email":
			v.valid = ($(o).val().match(pattern.email))? true:false;
			v.msg = "Du skal indtaste en gyldig e-mail-adresse";
			break;
		
		case "phone":
			v.valid = ($(o).hasClass("no-validation") || $(o).val().match(pattern.dkphone))? true:false;
			v.msg = "Det indtastede telefonnummer er ikke gyldigt";
			break;
	
		case "kommentar":
			v.valid = ($(o).val()!="")? true:false;
			v.msg = "Dette felt skal udfyldes. Indtast en værdi.";
			break;
			
		default:
			v.valid = true;
			break;
	}
	return v;
}

var pattern = {
	"email":			/^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/, // any email address
	"letters":			/^([a-zA-Z\u0080-\u00FF]+)$/, // only letters
	"lettersnumbers": 	/^([a-zA-Z\u0080-\u00FF0-9]+)$/, // will validate letters and/or numbers
	"lettersspace":		/^([a-zA-Z\u0080-\u00FF- ]+)$/, // only letters and spaces
	"numbers":			/^\d+$/, // only numbers
	"float":			/^\d+(,|\.)?(\d+)?$/, // only numbers
	"dkphone":			/^(\d{8})(.*)/,
	"dkzip":			/^(\d{3,4})$/, 
	"date": 			/^([0-2]?[1-9]|[3][0,1]{1})(\/(([1]{1}[0-2]|[0]?[1-9]))\/|\.(([1]{1}[0-2]|[0]?[1-9]))\.| (([1]{1}[0-2]|[0]?[1-9])) |-(([1]{1}[0-2]|[0]?[1-9]))-)(\d{4}|\d{2})$/, // DD[/. ]MM[/. ]YY(YY)
	"varchar":			/.+/, // At least one character
	"fullname":			/([a-zA-Z\u0080-\u00FF]{2,}) ([a-zA-Z\u0080-\u00FF]{2,})/ // First- and lastname
}
	


