$(function(){
	$('#modForm').submit(function(e){
		e.preventDefault();
		var $form = $(this),
			cont = modForm_validate($form),
			ser = $form.serialize();
			
		if (!cont){
			return false;
		}
 
		$('#formMod .thankyou').remove();
		
		$.ajax({
			data: ser,
			type: 'POST',
			url: $form.attr('action'),
			success: function(xml){
				//kolla vad msg s\u00E4ger och rensa formul\u00E4ret
				$form[0].reset();
				if ($(xml).find('msg').text() != ''){
					// slide down tacktexten med en passande bakgrund
					$form.after('<p class="thankyou">'+ $(xml).find('msg').text() +'</p>');
					$('#formMod .thankyou').slideDown('slow');
					//alert($(xml).find('msg').text());
				}
				else {
					//skriv n\u00E5got default om ingen tacktext finns?
				}
				
				
			},
			error : function(){
			}
		});
	});
	
	function modForm_validate($form){
		//validera p\u00E5 utsidan, n\u00E4r det anv\u00E4nds av en vanlig anv\u00E4ndare
		// valideringsfunktion: tittar om f\u00E4ltet ska valideras och g\u00F6r i s\u00E5 fall det beroende p\u00E5 typ
		var regMail = /[\w-.]+@(?:[\w-]+\.)+[a-zA-Z]{2,4}/;
		var regAlpha = /[^a-\u00F6A-\u00D6\s]/;
		var regNum = /[\D]/;
		
		var cont = true;

		$('.modForm_error').removeClass('modForm_error');
		$('.modForm_alert').remove();

		//check mandatory
		$form.find('div :input').each(function(i, v){
			if ($(v).hasClass('mandatory') && $(v).val() == ''){
				$(this).addClass('modForm_error').after('<span class="modForm_alert">Obligatorisk</span>');
				cont = false;
			}
		});
		
		//validerar checkboxar och radiosar:
		$form.find('div ul.checkbox,div ul.radio').each(function(i,v){
			var $v = $(v);
			var ismandatory = $v.find('li input.mandatory:first').length;
			if ( ismandatory && $v.find('li input:checked').length == 0 ){
				$v.siblings('span').addClass('modForm_error').append('<span class="modForm_alert">&nbsp;&nbsp;Obligatorisk</span>');
				//$v.find('li').addClass('modForm_error').append('<span class="modForm_alert">&nbsp;&nbsp;Obligatorisk</span>');
				//$(this).addClass('modForm_error').after('<span class="modForm_alert">Obligatorisk</span>');
				cont = false;
			}
		});

		//forts\u00E4tter bara med validering om allt obligatoriskt fyllts i
		if (cont){ 
			//check validation
			$form.find('div :input[type="text"]').each(function(i, v){
				//console.log('input: ', v);
				var val = $(this).val();
				
				if ($(this).hasClass('validate_mail')){
					//validera e-mail
					if (!regMail.test(val)){
						//console.log('invalid');
						$(this).addClass('modForm_error').after('<span class="modForm_alert">Validering misslyckades</span>');
						cont = false;
					}
					else{
						//console.log('valid');
	
					}
				}
				else if ($(this).hasClass('validate_num')){
					//validera num
					if (regNum.test(val)){
						//console.log('invalid, inneh\u00E5ller icke-numeriska tecken');
						$(this).addClass('modForm_error').after('<span class="modForm_alert">Validering misslyckades</span>');
						cont = false;
					}
				}
				else if ($(this).hasClass('validate_alpha')){
					//validera alpha
					if (regAlpha.test(val)){
						//console.log('invalid');
						$(this).addClass('modForm_error').after('<span class="modForm_alert">Validering misslyckades</span>');
						cont = false;
					}
				}
				
			});
		}
		return cont;
	}
	
	
});
