﻿function initClientToolTip(tooltipid)
{
	try
	{
		toolTip.hide();
	}
	catch (Error)
	{}
	
	var toolTip = S.Get(tooltipid);
	
	if (toolTip)
	{
		toolTip.autoClose = false;
		toolTip.autoCloseTimeout = 4;
		toolTip.inactivateID = null;
		toolTip.inactivateText = null;
		toolTipManager.add(toolTip);
	}
}

function hideToolTips()
{
	if (toolTipManager.contains(toolTipProfileName))
	{
		toolTipManager.toolTipsIDMapping.remove('ProfileNameTaken');
	}
	
	if (toolTipManager.contains(toolTipNoName))
	{
		toolTipManager.toolTipsIDMapping.remove('ProfileNameNoName');
	}
	
	if (toolTipManager.contains(toolTipAgreement))
	{
		toolTipManager.toolTipsIDMapping.remove('Agreement');
	}
	
	if (toolTipManager.contains(toolTipNoEmail))
	{
		toolTipManager.toolTipsIDMapping.remove('NoEmail');
	}
	
	if (toolTipManager.contains(toolTipEmail))
	{
		toolTipManager.toolTipsIDMapping.remove('Email');
	}
	
	if (toolTipManager.contains(toolTipConfirmEmail))
	{
		toolTipManager.toolTipsIDMapping.remove('ConfirmEmail');
	}
	
	if (toolTipManager.contains(toolTipPassword))
	{
		toolTipManager.toolTipsIDMapping.remove('Password');
	}
	
	toolTipProfileName.hide();
	toolTipNoName.hide();
	toolTipAgreement.hide();
	toolTipNoEmail.hide();
	toolTipEmail.hide();
	toolTipConfirmEmail.hide();
	toolTipPassword.hide();
}

function showToolTip() {
    toolTipManager.main = S.Get('Main');
    toolTipManager.initialize();
    toolTipManager.displayFormValidation();
}

function validateProfileNameShowToolTip() {
    hideToolTips();
    initClientToolTip('ProfileNameTaken');
    toolTipProfileName.show();
    showToolTip();
}

function noProfileNameShowToolTip() {
    hideToolTips();
    initClientToolTip('ProfileNameNoName');
    toolTipNoName.show();
    showToolTip();
}

function validateAgreementShowToolTip() {
    hideToolTips();
    initClientToolTip('Agreement');
    toolTipAgreement.show();
    showToolTip();
}

function validateNoEmailShowToolTip() {
    hideToolTips();
    initClientToolTip('NoEmail');
    toolTipNoEmail.show();
    showToolTip();
}

function validateEmailShowToolTip() {
    hideToolTips();
    initClientToolTip('Email');
    toolTipEmail.show();
    showToolTip();
}

function validateConfirmEmailShowToolTip() {
    hideToolTips();
    initClientToolTip('ConfirmEmail');
    toolTipConfirmEmail.show();
    showToolTip();
}

function validatePasswordShowToolTip() {
    hideToolTips();
    initClientToolTip('Password');
    toolTipPassword.show();
    showToolTip();
}


// returns true if the string is a valid email
function isEmail(str)
{
	if (!(str)) return false;
	var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
	return re.test(str);
}

function validateProfileName()
{
	var profilename = profilenametextbox.value;
	
	if (profilename.length > 0)
	{
		$.get("/Global/Profiles/JSON/ValidateProfileName.aspx", { P: profilename }, function(data)
		{
			if (data.toString() == "False")
			{
				validateProfileNameShowToolTip();
				return false;
			} 
		});
	}
	else
	{
		noProfileNameShowToolTip();
		return false;
	}
	
	var password = passwordtextbox.value;
	
	if (password.length < 3)
	{
		validatePasswordShowToolTip();
		return false;
	}
	
	var email = emailtextbox.value;
	var confirmedemail = confirmemailtextBox.value;
	
	if (email.length < 1)
	{
		validateNoEmailShowToolTip();
		return false;
	}
	else
	{
		if (!isEmail(email))
		{
			validateEmailShowToolTip();
			return false;
		}
		
		if (email != confirmedemail)
		{
			validateConfirmEmailShowToolTip();
			return false;
		}
	}
	
	if (agreementcheckbox.checked)
	{
		__doPostBack(quickCreateButtonClientID, 'CreateProfile');
	}
	else
	{
		validateAgreementShowToolTip();
		return false;
	}
	
	return true;
}
