﻿if (initCaller != null)
	initCaller.push("initSubscription()");
var SubscriptionProgress = true;
function initSubscription() {
	$("a[id *= 'btnSubscribe']").click(function() {
		if (SubscriptionProgress) {
			var panel = $(this).parents("#Abonnement").get(0);
			var validateEmailForm = new NG.Portal.Mix.Web.ValidationClass(panel);
			clearMessage(panel);
			var mobileNumber = $("#txtMobileNumber").val();
			var email = $("#txtEmailAddress").val();
			var postalCode = $("#txtPostalCode").val();
			//var postalCode = "";
			var chkTipsEmail = false;//$("#chkTipsEmail").attr("checked");
			var chkTipsSms = false;//$("#chkTipsSms").attr("checked");
			var chkNewsletterEmail = $("#chkNewsletterEmail").is(":checked");
			var chkNewsletterSms = $("#chkNewsletterSms").is(":checked");
			var chkMovieNewsEmail = $("#chkMovieNewsEmail").is(":checked");
			var chkMovieNewsSms = $("#chkMovieNewsSms").is(":checked");
			//var chkCustomerPaperEmail = $("#chkCustomerPaperEmail").attr("checked");
			var chkCustomerPaperEmail = false; //we don't have customerpaper for Joker
			var msg = $("<span class='Marker_message' style='color:red; float:left;'>*</span>");
			var msgChBox = $("<span class='Marker_message' style='color:red;'>*</span>");
			var mobileNotFilled = (mobileNumber == '' || mobileNumber == $("#txtMobileNumber").attr('title'));
			var emailNotFilled = (email == '' || email == $("#txtEmailAddress").attr('title'));

			// clear all markers
			$(".Marker_message").remove();

			//Checkbox for email is filled out, but not the emailadress
			if (chkTipsEmail || chkNewsletterEmail || chkMovieNewsEmail || chkCustomerPaperEmail) {
				if (emailNotFilled) {
					//addListMessage - adds textmessage in the bottom that email is invalid
					addListMessage('InvalidEmailSubscription', panel);
					$("#txtEmailAddress").after(msg);
					errors = true;
				}
			}

			//Checkbox for mobileservices is filled out, but not the mobilenumber
			if (chkTipsSms || chkNewsletterSms || chkMovieNewsSms) {
				if (mobileNotFilled) {
					addListMessage('InvalidMobileSubscription', panel);
					$("#txtMobileNumber").after(msg);
					errors = true;
				}
			}
			
			//email is filled out, but not any checkboxes for email
			if (!emailNotFilled && !chkTipsEmail && !chkNewsletterEmail && !chkCustomerPaperEmail && !chkMovieNewsEmail) {
				addListMessage("InvalidEmailService", panel);
				$("#chkTipsEmail").after(msgChBox);
				$("#txtEmailAddress").after(msg);
				errors = true;
			}

			//mobile is filled out, but not any checkboxes for mobileservices
			if (!mobileNotFilled && !chkTipsSms && !chkNewsletterSms && !chkMovieNewsSms) {
				addListMessage("InvalidMobileService", panel);
				$("#chkTipsSms").after(msgChBox);
				$("#txtMobileNumber").after(msg);
				errors = true;
			}

			if (errors) {
				return false;
			}

			if (validateEmailForm.Validate()) {
				var errors = false;


				SubscriptionProgress = false;
				$.ajax({
					type: "POST",
					url: AjaxServiceUrl + "/UserSubscription",
					data: "{TxtEmailAddress:'" + email + "',ChkTipsEmail:'" + chkTipsEmail + "',ChkNewsletterEmail:'" + chkNewsletterEmail + "',ChkMovieNewsEmail:'" + chkMovieNewsEmail + "',ChkCustomerPaperEmail:'" + chkCustomerPaperEmail + "',TxtPostalCode:'" + postalCode + "',TxtMobileNumber:'" + mobileNumber + "',ChkTipsSms:'" + chkTipsSms + "',ChkNewsletterSms:'" + chkNewsletterSms + "',ChkMovieNewsSms:'" + chkMovieNewsSms + "'}",
					contentType: "application/json; charset=utf-8",
					dataType: "json",
					success: successSubscribe,
					error: failSubscribe
				});
			}
			else {
				//Must fill in email if emailsubscription is checked
				if ((chkTipsEmail || chkNewsletterEmail || chkMovieNewsEmail || chkCustomerPaperEmail) && emailNotFilled) {
					addListMessage('InvalidEmailSubscription', panel);
					$("#txtEmailAddress").after(msg);
				}
				//email is filled out, but not any checkboxes for email
				else if (!emailNotFilled && !chkTipsEmail && !chkNewsletterEmail && !chkMovieNewsEmail && !chkCustomerPaperEmail) {
					addListMessage("InvalidEmailService", panel);
					$("#chkTipsEmail").after(msgChBox);
				}

				//Must fill our mobilenumber if mobileservice is checked
				if ((chkTipsSms || chkNewsletterSms || chkMovieNewsSms) && mobileNotFilled) {
					addListMessage('InvalidMobileSubscription', panel);
					$("#txtMobileNumber").after(msg);
				}
				//mobilenumber is filled out, but not any checkboxes for mobile
				else if (!mobileNotFilled && !chkTipsSms && !chkNewsletterSms && !chkMovieNewsSms) {
					addListMessage("InvalidMobileService", panel);
					$("#chkTipsSms").after(msgChBox);
				}

				for (var j = 0; j < validateEmailForm.ErrorArray.length; j++) {
					switch (validateEmailForm.ErrorArray[j]) {
						case "halfRequired":
							if (mobileNotFilled && emailNotFilled) {
								addListMessage("HalfRequiredCheckbox", panel);
								$("#chkTipsEmail").after(msgChBox);
								$("#chkTipsSms").after(msgChBox);
							}
							break;
						case "postalCodeRequired":
							addListMessage("PostCodeFormat", panel);
							$("#txtPostalCode").after(msg);
							break;
						case "email":
						case "emailRequired":
							addListMessage("InvalidEmailSubscription", panel);
							break;
						case "mobile":
						case "mobileRequired":
							addListMessage("InvalidMobileSubscription", panel);
							break;
					}
				}
			}
		}
		return false;
	});
}

function successSubscribe(result) {
	var panel = $("#Abonnement").get(0);
	if (result.d) {
		addListMessage($("#hdnSubscrOk").get(0).value, panel);
	}
	else {
		addListMessage($("#hdnSubscrError").get(0).value, panel);
	}
	SubscriptionProgress = true;
}

function failSubscribe() {
	var panel = $("#Abonnement").get(0);
	addListMessage($("#hdnSubscrError").get(0).value, panel);
	SubscriptionProgress = true;
}



