var loginValidation;
var remindValidation;
var registerValidation;

function initLoginPage()
{
//	$( 'registerTab' ).observe( 'click', function() { createCaptcha( 'registerRecaptcha' ) } );

	Validation.addAllThese( [
		['requiredtandc', DC_ERR_NEED_ACCEPT_TC, function(v,elm) {
			return( elm.checked );
		}],
		['matchPwd', DC_ERR_MISMATCHED_PWD, function(v,elm) {
			return( elm.value == $F( 'regPassword' ));
		}],
		['matchMail', DC_ERR_MISMATCHED_EMAIL, function(v,elm) {
			return( elm.value == $F( 'regEMail' ));
		}],
		['captcha', DC_ERR_CAPTCHA, function(v) {
			return( false );
		}],
		['usedMail', DC_ERR_EMAIL_IN_USE, function(v) {
			return( false );
		}],
		['blacklistedMail', DC_DOMAIN_BLACKLISTED, function(v) {
			return( false );
		}],
		['usedUsername', DC_ERR_USERNAME_IN_USE, function(v) {
			return( false );
		}]
	]);

	loginValidation    = new Validation( 'loginForm' );
	remindValidation   = new Validation( 'remindForm' );
	registerValidation = new Validation( 'registerForm' );
	
//	if( getFragment() == 'register' )
		createCaptcha( 'registerRecaptcha' );
}

function createCaptcha( id )
{
	Recaptcha.create( $F( 'recaptcha' ), id );
}

function createAccount()
{
	registerValidation.reset();

	if( registerValidation.validate() ) {
		
		new Ajax.Request( getRootPath(), 
		{
			parameters: { 
				act: 				'user.registerCheck', 
				email: 				$F( 'regEMail' ),
				username: 			$F( 'regUsername' ),
				captcha_challenge: 	Recaptcha.get_challenge(),
				captcha_response: 	Recaptcha.get_response()
			},
			onSuccess: 	function( response )
			{
				var ok = true;

				if( response.responseJSON.captcha )
					$( 'cr' ).value = 2;
				else {
					Validation.test( 'captcha', $( 'regCaptchaValidation' ));
					Recaptcha.reload();
					ok = false;
				}

				if( response.responseJSON.username > 0 ) {
					Validation.test( 'usedUsername', $( 'regUsername' ));
					ok = false;
				}

				if( response.responseJSON.email > 0 ) {
					Validation.test( 'usedMail', $( 'regEMail' ));
					ok = false;
				}

				if( response.responseJSON.blacklisted ) {
					Validation.test( 'blacklistedMail', $( 'regEMail' ));
					ok = false;
				}
				
				if( ok )
					$( 'registerForm' ).submit();
			}
		} );
	}
	
	return( false );
}
