
function displayAjaxLoaderNewsletter() {
	$('#newsletterAjaxLoader').html('<img src="fileadmin/templates/images/ajax-loader.gif"/>');
	$('#newsletterAjaxLoader').css('visibility', 'visible');
}

function hiddenAjaxLoaderNewsletter() {
	$('#newsletterAjaxLoader').css('visibility', 'hidden');
	$('#newsletterAjaxLoader').html('');
}

function openNewsletter() {
	displayAjaxLoaderNewsletter();
	obj = $("#newsletterAnmeldung").find("input[name='web:email']");
	if($(obj).val() === '') {
		$(obj).val('E-Mail')
	}
	
	obj = $("#newsletterAnmeldung").find("input[name='web:firstname']");
	if($(obj).val() === '') {
		$(obj).val('Vorname')
	}	
	
	obj = $("#newsletterAnmeldung").find("input[name='web:lastname']");
	if($(obj).val() === '') {
		$(obj).val('Nachname')
	}

	$('#NewsletterLayer').show().each(function(){
		hiddenAjaxLoaderNewsletter();
	});
	$('#NewsletterLayer').css('left','240px');
	$('#NewsletterLayer .content').ifixpng();
}

function closeNewsletter() {
	hiddenAjaxLoaderNewsletter();
	//$('#NewsletterLayer').hide();
	$('#NewsletterLayer').css('left','-2000px');
	$("#AnmeldungDetails").hide();
	$("#Anmeldung").show();
}

function cleanNewsletterLayerFormInput(obj, defaultValue) {
	if(obj.value == defaultValue) {
		obj.value = '';
	}
}
		
jQuery.validator.addMethod("default_vorname", function(value, element) { 
	  return value != "Vorname";
}, "Bitte geben Sie Ihren Vornamen an.");

jQuery.validator.addMethod("default_nachname", function(value, element) { 
	  return value != "Nachname";
}, "Bitte geben Sie Ihren Nachname an.");	

jQuery.validator.addMethod("default_birthdate", function(value, element, params) { 
		var datum = value;
		check = function(){ 
			datum = datum.toLowerCase(); 
			if($.trim(datum) == 'tt.mm.jjjj') {
				return true;
			} 
			else if(/^(\d{2}\.\d{2}\.\d{4})?$/.test(datum)) {
				return true;
			}
			return false;
		} ;
		return this.optional(element) ||  check();///^(\d{4}-\d{2}-\d{2})?$/.test(value);
}, "Bitte geben Sie Ihr Geburtsdatum im Format TT.MM.JJJJ ein oder lassen Sie das Feld leer.");

$(document).ready(function() { 
    $("#destination1").change(function() { 
        var message_index 	 
        message_index1 = $("#destination1").val(); 
		message_index2 = $("#destination2").val(); 
		message_index3 = $("#destination3").val(); 
		//alert(message_index);	
		showAll();
		hideChanges();
		$("#destination2").find("option[@value="+message_index1+"]").hide();
		$("#destination3").find("option[@value="+message_index1+"]").hide();			
    }); 
	$("#destination2").change(function() { 
        var message_index 	 
        message_index1 = $("#destination1").val(); 
		message_index2 = $("#destination2").val(); 
		message_index3 = $("#destination3").val(); 
		//alert(message_index);	
		showAll();
		hideChanges();
		$("#destination1").find("option[@value="+message_index2+"]").hide();
		$("#destination3").find("option[@value="+message_index2+"]").hide();			
    }); 
	$("#destination3").change(function() { 
        var message_index 	 
        message_index1 = $("#destination1").val(); 
		message_index2 = $("#destination2").val(); 
		message_index3 = $("#destination3").val(); 
		//alert(message_index3);	
		showAll();
		hideChanges();					
		$("#destination1").find("option[@value="+message_index3+"]").hide();
		$("#destination2").find("option[@value="+message_index3+"]").hide();			
    }); 	
	function showAll() {
		$("#destination1").find("option").show();
		$("#destination2").find("option").show();
		$("#destination3").find("option").show();
	}				
	function hideChanges() {
		$("#destination1").find("option[@value="+message_index2+"]").hide();
		$("#destination1").find("option[@value="+message_index3+"]").hide();
		$("#destination2").find("option[@value="+message_index1+"]").hide();
		$("#destination2").find("option[@value="+message_index3+"]").hide();					
		$("#destination3").find("option[@value="+message_index1+"]").hide();
		$("#destination3").find("option[@value="+message_index2+"]").hide();						
	}
}); 	

$(document).ready(function() {				
	$("#newsletterAnmeldung").validate({
		rules: {
			"web:firstname":  {
				minlength: 1,
				default_vorname: 'Vorname'
			},
			"web:lastname":  {
				minlength: 1,
				default_nachname: 'Nachname'
			},
			"web:gender": "required",
			"agb": "required", 
			"web:email": {
				required: true,
				email: true
			}
		},
		messages: {
			"web:gender": "Bitte geben Sie eine Anrede an.",	
			//"web:firtsname": "Bitte geben Sie Ihren Vornamen an.",	
			//"web:lastname": "Bitte geben Sie Ihren Nachnamen an.",			
			"agb": "Bitte akzeptieren Sie die Datenschutzbestimmungen.",
			"web:email": "Bitte geben Sie eine g&uuml;ltige E-Mail-<br />Adresse an."
		},
		errorLabelContainer: $("#newsletterAnmeldung div.error"),
		submitHandler: function() { 
			
			displayAjaxLoaderNewsletter();
			
			$("#newsletterAnmeldung div.error").css('display', 'none').html('');
			
		    // $("#newsletterAnmeldung").serialize()		
			var postQuery = new Array();
			i = 0;
			obj = $("#newsletterAnmeldung").find("input[name='sendAsPost']");
		
			//if(obj.val() ) {
				//postQuery[i++] = 'sendAsPost=' + obj.val();
			//}			
			postQuery[i++] = 'sendAsPost=true';
			postQuery[i++] = 'web:email=' + $("#newsletterAnmeldung").find("input[name='web:email']").val();
			postQuery[i++] = 'web:firstname=' + $("#newsletterAnmeldung").find("input[name='web:firstname']").val();
			postQuery[i++] = 'web:lastname=' + $("#newsletterAnmeldung").find("input[name='web:lastname']").val();
			postQuery[i++] = 'web:gender=' + $("#newsletterAnmeldung").find("select[name='web:gender']").val();
			
            postQuery[i++] = 'url=https://newscontent.bucher-reisen.de/mp/enc/UTF-8/onlinedialog/tco/buc/layer_subscription';
            //postQuery[i++] = 'url=http://bu-sl.tc.denkwerk.com/bu2/testpages/requestTest.jspd';

			//DEBUG(postQuery);
			
			DEBUG("1. Schritt URL: /bu2/ajaxProxy.do?https://newscontent.bucher-reisen.de/mp/enc/UTF-8/onlinedialog/tco/buc/layer_subscription");
			DEBUG("1. Schritt POST: " + postQuery.join("&"));			

		
			 $.ajax({
				   type: "POST",
				   //url: "/bu2/ajaxProxy.do?https://newscontent.bucher-reisen.de/mp/enc/UTF-8/onlinedialog/tco/buc/layer_subscription",
                   url: "/bu2/ajaxProxy.do",
				   data: postQuery.join("&"), //unescape($("#newsletterAnmeldung").serialize()),
				   success: function(response){
						DEBUG("1. Schritt Response: " + response);
						response = $.trim(response);
						var regexpUserId = /^[0-9]+$/;
						exp_response = response.split("=");
						exp_response[0] = exp_response[0] ? $.trim(exp_response[0]) : false;
						exp_response[1] = exp_response[1] ? $.trim(exp_response[1]) : false;
			
						if(response === 'ALREADYEXISTING') {
							errorMsg = '<label generated="true" class="error" style="display:block;">Ihre Emailaresse ist bereits angemeldet.</label>';
							$("#newsletterAnmeldung div.error").css('display', 'block').html(errorMsg);
							//alert(response);
							hiddenAjaxLoaderNewsletter();
							return false;
						}
						if(response === 'MISUSE') {
							errorMsg = '<label generated="true" class="error" style="display:block;">Falscher Gebrauch (MISUSE)!</label>';
							$("#newsletterAnmeldung div.error").css('display', 'block').html(errorMsg);
							//alert(response);
							hiddenAjaxLoaderNewsletter();
							return false;
						}
						else if(response === 'ERROR') {
							errorMsg = '<label generated="true" class="error" style="display:block;">Es ist ein Fehler aufgetreten.</label>';
							$("#newsletterAnmeldung div.error").css('display', 'block').html(errorMsg);
							//alert(response);
							hiddenAjaxLoaderNewsletter();
							return false;
							
						}
						else if(exp_response[0] && exp_response[1] && exp_response[0] === 'SUCCESS' && regexpUserId.test(exp_response[1])) {
							DEBUG("1. Schritt USERID: " + exp_response[1]);
							$('#newsletterAnmeldungDetailUserid').val(exp_response[1]);
							$("#Anmeldung").hide();
							$("#AnmeldungDetails").show();
						}
						
						hiddenAjaxLoaderNewsletter();
						
						return false;	
				   }
			 });			
			
		}
	});
	
	$("#newsletterAnmeldungDetail").validate({

		rules: {
			"web:birthdate":  {
				default_birthdate: 'TT.MM.JJJJ'
			}
		},
		errorLabelContainer: $("#newsletterAnmeldungDetail div.error"),
		submitHandler: function() { 
			submitNewsletterDetails();
		}
	});
	
	

});

function submitNewsletterDetails() {
	
	/*
	  ToDo: Auf UserId überprüfen.
	  
	*/
	
	var query = new Array();

	var form = $("#AnmeldungDetails");
	
	var i = 0;
	
	query[i++] = $(form).find("input[name='sendAsPost']").serialize();
	query[i++] = $(form).find("input[name='web:type']").serialize();
	query[i++] = $(form).find("input[name='web:id_tenant']").serialize();
	query[i++] = $(form).find("input[name='web:userid']").serialize();
    query[i++] = 'url=https://newscontent.bucher-reisen.de/mp/enc/UTF-8/onlinedialog/tco/buc/layer_editprofile';

	obj = $(form).find("input[name='web:zipcode']");
	if(obj.val() !== 'Ihre PLZ') {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("select[name='web:country']");
	if(obj.val() !== '') {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:birthdate']");
	datum = obj.val();
	if(datum !== '' && datum.toLowerCase() !== 'tt.mm.jjjj') {
		datum = datum.split('.');
		query[i++] = 'web:birthdate=' + datum[2] + '-' + datum[1] + '-' + datum[0];
	}

	obj = $(form).find("input[name='web:preference_1']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:preference_2']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:preference_3']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:preference_4']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:preference_5']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("input[name='web:preference_6']");
	if(obj.val() !== '' && obj.serialize()) {
		query[i++] = obj.serialize();
	}
	
	obj = $(form).find("select[name='web:favdestination_1']");
	if(obj.val() !== '') {
		query[i++] = obj.serialize();
	}				
	
	obj = $(form).find("select[name='web:favdestination_2']");
	if(obj.val() !== '') {
		query[i++] = obj.serialize();
	}				
	
	obj = $(form).find("select[name='web:favdestination_3']");
	if(obj.val() !== '') {
		query[i++] = obj.serialize();
	}

	//var url = "/bu2/ajaxProxy.do?https://newscontent.bucher-reisen.de/mp/enc/UTF-8/onlinedialog/tco/buc/layer_editprofile" + escape("?" + query.join("&"));
	
	 DEBUG("2. Schritt URL: /bu2/ajaxProxy.do");
	 DEBUG("2. Schritt POST: " + query.join("&"));
	
	 displayAjaxLoaderNewsletter();
	 
	 $.ajax({
		   type: "POST",
		   url: "/bu2/ajaxProxy.do",
		   data: query.join("&"),
		   success: function(response){
		 		DEBUG("2. Schritt Response: " + response);
				response = $.trim(response);
				exp_response = response.split("=");
				exp_response[0] = exp_response[0] ? $.trim(exp_response[0]) : false;
				exp_response[1] = exp_response[1] ? $.trim(exp_response[1]) : false;
				hiddenAjaxLoaderNewsletter();
				if(exp_response[0] === 'SUCCESS') {
					msg = '<p style="padding: 50px 15px 10px 0; display: block; color: #000000; font-weight: bold;text-align:center;">Ihre Daten wurden erfolgreich übermittelt.</p><p style="text-align:center;padding-right:15px;"><a style="font-weight:bold;" href="javascript:closeNewsletter();">Fenster schließen</a></p>';
					$("#AnmeldungDetails").html(msg);
					return false;
				}
				else {
					msg = '<label generated="true" class="notice" style="display:block;color:#ff0000;padding:15px 0;">Es ist ein Fehler aufgetreten.</label>';
					$(form).find("div.noticeMsg").css('display', 'block').html(msg);
					return false;					
				}
				return false;
		   }
	 });
}
			
			
			
			
			
