	jQuery.noConflict();
	jQuery(document).ready(function($)
	{		
		// Things to run on startup
		var currentStep = 1;
		var maxStep = 4;
		$('#cform_cont').children().hide();
		$('#cform_n1').css('font-weight', 'bold');
		$('#cform_step1').show();
		$('#cform_foregaende').hide();
		$('#cform_thanks').hide();
		
		// When clicking the step texts
		$('#cform_steps').children().click
		(
			function()
			{		
				var stepid = $(this).attr('id');
				var stepnumber = stepid.replace(/cform_n/, "", stepid);
				
				if(stepnumber > 1)
				{
					var val = validateStep(stepnumber-1);
					if(val)
					{
						currentStep = stepnumber;
						toggleArrowButtons();
					}
				}
				else
				{
					currentStep = stepnumber;
					toggleArrowButtons();
				}
			}
		);
		
		// When user clicks nästa button
		$('#cform_nasta').click
		(
			function()
			{
				var val = validateStep(currentStep);
				if(val)
				{
					currentStep++;
					toggleArrowButtons();
				}
			}
		);
		// When user clicks föregående button
		$('#cform_foregaende').click
		(
			function()
			{
				currentStep--;
				toggleArrowButtons();
			}
		);
		// Check to see if both arrow buttons are needed
		var toggleArrowButtons = function()
		{
			$('#cform_foregaende').show();
			$('#cform_nasta').show();
			if(currentStep == 1)
				$('#cform_foregaende').hide();
			if(currentStep == maxStep)
				$('#cform_nasta').hide();
			
			hideAndShow();
		}
		// Validate step to see if the user is eligible to continue
		var validateStep = function(n)
		{
			var val = true;
			var reqText = "Detta fält är obligatoriskt!";
			
			if(n == 1)
			{
			// Cleans the error messages before validation
				$('#cform_step1 span').text("");
				
				if($('#cform_namn').val() == "")
				{
					$('#cform_namnmsg').text(reqText);
					val = false;
				}
				if($('#cform_adress').val() == "")
				{
					$('#cform_adressmsg').text(reqText);
					val = false;
				}
				if($('#cform_postnummer').val() == "")
				{
					$('#cform_postnummermsg').text(reqText);
					val = false;
				}
				if($('#cform_ort').val() == "")
				{
					$('#cform_ortmsg').text(reqText);
					val = false;
				}
				if($('#cform_telefon').val() == "")
				{
					$('#cform_telefonmsg').text(reqText);
					val = false;
				}
				var regexp = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
				var validemail = regexp.test($('#cform_epost').val());
				if(!validemail)
				{
					$('#cform_epostmsg').text("E-postadress ej godkänd.");
					val = false;
				}
			}
			else if(n == 2)
			{
				if(validateStep(1))
				{
					$('#valtor_error').text('');
					var regexp = /^[\d,]+$/;
					var valtor = 
					$('#cform_step2 input').map(function()
					{
						if($(this).val() != "")
						{
							if(regexp.test($(this).val()))
								return $(this).val();
							else
							{
								val = false;
								$('#valtor_error').text('Endast siffror och komman är tillåtna.');
							}
						}
					}).get().join('');
					
					if(valtor == "")
					{
						val = false;
						$('#valtor_error').text('För många fält är tomma.');
					}
				}
				else
					val = false;
			}		
			else if(n == 3)
			{
				if(validateStep(2))
				{
					$('#bel_error').text('');
					
					var bel = 
					$('#cform_step3 .cformtext').map(function()
					{
						if($(this).val() != "")
							return $(this).val();
					}).get().join('');
					
					if(bel == "")
					{
						val = false;
						$('#bel_error').text('För många fält är tomma.');
					}
					
					var regexp = /^[\d]$/;
					$('#cform_step3 .cformtextpetite').each(function (i)
					{
						if($(this).val() != "")
						{
							if(!regexp.test($(this).val()))
							{
								val = false;
								$('#bel_error').text('Endast siffror är tillåtna som koordinater.');
							}
						}
					});
				}
				else
					val = false;
			}
			else if(n == 4)
			{
				if(validateStep(3))
				{
					
				}
				else
					val = false;
			}
			
			return val;
		}
		// Hides all steps and shows the current one only
		var hideAndShow = function()
		{
			var newStep = "#cform_n"+currentStep;
			$('#cform_steps').children().css('font-weight', 'normal');
			$(newStep).css('font-weight', 'bold');	
			$('#cform_cont').children().hide();
			newStep = "#cform_step"+currentStep;
			$(newStep).fadeIn();
		}
		
		// Autotab for coordinates
		for(var a = 1; a <= 4; a++)
		{
			for(var i = 1; i <= 13; i++)
			{
				var current = '#bel' + a + '_k' + i;
				var next = 'bel' + a + '_k' + (i+1);
				$(current).autotab({ target: next, format: 'numeric' });
			}
		}
		$('#bel1_k14').autotab({ target: 'bel2', format: 'numeric' });
		$('#bel2_k14').autotab({ target: 'bel3', format: 'numeric' });
		$('#bel3_k14').autotab({ target: 'bel4', format: 'numeric' });
		
		// Sends the form!
		$('#cform_submit').click
		(
			function()
			{
				if(validateStep(maxStep))
				{
					
					var ntoken = $('#ntoken').val();
					var itoken = $('#itoken').val();
					var otoken = $('#otoken').val();
					var token = $('#token').val();
					
					var namn = $('#cform_namn').val();
					var adress = $('#cform_adress').val();
					var postnummer = $('#cform_postnummer').val();
					var ort = $('#cform_ort').val();
					var telefon = $('#cform_telefon').val();
					var epost = $('#cform_epost').val();
					var meddelande = $('#cform_meddelande').val();
					var bekraftelse = 0;
					if($('#cform_bekraftelse').is(':checked'))
						bekraftelse = 1;

					// Vanliga värdena
					var values = 'ntoken=' + ntoken + '&itoken=' + itoken + '&otoken=' + otoken + '&token=' + token + '&namn=' + namn + '&adress=' + adress + '&postnummer=' + postnummer + '&ort=' + ort + '&telefon=' + telefon + '&epost=' + epost + '&meddelande=' + meddelande + '&bekraftelse=' + bekraftelse;
					
					// Virken och tillhörande belägenhet
					$('#cform_step2 .cformtextsmall').each(function (i)
					{
						var virke = $(this).attr('id');
						if($(this).val() != "")
						{
							values += '&' + virke + '=' + $(this).val();
							for(var i=1; i<=4; i++)
							{
								var virke_n = virke + '_' + i;
								values += '&' + virke_n + '=' + $('#'+virke_n).val();
							}	
						}
       				});

					// Belägenheter
					for(var a = 1; a <= 4; a++)
					{
						var bel = 'bel'+a;
						if($('#'+bel).val() != "")
						{
							if($('#'+bel).val() != "")
							{
								values += '&' + bel + '=' + $('#'+bel).val();
							}
						}
					}
					
					// Koordinater
					for(var a = 1; a <= 4; a++)
					{
						for(var b = 1; b <= 14; b++)
						{
							var kord = 'bel' + a + '_k' + b;
							if($('#'+kord).val() != "")
								values += '&' + kord + '=' + $('#'+kord).val();
						}
					}
					
					$.ajax
					({
						url: 'http://www.jga.se/ci/oribiforms/oribiforms.php/spamcheck/jga2',
						type: 'post',
						data: values,
						success: function(result)
						{
							$('#cform_body').hide();
							$('#cform_thanks').fadeIn();
						}
					});
				}
			}
		);
	});
