/**
 * common javascript for reddress microsite
 */

function resetInviteForm()
{
	resetCaptcha("kocaptcha");
	$("#errorMessageText").css("display", "none");
	$("#inviteForm label").removeClass("error");
	$("#inviteForm input:text").val("");
	$("#cbPermission").get(0).checked = false;
	
	$("#formContent").css("display", "block");
	$("#inviteConfirmation, #inviteConfirmation div").css("display", "none");
}

function showInviteConfirmation(bSuccess)
{
	var confirmResult = (bSuccess ? "Success" : "Failed");	
	$("#formContent").css("display", "none");
	$("#inviteConfirmation div").css("display", "none");
	$("#inviteConfirmation, #inviteConfirmation" + confirmResult).css("display", "block");
}

function resetCaptcha(id)
{		
	$("#" + id).attr("src", "/reddress/inc/jsp/kocaptcha.jsp?rnd=" + Math.random());
}

function captchaCodeError(text)
{
	return (getFile("/reddress/inc/jsp/check-captcha.jsp?capcheck=" + text) != "true");
}

function processInviteForm()
{
	$("#errorMessageText").css("display", "none");
	$("#inviteForm label").removeClass("error");
	var validEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
	var thisFieldHasError = null;
	var formHasErrors = false;
	$("#inviteForm input").each(function()
	{
		thisFieldHasError = false;
		if (this.type == "text")
		{
			this.value = $.trim(this.value);
			if (this.value === "")
			{
				thisFieldHasError = true;
			}
			else if ($(this).hasClass("email"))
			{
				thisFieldHasError = ! validEmail.test(this.value);
			}
			else if ($(this).hasClass("captcha"))
			{
				thisFieldHasError = captchaCodeError(this.value);
				if (thisFieldHasError)
				{
					resetCaptcha("kocaptcha");
				}
			}
		}
		else if (this.id == "cbPermission" && this.checked === false)
		{
			thisFieldHasError = true;
		}
		if (thisFieldHasError)
		{
			$("label[for=" + this.id + "]").addClass("error");
			formHasErrors = true;
		}
	});
	
	if (formHasErrors)
	{
		$("#errorMessageText").css("display", "block");
		trackEvent('/event/html/SUBMIT/invalid');
	}
	else
	{
		var yourEmail = $("#yourEmailTextBox").val();
		var friendEmail = $("#friendEmailTextBox").val();
		var pinCode = $("#pinCode").val();
		var securityCode = $("#securityCodeTextBox").val();
		var processUrl = "/reddress/inc/jsp/inviteProcess.jsp?youremail=" + yourEmail + "&friendemail=" + 
								friendEmail + "&pincode=" + pinCode + "&captcha=" + securityCode;
		var processResult = $.trim(getFile(processUrl));
		$("#confirmFriendEmail").html($("#friendEmailTextBox").val());
		showInviteConfirmation(processResult=="true");
		trackEvent('/event/html/SUBMIT/' + (processResult=="true" ? "success" : "error") );
	}
}

//execute functions to initialize page when DOM is ready
jQuery(document).ready(function()
{
	
	//===========================================
	//=== BEGIN events for form parts & links ===
	$("#btnSendEmail").click(function(event)
	{
		processInviteForm();
		event.preventDefault();
	});
	$("#securityCodeReload").click(function()
	{	
		resetCaptcha("kocaptcha");
		trackEvent('/event/html/RELOAD/captcha');
	});	
	//=== E=N=D events for form parts & links ===
	//===========================================

});
