// @author :: brian.glodde :: www.glodde.com

var iChars = "*|,\":<>[]{}`\';()&$#%^!@*=.";

function validatePreview()
{
	var frm = document.forms[0];
	var msg = '';
	var focusField = '';

	// non-empty & valid username
	if(frm.txtUsername.value == '')
	{
		msg += ' - Username is required.\n';
		focusField = 'txtUsername';
	}
	
	// assure the input for # is numeric
	
	// they have chosen an account type
	if(frm.account_type.selectedIndex == 0)
	{
		msg += ' - Account Type is required.\n';
		if(focusField == '') focusField = 'account_type';
	}
	
	// non-empty email
	if(frm.email.value == '')
	{
		msg += ' - Email address is required.\n';
		if(focusField == '') focusField = 'email';
	}
	// matching & valid email address
	else if(!isEmailConfirmed())
	{
		msg += ' - Email and confirmation do not match.\n';
		if(focusField == '') focusField = 'email';
	}
	// proper formatting please
	else if(!isEmail(frm.email.value))
	{
		msg += ' - Invalid email address.\n';
		if(focusField == '') focusField = 'email';
	}
	
	if(msg.length > 0)
	{
		alert('The profile cannot be previewed yet!\n\nPlease correct the following:\n' + msg);
		
		if(focusField != '')
		{
			eval('frm.' + focusField + '.focus()');
		}
		
		return false;
	}
	
	return true;
}

function fixIllegalChars()
{
	var frm = document.forms[0];
	var t = frm.txtUsername.value;

	// remove spaces
	var s = t.replace(" ", "");

	if(s.length > 20)
	{
		s = s.substring(0, 20);
	}

	for(var i = 0; i < s.length; i++)
	{
		if (iChars.indexOf(s.charAt(i)) != -1)
		{
			s = s.replace(s.charAt(i), "");
		}
	}

	frm.txtUsername.value = s;
}

function isEmail(string)
{
	if (!string) return false;

	var emailFilter=/^.+@.+\..{2,3}$/;

	if (!(emailFilter.test(string)))
	{
		return false;
	}
	
	return true;
}

function isEmailConfirmed()
{
	var frm = document.forms[0];
	
	if(frm.email.value == '' || frm.conf_email.value == '')
	{
		return false;
	}
	
	if(frm.email.value != frm.conf_email.value)
	{
		return false;
	}
	return true;
}

function filterNumeric(key, ch) 
{
    if(ch != null) 
    {
        if((ch >= 48 && ch <= 57) || ch == 0 || key == 8 || ch == 13) 
        {
            ret = true; 
        }
        else 
        { 
            ret = false; 
        } 
    } 
    else 
    {
        if((key >= 48 && key <= 57) || key == 13) 
        {
            ret = true; 
        }
        else 
        { 
            ret = false; 
        } 
    } 
  return ret; 
} 

function setAccountName(i)
{
	var frm = document.forms[0];
	
	// assuming that index 0 is the default "choose one"
	if(i > 0)
	{
		frm.account_type_name.value = frm.account_type[i].text;
	}
}

function validateRegistration()
{
	var frm = document.forms[0];

	if(!frm.terms.checked)
	{
		if(confirm('Do you agree to our terms & conditions?\nClick \'OK\' to confirm or \'Cancel\' to review.'))
		{
			return true;
		}
		
		frm.terms.focus();
		return false;
	}
	
	return true;
}

function openPreviewWindow(url)
{
	var x = window.open(url, "IsReallyAwesome_Profile_Preview", "height=375,width=800");
}

function  validateLogin()
{
	var frm = document.forms[0];
	
	if(frm.txtLogin.value == '')
	{
		alert("Login name is required.");
		frm.txtLogin.focus();
		return false;
	}
	else if(frm.txtPwd.value == '')
	{
		alert("Password is required.");
		frm.txtPwd.focus();
		return false;
	}
	return true;
}

function validateUpdate()
{
	
	var frm = document.forms[0];
	
	if(frm.newPwd.value != '' || frm.confNewPwd.value != '')
	{
		if( frm.newPwd.value != frm.confNewPwd.value )
		{
			alert( "New password and confirmation do not match.\nPlease confirm the passwords match." );
			frm.newPwd.focus();
			return false;
		}
	}
	return true;
}
