File: /var/www/ilya/data/www/kamforum.ru/jscripts/ipb_register.js
//------------------------------------------
// Invision Power Board v2.1
// Register JS File
// (c) 2005 Invision Power Services, Inc.
//
// http://www.invisionboard.com
//------------------------------------------
var reg_got_dname = 0;
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 ucp_dname_illegal_chars = new Array( '[', ']', '|', ',', ';' );
var ucp_dname_illegal_regex = '';
for ( var i in ucp_dname_illegal_chars )
{
ucp_dname_illegal_regex += '\\' + ucp_dname_illegal_chars[i];
}
var error_email = 0;
var in_member_id = 0;
/*-------------------------------------------------------------------------*/
// INIT Reg form
/*-------------------------------------------------------------------------*/
function init_reg_form( got_dname, register_method )
{
//------------------------------------------
// INIT objects
//------------------------------------------
reg_got_dname = got_dname;
//------------------------------------------
// Fields...
//------------------------------------------
if( register_method == 'username' )
{
reg_field_ids['name'] = document.getElementById( 'reg-name' );
}
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
//------------------------------------------
if( register_method == 'username' )
{
reg_img_ids['name'] = document.getElementById( 'img-name' );
}
reg_img_ids['password'] = document.getElementById( 'img-password' );
reg_img_ids['emailaddress'] = document.getElementById( 'img-emailaddress' );
//------------------------------------------
// Boxes
//------------------------------------------
if( register_method == 'username' )
{
reg_box_ids['name'] = document.getElementById( 'box-name' );
}
reg_box_ids['password'] = document.getElementById( 'box-password' );
reg_box_ids['emailaddress'] = document.getElementById( 'box-emailaddress' );
//------------------------------------------
// Messages
//------------------------------------------
if( register_method == 'username' )
{
reg_msg_ids['name'] = document.getElementById( 'msg-name' );
}
reg_msg_ids['password'] = document.getElementById( 'msg-password' );
reg_msg_ids['emailaddress'] = document.getElementById( 'msg-emailaddress' );
//------------------------------------------
// Set up onblur
//------------------------------------------
if( register_method == 'username' )
{
reg_field_ids['name'].onblur = check_user_name;
}
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( register_method == 'username' )
{
if ( ! reg_msg_ids['name'].innerHTML )
{
reg_box_ids['name'].style.display = 'none';
}
}
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';
}
//------------------------------------------
// Display name...
//------------------------------------------
if ( reg_got_dname )
{
reg_field_ids['dname'] = document.getElementById( 'reg-members-display-name' );
reg_box_ids['dname'] = document.getElementById( 'box-dname' );
reg_msg_ids['dname'] = document.getElementById( 'msg-dname' );
reg_img_ids['dname'] = document.getElementById( 'img-members-display-name' );
if ( ! reg_msg_ids['dname'].innerHTML )
{
reg_box_ids['dname'].style.display = 'none';
}
reg_field_ids['dname'].onblur = check_display_name;
}
}
/*-------------------------------------------------------------------------*/
// INIT Reg form
/*-------------------------------------------------------------------------*/
function init_complete_login_form()
{
//------------------------------------------
// INIT objects
//------------------------------------------
reg_got_dname = got_dname;
//------------------------------------------
// 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';
}
//------------------------------------------
// Display name...
//------------------------------------------
if ( reg_got_dname )
{
reg_field_ids['dname'] = document.getElementById( 'reg-members-display-name' );
reg_box_ids['dname'] = document.getElementById( 'box-dname' );
reg_msg_ids['dname'] = document.getElementById( 'msg-dname' );
reg_img_ids['dname'] = document.getElementById( 'img-members-display-name' );
if ( ! reg_msg_ids['dname'].innerHTML )
{
reg_box_ids['dname'].style.display = 'none';
}
reg_field_ids['dname'].onblur = check_display_name;
}
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_base_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_var_image_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_var_image_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_var_image_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_var_image_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_var_image_url + '/' + img_tick;
reg_box_ids['password'].style.display = 'none';
reg_msg_ids['password'].innerHTML = '';
}
}
/*-------------------------------------------------------------------------*/
// Check display name
/*-------------------------------------------------------------------------*/
function check_display_name( event )
{
//----------------------------------
// INIT
//----------------------------------
var error_found = '';
//----------------------------------
// Make sure we have sommat
//----------------------------------
if ( ! reg_field_ids['dname'].value || reg_field_ids['dname'].value.length < 3 || reg_field_ids['dname'].value.length > 32 )
{
error_found += reg_error_no_name + "<br />";
}
//----------------------------------
// Check for illegal chars
//----------------------------------
if ( reg_field_ids['dname'].value.match( new RegExp( "[" + ucp_dname_illegal_regex + "]" ) ) )
{
error_found += reg_error_chars + "<br />";
}
//----------------------------------
// Ajax: check for existing member name
//----------------------------------
if ( use_enhanced_js && reg_field_ids['dname'].value )
{
var url = ipb_var_base_url+'act=xmlout&do=check-display-name&name='+escape( reg_field_ids['dname'].value );
// Complete reg form?
if ( in_member_id )
{
url += '&id=' + in_member_id;
}
/*--------------------------------------------*/
// 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_taken + "<br />";
}
//----------------------------------
// Show errors
//----------------------------------
if ( error_found )
{
reg_field_ids['dname'].className = input_red;
reg_img_ids['dname'].src = ipb_var_image_url + '/' + img_cross;
reg_msg_ids['dname'].innerHTML = error_found;
reg_box_ids['dname'].style.display = 'block';
}
else
{
reg_field_ids['dname'].className = input_green;
reg_img_ids['dname'].src = ipb_var_image_url + '/' + img_tick;
reg_box_ids['dname'].style.display = 'none';
reg_msg_ids['dname'].innerHTML = '';
}
error_found = '';
}
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
xmlobj.process( url );
}
else
{
//----------------------------------
// Show errors
//----------------------------------
if ( error_found )
{
reg_field_ids['dname'].className = input_red;
reg_img_ids['dname'].src = ipb_var_image_url + '/' + img_cross;
reg_msg_ids['dname'].innerHTML = error_found;
reg_box_ids['dname'].style.display = 'block';
}
else
{
reg_field_ids['dname'].className = input_green;
reg_img_ids['dname'].src = ipb_var_image_url + '/' + img_tick;
reg_box_ids['dname'].style.display = 'none';
reg_msg_ids['dname'].innerHTML = '';
}
error_found = '';
}
}
/*-------------------------------------------------------------------------*/
// Check username
/*-------------------------------------------------------------------------*/
function check_user_name( event )
{
//----------------------------------
// INIT
//----------------------------------
var error_found = '';
//----------------------------------
// Make sure we have sommat
//----------------------------------
if ( ! reg_field_ids['name'].value || reg_field_ids['name'].value.length < 3 || reg_field_ids['name'].value.length > 32 )
{
error_found += reg_error_username_none + "<br />";
}
//----------------------------------
// Ajax: check for existing member name
//----------------------------------
if ( use_enhanced_js && reg_field_ids['name'].value )
{
//----------------------------------
// Get new xhttp obj
//----------------------------------
var url = ipb_var_base_url+'act=xmlout&do=check-user-name&name='+escape( reg_field_ids['name'].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_username_taken + "<br />";
}
//----------------------------------
// Show errors
//----------------------------------
if ( error_found )
{
reg_field_ids['name'].className = input_red;
reg_img_ids['name'].src = ipb_var_image_url + '/' + img_cross;
reg_msg_ids['name'].innerHTML = error_found;
reg_box_ids['name'].style.display = 'block';
}
else
{
reg_field_ids['name'].className = input_green;
reg_img_ids['name'].src = ipb_var_image_url + '/' + img_tick;
reg_box_ids['name'].style.display = 'none';
reg_msg_ids['name'].innerHTML = '';
}
error_found = '';
}
//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
xmlobj.process( url );
}
else
{
//----------------------------------
// Show errors
//----------------------------------
if ( error_found )
{
reg_field_ids['name'].className = input_red;
reg_img_ids['name'].src = ipb_var_image_url + '/' + img_cross;
reg_msg_ids['name'].innerHTML = error_found;
reg_box_ids['name'].style.display = 'block';
}
else
{
reg_field_ids['name'].className = input_green;
reg_img_ids['name'].src = ipb_var_image_url + '/' + img_tick;
reg_box_ids['name'].style.display = 'none';
reg_msg_ids['name'].innerHTML = '';
}
error_found = '';
}
}
/*-------------------------------------------------------------------------*/
// Validate the complete log in form
/*-------------------------------------------------------------------------*/
function validate_complete_login_form( event )
{
//------------------------------------------
// Simply run the functions
//------------------------------------------
reg_oktogo = 1;
check_email_addresses( event );
//------------------------------------------
// Got error messages
//------------------------------------------
if ( reg_msg_ids['emailaddress'].innerHTML )
{
reg_oktogo = 0;
}
//------------------------------------------
// Display name...
//------------------------------------------
if ( reg_got_dname )
{
check_display_name( event );
if ( reg_msg_ids['dname'].innerHTML )
{
reg_oktogo = 0;
}
}
//------------------------------------------
// Return
//------------------------------------------
return reg_oktogo ? true : false;
}
/*-------------------------------------------------------------------------*/
// Validate the registration form
/*-------------------------------------------------------------------------*/
function validate_reg_form( event )
{
//------------------------------------------
// Simply run the functions
//------------------------------------------
reg_oktogo = 1;
check_email_addresses( event );
check_passwords( event );
check_user_name( event );
//------------------------------------------
// Got error messages
//------------------------------------------
if ( reg_msg_ids['name'].innerHTML )
{
reg_oktogo = 0;
}
if ( reg_msg_ids['password'].innerHTML )
{
reg_oktogo = 0;
}
if ( reg_msg_ids['emailaddress'].innerHTML )
{
reg_oktogo = 0;
}
//------------------------------------------
// Display name...
//------------------------------------------
if ( reg_got_dname )
{
check_display_name( event );
if ( reg_msg_ids['dname'].innerHTML )
{
reg_oktogo = 0;
}
}
//------------------------------------------
// Return
//------------------------------------------
return reg_oktogo ? true : false;
}
/*-------------------------------------------------------------------------*/
// They are a COPPA :D
/*-------------------------------------------------------------------------*/
function coppa_save()
{
//------------------------------------------
// Set cookie
//------------------------------------------
my_setcookie( 'coppa', 'yes', 1 );
}
/*-------------------------------------------------------------------------*/
// Run from the COPPA
/*-------------------------------------------------------------------------*/
function coppa_cancel()
{
//------------------------------------------
// Set cookie
//------------------------------------------
my_setcookie( 'coppa', '0', 1 );
locationjump( '' );
}
/*-------------------------------------------------------------------------*/
// Run from the COPPA
/*-------------------------------------------------------------------------*/
function coppa_check()
{
//------------------------------------------
// Set cookie
//------------------------------------------
var coppa_check = my_getcookie( 'coppa' );
if ( coppa_check == 'yes' )
{
alert( coppa_bounce );
locationjump( 'act=reg&CODE=coppa_two' );
}
}
/*-------------------------------------------------------------------------*/
// Show a more info button?
/*-------------------------------------------------------------------------*/
function reg_get_more_check()
{
var dropdown = document.getElementById( 'subspackage' );
var chosenid = dropdown.options[dropdown.selectedIndex].value;
if ( ! chosenid )
{
chosenid = 0;
}
if ( subdesc[chosenid] )
{
document.getElementById( 'reg-get-more-info' ).style.display = '';
}
else
{
document.getElementById( 'reg-get-more-info' ).style.display = 'none';
}
}
/*-------------------------------------------------------------------------*/
// Show subs more info form
/*-------------------------------------------------------------------------*/
function get_more_info()
{
var dropdown = document.getElementById( 'subspackage' );
var chosenid = dropdown.options[dropdown.selectedIndex].value;
if ( ! chosenid )
{
chosenid = 0;
}
//------------------------------------------
// Toggle view...
//------------------------------------------
if ( subdesc[chosenid] )
{
document.getElementById('pkdesc').innerHTML = subdesc[chosenid];
toggleview('subspkdiv');
}
}