function subscribe(listId) {
	newsletterId = 0;
	
	redoNewsletterBox(listId);
	
	if(listId >= 0){
		if(validateEmail(listId) == true) {
			doSubscribe(newsletterId, $('#email_' + listId).val(), listId);
		}
	}else{
		doSubscribe(newsletterId, $('#email').val(), -1);
	}
}

function doSubscribe(newsletterId, email, listId) {
	if(listId >= 0){
		$('#wait4subscribe_' + listId).show();
	}else{
		$('#wait4subscribe').show();
	}
	
	if(verifySubscription(listId) == 'activ') {
		if(listId >= 0){
			$('#subscribe_' + listId).hide();
			$('#wait4subscribe_' + listId).hide();
			$('#errorsubscribe_' + listId).show();
		}else{
			$('#subscribe').hide();
			$('#wait4subscribe').hide();
			$('#errorsubscribe').show();
		}
	}else{
		$.ajax({
			type: "POST",
			url: baseUrl + "/subscribe",
			data: "newsletter_id=" + newsletterId + "&email=" + email,
			success: function(data){
				data = eval("(" + data + ")"); 
				if(data['error'] == 0) {
					if(verifySubscription(listId) == 'inactiv') {
						if(listId >= 0){
							$('#subscribe_' + listId).hide();
							$('#wait4subscribe_' + listId).hide();
							$('#activatesubscribe_' + listId).show();
						}else{
							$('#subscribe').hide();
							$('#wait4subscribe').hide();
							$('#activatesubscribe').show();
						}
					}else{
						if(listId >= 0){
							$('#subscribed_' + listId).show();							
							$('#wait4subscribe_' + listId).hide();
							$('#activatesubscribe_' + listId).hide();
						}else{
							$('#subscribed').show();
							$('#wait4subscribe').hide();
							$('#activatesubscribe').hide();
						}
					}
				} else if(data['error'] == 18) {
					jAlert("Această adresă de e-mail este deja abonată", "Avertizare");
				} else {
					jAlert("Adresa de e-mail este invalidă", "Avertizare");
					redoNewsletterBox(listId);
				}
			},
			error: function(data) {
				redoNewsletterBox(listId);
			}
		});
	}
}

function doUnsubscribe(newsletterId, email, listId) {
	$.ajax({
		type: "POST",
		url: baseUrl + "/unsubscribe",
		data: "newsletter_id=" + newsletterId + "&email=" + email,
		success: function(msg) {
			if(verifySubscription() == 'inactiv') {
				updateNewsletterBox(email, 'unsubscribe', listId);
			}
		}
	});
}

function verifySubscription(listId) {
	message = '';
	
	if(listId >= 0){
		postvars = "email=" + $('#email_' + listId).val();
	}else{
		postvars = "email=" + $('#email').val();
	}
	
	if($('#newsletter_id').val() != undefined) {
		postvars += "&newsletter_id=" + $('#newsletter_id').val();
	}
	
	$.ajax({
		type: "POST",
		url: baseUrl + "/check_remote_subscription",
		data: postvars,
		async: false,
		success: function(msg){
			message = msg;
		}
	});
	
	return message;
}

function redoNewsletterBox(listId) {
	if(listId >= 0){
		$('#activatesubscribe_' + listId).hide();
		$('#errorsubscribe_' + listId).hide();
		$('#subscribed_' + listId).hide();
		$('#wait4subscribe_' + listId).hide();
		$('#subscribe_' + listId).show();
	}else{
		$('#activatesubscribe').hide();
		$('#errorsubscribe').hide();
		$('#subscribed').hide();
		$('#wait4subscribe').hide();
		$('#subscribe').show();
	}
}

function updateNewsletterBox(email, otherParam, listId) {
	if(listId >= 0){
		$('#activatesubscribe_' + listId).hide();
		$('#errorsubscribe_' + listId).hide();
		$('#subscribe_' + listId).hide();
		$('#wait4subscribe_' + listId).hide();
		$('#subscribed_' + listId).show();
	}else{
		$('#activatesubscribe').hide();
		$('#errorsubscribe').hide();
		$('#subscribe').hide();
		$('#wait4subscribe').hide();
		$('#subscribed').show();
	}
}
