var initMiniSignup = function() {
	
	var Dom = YAHOO.util.Dom, miniContent = Dom.get('miniContentResponse'), inputState = false, inputs = Dom.getElementsByClassName('inputField', 'input'), emailRegEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

	var setInputState = function() {
		inputState = !inputState;
		for (i=0; i<inputs.length; i++) {
			inputs[i].disabled = inputState;
		}
		Dom.get('createmini').disabled = inputState;
	}

	var miniCallback = {
		success : function(o) {
			var status = o.responseText.substring(0,7);
			if (status == 'SUCCESS')
			{
				var response = o.responseText.replace(/^SUCCESS/,'');
				miniContent.innerHTML = o.responseText;
			}
			else if (status == 'FAILED<')
			{
				var response = o.responseText.replace(/^FAILED/,'');
				miniContent.innerHTML = o.responseText;
			}
			else
			{
				miniContent.innerHTML = o.responseText;
				setInputState();
			}
		},
		failure : function(o) {
			miniContent.innerHTML = '<span class="fontSize isFail">CONNECTION FAILED!</span>';
		}
	}

	var validateMini = function(e) {
		
		var gotErrors = false;
		
		var errorMsg = "";

		var postData = "";
		
		for (i=0; i<inputs.length; i++) {
			
			var inputVal = inputs[i].value.replace(/^\s*/,'');
			
			if (inputs[i].name == 'firstname') {
				if (inputVal == '') {
					gotErrors = true;
					errorMsg += "Please provide your first name.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					postData += "firstname=" + encodeURIComponent(inputVal) + "&";
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
				}
			}

			if (inputs[i].name == 'lastname') {
				if (inputVal == '') {
					gotErrors = true;
					errorMsg += "Please provide your last name.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					postData += "lastname=" + encodeURIComponent(inputVal) + "&";
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
				}
			}

			if (inputs[i].name == 'email') {
				if(emailRegEx.test(inputVal) == false) {
					gotErrors = true;
					errorMsg += "Please verify that your email address is correct.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					postData += "email=" + encodeURIComponent(inputVal) + "&";
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
				}
			}

			if (inputs[i].name == 'password') {
				if (inputVal == '') {
					gotErrors = true;
					errorMsg += "Please provide a password to use.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
					var inputNextVal = inputs[i+1].value.replace(/^\s*/,'');
					if (inputNextVal != inputVal) {
						gotErrors = true;
						errorMsg += "Your password does not match the confirmation password.\n";
						Dom.replaceClass(inputs[i+1],'inputNormal','inputError');
					} else {
						postData += "password=" + encodeURIComponent(inputVal) + "&";
						Dom.replaceClass(inputs[i+1],'inputError','inputNormal');
					}
				}
			}

			if (inputs[i].name == 'nativedomain') {
				if (inputVal == '' || inputVal == 'www.example.com') {
					gotErrors = true;
					errorMsg += "Please provide your native domain name.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					postData += "nativedomain=" + encodeURIComponent(inputVal) + "&";
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
				}
			}

			if (inputs[i].name == 'minidomain') {
				if (inputVal == '' || inputVal == 't.example.com') {
					gotErrors = true;
					errorMsg += "Please provide a mini domain name.\n";
					Dom.replaceClass(inputs[i],'inputNormal','inputError');
				} else {
					postData += "minidomain=" + encodeURIComponent(inputVal);
					Dom.replaceClass(inputs[i],'inputError','inputNormal');
				}
			}
		}

		if (gotErrors) {
			alert(errorMsg);
		} else {
			// post form
			setInputState();
			var conn = YAHOO.util.Connect.asyncRequest("POST", "/contact/mini-url-form.php", miniCallback, postData);
		}
	}

	YAHOO.util.Event.addListener("createmini", "click", validateMini);
}
YAHOO.util.Event.addListener(window, "load", initMiniSignup);