$(document).ready(function(){
	
	var hasError = 0;
	var summary = false;
	
	var pathname = window.location.href;
	
	
	if ($("#payment_id").val() > "") {
		$(".information").css("display", "none");
		$(".summary").css("display", "block");
		summary = true;
	}
	if ($("#person_id").val() != "") {
		summary = true;
	}
	
	/* SHOW MORE p-information ON FRONT SCREEN */
	
	$(".list div h4 a.title").click(function(e) {
		e.preventDefault();
		
		if ($(this).parent().siblings("p").hasClass("show")) {
			$(this).parent().siblings("p").removeClass("show");
		} else {
			$(this).parent().siblings("p").addClass("show");
		}
	});
	
	//alert($(".list #arr_num").val());
	// SHOW INFO IF ONLY ONE ARRANGEMENT
	if ($(".list #arr_num").val() == 1) { $(".list div p").addClass("show"); }
	
	// SHOW INFO IF HASH IS FOUND IN ADDRESS BAR
	arr_hash = pathname.search("#");
	arr_hash = pathname.substring(arr_hash + 1);
	$('a#'+arr_hash).parent().siblings('p').addClass("show");
	

	/* ADD MORE PERSONS */
	
	$("form.registration a.more").click(function(e) {
		e.preventDefault();
		var i = parseInt($("form.registration #total-num").val()) + 1;
		
		$("form.registration .div-"+i).css("display", "block");
		$("form.registration .div-"+i+" #firstname").focus();
		$("form.registration .div-"+(i-1)+" .remove").css("display", "none");
		$("form.registration #total-num").val(i);
		
		if (i == 10) { $(this).css("display", "none"); }
	});
	
	/* REMOVE PERSON */
	
	$("form.registration a.remove").click(function(e) {
		e.preventDefault();
		var i = parseInt($("form.registration #total-num").val());
		
		$("form.registration .div-"+(i)+" #firstname").removeClass("red");
		$("form.registration .div-"+(i)+" .name span").html("");
		$("form.registration .div-"+i).css("display", "none");
		$("form.registration #total-num").val(i-1);
		$("form.registration .div-"+(i-1)+" .remove").css("display", "inherit");
		$("form.registration .div-"+(i)+" #firstname").val("Fornavn");
		$("form.registration .div-"+(i)+" #firstname").addClass("grey");

		
		if (i == 5) { $($("form.registration .more")).css("display", "inherit"); }
	});
	
	
	/* CLICK NEXT BUTTON FROM REGISTRATION PAGE */
	
	$("form.registration a.next").click(function(e) {
		var i = 1;
		var num = parseInt($("form.registration #total-num").val());
		var option_num = parseInt($("form.registration #option-num").val());
		$("form.registration #hasError").val("0");		
		
		var firstname = "form.registration #firstname-";
		var lastname = "form.registration #lastname-";
		var address = "form.registration #address-";
		var zipcode = "form.registration #zipcode-";
		var city = "form.registration #city-";
		var email = "form.registration #email-";
		var phone = "form.registration #phone-";
		var birthdate = "form.registration #birthdate-";
		var church = "form.registration #church-";
		
		while (i <= num) {
			validateFirstName($(firstname+i));
			validateLastName($(lastname+i));
			validateAddress($(address+i));
			validateZipcode($(zipcode+i));
			validateCity($(city+i));
			validateEmail($(email+i));
			validatePhone($(phone+i));
			validateBirthDate($(birthdate+i));
			validateChurch($(church+i));
			
			// Has picked at least one mandatory option?
			if (parseInt($("form.registration #individual_options").val()) > 0) {
				var mandatory_selected = 0;
				$("form.registration .options.div-"+i).each(function(index) {
					mandatory_selected = 0;
					
					$(this).find('.option_mandatory').each(function(j) {
						if ($("form.registration #option-"+(j+1)+"-"+i).is(":checked")) {
							mandatory_selected++;
						}
					});
					
					if (mandatory_selected < 1) {
						$("form.registration #hasError").val("1");
						$(this).find("div.option-error").html('<p class="red">Du m&aring; velge minst ett obligatorisk alternativ (merket med stjerne).</p>');
					}
				});
			}
			
			i = i + 1;
		}
		
		// Check that at least one option have been selected.
		var options_selected =  ($('form.registration input[type=checkbox]').filter(':checked').length);
		if (options_selected < 1) {
			$("form.registration #hasError").val("1");
			$("form.registration div.option-error").html('<p class="red">Du m&aring; velge minst ett alternativ.</p>');
		}
		
		// = $("form.registration input[type=checkbox]:checked").lenght;
		// alert(options_selected);
		
		if ($("form.registration #hasError").val() == "0") {
			i = 1;
			var text = "";
			
			while (i <= num) {
				
				if ($(firstname+i).val() != undefined) {
					text = text + "<div><p><strong>" + $(firstname+i).val();
					text = text + " " + $(lastname+i).val() + "</strong></p>";
				}
				if ($(address+i).val() !=undefined) { text = text + "<p>" + $(address+i).val() + "</p>"; }
				if ($(zipcode+i).val() !=undefined) { text = text + "<p>" + $(zipcode+i).val(); }
				if ($(city+i).val() !=undefined) { text = text + " " + $(city+i).val() + "</p>"; }
				if ($(email+i).val() !=undefined) { text = text + "<p>" + $(email+i).val() + "</p>"; }
				if ($(phone+i).val() !=undefined) { text = text + "<p>" + $(phone+i).val() + "</p>"; }
				if ($(birthdate+i).val() !=undefined) { text = text + "<p>" + $(birthdate+i).val() + "</p>"; }
				if ($(church+i).val() !=undefined) { text = text + "<p>" + $(church+i).val() + "</p>"; }
				
				text = text + "</div>";
				
				i = i + 1;
			}
			$(".information_summary div.person").html(text);
			
			
			// CALCULATE PRICE
			i = 1;
			text = "";
			var sum = 0;
			
			if (parseInt($("form.registration #individual_options").val()) > 0) {
				while (i <= num) {
					option_num = parseInt($("form.registration #option-num-"+i).val());
					
					j = 1;
					while (j <= option_num) {
						if ($("form.registration #option-"+j+"-"+i).is(':checked')) {
							var only_choice = $("form.registration #option_only_choice-"+i).val();
						
							text = text + "<p>" + $("label[for=option-"+j+"-"+i+"]").text();
							text = text + "</p>";
						
							$(".price_summary div.price").html(text);					
							if (only_choice == 0) {
								sum = sum + (parseInt($("form.registration #price-"+j+"-"+i).val()) * num);
							} else {
								sum = sum + (parseInt($("form.registration #price-"+j+"-"+i).val()));		
							}
						}
			
						j++;
					}
					
					i++;
				}
			
			} else {
			
				while (i <= option_num) {
				
					if ($("form.registration #option-"+i).is(':checked')) {
						var only_choice = $("form.registration #option_only_choice-"+i).val();
					
						text = text + "<p>" + $("label[for=option-"+i+"]").text();
						if (num > 1 && only_choice == 0) { text = text + " x " + num; }
						text = text + "</p>";
						
						$(".price_summary div.price").html(text);					
						if (only_choice == 0) {
							sum = sum + (parseInt($("form.registration #price-"+i).val()) * num);
						} else {
							sum = sum + (parseInt($("form.registration #price-"+i).val()));		
						}
					}
			
					i = i + 1;
				}
			}
			
			
			$(".price_summary p.sum span").html(sum+",-");
			$(".price_summary #price").val(sum);
			
			$("form.registration div.option-error").html("");
			$("div.information").css("display","none");
			$("div.summary").css("display","block");
			summary = true;
			
			if (sum <= 0)
				$("div.payment_info").css("display","none");
		}
		
	});
	
	
	/* CHANGE INFORMATION LINK CLICK*/
	
	$("form.registration .price_summary a.previous").click(function(e) {
		e.preventDefault;
		
		$("div.information").css("display","block");
		$("div.summary").css("display","none");
		summary = false;
	});
	
	
	/* PREVENT USER FROM SENDING FORM MANUALLY */
	
	$("form.registration").submit(function(e){
		if (summary == false) {
			e.preventDefault();
			$("form.registration a.next").click();
			return false;
		} else {
			$("form.registration input#confirm").click();
		}
	});
	
	
	/* CLEAR EXPLANATORY FIELDS */
	
	$("form.registration .firstname").focus(function() {
		if ($(this).val() == "Fornavn") { blankField($(this)) };
	});
	
	$("form.registration .lastname").focus(function() {
		if ($(this).val() == "Etternavn") { blankField($(this)) };
	});
	
	
	/* FORM FILL */
	
	$("form.registration .firstname").blur(function() {
		validateFirstName($(this));
	});
	
	$("form.registration .lastname").blur(function() {
		validateLastName($(this));
	});
	
	$("form.registration .address").blur(function() {
		validateAddress($(this));
	});

	$("form.registration .zipcode").blur(function() {		
		validateZipcode($(this));
	});
	
	$("form.registration .city").blur(function() {
		validateCity($(this));
	});
	
	$("form.registration .email").blur(function() {
		validateEmail($(this));
	});
	
	$("form.registration .phone").blur(function() {		
		validatePhone($(this));
	});
	
	$("form.registration .birthdate").blur(function() {
		validateBirthDate($(this));
	});
	
	$("form.registration .church").blur(function() {
		validateChurch($(this));
	});
	
	/* FORM VALIDATION */
	
	/* Name */

	
	function validateFirstName(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && (field.val() == "" || field.val() == "Fornavn")) {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else {
				fieldOK(field);
			}
		}
	};
	
	function validateLastName(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && (field.val() == "" || field.val() == "Etternavn")) {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.siblings("span").html() == "" || field.siblings("span").html() == "*") {
				fieldOK(field);
			} else {
				fieldOK(field, "1");
			}
		}
	};
		
	
	/* Address */
	
	function validateAddress(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else {
				fieldOK(field);
			}
		}
	};
	
	/* Zipcode and city */
	
	function validateZipcode(field) {		
		if (field.val() != undefined) {
			msg = "Postnummer m&aring; v&aelig;re et tall.";
		
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.val() > "" && checkNumeric(field.val()) != true) {
				fieldError(field, msg);
			} else {
				fieldOK(field);
			}
		}
	};
	
	function validateCity(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.siblings("span").html() == "" || field.siblings("span").html() == "*") {
				fieldOK(field);
			} else {
				fieldOK(field, "1");
			}
		}
	};
	
	/* E-mail */
	
	function validateEmail(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.val() > "" && !isValidEmailAddress(field.val())) {
				fieldError(field, 'Ugyldig e-postadresse.');	
			} else {
				fieldOK(field);	
			}
		}
	};
	
	/* Phone */
	
	function validatePhone(field) {
		if (field.val() != undefined) {
			msg = "M&aring; v&aelig;re et tall.";
			
			field.val(field.val().split(' ').join('')); // Removes spaces from field
		
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.val() > "" && !checkNumeric(field.val())) {
				fieldError(field, msg);
			} else {
				fieldOK(field);
			}
		}
	};
	
	/* Birth date */
	
	function validateBirthDate(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else if (field.val() > "" && !isValidBirthDate(field.val())) {
				fieldError(field, 'M&aring; v&aelig;re en gyldig dato.');	
			} else {
				fieldOK(field);
			}
		}
	};
	
	/* Church */
	
	function validateChurch(field) {
		if (field.val() != undefined) {
			if (field.hasClass("mandatory") && field.val() == "") {
				fieldError(field, 'Dette feltet m&aring; fylles ut.');
			} else {
				fieldOK(field);
			}
		}
	};
	
	
	/* LIST FUNCTIONS */
	
	// MARK ITEM AS READ
	$(".person_list .new_icon").click(function(e) {
		e.preventDefault();
		
		var person_id = $(this).siblings("span.person_id").html();
		var DOM = $(this);
				
		$.ajax({  
    		type: "POST",
        	url: "/pameldinger/admin/functions.php",  
            data: "action=is_read&id="+person_id,
	        success: function(data){
				$(DOM).fadeOut("slow");
			}
		});
		
	});
	
	
	// MARK ITEM AS PAID
	$(".person_list a .error").click(function(e) {
		e.preventDefault();
		
		var person_id = $(this).parents("p").find("span.payment_id").html();
		var title = $("h3.title").html();
		var DOM = $(this);
		
		$(DOM).fadeOut("fast");
		$(DOM).parents("p").find("a.payment_reminder").fadeOut("fast");
		$(DOM).parents("span.status").html('<span style="text-align: center;"><img src="/images/ny/ajax-loader-16x16-3.gif" style="margin-left: 2px;" /></span>');
		
		$.ajax({  
    		type: "POST",
        	url: "/pameldinger/admin/functions.php",  
            data: "action=is_paid&id="+person_id+"&title="+title,
	        success: function(data){
	        	if (data) {
	        		data = data.split(",");
	        		for (var i in data) {
	        			DOM = "#person_"+data[i];
	        			$(DOM).siblings(".status").find("span.error").fadeOut("slow");
	        			$(DOM).parents("p").find("a.payment_reminder").hide();
	        			$(DOM).siblings("span.status").html('<span style="display: none;"></span>')
						$(DOM).siblings(".status").find("span").addClass("accepted");
						$(DOM).siblings(".status").find("span").fadeIn("slow");
						$(DOM).parents("p").find(".sent_email").fadeIn("slow");
						$(DOM).parents("p").find(".sent_email").pause(2500).fadeOut("slow");
	        		}
	        		
				} else {
					$(DOM).fadeIn("slow");
					$(DOM).parents("p").find("a.payment_reminder").fadeIn("slow");
				}
				
			}
		});
	});
	
	
	// SEND PAYMENT REMINDER
	$(".person_list a.payment_reminder").click(function(e) {
		e.preventDefault();
		
		var person_id = $(this).parents("p").find("span.payment_id").html();
		var arr_id = $("#arr_id").val();
		var title = $("h3.title").html();
		var DOM = $(this);
		
		$(this).hide();
		$(this).parent("span").append('<span style="text-align: right;"><img src="/images/ny/ajax-loader-16x16-3.gif" style="margin-top: 3px;" /></span>');
		
		$.ajax({  
    		type: "POST",
        	url: "/pameldinger/admin/functions.php",  
            data: "action=send_reminder&id="+person_id+"&arr_id="+arr_id+"&title="+title,
	        success: function(data){
	        	if (data) {
	        		$(DOM).parent("span").find("span").remove();
	        		$(DOM).parents("p").find(".sent_email").fadeIn("slow");
					$(DOM).parents("p").find(".sent_email").pause(2500).fadeOut("slow");
				} else {
					$(DOM).parent("span").find("span").remove();
					$(DOM).fadeIn("slow");
				}
				
			}
		});
	});
	
	
	// DELETE PERSON
	
	$("a.delete").click(function(e) {
		e.preventDefault();
   				
   		var response = confirm("Er du sikker p\u00E5 at du vil fjerne denne personen?\n\nTrykk 'Avbryt' for \u00E5 stoppe, 'OK' for \u00E5 fortsette.", {buttons: {Avbryt:false,OK:true}});
   		
   		if (response) {
			var person_id = $("#person_id").val();
			var arr_id = $("#arr_id").val();
			var order = $("#order").val();
			
			$.ajax({  
    			type: "POST",
        		url: "/pameldinger/admin/functions.php",  
            	data: "action=delete_person&id="+person_id,
	        	success: function(data){
	        	
	        		if (data == 1) {
						window.location = "list.php?arr_id="+arr_id+"&order="+order;
					}

				}
			});
		}
	});
	
	
	// DATEPICKER
	
	$.datepicker.setDefaults({
		dateFormat: 'dd.mm.yy',
		dayNamesMin: ['S&oslash;', 'Ma', 'Ti', 'On', 'To', 'Fr', 'L&oslash;'],
		firstDay: 1,
		monthNames: ['Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember']
   	});
	$(".date").datepicker();
	
	
	// DISABLE MANDATORY BUTTONS WHEN DISABLING SHOW BUTTONS
	
	/*$("#name_show").click(function(e) { if (!$('#name_show').is(':checked')) { $('#name_mandatory').removeAttr('checked'); }; });
	$("#address_show").click(function(e) { if (!$('#address_show').is(':checked')) { $('#address_mandatory').removeAttr('checked'); }; });
	$("#postal_show").click(function(e) { if (!$('#postal_show').is(':checked')) { $('#postal_mandatory').removeAttr('checked'); }; });
	$("#email_show").click(function(e) { if (!$('#email_show').is(':checked')) { $('#email_mandatory').removeAttr('checked'); }; });
	$("#phone_show").click(function(e) { if (!$('#phone_show').is(':checked')) { $('#phone_mandatory').removeAttr('checked'); }; });
	$("#birthdate_show").click(function(e) { if (!$('#birthdate_show').is(':checked')) { $('#birthdate_mandatory').removeAttr('checked'); }; }); */
	$(".option_show").click(function(e) {
		if ($(this).is(':checked')) {
			$(this).parents("tr").find("input.option_mandatory").removeAttr('disabled');
		} else {
			$(this).parents("tr").find("input.option_mandatory").removeAttr('checked');
			$(this).parents("tr").find("input.option_mandatory").attr('disabled','disabled');
		};
	});
	
	
	// UPDATE DEFAULT OPTION WHEN MAKING NEW ARRANGEMENT
	$("#title").keyup(function() {
		$("#option_title_default").val($("#title").val());
		
		var slug = $("#title").val();
		slug = slug.toLowerCase();
		$("#title_slug").val(slug);
	});
	
	// SET END DATE WHEN SETTING OPENING DATE
	$("#start_date").change( function() {
		if ($("#end_date").val() == "") { $("#end_date").val($("#start_date").val()); }
	});
	
	$("#open_date").change( function() {
		$("#close_date").val($("#open_date").val());
	});
	
	
	// ADD NEW PRICE OPTION
	
	$(".new_price_option").click( function(e) {
		e.preventDefault();
		
		var num_options = parseInt($("#num_options").val());
		var arr_id = $('#arr_id').val();
		var option_id;
		
		if ($(this).hasClass("edit")) {
			
			$.ajax({  
    			type: "POST",
    			dataType: "json",
    			async: false,
        		url: "/pameldinger/admin/functions.php",  
            	data: "action=add_price_option&arr_id="+arr_id,
	        	success: function(response){
	        		
	        		if (response.responseCode == "OK") {
	        			option_id = response.option_id;
	        		} else {
	        			alert(response.responseText);
	        		}	
				}
			});
		
		} else {
			
			option_id = num_options;
		
		}
			
		$(".arrangement_options").append('<tr><td><input type="text" class="option_title" name="option_title-'+option_id+'" value="" /></td><td><input type="text" class="time" name="option_price-'+option_id+'" value="0" /></td><td><input type="text" class="date" name="option_date2-'+option_id+'" value="" /></td><td><input type="text" class="time" name="option_price2-'+option_id+'" value="" /></td><td><input type="text" class="max" name="option_max_num-'+option_id+'" value="" /></td><td class="individual_option hidden"><input type="checkbox" name="option_mandatory-'+option_id+'" value="" /></td><td></td>');
		$("#num_options").val(num_options+1);
		$('input[name="option_title-'+option_id+'"]').focus();
		
		
	});
	
	
	// DELETE PRICE OPTION
	
	$(".delete_price_option").click( function(e) {
		e.preventDefault();
		
		var num_options = parseInt($("#num_options").val());
		var arr_id = $('#arr_id').val();
		var option_id = $(this).siblings("input").val();
		var DOM = $(this);
		
		var response = confirm("Er du sikker p\u00E5 at du vil slette dette alternativet?", {buttons: {Avbryt:false,OK:true}});
		
		if (response) {
					
			$.ajax({  
    			type: "POST",
    			dataType: "json",
    			async: false,
        		url: "/pameldinger/admin/functions.php",  
            	data: "action=delete_price_option&option_id="+option_id,
	        	success: function(response){
	        		
	        		if (response.responseCode == "OK") {
	        			$("#num_options").val(num_options-1);
						$(DOM).parents("tr").fadeOut("slow");
	        		} else {
	        			alert(response.responseText);
	        		}	
				}
			}); 
				
		}
	});
	
	// SHOW/HIDE INDIVIDUAL OPTIONS
	
	$("input#individual_options").change( function(e) {
	
		// Is it checked?
		if ($(this).is(':checked')) {
			$(".individual_option").show();
		} else {
			$(".individual_option").hide();
		}
	});
	
	
	// DELETE ARRANGEMENT
	
	$("#delete_arrangement").click( function(e) {
		
		var response = confirm("Er du sikker p\u00E5 at du vil slette dette arrangementet?", {buttons: {Avbryt:false,OK:true}});
		
		if (!response) {
			e.preventDefault();
		}
		
	});
		
});
	
	$.fn.pause = function(duration) {
		$(this).animate({ dummy: 1 }, duration);
		return this;
	};
	
	/* Blanks out an explanation field */
	function blankField(field) {
		$(field).val("");
		$(field).removeClass('grey');
	}
	
	/* Fills field with explanation text */
	function fillField(field, value, standard) {
		if (value == '') { $(field).val(msg); };
		$(field).addClass('grey');
	}
	
	/* Styles a field that is correctly validated. */
	function fieldOK(field, siblingError) {
		$(field).removeClass("red");
		$(field).addClass("green");
		if (siblingError != 1) {
			$(field).parent().find("span").html('');
		}
	}
	
	/* Styles a field that is incorrectly validated. */
	function fieldError(field, msg) {
		$(field).removeClass("green");
		$(field).addClass("red");
		$(field).parent().find("span").html(msg);
		
		$("form.registration #hasError").val("1");
	}
	
	/* Checks if a field is numeric */
	function checkNumeric(input) {
		if (input > ""  && IsNumeric(input) == true) {
			return true;
		}
	}
	
	/* Checks if a field is numeric */
	function IsNumeric(input){
		return (input - 0) == input && input.length > 0;
	}
	
	/* Validates email address */
	function isValidEmailAddress(emailAddress) {
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(emailAddress);
	}

	/* Validates birthdate */
	function isValidBirthDate(date) {
		var myDate = date.split('.');
		
		var d = myDate[0];
		var m = myDate[1];
		var y = myDate[2];
		
		var checkDate = new Date();
		if (checkDate.setFullYear(y, m, d)) { return(1); }		
	}	
