// studio/loginValidations.js

var alertBox;

function ShowAlertBox(msg) {
	alertBox.cfg.setProperty("text", msg);
	alertBox.show();
}

function userIsStrongPassword(pw) {
	var containsUpper = false;
	var containsLower = false;
	var containsNumberOrPunc = false;
	var containsBadChar = false;

	if(pw.length < 8)
		return(false);

	for(i = 0;i < pw.length;i++) {
		c = pw.substring(i, i+1);
		if((c >= "A") && (c <= "Z"))				//65-90
			containsUpper = true;
		else if((c >= "a") && (c <= "z"))			//97-122
			containsLower = true;
		else if((c >= "0") && (c <= "9"))			//48-57
			containsNumberOrPunc = true;
		else if((c == "!") || (c == "#") || (c == "$") || (c == "%") || (c == "&"))	// 33, 35-38
			containsNumberOrPunc = true;
		else
			containsBadChar = true;
	}

	if(!containsUpper || !containsLower || !containsNumberOrPunc || containsBadChar)
		return(false);
	else
		return(true);
}


function invokeChangePassword() {
	var username = trim(document.loginForm.userName.value);
	if(username.length == 0) {
		ShowAlertBox("You must enter a valid user name.");
		return(false);
	}

	document.loginForm.action = "/ChangePasswordSetup.do";
	document.loginForm.submit();
	return(true);
}


function invokeEmailNewPassword() {
	var username = trim(document.loginForm.userName.value);
	if(username.length == 0) {
		ShowAlertBox("You must enter a valid user name.");
		return(false);
	}

	if(confirm("Click OK to generate a new password. It will be emailed to the address for this user.")) {
		document.loginForm.action = "/EmailNewPassword.do";
		document.loginForm.submit();
	}
	else {
		ShowAlertBox("Operation cancelled at your request.");
	}
}


function invokeLogin() {
	document.changePasswordForm.action = "/jsp/login/login.jsp";
	document.changePasswordForm.submit();
	return(true);
}


function validateChangePassword() {
	if(trim(document.changePasswordForm.oldPassword.value).length == 0) {
		ShowAlertBox("Old password is required.");
		document.changePasswordForm.oldPassword.focus();
		return(false);
	}

	if(!userIsStrongPassword(trim(document.changePasswordForm.newPassword.value))) {
		ShowAlertBox("New password must follow guidelines listed on the input page.");
		document.changePasswordForm.newPassword.focus();
		return(false);
	}

	if(document.changePasswordForm.verifyPassword.value != document.changePasswordForm.newPassword.value) {
		ShowAlertBox("Entered new password and verify password do not match.");
		document.changePasswordForm.verifyPassword.focus();
		return(false);
	}

	if(document.changePasswordForm.oldPassword.value == document.changePasswordForm.newPassword.value) {
		ShowAlertBox("New password is the same as Old password!");
		document.changePasswordForm.verifyPassword.focus();
		return(false);
	}

	document.changePasswordForm.action = "/ChangePassword.do";
	document.changePasswordForm.submit();
	return(true);
}

