function SubscribeClass(){
	this.xml = new XML();
	this.modalDialog = null;
	
	this.requestDelay = true;
	this.request = null;
	
	this.sendRequest = function(url, params, func){
		if (url && params){
			this.xml.listener = this;
			this.xml.onLoad = func;
			this.xml.load(url+"?"+params);
		}
	}
	
	this.sendSubscribe = function(dialog) {
		var url = "/blog/blogsubscribe.php";

		if(!dialog)  {
			var unsubscribeId = "unsubscribe";
			var emailId = "email";
		} else {
			var unsubscribeId = "unsubscribeDialog";
			var emailId = "emailDialog";			
		}
		
		var email = document.getElementById(emailId).value;
		if (document.getElementById(unsubscribeId).checked)	var action = "unsubscribe";
		else var action = "subscribe";
		var params = "action="+action+"&email="+email;
		addClass(document.getElementById("subscription"),"in_request");
		if (this.requestDelay) {
			this.request = new Object();
			this.request.url = url;
			this.request.params = params;
			this.request.callback = this.getAnswer;
		}
		else this.sendRequest(url,params,this.getAnswer);
		return false;
	}
	
	this.checkDelay = function() {
		if (!this.requestDelay && this.request) {
			this.sendRequest(this.request.url,this.request.params,this.request.callback);
			this.request = null;
		}
	}
	
	this.openSubscribeDialog = function() {
		this.modalDialog = getModalDialogManager();
		document.getElementById("emailDialog").value = "";
		
		document.getElementById("subscribeAnswer").style.display = "none";
		document.getElementById("subscribeDialogField").style.display = "block";
		this.modalDialog.open("subscribeAnswerDlg");
		return false;
	}
	
	this.getAnswer = function(obj,responseText,statusText){
		removeClass(document.getElementById("subscription"),"in_request");
		switch (responseText){
			case "SUCCESS":
				if (document.getElementById("unsubscribe").checked)	this.showSubscribeAnswer("Please check your e-mail for instructions to finish unsubscribing.");
				else this.showSubscribeAnswer("Please check your e-mail for instructions to finish subscribing.");
				break;
			case "EMAIL NOT CORRECT":
				this.showSubscribeAnswer("Your e-mail isn't correct.");
				break;
			case "EMAIL EXISTS":
				this.showSubscribeAnswer("You had already subscribed.");
				break;
			case "ERROR":
			default:
				this.showSubscribeAnswer("Error sending process, try again...");
		}
	}
	
	this.showSubscribeAnswer = function(answer){
		this.modalDialog = getModalDialogManager();
		document.getElementById("subscribeAnswer").innerHTML = answer;
		
		document.getElementById("subscribeDialogField").style.display = "none";
		document.getElementById("subscribeAnswer").style.display = "block";

		this.modalDialog.open("subscribeAnswerDlg");
	}
			
	this.checkSubscribersEmail = function (){
		var url = "/admin/subscribers/index.php";
		var email = document.getElementById("email").value;
		var action = "email_check";
		var params = "action="+action+"&email="+email;
		this.sendRequest(url,params,this.checkEmailAnswer);
	}
	
	this.checkEmailAnswer = function(obj,responseText,statusText) {
   		switch (responseText){
			case "EMAIL NOT FOUND":
				submitForm(12);
				break;
			case "EMAIL EXISTS":
				writeErrorString("Your e-mail exists in subscribers list.");
				showErrorsBox();
				break;
			case "EMAIL REQUIRED":
				writeErrorString("Enter your e-mail.");
				showErrorsBox();
				break;
			default:
				alert("Error checking e-mail, try again...");
		}
	}

}

var Subscribe = new SubscribeClass();
