function DataManager() {
	// Properties
	var self = this;
	self.RequestCompleteEvent = null;
	this.RequestCompleteEvent = self.RequestCompleteEvent;
	self.RequestFailedEvent = null;
	this.RequestFailedEvent = self.RequestFailedEvent;
	
	// Methods
	this.CreateDataHandler = function(Request) {
		var DataHandler = function() {
			if (Request.readyState == 4) {
				if (Request.status == 200) {
					self.RequestCompleteEvent(Request);
				} else {
					self.RequestFailedEvent(Request);
				}
			}
		}
		DataHandler.Request = Request;
		DataHandler.RequestCompleteEvent = self.RequestCompleteEvent;
		DataHandler.RequestFailedEvent = self.RequestFailedEvent;
		return DataHandler;
	}
	this.InitiateXmlHttpRequest = function() {
		var Request = null;
		try {
			Request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				Request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(oc) {
				Request = null;
			}
		}
		if (!Request && typeof(XMLHttpRequest) != "undefined") Request = new XMLHttpRequest();
		if (!Request) document.location = 'http://lussumo.com/upgrade.html';
		return Request;
	}
	this.LoadData = function(DataSource) {
		var Request = this.InitiateXmlHttpRequest();
		if (Request != null) {
			try {
				Request.onreadystatechange = this.CreateDataHandler(Request);
				Request.open("GET", DataSource, true);
				Request.send(null);
			} catch(oc) {
				alert(oc);
			}
		}
	}
}

function SendSuggestion() {
    document.SuggestionForm.Button.disabled = document.SuggestionForm.Input.disabled = true;
    document.getElementById('SuggestionForm').style.display = 'none';
    document.getElementById('SuggestionMsg').innerHTML = "Suggestion pending...";

    var dm = new DataManager();
	dm.RequestCompleteEvent = HandleSuggestion;
	dm.LoadData('./Suggestion.php?Profile='+escape(document.SuggestionForm.Input.value));
}

function SendEmail() {
    document.EmailForm.Button.disabled = document.EmailForm.Input.disabled = true;
    document.getElementById('EmailMsg').style.display = '';
    document.getElementById('EmailMsg').innerHTML = "Request pending...";

    var dm = new DataManager();
	dm.RequestCompleteEvent = HandleSubscriber;
	dm.LoadData('./Subscriber.php?Email='+escape(document.EmailForm.Input.value));
}

function HandleSubscriber(Request) {
    if(Request.readyState == 4){
        var response = Request.responseText;
        if(response == 'Completed') {
		  document.getElementById('EmailForm').style.display = "none";
		  document.getElementById('EmailMsg').innerHTML = "Welcome to the VirbRocks.com email subscription list.";
		} else if(response != ""){
		  document.getElementById('EmailMsg').innerHTML = response;
		  document.EmailForm.Button.disabled = document.EmailForm.Input.disabled = false;
		}
    }
}

function HandleSuggestion(Request) {
    if(Request.readyState == 4){
      document.SuggestionForm.Button.disabled = document.SuggestionForm.Input.disabled = false;
      document.getElementById('SuggestionForm').style.display = '';
      document.getElementById('SuggestionMsg').innerHTML = "";
    }
}

