//------------------------------------------
// Invision Power Dynamic v1.0
// Register JS File
// (c) 2006 Invision Power Services, Inc.
//
// http://www.invisiondynamic.com
//------------------------------------------

var reg_oktogo    = 0;
var reg_field_ids = new Array();
var reg_img_ids   = new Array();
var reg_box_ids   = new Array();
var reg_msg_ids   = new Array();

var error_email  = 0;

var in_member_id = 0;

/*-------------------------------------------------------------------------*/
// INIT Reg form
/*-------------------------------------------------------------------------*/

function init_reg_form()
{
	//------------------------------------------
	// Fields...
	//------------------------------------------
	
	reg_field_ids['password']         = document.getElementById( 'reg-password' );
	reg_field_ids['password-check']   = document.getElementById( 'reg-password-check' );
	reg_field_ids['emailaddress']     = document.getElementById( 'reg-emailaddress' );
	reg_field_ids['emailaddress-two'] = document.getElementById( 'reg-emailaddress-two' );
	
	//------------------------------------------
	// Images
	//------------------------------------------
	
	reg_img_ids['password']     = document.getElementById( 'img-password' );
	reg_img_ids['emailaddress'] = document.getElementById( 'img-emailaddress' );
	
	//------------------------------------------
	// Boxes
	//------------------------------------------
	
	reg_box_ids['password']     = document.getElementById( 'box-password' );
	reg_box_ids['emailaddress'] = document.getElementById( 'box-emailaddress' );
	
	//------------------------------------------
	// Messages
	//------------------------------------------
	
	reg_msg_ids['password']     = document.getElementById( 'msg-password' );
	reg_msg_ids['emailaddress'] = document.getElementById( 'msg-emailaddress' );

	//------------------------------------------
	// Set up onblur
	//------------------------------------------
	
	reg_field_ids['password-check'].onblur   = check_passwords;
	reg_field_ids['emailaddress'].onblur     = check_email_addresses_one;
	reg_field_ids['emailaddress-two'].onblur = check_email_addresses;
	
	//------------------------------------------
	// Already got error messages?
	//------------------------------------------
	
	if ( ! reg_msg_ids['password'].innerHTML )
	{
		reg_box_ids['password'].style.display = 'none';
	}
	
	if ( ! reg_msg_ids['emailaddress'].innerHTML )
	{
		reg_box_ids['emailaddress'].style.display = 'none';
	}
}

/*-------------------------------------------------------------------------*/
// INIT Reg form
/*-------------------------------------------------------------------------*/

function init_complete_login_form()
{
	//------------------------------------------
	// Fields...
	//------------------------------------------

	reg_field_ids['emailaddress']     = document.getElementById( 'reg-emailaddress' );
	reg_field_ids['emailaddress-two'] = document.getElementById( 'reg-emailaddress-two' );
	
	//------------------------------------------
	// Images
	//------------------------------------------
	
	reg_img_ids['emailaddress'] = document.getElementById( 'img-emailaddress' );
	
	//------------------------------------------
	// Boxes
	//------------------------------------------
	
	reg_box_ids['emailaddress'] = document.getElementById( 'box-emailaddress' );
	
	//------------------------------------------
	// Messages
	//------------------------------------------
	
	reg_msg_ids['emailaddress'] = document.getElementById( 'msg-emailaddress' );
	
	//------------------------------------------
	// Set up onblur
	//------------------------------------------
	
	reg_field_ids['emailaddress'].onblur     = check_email_addresses_one;
	reg_field_ids['emailaddress-two'].onblur = check_email_addresses;

	//------------------------------------------
	// Already got error messages?
	//------------------------------------------
	
	if ( ! reg_msg_ids['emailaddress'].innerHTML )
	{
		reg_box_ids['emailaddress'].style.display = 'none';
	}
	
	in_member_id = member_id;
}

/*-------------------------------------------------------------------------*/
// Check email address validity
/*-------------------------------------------------------------------------*/

function check_email_addresses_one( event )
{
	//----------------------------------
	// INIT
	//----------------------------------
	
	var error_found = '';
	
	//----------------------------------
	// Ajax: check for existing email address
	//----------------------------------
	
	if ( use_enhanced_js && reg_field_ids['emailaddress'].value )
	{
		var url = ipb_var_script_url+'act=xmlout&do=check-email-address&email='+escape( reg_field_ids['emailaddress'].value );
	
		/*--------------------------------------------*/
		// Main function to do on request
		// Must be defined first!!
		/*--------------------------------------------*/
		
		do_request_function = function()
		{
			//----------------------------------
			// Ignore unless we're ready to go
			//----------------------------------
			
			if ( ! xmlobj.readystate_ready_and_ok() )
			{
				// Could do a little loading graphic here?
				return;
			}
			
			//----------------------------------
			// INIT
			//----------------------------------
			
			var html = xmlobj.xmlhandler.responseText;

			if ( html == 'found' )
			{
				error_found += reg_error_email_taken + "<br />";
			}
			if ( html == 'banned' )
			{
				error_found += reg_error_email_ban + "<br />";
			}
			
			//----------------------------------
			// Show errors
			//----------------------------------
			
			if ( error_found )
			{
				reg_field_ids['emailaddress'].className   = input_red;
				reg_img_ids['emailaddress'].src           = ipb_skin_url + '/' + img_cross;
				reg_msg_ids['emailaddress'].innerHTML     = error_found;
				reg_box_ids['emailaddress'].style.display = 'block';
				error_email = 1;
			}
			else
			{
				error_email = 0;
			}
			
			error_found = '';
		}
		
		//----------------------------------
		// LOAD XML
		//----------------------------------
		
		xmlobj = new ajax_request();
		xmlobj.onreadystatechange( do_request_function );
		xmlobj.process( url );
	}
}

/*-------------------------------------------------------------------------*/
// Check email addresses
/*-------------------------------------------------------------------------*/

function check_email_addresses( event )
{
	//----------------------------------
	// INIT
	//----------------------------------
	
	var error_found = '';
	
	//----------------------------------
	// Check
	//----------------------------------
	
	if ( ! reg_field_ids['emailaddress'].value.match( /[@\.]/ ) )
	{
		error_found += reg_error_email_missing + "<br />";
	}
	
	if ( ! reg_field_ids['emailaddress'].value || ! reg_field_ids['emailaddress-two'].value )
	{
		error_found += reg_error_email_missing + "<br />";
	}
	
	if ( reg_field_ids['emailaddress'].value != reg_field_ids['emailaddress-two'].value )
	{
		error_found += reg_error_email_nm + "<br />";
	}
	
	if ( error_found )
	{
		reg_field_ids['emailaddress'].className       = input_red;
		reg_field_ids['emailaddress-two'].className   = input_red;
		reg_img_ids['emailaddress'].src               = ipb_skin_url + '/' + img_cross;
		reg_msg_ids['emailaddress'].innerHTML         = error_found;
		reg_box_ids['emailaddress'].style.display     = 'block';
		error_email = 1;
	}
	else
	{
		error_email = 0;
	}
	
	//----------------------------------
	// No error....
	//----------------------------------
	
	if ( error_email == 0 )
	{
		check_email_addresses_one();
	}
	
	//----------------------------------
	// Still no errors...
	//----------------------------------
	
	if ( error_email == 0 )
	{
		reg_field_ids['emailaddress'].className       = input_green;
		reg_field_ids['emailaddress-two'].className   = input_green;
		reg_img_ids['emailaddress'].src               = ipb_skin_url + '/' + img_tick;
		reg_box_ids['emailaddress'].style.display     = 'none';
		reg_msg_ids['emailaddress'].innerHTML         = '';
	}

	if( reg_field_ids['emailaddress'].className   == input_red )
	{
		reg_field_ids['emailaddress-two'].className   = input_red;
	}		
}


/*-------------------------------------------------------------------------*/
// Check passwords match
/*-------------------------------------------------------------------------*/

function check_passwords( event )
{
	//----------------------------------
	// INIT
	//----------------------------------
	
	var error_found = '';
	
	//----------------------------------
	// Check
	//----------------------------------
	
	if ( ! reg_field_ids['password'].value || ! reg_field_ids['password-check'].value )
	{
		error_found += reg_error_no_pass + "<br />";
	}
	
	if ( reg_field_ids['password'].value != reg_field_ids['password-check'].value )
	{
		error_found += reg_error_pass_nm + "<br />";
	}
	
	if ( error_found )
	{
		reg_field_ids['password'].className       = input_red;
		reg_field_ids['password-check'].className = input_red;
		reg_img_ids['password'].src               = ipb_skin_url + '/' + img_cross;
		reg_msg_ids['password'].innerHTML         = error_found;
		reg_box_ids['password'].style.display     = 'block';
	}
	else
	{
		reg_field_ids['password'].className       = input_green;
		reg_field_ids['password-check'].className = input_green;
		reg_img_ids['password'].src               = ipb_skin_url + '/' + img_tick;
		reg_box_ids['password'].style.display     = 'none';
		reg_msg_ids['password'].innerHTML         = '';
	}
}

/*-------------------------------------------------------------------------*/
// Validate the registration form
/*-------------------------------------------------------------------------*/

function validate_reg_form( event )
{
	//------------------------------------------
	// Simply run the functions
	//------------------------------------------
	
	reg_oktogo = 1;
	
	check_email_addresses( event );
	check_passwords( event );
	check_display_name( event );
	
	//------------------------------------------
	// Got error messages
	//------------------------------------------
	
	if ( reg_msg_ids['password'].innerHTML )
	{
		reg_oktogo = 0;
	}
	
	if ( reg_msg_ids['emailaddress'].innerHTML )
	{
		reg_oktogo = 0;
	}
		
	if ( reg_msg_ids['dname'].innerHTML )
	{
		reg_oktogo = 0;
	}
	
	//-----------------------------------------
	// Check for TAC checkbox
	//-----------------------------------------
	
	if ( document.getElementById('cb-tac').checked != true )
	{
		alert( reg_error_tac_click );
		
		reg_oktogo = 0;
	}
	
	//------------------------------------------
	// Return
	//------------------------------------------
	
	return reg_oktogo ? true : false;
}

