/* CopyrightTag: Copyright (c) 2004-2008 Satmetrix Systems, Inc. All Rights Reserved. */
/* $Id: portalMember.js,v 1.1.2.2 2009/02/19 12:31:32 mmenghani Exp $ */
/**
 *  portalMember.js - contains javascript used by the various portal member
 *  components: registerMember and updateMember
 */
 
function PortalMember(portalMemberForm) {

	this.form = portalMemberForm;
	this.errors = null;
	
	this.isLoginIdentifierRequired			= true;
	this.isConfirmLoginIdentifierRequired	= false;
	this.isPasswordRequired 				= true;
	this.isConfirmPasswordRequired			= true;
	this.isScreenNameRequired				= false;
	this.minPasswordLength					= 6;
	this.minLoginIdentifierLength			= 6;
	
	this.loginIdentifierLabel			= "Username";
	this.confirmLoginIdentifierLabel	= "Confirm Username";
	this.passwordLabel					= "Password";
	this.confirmPasswordLabel			= "Confirm Password";
	this.screenNameLabel				= "Screen Name";
	
	this.addError					= portalMemberAddError;
	this.encodePassword				= portalMemberEncodePassword;
	this.onSubmitForm				= portalMemberOnSubmitForm;	
	this.validateFormFields			= portalMemberValidateFormFields;
	
	this.validatePassword				= portalMemberValidatePassword;
	this.validateConfirmPassword		= portalMemberValidateConfirmPassword;
	this.validateLoginIdentifier		= portalMemberValidateLoginIdentifier;
	this.validateConfirmLoginIdentifier	= portalMemberValidateConfirmLoginIdentifier;
	this.validateScreenName				= portalMemberValidateScreenName;
}

function portalMemberOnSubmitForm() {

	var isValid = this.validateFormFields();
	
	if ( isValid ) {
		this.encodePassword();
	}
	
	return isValid;
}

function portalMemberEncodePassword() {
	
	if ( this.form.password ) {
		var password = this.form.password.value;
		var encodedPassword = hex_md5(password);
		
		this.form.encodedPassword.value = encodedPassword;
		this.form.password.value = "";
	}
	
	if ( this.form.confirmPassword ) {
		this.form.confirmPassword.value = "";
	}

	if ( this.form.currentPassword ) {
		var currentPassword = this.form.currentPassword.value;
		var encodedPassword = hex_md5(currentPassword);
		
		this.form.encodedCurrentPassword.value = encodedPassword;
		this.form.currentPassword.value = "";
	}
}

function portalMemberValidateFormFields() {
	//var loginIdentifierValid = this.validateLoginIdentifier();
	var loginIdentifierValid = true;
	var confirmLoginIdentifierValid = this.validateConfirmLoginIdentifier();
	var passwordValid = this.validatePassword();
	var confirmPasswordValid = this.validateConfirmPassword();
	var screenNameValid = this.validateScreenName();
	
	return ( loginIdentifierValid &&
			 confirmLoginIdentifierValid &&
			 passwordValid &&
			 confirmPasswordValid &&
			 screenNameValid );
}

function portalMemberValidatePassword() {

	if ( !this.isPasswordRequired ) {
		return true;
	}
	
	var password = this.form.password.value;

	if ( password == null || password.length < this.minPasswordLength ) {
		 
		this.addError(
			this.passwordLabel + 
			" must be specified and contain at least " +
			this.minPasswordLength +
			" characters");
			
		return false;
	}
	
	return true;
}

function portalMemberValidateConfirmPassword() {

	if ( !this.isConfirmPasswordRequired ) {
		return true;
	}
	
	if ( !this.form.password || !this.form.confirmPassword ) {
		return true;
	}
	
	if ( this.form.password.value != this.form.confirmPassword.value ) {
	
		this.addError(
			this.confirmPasswordLabel +
			" must match " +
			this.passwordLabel);
			
		return false;
	}
	
	return true;
}

function portalMemberValidateConfirmLoginIdentifier() {

	if ( !this.isConfirmLoginIdentifierRequired ) {
		return true;
	}
	
	if ( !this.form.loginIdentifier || !this.form.confirmLoginIdentifier) {
		return true;
	}
	
	if ( this.form.loginIdentifier.value != this.form.confirmLoginIdentifier.value ) {
		this.addError(
			this.confirmLoginIdentifierLabel 
				+ " must match " 
				+ this.loginIdentifierLabel);
		
		return false;
	}
	
	return true;
}

function portalMemberValidateLoginIdentifier() {

	if ( !this.isLoginIdentifierRequired ) {
		return true;
	}
	
	var loginIdentifier = this.form.loginIdentifier.value;
	
	if ( loginIdentifier == null || 
	      loginIdentifier.length < this.minLoginIdentifierLength ) {
		
		this.addError(
			this.loginIdentifierLabel + 
			" must be specified and contain at least " +
			this.minLoginIdentifierLength +
			" characters");		
		
		return false;
	}
	
	return true;
}

function portalMemberValidateScreenName() {

	if ( !this.isScreenNameRequired ) {
		return true;
	}
	
	var screenName = this.form.screenName.value;
	
	if ( screenName == null ||
		 TrimString(screenName).length == 0 ) {
		 
		/* this.addError(
			this.screenNameLabel +
			" must be specified"); */
		this.form.screenName.value="";	
		this.addError("Please enter a screen name");
			
		return false;
	}
	
	return true;
}

function portalMemberAddError(errorMessage) {
	this.errors = arrayPush(this.errors, errorMessage);
}
