157 lines
3.2 KiB
JavaScript
157 lines
3.2 KiB
JavaScript
var _signin = window.IPBoard;
|
|
|
|
_signin.prototype.signin = {
|
|
init: function()
|
|
{
|
|
Debug.write("Initializing ips.signin.js");
|
|
|
|
document.observe("dom:loaded", function(){
|
|
if( $('openid_signin') ){
|
|
$('openid_signin').hide();
|
|
$('openid_open').observe('click', ipb.signin.toggleOpenID);
|
|
$('openid_close').observe('click', ipb.signin.toggleOpenID);
|
|
}
|
|
|
|
if( $('live_signin') ){
|
|
$('live_signin').hide();
|
|
$('live_open').observe('click', ipb.signin.toggleLive);
|
|
$('live_close').observe('click', ipb.signin.toggleLive);
|
|
}
|
|
|
|
if( $('login') )
|
|
{
|
|
$('login').observe('submit', ipb.signin.validateLogin );
|
|
}
|
|
});
|
|
},
|
|
|
|
/* ------------------------------ */
|
|
/**
|
|
* Toggles the OpenID login field
|
|
*
|
|
* @param {event} e The event
|
|
*/
|
|
toggleOpenID: function(e)
|
|
{
|
|
if( $('openid_signin').visible() )
|
|
{
|
|
new Effect.Parallel([
|
|
new Effect.BlindUp( $('openid_signin'), { sync: true } ),
|
|
new Effect.BlindDown( $('regular_signin'), { sync: true } )
|
|
]);
|
|
}
|
|
else
|
|
{
|
|
new Effect.Parallel([
|
|
new Effect.BlindDown( $('openid_signin'), { sync: true } ),
|
|
new Effect.BlindUp( $('regular_signin'), { sync: true } )
|
|
]);
|
|
}
|
|
|
|
Event.stop(e);
|
|
},
|
|
|
|
/* ------------------------------ */
|
|
/**
|
|
* Toggles the Windows Live login field
|
|
*
|
|
* @param {event} e The event
|
|
*/
|
|
toggleLive: function(e)
|
|
{
|
|
if( $('live_signin').visible() )
|
|
{
|
|
new Effect.Parallel([
|
|
new Effect.BlindUp( $('live_signin'), { sync: true } ),
|
|
new Effect.BlindDown( $('regular_signin'), { sync: true } )
|
|
]);
|
|
}
|
|
else
|
|
{
|
|
new Effect.Parallel([
|
|
new Effect.BlindDown( $('live_signin'), { sync: true } ),
|
|
new Effect.BlindUp( $('regular_signin'), { sync: true } )
|
|
]);
|
|
}
|
|
|
|
Event.stop(e);
|
|
},
|
|
|
|
/* ------------------------------ */
|
|
/**
|
|
* Form validation for login
|
|
*
|
|
* @param {event} e The event
|
|
* @return void
|
|
*/
|
|
validateLogin: function(e)
|
|
{
|
|
if( !$('openid_signin') || ( $F('openid') == '' || $F('openid') == 'http://') )
|
|
{
|
|
if( !ipb.signin.isFilled( $('username') ) )
|
|
{
|
|
alert( ipb.lang['signin_nosigninname'] );
|
|
Event.stop(e);
|
|
return;
|
|
}
|
|
if( !ipb.signin.isFilled( $('password') ) )
|
|
{
|
|
alert( ipb.lang['signin_nopassword'] );
|
|
Event.stop(e);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( !ipb.signin.isValidUrl( $F('openid').strip() ) )
|
|
{
|
|
alert( ipb.lang['signin_badopenid'] );
|
|
Event.stop(e);
|
|
return;
|
|
}
|
|
}
|
|
},
|
|
|
|
/* ------------------------------ */
|
|
/**
|
|
* Validate that content is filled
|
|
*
|
|
* @param {event} e The event
|
|
* @return void
|
|
* @SKINNOTE Stop using this duplicated code and use ipb.js validate object
|
|
*/
|
|
isFilled: function( obj )
|
|
{
|
|
if( !obj.value )
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
},
|
|
|
|
/* ------------------------------ */
|
|
/**
|
|
* Validate the openid url is a valid url
|
|
*
|
|
* @param {event} e The event
|
|
* @return void
|
|
* @SKINNOTE Stop using this duplicated code and use ipb.js validate object
|
|
*/
|
|
isValidUrl: function( value )
|
|
{
|
|
if( !value )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var regexp = new RegExp();
|
|
regexp.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
|
|
|
|
return regexp.test( value );
|
|
}
|
|
};
|
|
|
|
ipb.signin.init(); |