﻿// Sub Class
window.$BTJ.MyPages = new function() {
	var $this = this;
	var selectedSubject;

	// Variables
	
	// Methods
	$this.init =  function() {
	
		$this.initCustomerServiceForm();
	}
	
	
	$this.initCustomerServiceForm = function() {
		var dropdown = $(".jsMyPagesContactCustomerServiceDropdown");
		
		// remember the currently selected value in the dropdown, we need it to reset the dropdown if user changes value in the dropdown and then cancels the change in the confirm dialog
		selectedSubject = dropdown.val();
		
		dropdown.change( function() {
				var change = true;
				
				// if user is changing from Medieförfrågan and has entered some values in the form, then let user confirm that the values should be discarded
				if(selectedSubject == 'Medieförfrågan') {
					var formHasChanged = false;
					
					$(".jsMediaRequestInput").each( function() {
						if($(this).val() != '') {
							formHasChanged = true;
						}
					});
					
					if(formHasChanged) {
						if(!confirm('Observera att din förfrågan inte är skickad till kundservice. Klicka på Avbryt för att komma åter till formuläret.')) {
							change = false;
							$(this).val(selectedSubject);
						}
					}
				}
				
				// if we actually are to change the value in the dropdown...
				if(change) {
					var value = $(this).val();
					
					// ... then remember this new  value
					selectedSubject = value;
					
					
					// .. and show/hide the Medieförfrågan div
					if(value == 'Medieförfrågan') {
						$this.showMediaRequest();
					} else {
						$this.hideMediaRequest();
					}	
				}

		});
	}
	
	$this.showMediaRequest = function() {
		$(".jsContactCustomerServiceDiv").hide();
		$(".jsContactCustomerServiceMediaRequestDiv").show();
	}
	
	$this.hideMediaRequest = function() {
		$(".jsContactCustomerServiceMediaRequestDiv").hide();
		$(".jsContactCustomerServiceDiv").show();
	}
	
	
	
	$this.submitNewsletterForm = function() {
		var validationErrorText = $this.submitNewsletterForm_performValidation();
		
		if(validationErrorText.length > 0) {
			$(".jsNewsletterValidatorText").html(validationErrorText);
			$(".jsNewsletterValidatorText").show();
		} else {
			$this.submitNewsletterForm_submit();
		}
	}
	
	$this.submitNewsletterForm_performValidation = function() {
		var validationErrorText = "";
		
		var epostOK = $this.validateNewsletterFormEpost();
		if(!epostOK) {
			$(".jsNewsletterEmailValidator").show();
			validationErrorText += "Ange en korrekt e-post<br />\n";
		} else {
			$(".jsNewsletterEmailValidator").hide();
		}
		
		var listOK = $this.validateNewsletterFormLists();
		if(!listOK) {
			$(".jsNewsletterListValidator").show();
			validationErrorText += "Ange minst ett utskick<br />\n";
		} else {
			$(".jsNewsletterListValidator").hide();
		}
		
		var subscribeOK = $this.validateNewsletterFormSubaction();
		if(!subscribeOK) {
			$(".jsNewsletterSubscribeValidator").show();
			validationErrorText += "Ange om du vill beställa eller avbeställa<br />\n";
		} else {
			$(".jsNewsletterSubscribeValidator").hide();
		}
		
		return validationErrorText;
		
	}
	
	$this.validateNewsletterFormEpost = function() {
		var epost = $(".jsNewsletterEmailAddress").val();
		
		if(epost.length == 0) {
			return false;
		}
		
		if(epost.search("@") < 0) {
			return false;		
		}
		
		return true;
	}
	
		
	$this.validateNewsletterFormLists = function() {
		var list1checked = $(".jsNewsletterList1").is(':checked');
		var list2checked = $(".jsNewsletterList2").is(':checked');
		var list3checked = $(".jsNewsletterList3").is(':checked');
		var list4checked = $(".jsNewsletterList4").is(':checked');
		var list5checked = $(".jsNewsletterList5").is(':checked');
		var list6checked = $(".jsNewsletterList6").is(':checked');
		
		return (list1checked || list2checked || list3checked || list4checked || list5checked || list6checked);
	}
	
	$this.validateNewsletterFormSubaction = function() {
		var subscribe = $(".jsNewsletterSubActionSubscribe").is(':checked');
		var unsubscribe = $(".jsNewsletterSubActionUnsubscribe").is(':checked');
		
		return (subscribe || unsubscribe);
	}
	
	// Submits the newsletter form
	// Copies the values from the inputs in the .net form
	// to the hidden form inputs,
	// and then submits the hidden form (subscribeForm)
	// The hidden form will post to newsletter-webserver
	$this.submitNewsletterForm_submit = function() {
		var namn = $(".jsNewsletterNamn").val();
		$(".jsSubmitNewsletterNamn").val(namn);
		
		var namn = $(".jsNewsletterEmailAddress").val();
		$(".jsSubmitNewsletterEmailAddress").val(namn);
		
		var list1checked = $(".jsNewsletterList1").is(':checked');
		$(".jsSubmitNewsletterList1").attr('checked', list1checked);

		var list2checked = $(".jsNewsletterList2").is(':checked');
		$(".jsSubmitNewsletterList2").attr('checked', list2checked);
		
		var list3checked = $(".jsNewsletterList3").is(':checked');
		$(".jsSubmitNewsletterList3").attr('checked', list3checked);
		
		var list4checked = $(".jsNewsletterList4").is(':checked');
		$(".jsSubmitNewsletterList4").attr('checked', list4checked);
		
		var list5checked = $(".jsNewsletterList5").is(':checked');
		$(".jsSubmitNewsletterList5").attr('checked', list5checked);
		
		var list6checked = $(".jsNewsletterList6").is(':checked');
		$(".jsSubmitNewsletterList6").attr('checked', list6checked);
		
		
		var subscribe = $(".jsNewsletterSubActionSubscribe").is(':checked');
		if(subscribe) {
			$(".jsSubmitNewsletterSubAction").val('sub_add_update');
		} else {
			$(".jsSubmitNewsletterSubAction").val('unsub');
		}
		
		$(".jsSubmitNewsletterForm").submit();
	}
	
}
