﻿function LoginMouseUp() {
    $('signupBtn').removeClass('blue_active');

}
function LoginMouseDown() {
    $('signupBtn').addClass('blue_active');

}
var checkAvailabilityTimeout; //#Check availability
var Account = {
    create: function () {
        try {

            //#Home page sponsored labels project
            var Labels = '';
            try { Labels = randomlabels_array; }
            catch (Error) { }

            var oWadjaX = new WADJAX('User', { statusBar: false });
            var wadjaID = $('text_wadjaid').get('value').trim();
            var fullname = $('text_name').get('value');
            var email = $('text_email').get('value');
            var password = $('text_psw').get('value');
            var GeoInfo;

            try {//#MARK - Get google geo location info
                GeoInfo = JSON.encode(google.loader.ClientLocation);
            }
            catch (Error) {

            }

            if (wadjaID.length > 0 && fullname.length > 0 && email.length > 0 && password.length > 0) {
                Notify.spinnerOn('Working', 'Still working', 3);
                $('signupBtn').set('value', 'working...');
                oWadjaX.send('createAccount', wadjaID, fullname, email, password, domainName, network, GeoInfo, Labels, function (res) {
                    if (!res.error) {
                        //MyElement.dissolve('auth_res_div_1');
                        Notify.spinnerOff();
                        if (res.value.indexOf('Error: ') != 0) { // if the result string does not start with 'Error: '
                            var userObject = JSON.decode(res.value);
                            // if account was created through "Third-party Connect" page
                            // make the Third-party connection
                            if (location.pathname == "/sessions/connect.aspx") {
                                if (!ThirdPartyConnect(userObject.DetailsID))
                                    ; // connection not made; already used for another wadja user
                            }
                            //#overlay preloading
                            if ($('overlaymask'))
                                $('overlaymask').removeClass('dnd');
                               
                            location.href = '/contacts/invite/default.aspx?gettingStarted=1';
                        }
                        else {
                            $('reg_errors').set('html', res.value.replace('Error: ', ''));
                            MyElement.reveal('reg_errors');
                            $('signupBtn').set('value', 'continue...');
                        }
                    }
                    else {
                        Notify.spinnerOff();
                    }
                });
            }
            else {
                $('reg_errors').set('html', 'All fields must be filled');
                MyElement.reveal('reg_errors');
            }
        }
        catch (Error) { alert(Error); }
    },
    Suggestion: function (suggested) {
        var wadjaID = $('text_wadjaid');
        wadjaID.set('value', suggested);
        Account.checkUsername();
    },
    checkUsername: function () {
        var elCheck = $('join_check_availability');
        clearTimeout(checkAvailabilityTimeout);
        //remove spaces
        $('text_wadjaid').set('value', $('text_wadjaid').get('value').clean());

        checkAvailabilityTimeout = setTimeout(function () {
            var wadjaID = $('text_wadjaid').get('value').clean();
            if (wadjaID.length >= 4)
                Account.checkAvailability();
            else if (wadjaID.length > 0) {
                $('reg_errors').set('html', 'Username must be between 4 and 10 characters long.');
                elCheck.removeClass('checkTic');

                MyElement.reveal('reg_errors');
            }

            if (wadjaID.length == 0) {
                elCheck.removeClass('checkTic');

            }
        }, 250);
    },
    checkAvailability: function () {
        try {
            var oWadjaX = new WADJAX('User', { statusBar: false });
            var wadjaID = $('text_wadjaid').get('value');
            var elCheck = $('join_check_availability');

            if (wadjaID.length > 0) {
                // #MARK - 
                elCheck.addClass('loadingTop');
                //MyElement.dissolve('reg_errors'); //hide errors div

                oWadjaX.send('checkAvailability', wadjaID, function (res) {
                    if (!res.error) {
                        if (res.value == "1") {
                            // #MARK - 
                            elCheck.removeClass('loadingTop');
                            elCheck.addClass('checkTic');

                            MyElement.dissolve('div_suggestions');
                            MyElement.dissolve('reg_errors'); //hide errors div
                        }
                        else {
                            // #MARK - 
                            elCheck.removeClass('loadingTop');
                            elCheck.removeClass('checkTic');

                            $('div_suggestions').set('html', res.value); //return suggestions or if username is ok
                            MyElement.reveal('div_suggestions');
                        }
                    }
                    else {

                    }
                });
            }
            else {
                // #MARK - 
                elCheck.removeClass('loadingTop');
                elCheck.removeClass('checkTic');

                $('reg_errors').set('html', 'You must enter a username');
                MyElement.reveal('reg_errors');
            }
        }
        catch (Error) { alert(Error); }
    },
    handleEnter: function (field, event) {
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
            Account.create();
            return false;
        }
        else
            return true;
    }
}
//#MARK - Password strength
/*
$('text_psw').addEvent('keyup', function (e) {
    var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
    var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var enoughRegex = new RegExp("(?=.{6,}).*", "g");

    if (false == enoughRegex.test($(this).get('value'))) {
        $('passstrength').set('html', 'more characters');
    } else if (strongRegex.test($(this).get('value'))) {
        $('passstrength').addClass('greenColor');
        $('passstrength').set('html', 'strong!');
    } else if (mediumRegex.test($(this).get('value'))) {
        $('passstrength').set('html', 'medium!');
    } else {
         $('passstrength').set('html', 'weak!');
    }
    return true;
});
*/


function ThirdPartyConnect(detailsID) {
    try {
        //make third party connection
        var thirdPartyWadjaX = new WADJAX('User', { statusBar: false });
        thirdPartyWadjaX.send('ThirdPartyConnect', detailsID, function (res) {
            if (!res.error) {
                if (res.value == '-2') { //connection already exists for a different user
                    return false;
                }
                else { //connection made!
                    return true;
                }
            }
            else {
                //error occurred...
                return false;
            }
        });

    } 
    catch (e) {
        alert(e.Message);
        return false;
    }
}