﻿var register_usr, register_pwd, register_redirUrl, register_login_btn, register_ajax_wait, register_remember;
var register_fail_img, register_ok_img;
var login_title1, login_title2;
var recover_culture = 'en-us';
var loginExpandedColor = 0xffd700;
function doMainLogin(evt) {
    evt.preventDefault();
    evt.stopPropagation();
    //
    Sys.UI.DomElement.setVisible(register_login_btn, false);
    Sys.UI.DomElement.setVisible(register_ajax_wait, true);
    //
    if (register_redirUrl == '') register_redirUrl = null;
    Sys.Services.AuthenticationService.login(register_usr.value, register_pwd.value, register_remember.checked, ''/* custom info */, register_redirUrl/* redirectUrl*/, onMainLoginCompleted, onMainLoginError);
}
function onMainLoginCompleted(authenticated) {
    Sys.UI.DomElement.setVisible(register_ok_img, authenticated);
    Sys.UI.DomElement.setVisible(register_fail_img, !authenticated);
    //
    Sys.UI.DomElement.setVisible(register_ajax_wait, false);
    Sys.UI.DomElement.setVisible(register_login_btn, true);
    //
    setTimeout(function() {
        if (authenticated)
            location.href = register_url;
    }, 750);
}
function onMainLoginError(error) {
}
// password recovery
var recover_email, recover_btn, recover_ajax_wait, recover_response;
function doRecoverPassword(evt) {
    evt.preventDefault();
    evt.stopPropagation();
    //
    Sys.UI.DomElement.setVisible(recover_btn, false);
    Sys.UI.DomElement.setVisible(recover_ajax_wait, true);
    //
    pacem.it.services.RecoverPassword(recover_email.value, recover_culture, onPasswordRecoverCompleted, onPasswordRecoverFailed);
}
function onPasswordRecoverCompleted(result) {
    var success = result.Success;
    recover_response.innerHTML = result.Message;
    var cssToSet = success ? "SplashSuccess" : "SplashFail";
    var cssToRemove = !success ? "SplashSuccess" : "SplashFail";
    Sys.UI.DomElement.addCssClass(recover_response, cssToSet);
    Sys.UI.DomElement.removeCssClass(recover_response, cssToRemove);
    var bounds = Sys.UI.DomElement.getBounds(recover_response);
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'height', 'unit': Pacem.UI.Unit.pixels, 'start': 0, 'finish': bounds.height + 10, 'duration': .5 }
            //, { 'motionFinished': Function.emptyFunction() }
            , null, null, recover_response.parentNode
            );
    Sys.UI.DomElement.setVisible(recover_ajax_wait, false);
    Sys.UI.DomElement.setVisible(recover_btn, true);
}
function onPasswordRecoverFailed(error) {
    alert(String.format("{0}\n\n\{1}", error.get_message(), error.get_stackTrace()));

    //recover_response.innerHTML = "error occurred";
    recover_response.innerHTML = error.get_message();
    Sys.UI.DomElement.addCssClass(recover_response, "SplashFail");
    Sys.UI.DomElement.removeCssClass(recover_response, "SplashSuccess");
    var bounds = Sys.UI.DomElement.getBounds(recover_response);
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'height', 'unit': Pacem.UI.Unit.pixels, 'start': 0, 'finish': bounds.height + 10, 'duration': .5 }
            //, { 'motionFinished': Function.emptyFunction() }
            , null, null, recover_response.parentNode
            );
    Sys.UI.DomElement.setVisible(recover_ajax_wait, false);
    Sys.UI.DomElement.setVisible(recover_btn, true);
}
//
var register_btn_login_collapse, register_btn_login_expand;
var register_btn_register_collapse, register_btn_register_expand;
var register_recover_collapsiblePanelBehavior, register_login_collapsiblePanelBehavior, register_register_collapsiblePanelBehavior;
function registerLogin_collapsing(sender, args) {
    splashWrapper.style.height = 'auto';
    var start = parseInt(login_title1.style.color.split('#').join('0x'), 16);
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'color', 'type': Pacem.UI.TweenType.color, 'start': start, 'finish': 0xffffff, 'duration': .35 }
            , null, null, login_title1
    );
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'color', 'type': Pacem.UI.TweenType.color, 'start': start, 'finish': 0xffffff, 'duration': .35 }
            , null, null, login_title2
    );
}
function registerLogin_expanding(sender, args) {
    ensureRegisterDomelements();
    splashWrapper.style.height = 'auto';
    register_register_collapsiblePanelBehavior.collapsePanel();
    //
    var start = parseInt(login_title1.style.color.split('#').join('0x'), 16);
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'color', 'type': Pacem.UI.TweenType.color, 'start': start, 'finish': loginExpandedColor, 'duration': .35 }
            , null, null, login_title1
    );
    $create(Pacem.UI.Tween,
            { 'isCssProperty': true, 'easingFunc': Pacem.UI.Easing.Sine.easeOut, 'property': 'color', 'type': Pacem.UI.TweenType.color, 'start': start, 'finish': loginExpandedColor, 'duration': .35 }
            //, { 'motionFinished': Function.emptyFunction() }
            , null, null, login_title2
    );
}

function registerRegister_collapsing(sender, args) {
    splashWrapper.style.height = 'auto';
}
function registerRegister_expanding(sender, args) {
    ensureRegisterDomelements();
    splashWrapper.style.height = 'auto';
    register_login_collapsiblePanelBehavior.collapsePanel();
    register_recover_collapsiblePanelBehavior.collapsePanel();
}
function registerPage_toggled(sender, args) {
    ensureRegisterDomelements();
    Sys.UI.DomElement.setVisible(register_btn_login_collapse, !sender.get_isCollapsed());
    Sys.UI.DomElement.setVisible(register_btn_login_expand, sender.get_isCollapsed());
}
function registerPage2_toggled(sender, args) {
    ensureRegisterDomelements();
    Sys.UI.DomElement.setVisible(register_btn_register_collapse, !sender.get_isCollapsed());
    Sys.UI.DomElement.setVisible(register_btn_register_expand, sender.get_isCollapsed());
}
