(function($) {
	
	$(document).ready(function() {
		
	    $('#social-newsletter label').each(function(){
			$('#'+$(this).attr('for')).attr('value', jQuery(this).text());
			$(this).css('display', 'none');
			$('#'+$(this).attr('for')).keydown(function(){
				if($(this).attr('value') == $('label[for='+this.id+']').text()) 
					$(this).attr('value', '')
			});
			$('#'+$(this).attr('for')).blur(function(){
				if($(this).attr('value') == '') 
					$(this).attr('value', $('label[for='+this.id+']').text())
			});
		});

		$(".wpcf7-form").each(function(){
			$(this).attr('action', '?lang='+$('html').attr('lang').substr(0, 2));
		});
		
		/*
			Extra validation for CF7 forms
		*/
		$("form.wpcf7-form").submit(function(){
			
			$(this).find("span.error").remove();
			
			var errors = 0;
			
			$(this).find("input, textarea").each(function(){
				
				// Validate email
				if($(this).hasClass("wpcf7-validates-as-email")
				&& !(/^[!-'*+=?{-~\/-9A-Z^-z-]+(\.[!-'*+={-~\/-9A-Z^-z-]+)*@[!#$%&'*+"\/=?^_`{|}~0-9A-Za-z-]+\.[!-'*+={-~\/-9A-Z^-z-]{2,}/).test(this.value)) {
					$(this).addClass("error");
					$(this).after("<span class='error sv_SE'>Fältet måste innehålla en e-postadress</span><span class='error en_EN'>This field must contain a valid email</span>");
					errors++;
					return;
				}
				
				// Validate numbers (this requires the number class to be manually added to the field in CF7 settings)
				if($(this).hasClass("number") && !(/^[0-9]+$/).test(this.value) && this.value != '') {
					$(this).addClass("error");
					$(this).after("<span class='error sv_SE'>Fältet får endast innehålla siffror</span><span class='error en_EN'>This field must cointain numbers</span>");
					errors++;
					return;
				}
				
				if($(this).hasClass("wpcf7-validates-as-required") && this.value == "") {
					$(this).addClass("error");
					$(this).after("<span class='error sv_SE'>Fältet får inte vara tomt</span><span class='error en_EN'>This field must not be empty</span>");
					errors++;
					return;
				}
				
			});	
			
			return errors > 0 ? false : true;
		});
	
	});
	
})(jQuery);
