Array.implement({
	getFirst: function(){
		if(this.length == 0){
			return null;
		}
		return this[0];
	}
});
window.addEvent('domready', function(){
	if($('signmore') != null){
		$('signmore').addEvent('click', function(e){
			e.stop();
			$$('form.subscribe').setStyle('display', 'block');
		});
	}
	loadCalendarNextEvent();
	
	var doCalenderWithDate = false;
	
	try{
		if( (dateMonth != '') && (dateYear != '') )
			doCalenderWithDate = true;
			
	}catch(e){};
	
	if(doCalenderWithDate == true){
		loadCalendar(dateMonth, dateYear);
	}else{
		loadCalendar();
	}
	$$('form.subscribe').addEvent('submit', function(e){
		e.stop();
		var error = validateform(this);
		if(!error){
			//submit form ajax
			form = this;
			this.set('send', {
				onComplete : function(response){
					if(isNaN(response)){
						alert('Feil i sending av mail');
					}else{
						$$('div.confirmation').setStyle('display', 'block');
						$$('form.subscribe input[type=text]').set('value', '');
						$$('form.subscribe textarea').set('value', '');
						form.setStyle('display', 'none');
						scroll(0,0);

					}
				}
			});
			this.send();
		}
	});
});
var error;
validateform = function(form){
	error = false;
	form.getChildren('fieldset').each(function(fieldset){
		fieldset.getChildren('input[type=text]').each(function(textelement){
			var elError = false;
			switch(textelement.get('rel')){
				case 'alpha' : elError = alpha(textelement);break;
				case 'alphanumeric' : elError = alphanumeric(textelement);break;
				case 'email' : elError = email(textelement);break;
				case 'numeric' : elError = numeric(textelement);break;
				default : alert(textelement.get('rel'));break;
			}
			if(elError){
				error = true;
				textelement.addClass('error');
			}else{
				textelement.removeClass('error');
			}	
		});
	});
	//we want to check if at least monday or tuesday is checked.
	if((form.getElement('input[name=monday]:checked') != null && form.getElement('input[name=monday]:checked').value != 'none')||(form.getElement('input[name=tuesday]:checked') != null && form.getElement('input[name=tuesday]:checked').value != 'none')){
		$$('form.subscribe p.error').setStyle('display', 'none');
	}else{
		$$('form.subscribe p.error').setStyle('display', 'block');
		error = true;
	}
	return error;
}
var alphaMatch = /^[ a-zA-Z\u00E6\u00C6\u00F8\u00D8\u00E5\u00C5]+$/;
var alphanumericMatch = /^[ 0-9a-zA-Z\u00E6\u00C6\u00F8\u00D8\u00E5\u00C5]+$/;
alpha = function(element){
	var value = element.get('value');
	if(value.length < 1){
		return true;
	}else if(!value.match(alphaMatch)){
		return true;
	}
	return false;
}
numeric = function(element){
	var value = element.get('value');
	if(value.length < 4){
		return true;
	}else if(!value.match(/^[0-9]+$/)){
		return true;
	}
	return false;
}
alphanumeric = function(element){
	var value = element.get('value');
	if(value.length < 1){
		return true;
	}else if(!value.match(alphanumericMatch)){
		return true;
	}
	return false;
}
email = function(element){
	var value = element.get('value');
	if(value.length < 6){
		return true;
	}else if(!value.match(/[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,4}/)){
		return true;
	}
	return false;
}
