var dejumbler = {
	resultsEl: null,
	statusEl: null,

	init: function() {
		this.resultsEl = $("results");
		this.statusEl = $("status");
	},

	trySubmit: function() {
		var checkFields = MMDeveloperPortal.checkForEmptyFields(["letters"]);

		if (checkFields[0] === false) {
			alert(checkFields[1]);
		}
		else {
			this.resultsEl.innerHTML = "";
			this.checkMethod();
			var formHash = new Hash();
			formHash.set("letters", $("letters").value);
			formHash.set("processMethod", $("processMethod").value);
			formHash.set("isAjax", "true");
			new Ajax.Request("http://www.mechanicmatt.com/component,programming/task,dejumble/", {
							parameters: formHash,
							evalJSON: true,
							onCreate: function(transport) {
								this.statusEl.innerHTML = "Processing...";
							}.bind(this),
							onSuccess: function(transport) {
								this.statusEl.innerHTML = "Done!";
								//alert(transport.responseText);
								var resultsHeader = "Your Dejumbler session for \"<b>" + transport.responseJSON.original + "</b>\" returned " + transport.responseJSON.words.length + " result(s), taking " + transport.responseJSON.runTime + " seconds to execute.<br /><br /><h3>Results:</h3>";
								var resultTemplate = new Template('<div class="wordDejumbler_resultWord">##{num}. <a href="http://dictionary.reference.com/browse/#{word}">#{word}</a></div>');
								this.resultsEl.innerHTML = resultsHeader;

								transport.responseJSON.words.each(function(item, index) {
										var word = {num: (index + 1), word: item};
										this.resultsEl.innerHTML += resultTemplate.evaluate(word);
									}, this);
							}.bind(this)
					});
		}
	},

	checkMethod: function() {
		var method = $("processMethod").value;
		var letters = $("letters");

		letters.value = letters.value.replace(/[^a-zA-Z]/g, "");
		switch (method) {
			case "1":
				letters.value = letters.value.substring(0, 7);
				break;
		}
	}
};