if (Kable == undefined) var Kable = {}; // Make sure the base namespace exists.
Kable.Subscribe = function () {};        // Constructor definition.

// Class definition.
Kable.Subscribe.prototype = {

	FormFields: 	['FirstName','MiddleInitial','LastName','Address2','Address1','City','StOrProv','PostalCode','Email'],
	HiddenFields: 	['SubTerm','Source','usernumber'],
	CheckBoxes:     ['PrintSub'],

	//----------------------------------------------------------------------------
	// Validate the form and, if valid, send to Kable for processing.
	//----------------------------------------------------------------------------

	SendSubscription: function(idprefix) {

		$('input').css("background","#fff");
		$('label').css("color","#000");
		$("#kablemessages").hide();
		$("span.note").hide();
	
		$("#" + idprefix + "-spinner").show();

		$("#" + idprefix + "-SubscribeButton").val("Checking");
		$("#" + idprefix + "-SubscribeButton").attr("disabled","disabled");

		var subdata = Array;
	
		for (i = 0 ; i < this.FormFields.length ; i++) {
			var fieldname = this.FormFields[i];
			var formfield = "#" + idprefix + "-" + fieldname;
			subdata['subdata[' + fieldname + ']'] = $(formfield).val();
		}

		for (i = 0 ; i < this.HiddenFields.length ; i++) {
			var fieldname = this.HiddenFields[i];
			var formfield = "#" + idprefix + "-" + fieldname;
			subdata['subdata[' + fieldname + ']"'] = $(formfield).val();
		}

		// for (i = 0 ; i < this.CheckBoxes.length ; i++) {
		// 	var fieldname = this.CheckBoxes[i];
		// 	var formfield = "#" + idprefix + "-" + fieldname;
		// 	if ($(formfield).attr("checked")) {
		// 		subdata['subdata[' + fieldname + ']"'] = $(formfield).val();
		// 	}
		// 	else {
		// 		subdata['subdata[' + fieldname + ']"'] = 'N';
		// 	}
		// }

		$.ajax({
			type: "POST",
			url: "/subscribe/send-subscription.php",
			data: subdata,
			dataType: "json",
			success: SendSubscriptionDone
		});
	
		function SendSubscriptionDone(result) {

			if (!result.validatesuccess) {
				for (var e in result.validatemessages) {
					var id_error = '#' + idprefix + "-" + e + '-error';
					$(id_error).html(result.validatemessages[e]);
					$(id_error).fadeIn();
					var id_label = '#' + idprefix + "-" + e + '-label';
					$(id_label).css("color","#f00");
					var id = '#' + idprefix + "-" + e;
					$(id).css("background","#fdd");
				}
				$("#" + idprefix + "-SubscribeButton").val("Subscribe");
				$("#" + idprefix + "-SubscribeButton").attr("disabled","");
				$("#" + idprefix + "-spinner").hide();
			}
			else if (result.duplicate) {
				$("#" + idprefix + "-kablemessages").html("<p style='margin: 0; padding:0'>A subscription for this address has already been received and processed.</p>");
				$("#" + idprefix + "-kablemessages").fadeIn();
				$("#" + idprefix + "-SubscribeButton").val("Subscribe");
				$("#" + idprefix + "-SubscribeButton").attr("disabled","");
				$("#" + idprefix + "-spinner").hide();
			}
			else if (!result.kablesuccess) {
				$("#" + idprefix + "-kablemessages").html(result.kablemessages);
				$("#" + idprefix + "-kablemessages").fadeIn();
				$("#" + idprefix + "-SubscribeButton").val("Subscribe");
				$("#" + idprefix + "-SubscribeButton").attr("disabled","");
				$("#" + idprefix + "-spinner").hide();
			}
			else  {
				$("#" + idprefix + "-SubscriptionForm").fadeOut();
				$("#" + idprefix + "-kablemessages").html("<h2>Your Request Has Been Processed</h2><p>Thank you for your request. You will shortly receive an e-mail confirmation with additional information.</p>");
				$("#" + idprefix + "-kablemessages").fadeIn();
				$("#" + idprefix + "-spinner").hide();
			}	
		}
	},

	//----------------------------------------------------------------------------
	// Render the subscription form HTML in the DIV with an ID of 'objectid'
	//----------------------------------------------------------------------------
	
	MakeForm: function (parentid,formhtml,idprefix,sourcecode,popover) {

		var thisform = this;

		ourDate = new Date();

		$.get("/subscribe/forms/" + formhtml + "?time=" + ourDate, function(data){

			var obj = "#" + parentid;

			$(obj).html(data);
			
//			$(obj).html("<p><b>This</b> is a test of HTML.</b></p>");

			var sourceobj = "#" + idprefix + "-Source";
			$(sourceobj).val(sourcecode);

			var buttonobj = "#" + idprefix + "-SubscribeButton";
			
			$(buttonobj).bind("click", function(){
				thisform.SendSubscription(idprefix);
			});
			
			if (popover) {
				tb_show('SUBSCRIBE', '#TB_inline?height=465&amp;width=530&inlineId=' + parentid, null);
			}

		});
	
	}
}

	