var Subscribe = {};

Subscribe.showForm = function() {
	document.write("<div id=\"subscribeFormContainer\"></div>");
	var container = document.getElementById("subscribeFormContainer");
	container.style.padding = "5px";
	container.style.border = "1px solid #ccc";
	container.style.width = "173px";
	container.style.fontSize = "10px";

	var errorMessageContainer = document.createElement("div");
	errorMessageContainer.id = "errorMessageContainer";
	errorMessageContainer.style.display = "none";
	errorMessageContainer.style.padding = "0px 0px 5px 0px";
	errorMessageContainer.style.color = "red";
	errorMessageContainer.style.textAlign = "left";
	container.appendChild(errorMessageContainer);

	var messageContainer = document.createElement("div");
	messageContainer.id = "messageContainer";
	messageContainer.style.display = "none";
	messageContainer.style.padding = "0px 0px 5px 0px";
	messageContainer.style.textAlign = "left";
	container.appendChild(messageContainer);

	var input = document.createElement("input");
	input.id = "subscribeEmail";
	input.style.width = "120px";
	container.appendChild(input);
	input.onfocus = Subscribe.onfocus;
	
	var button = document.createElement("input");
	button.id = "subscribeButton";
	button.type = "button";
	button.value = "Ok";
	button.style.width = "35px";
	container.appendChild(button);
	button.onclick = this.subscribe;
	Subscribe.showMessage("Enter your email address below:");
}

Subscribe.subscribe = function() {
	var errorMessageContainer = document.getElementById("errorMessageContainer");
	errorMessageContainer.style.display = "none";
	var input = document.getElementById("subscribeEmail");
	if(Subscribe.isEmailValid(input.value)) {
		Subscribe.disableButton();
		var image = new Image();
		image.onload = Subscribe.onload;
		image.onerror = Subscribe.onerror;
		image.src = "http://app.skoach.com/subscribeToNews.html?email=" + input.value + "&t=" + new Date().getTime();
		
	} else {
		Subscribe.showError("Invalid Email. Please re-enter.");
	}
}

Subscribe.onfocus = function() {
	Subscribe.hideError();
	Subscribe.showMessage("Enter your email address below:");
}

Subscribe.showError = function(message) {
	Subscribe.hideMessage()
	var errorMessageContainer = document.getElementById("errorMessageContainer");
	errorMessageContainer.innerHTML = message;
	errorMessageContainer.style.display = "";
}

Subscribe.hideError = function() {
	var errorMessageContainer = document.getElementById("errorMessageContainer");
	errorMessageContainer.style.display = "none";
}

Subscribe.showMessage = function(message) {
	Subscribe.hideError();
	var messageContainer = document.getElementById("messageContainer");
	messageContainer.innerHTML = message;
	messageContainer.style.display = "";
}

Subscribe.hideMessage = function() {
	var messageContainer = document.getElementById("messageContainer");
	messageContainer.style.display = "none";
}

Subscribe.onerror = function() {
	Subscribe.showError("There was an error");
	Subscribe.enableButton();
}

Subscribe.onload = function() {
	Subscribe.showMessage("Thank you for subscribing to our newsletter!");
	Subscribe.enableButton();
	var input = document.getElementById("subscribeEmail");
	input.value = "";
}

Subscribe.disableButton = function() {
	var button = document.getElementById("subscribeButton");
	button.disabled = true;
}
Subscribe.enableButton = function() {
	var button = document.getElementById("subscribeButton");
	button.disabled = false;
}

Subscribe.isEmailValid = function(email) {
	return /^\w(\w|\.|-|\+)+@(\w|-)+(\.(\w|-)+)+$/.test(email);
}