function checkEmail(email){
	var test;
	var filter=/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;
	if (filter.test(email)){test=true;}else{test=false;}
	return test;
}

function validateEmail(email) {
	var err = 0;
	var msg = 'Au apărut urmatoarele erori:';
	
	if(email == "") { err++; msg+= "\nNu ai introdus adresa de e-mail."; }else { if(checkEmail(email) == false) { err++; msg += "\nAdresa de e-mail este invalidă."; } }
	
	if(err!=0){jAlert(msg, "Avertizare"); return false;}else{return true;}
}

function checkNewsletter() {
	if($('#newsletter_id').attr('checked') == true) {
		validateSubscribe();
	} else {
		validateUnsubscribe();
	}
	return true;
}

function validateSubscribe() {
	var email = $('#email').val();

	if(validateEmail(email) == true) {
		if($('#newsletter_id').val() != undefined) {
			newsletterId = $('#newsletter_id').val();
		} else {
			newsletterId = 0;
		}

		subscribe(newsletterId, $('#email').val());
		return true;
	} else {
		return false;
	}
}

function validateUnsubscribe() {
	var email = $('#email').val();

	if(validateEmail(email) == true) {
		if($('#newsletter_id').val() != undefined) {
			newsletterId = $('#newsletter_id').val();
		} else {
			newsletterId = 0;
		}

		unsubscribe(newsletterId, $('#email').val());
		return true;
	} else {
		return false;
	}
}

function subscribe(newsletterId, email) {
	if($('#formular')) {
		form = $('#formular').val();
	} else {
		form = 'teaser';
	}

	$.ajax({
		type: "POST",
		url: baseURL + "/tools/subscribe",
		data: "newsletter_id=" + newsletterId + "&email=" + email + '&data[form]=' + form,
		dataType: 'json',
		success: function(data){
			if(data.error == 0) {
				var subscription = checkSubscription(newsletterId, email);
				
				if(subscription == 'activ') {
					jAlert("Adresa de e-mail a fost înregistrată.\nTe rugăm să confirmi abonarea conform\ninstrucţiunilor pe care le vei primi pe e-mail.", "Avertizare");
				} else if(subscription == 'pending') {
					jAlert("Adresa de e-mail a fost abonată si aşteaptă confirmarea.", "Avertizare");
				} else {
					jAlert("Adresa de e-mail nu a putut fi abonată.\nTe rugăm să mai încerci o dată.", "Avertizare");
				}
			} else if(data.error == 18) {
				jAlert("Această adresă de e-mail este deja abonată.", "Avertizare");
			} else {
				jAlert("A apărut o eroare la abonarea adresei de e-mail.", "Avertizare");
			}
		},
		error: function(data) {
		}
	});
}

function unsubscribe(newsletterId, email) {
	$.ajax({
		type: "POST",
		url: baseURL + "/tools/unsubscribe",
		data: "newsletter_id=" + newsletterId + "&email=" + email,
		dataType: 'json',
		success: function(data){
			if(data.error == 0) {
				var subscription = checkSubscription(newsletterId, email);
				
				if(subscription == 'inactiv') {
					jAlert("Adresa de e-mail a fost dezabonată.", "Avertizare");
				} else {
					jAlert("Adresa de e-mail nu a putut fi dezabonată.\nTe rugăm să mai încerci o dată.", "Avertizare");
				}
			} else if(data.error == 13) {
				jAlert("Această adresa de e-mail este deja dezabonată.", "Avertizare");
			} else {
				jAlert("A apărut o eroare la dezabonarea adresei de e-mail.", "Avertizare");
			}
		},
		error: function(data) {
		}
	});
}

function checkSubscription(newsletterId, email) {
	var message = '';

	$.ajax({
		type: "POST",
		url: baseURL + "/tools/check_subscription",
		data: "email=" + email + "&newsletter_id=" + newsletterId,
		async: false,
		success: function(msg){
			message = msg;
		}
	});

	return message;
}
