$(document).ready(function(){
	// umbraco sucks sometimes..........!
	$("#textarea").val('');
	$("#textarea").html('');
	$("#textarea_kommentar").val('');
	$("#textarea_kommentar").html('');
	
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
 	var eanReg = /^[0-9]+$/;

	var validFieldFn = function(fieldSelector, emptyErrorStr, regex, regexErrorStr)
	{
		var field = $(fieldSelector);
		if (field.val() == '' || field.val() == emptyErrorStr)
		{
			field.val(emptyErrorStr);
			return false;
		}
		else if (regex != undefined && (!regex.test(field.val()) || field.val() == regexErrorStr))
		{
			field.val(regexErrorStr);
			hasError = true;
		}
		else
			return true;
	};
      	
	var makePostableFn = function(str)
	{
		return str.replace("'", "\\'");
	};
	
	$("input").bind("click focus", function()
	{
		if ($(this).val() == 'Ange e-post' || 
	   		$(this).val() == 'Ange korrekt e-postadress' || 
	   		$(this).val() == 'Ange namn' || 
	   		$(this).val() == 'Ange telefonnummer' || 
	   		$(this).val() == 'Ange beskrivning' ||
	   		$(this).val() == 'Ange eankod' ||
	   		$(this).val() == 'Ange korrekt kod' ||
	   		$(this).val() == 'Ange adress' ||
	   		$(this).val() == 'Ange bäst-före datum' ||
  	   		$(this).val() == 'Ange gatuadress' ||
			$(this).val() == 'Ange postnummer' ||
			$(this).val() == 'Ange postort' ||
			$(this).val() == 'Ange youtube-länk')
		{
			$(this).val('');
		}

	});
	
	$("textarea").bind("click focus", function()
	{
		if ($(this).val() == 'Ange beskrivning' ||
			$(this).val() == 'Ange kommentar')
		{
			$(this).val('');
		}
	});

	$("#submit").click(function()
	{
		try
		{
			console.log("message_complaint_sent: " + bramhultsApp.contact.message_complaint_sent);
		}
		catch (err) 
		{
			
		}

		var hasError = false;

		if ($("#epost").val() == '' || !emailReg.test($("#epost").val()))
		{
			$("label[for = 'epost']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'epost']").removeClass('invalidInput');
		
		if ($("#namn").val() == '') 
		{
			$("label[for = 'namn']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'namn']").removeClass('invalidInput');

		if ($("#addr").val() == '')
		{
			$("label[for = 'addr']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'addr']").removeClass('invalidInput');

		if ($("#postnr").val() == '')
		{
			$("label[for = 'postnr']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'postnr']").removeClass('invalidInput');

		if ($("#postort").val() == '')
		{
			$("label[for = 'postort']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'postort']").removeClass('invalidInput');

		if ($("#tel").val() == '') 
		{
			$("label[for = 'tel']").addClass('invalidInput');
			hasError = true;
		}
		else
			$("label[for = 'tel']").removeClass('invalidInput');

		if ($("#textarea").val() == '')
		{
			$("#description_label").addClass('invalidInput');
			hasError = true;
		}
		else
			$("#description_label").removeClass('invalidInput');
		
		if ($("#product").val() == '' && (
			$('#storlek :selected').val() != '-1' ||
			($("#inkopsstalle").val() != '') ||
			($("#bastfore").val() != '') /*||
			($("#eankod").val() != '' && $("#eankod").val() != 'Ange eankod')*/)) 
		{
			hasError = true;
		}

		// Validate product fields if a product is selected
		if ($('#product').val() != '')
		{
			if ($('#storlek :selected').val() == '-1') 
			{
				hasError = true;
				$('#storlek :selected').html("Välj storlek");
				$("label[for = 'storlek']").addClass('invalidInput');	
			}
			else
				$("label[for = 'storlek']").removeClass('invalidInput');

			if ($("#inkopsstalle").val() == '' || $("#inkopsstalle").val() == 'Ange inköpsställe')
			{
				$("label[for = 'inkopsstalle']").addClass('invalidInput');
				hasError = true;
			}
			else
				$("label[for = 'inkopsstalle']").removeClass('invalidInput');

			if ($("#bastfore").val() == '' || $("#bastfore").val() == 'Ange bäst-före datum')
			{
				$("label[for = 'bastfore']").addClass('invalidInput');
				hasError = true;
			}
			else
				$("label[for = 'bastfore']").removeClass('invalidInput');

			/*if ($("#eankod").val() == '' || $("#eankod").val() == 'Ange eankod')
			{
				$("label[for = 'eankod']").addClass('invalidInput');
				hasError = true;
			}
			else if (!eanReg.test($("#eankod").val()) || $("#eankod").val() == 'Ange korrekt kod')
			{
				$("label[for = 'eankod']").addClass('invalidInput');
				hasError = true;
			}*/
		}
		else
		{
			$("label[for = 'storlek']").removeClass('invalidInput');
			$("label[for = 'inkopsstalle']").removeClass('invalidInput');
			$("label[for = 'bastfore']").removeClass('invalidInput');
		}

		if(hasError == false) 
		{
			$('#submit').attr("disabled", true); 

			$("#submit").css({ 'background':'url(/media/951/ajax-loader.gif) no-repeat center center' });
			var produkt_namn = makePostableFn($('#product').val());
			var produkt_storlek = makePostableFn($('#storlek :selected').html());
			var produkt_ean = "0000000000000"/*makePostableFn($('#eankod').val());*/
			var produkt_bastfore = makePostableFn($('#bastfore').val());
			var produkt_inkopsstalle = makePostableFn($('#inkopsstalle').val());
			var namn = makePostableFn($('#namn').val());
			var addr = makePostableFn($('#addr').val()) + ", " + makePostableFn($('#postnr').val()) + " " + makePostableFn($('#postort').val());
			var tel = makePostableFn($('#tel').val());
			var epost = makePostableFn($('#epost').val());
			var beskrivning = makePostableFn($('#textarea').val());
			

			var country = window.location.pathname.substring(1);
			country = country.substring(0, country.indexOf('/'));
			var host = "www.bramhults.se/" + country + ".aspx";			

			var params = "'host' : '" + host + "', 'product_name' : '" + produkt_namn + "', 'product_bestbefore' : '" + produkt_bastfore + "', 'product_boughtat' : '" + produkt_inkopsstalle + "', 'product_size' : '" + produkt_storlek + "', 'product_ean' : '" + produkt_ean + "', 'name' : '" + namn + "', 'address' : '" + addr + "', 'phone' : '" + tel + "', 'email' : '" + epost + "', 'description' : '" + beskrivning + "' ";
			
			$.ajax({
				type: "POST",
				contentType: "application/json; charset=utf-8",
				url: "/services/Complaint.asmx/Register",
				data: "{" + params + "}",
				dataType: "json",
				success: function(msg)
				{
					$("#submit").css({ 'background':'transparent url(../media/585/form_submit.png) no-repeat scroll 0 0' });
					$('#submit').removeAttr("disabled"); 
					
					if (msg == "ok" || msg == "ok_but_no_mail_sent")
					{
						$('select#select').val(-1);
						$('#selectselect').html('Välj');
						$('select#storlek').val(-1);
						$('#selectstorlek').html('Välj');
						$("input").val('');
						$("#textarea").val('');
						
						var msgText = 'Tack för att du hörde av dig till oss med din reklamation. Vi kommer att läsa igenom dina uppgifter och hör av oss inom kort.';
						if (bramhultsApp.contact.message_complaint_sent.length > 0)
							msgText = bramhultsApp.contact.message_complaint_sent;
						alert(msgText);
					}
     					else
					{
						var msgText = 'Kunde inte registrera, ett allmänt fel inträffade. Försök igen.';
						if (bramhultsApp.contact.message_complaint_couldnt_be_sent.length > 0)
							msgText = bramhultsApp.contact.message_complaint_couldnt_be_sent;	
						msgText = ' (' + msgText + ')';
						alert(msgText);
					}
  				},
				error: function(req, errorType, errorThrown)
				{
					$("#submit").css({ 'background':'transparent url(../media/585/form_submit.png) no-repeat scroll 0 0' });
					$('#submit').removeAttr("disabled"); 
					
					var msgText = 'Kunde inte registrera, ett allmänt fel inträffade. Försök igen.';
					if (bramhultsApp.contact.message_complaint_couldnt_be_sent.length > 0)
						msgText = bramhultsApp.contact.message_complaint_couldnt_be_sent;	
					alert(msgText);
					try { console.log('internt fel: ' + req.responseText); } catch (err) {}
				}
			});
		}
		else
		{
			var msgText = 'Kunde INTE registrera, fyll i alla fält korrekt och försök igen.';
			if (bramhultsApp.contact.message_complaint_errorous_input.length > 0)
				msgText = bramhultsApp.contact.message_complaint_errorous_input;
			alert(msgText);
		}
		
		return false;
	});

	$("#submit_kommentar").click(function()
	{
		var hasError = false;
		var nid= $('#nid').val();
		var namn = makePostableFn($('#namn').val());
		var epost = makePostableFn($('#epost').val());
		var text = makePostableFn($('#textarea_kommentar').val());

		if ($("#epost").val() == '' || $("#epost").val() == 'Ange e-post') 
		{
			$('#epost').val('Ange e-post');
			hasError = true;
		} 
		else if (!emailReg.test($("#epost").val()) || $("#epost").val() == 'Ange korrekt e-postadress')
		{
			$('#epost').val('Ange korrekt e-postadress');
			hasError = true;
		}
		
		if ($("#namn").val() == '' || $("#namn").val() == 'Ange namn')
		{
			$('#namn').val('Ange namn');
			hasError = true;
		}

		if ($("#textarea_kommentar").val() == '' || $("#textarea_kommentar").val() == 'Ange kommentar')
		{
			$('#textarea_kommentar').val('Ange kommentar');
			hasError = true;
		}

		if (!hasError)
		{
			$('#submit_kommentar').attr("disabled", true); 
		   	$("#submit_kommentar").addClass('loadingButton');

			var params = "'nid' : '" + nid+ "', 'name' : '" + namn + "', 'email' : '" + epost + "', 'text' : '" + text + "' ";
			$.ajax({
				type: "POST",
  				contentType: "application/json; charset=utf-8",
  				url: "/services/Comment.asmx/Register",
  				data: "{" + params + "}",
  				dataType: "json",
  				success: function(msg)
				{
     				if (msg)
     				{
       					$("#formular").css('display', 'none');
       					$('#main_nyheter').jScrollPane({scrollbarWidth: 20,wheelSpeed: 42});
       					alert('Tack för din kommentar, den kommer att genomgå en granskning innan den läggs ut på sidan.');
     				}
     				else
     				{
						$("#submit_kommentar").removeClass('loadingButton');
						$('#submit_kommentar').removeAttr("disabled"); 
						alert('Internt fel, kunde tyvärr inte registrera din kommentar.');
     				}
  				},
				error: function(req, errorType, errorThrown) {
					$("#submit_kommentar").removeClass('loadingButton');
					$('#submit_kommentar').removeAttr("disabled"); 
					alert('Internt fel (2), kunde tyvärr inte registrera din kommentar.');
  				}
			});
		}
		else
			alert('Formuläret innehåller fel, korrigera och försök igen.');

		return false;
	});
	
	$("#rejuice_submit").click(function()
	{
		var hasError = false;

		if (!validFieldFn("#namn", "Ange namn"))
			hasError = true;
		
		if (!validFieldFn("#gatuaddr", "Ange gatuadress"))
			hasError = true;
		
		if (!validFieldFn("#postnr", "Ange postnummer"))
			hasError = true;
			
		if (!validFieldFn("#postort", "Ange postort"))
			hasError = true;
		
		if (!validFieldFn("#epost", "Ange e-post", emailReg, "Ange korrekt e-postadress"))
			hasError = true;
		
		if (!validFieldFn("#tel", "Ange telefonnummer"))
			hasError = true;
		
		if (!validFieldFn("#youtubelank", "Ange youtube-länk"))
			hasError = true;

		if (!hasError)
		{
			var namn = makePostableFn($('#namn').val());
			var gatuaddr = makePostableFn($('#gatuaddr').val());
			var postnr = makePostableFn($('#postnr').val());
			var postort = makePostableFn($('#postort').val());
			var epost = makePostableFn($('#epost').val());
			var tel = makePostableFn($('#tel').val());
			var youtubelank = makePostableFn($('#youtubelank').val());
			var godkann_marknad = $('#godkann_marknad').is(':checked');
			var godkann_epost = $('#godkann_epost').is(':checked');
			
			$('#rejuice_submit').attr("disabled", true); 
		    $("#rejuice_submit").addClass('loadingButton');

			var params = "'name' : '" + namn + 
				"', 'street_addr' : '" + gatuaddr + 
				"', 'postal_code' : '" + postnr + 
				"', 'city' : '" + postort + 
				"', 'email' : '" + epost + 
				"', 'phone' : '" + tel + 
				"', 'youlink' : '" + youtubelank +
				"', 'accept_bussiness' : " + godkann_marknad + 
				", 'accept_email' : " + godkann_epost;
				
			$.ajax({
				type: "POST",
  				contentType: "application/json; charset=utf-8",
  				url: "/services/Rejuice.asmx/Register",
  				data: "{" + params + "}",
  				dataType: "json",
  				success: function(msg)
				{
					$("#rejuice_submit").removeClass('loadingButton');
					$('#rejuice_submit').removeAttr("disabled"); 
					
					if (msg == "ok" || msg == "ok_but_no_mail_sent")
					{
						$("#rejuice_submit input").val('');
						alert('Tack!!! Vi tittar på filmen så snart vi kan och skickar en ny flaska med posten.');
					}
     				else
     				{
						alert('Internt fel (' + msg + '), kunde tyvärr inte registrera din rejuice.');
     				}
  				},
				error: function(req, errorType, errorThrown) {
					$("#rejuice_submit").removeClass('loadingButton');
					$('#rejuice_submit').removeAttr("disabled");
					alert('Internt fel, kunde tyvärr inte registrera din rejuice.');
  				}
			});
		}
		else
			alert('Formuläret innehåller fel, korrigera och försök igen.');

		return false;
	});
});