﻿function LoginMouseUp() {
    $('signupBtn').removeClass('blue_active');

}
function LoginMouseDown() {
    $('signupBtn').addClass('blue_active');

}
var hashTimer;
var errorFromPass = false;
var errorFromInterestName = false;
var errorFromEmail = false;
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 fullname = '';
            var email = $('text_email').get('value');
            var password = $('text_psw').get('value');
            var GeoInfo;
            //var interestName = '';
            var interestName = ''; //uncomment this when UI finished newInterest

            /* maria new interest in signup */
            var newinterestsignup_jx = new WADJAX('Labels', { statusBar: false });

            newinterestsignup_jx.send('CreateLabel_Guest', interestName, 4, from_youtube, from_tweeter, 'false', 'true', 'false', font_color, background_color, from_facebook, 'false', from_flickr, '', function (res) {
                if (!res.error) {
                    if (res.value == '0') {
                        /* do nothing */
                    }
                    else {
                        //VASO: Return the errors regarding the invalid label names, see wAjax.labels.ashx.cs, CreateLabel_Guest
//                        var errorTemp = res.value.split('s@l@i@t');
//                        if (errorTemp.length > 1) {
//                            alert(errorTemp[1]);
//                            return;
//                        }
                    }
                }
            });
            Account.createAccount(oWadjaX, wadjaID, fullname, email, password, JSON.encode(GeoInfo), Labels, interestName);            
        }
        catch (Error) { alert(Error); }
    },
    //createAccount: function (oWadjaX, wadjaID, fullname, email, password, GeoInfo, Labels) {
    createAccount: function (oWadjaX, wadjaID, fullname, email, password, GeoInfo, Labels, interestName) {
        if (wadjaID.length > 0 && email.length > 0 && password.length > 0) {  //IE: !$('text_psw').hasClass('typing')fullname not mandatory any more, removed && fullname.length > 0

            //VASO: Check if valid and acceptable interest name, if the user has added any
//            if (interestName.length > 0) {
//                var oWadjaX_interest = new WADJAX('Labels', { statusBar: false });

//                //DEN PROLAVAINEI ASUGXRONO!
//                oWadjaX_interest.send('CheckLabelNamebeforeCreate', interestName, function (res) {

//                    if (!res.error) {
//                        if (res.value == '0') {
                            //no problem with the name
                            ////////////                            
                            //Notify.spinnerOn('Working', 'Still working...', 5); 
                            Notify.spinnerOn(join_working, join_workingStill, 5);
                            //$('signupBtn').set('value', 'working...');
                            $('signupBtn').set('value', join_working);
                            if (mp_metrix) mpmetrics.track("Sign Up processed");
                            oWadjaX.send('createAccount', wadjaID, fullname, email, password, domainName, network, GeoInfo, Labels, interestName, function (res) {
                                //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 resData = res.value.split('s@l@i@t');
                                        var userObject = JSON.decode(resData[0]);
                                        // 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');

                                        //                        if (networkID == 295)
                                        //                            top.location.href = '/tpbbdo.tpbbdo#!My/74273/1';
                                        //                        else
                                        if (resData[1] == '') {
                                           
                                            location.href = '/' + userObject.WadjaID; ///gs=0, getting start
                                            
                                        }
                                        else {
                                            
                                            var wjxcurate_new = new WADJAX('Profile', { statusBar: false });
                                            /* load first feeds */
                                            wjxcurate_new.send('GetExternalFeeds', userObject.DetailsID, 4, function (res) { }); //yt
                                            wjxcurate_new.send('GetExternalFeeds', userObject.DetailsID, 2, function (res) { }); //tw
                                            wjxcurate_new.send('GetExternalFeeds', userObject.DetailsID, 3, function (res) { }); //lfm

                                            location.href = '/' + userObject.WadjaID + '#!My/' + resData[1] + '/1';
                                        }
                                    }
                                    else {
                                        /* email */
                                        if (res.value.toLowerCase().indexOf('password') >= 0) {
                                            $('text_psw').focus();
                                            $('text_psw').addClass('redring');
                                            $('text_psw').removeClass('greenring');
                                        }
                                        if (res.value.toLowerCase().indexOf('email') >= 0) {
                                            $('text_email').focus();
                                            $('text_email').addClass('redring');
                                            $('text_email').removeClass('greenring');
                                        }
                                        $('reg_errors').set('html', res.value.replace('Error: ', ''));
                                        $('reg_errors').removeClass('dnd');
                                        //$('signupBtn').set('value', 'continue...');
                                        $('signupBtn').set('value', 'Sign Up'); //join_continue
                                        Notify.spinnerOff();
                                    }
                                }
                                else {
                                    Notify.spinnerOff();
                                }
                            });
//                        }
//                        else {
//                            var errorTemp = res.value.split('s@l@i@t');
//                            if (errorTemp.length > 1) {
//                                $('reg_errors').set('html', errorTemp[1]);
//                                return;
//                            }

//                        }
//                    }
//                    else {
//                        //error of Wadjax - do something here?
//                    }
//               });//           }
            //end of checking if valid interest name
        }
        else {
            //$('reg_errors').set('html', 'All fields must be filled');
            $('reg_errors').set('html', join_fillfields);
            $('reg_errors').removeClass('dnd');
            Notify.spinnerOff();
        }
    },

    handleFeedsStreamIcons: function (source, valuefromHomepage) {
        if (source == 'youtube') {
            if (from_youtube == 'true') {
                $('activate_youtube_signup').removeClass('create_active_connect_small');
                from_youtube = 'false';
            }
            else {
                $('activate_youtube_signup').addClass('create_active_connect_small');
                from_youtube = 'true';
            }
        }
        else if (source == 'twitter') {
            //valuefromHomepage = (valuefromHomepage.toLowerCase() == 'true' ? 'false' : 'true');
            //from_tweeter = valuefromHomepage.toLowerCase();
            if (from_tweeter.toLowerCase() == 'true') {
                $('activate_twitter_signup').removeClass('create_active_connect_small');
                from_tweeter = 'false';
            }
            else {
                $('activate_twitter_signup').addClass('create_active_connect_small');
                from_tweeter = 'true';
            }
        }
        else if (source == 'facebook') {
            //valuefromHomepage = (valuefromHomepage.toLowerCase() == 'true' ? 'false' : 'true');
            //from_facebook = valuefromHomepage.toLowerCase();

            if (from_facebook.toLowerCase() == 'true') {
                from_facebook = 'false';
                $('activate_facebook_signup').removeClass('create_active_connect_small');
            }
            else {
                $('activate_facebook_signup').addClass('create_active_connect_small');
                from_facebook = 'true';
            }
        }

        else if (source == 'flickr') {
            //valuefromHomepage = (valuefromHomepage.toLowerCase() == 'true' ? 'false' : 'true');
            //from_flickr = valuefromHomepage.toLowerCase();
            if (from_flickr.toLowerCase() == 'true') {
                from_flickr = 'false';
                $('activate_flickr_signup').removeClass('create_active_connect_small');
            }
            else {
                from_flickr = 'true';
                $('activate_flickr_signup').addClass('create_active_connect_small');
            }
        }

    },
    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.');
                $('reg_errors').set('html', join_usernameErr1);
                elCheck.removeClass('checkTic');
                $('reg_errors').removeClass('dnd');
            }

            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');
                            $('div_suggestions').addClass('dnd');
                            $('reg_errors').addClass('dnd');

                            errorHandling.valduser(1); /* turn border to green */
                        }
                        else {
                            // #MARK - 
                            elCheck.removeClass('loadingTop');
                            // elCheck.removeClass('checkTic');

                            $('div_suggestions').set('html', res.value); /* return suggestions or if username is ok */
                            $('div_suggestions').removeClass('dnd');
                            errorHandling.valduser(0); /* turn border to red */
                        }
                    }
                    else {

                    }
                });
            }
            else {
                // #MARK - 
                elCheck.removeClass('loadingTop');
                elCheck.removeClass('checkTic');

                //$('reg_errors').set('html', 'You must enter a username');
                $('reg_errors').set('html', join_usernameEnter);
                $('reg_errors').removeClass('dnd');
            }
        }
        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;
    }
}

function checkFaceBookFrameHash() {

    //    var locationHref = location.href;
    //    var index = locationHref.indexOf('#');
    var newHash = unescape(location.hash.replace('#', '')); //(index == -1 ? '' : unescape(locationHref.substr(index + 1)));
    if (currentHash != newHash) {
        currentHash = newHash;
        if (currentHash != '' && currentHash.length > 1) {
            if ($('reg_errors')) {
                if (currentHash == 'FBconnectionexists')
                    $('reg_errors').set('html', FBconnectionexists);
                else
                    $('reg_errors').set('html', currentHash);
                $('reg_errors').removeClass('dnd');
                location.hash = '';
            }
        }
        else {
            //            if ($('reg_errors')) {
            //                $('reg_errors').set('html', '');
            //                $('reg_errors').addClass('dnd');
            //            }
        }

    }
    clearInterval(hashTimer);
    hashTimer = setTimeout(checkFaceBookFrameHash, 250);
}

function CrossDomainHack(error) {
    if (error == 'FBconnectionexists') {
        if ($('reg_errors')) {
            $('reg_errors').set('html', FBconnectionexists);
            $('reg_errors').removeClass('dnd');
            location.hash = '';
        }
        if ($('FBFrame')) {
            $('FBFrame').set('src', 'http://www.wadja.com/sessions/FB_Signup.aspx');
        }
    }
    else if (error.length > 1) {
        if ($('reg_errors')) {
            $('reg_errors').set('html', error);
            $('reg_errors').removeClass('dnd');
            location.hash = '';
        }
        if ($('FBFrame')) {
            $('FBFrame').set('src', 'http://www.wadja.com/sessions/FB_Signup.aspx');
        }
    }
}

/* Error handling */
var errorHandling = {
    vald: function (elID) {
        //IE
        if (navigator.userAgent.indexOf('MSIE') > 0) {

            if ($(elID).get('value').length == 0) {
                $(elID).removeClass('greenring');
                $(elID).addClass('redring');
            }
            else {
                $(elID).removeClass('redring');
                $(elID).addClass('greenring');
            }
        }
        else {
            //Other browsers
            if ($(elID).get('value').length == 0 || $(elID).hasClass('typing')) {
                $(elID).removeClass('greenring');
                $(elID).addClass('redring');
            }
            else {
                $(elID).removeClass('redring');
                $(elID).addClass('greenring');
            }
        }
    },
    validInterestName: function (elID) {
        if (!$(elID).hasClass('typing')) {
            if (($(elID).get('value').indexOf('#') > -1) || ($(elID).get('value').indexOf('@') > -1) || ($(elID).get('value').indexOf('+') > -1) || ($(elID).get('value').indexOf(',') > -1) || ($(elID).get('value').indexOf('.') > -1)) {
                $(elID).removeClass('greenring');
                $(elID).addClass('redring');
                errorFromInterestName = true;
                if ($('reg_errors').hasClass('dnd')) {
                    $('reg_errors').removeClass('dnd');
                    if (errorFromInterestName == true) {
                        $('reg_errors').set('html', join_invalidInterestName);
                        errorFromInterestName = false;
                    }
                    if (errorFromPass == true) {
                        $('reg_errors').set('html', join_invaliPasswordErr2);
                        errorFromPass = false;
                    }
                    if (errorFromEmail == true) {
                        $('reg_errors').set('html', join_invalidEmail);
                        errorFromEmail = false;
                    }
                }
            }
            else {
                $(elID).removeClass('redring');
                $(elID).addClass('greenring');
                if (!$('reg_errors').hasClass('dnd')) {
                    $('reg_errors').addClass('dnd');
                }

            }
        }


    },
    /* --- maria --- use this function in order to check the given email with regexp, call in blur event of textEmail, before the signup button is pressed */
    validEmail: function (elID) {
        var regexp = /[a-z0-9_\-\.\+]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}/;
        if ($(elID).get('value').length != 0) {
            if ($(elID).get('value').match(regexp)) {
                $(elID).removeClass('redring');
                $(elID).addClass('greenring');
                if (!$('reg_errors').hasClass('dnd')) {
                    $('reg_errors').addClass('dnd');
                }
            }
            else {
                $(elID).removeClass('greenring');
                $(elID).addClass('redring');
                errorFromEmail = true;
                if ($('reg_errors').hasClass('dnd')) {
                    $('reg_errors').removeClass('dnd');
                    if (errorFromEmail == true) {
                        $('reg_errors').set('html', join_invalidEmail);
                        errorFromEmail = false;
                    }
                    if (errorFromPass == true) {
                        $('reg_errors').set('html', join_invaliPasswordErr2);
                        errorFromPass = false;
                    }
                    if (errorFromInterestName == true) {
                        $('reg_errors').set('html', join_invalidInterestName);
                        errorFromInterestName = false;

                    }
                }
            }
        }

    },
    /* --- maria --- use this function in order to check if the given password is shorter than 6 chars, call in blur event of text_psw, before the signup button is pressed */
    validPassword: function (elID) {
        //for ie validation off password
        if (navigator.userAgent.indexOf('MSIE') > 0) {
            if ($(elID).get('value').clean().length != 0) {
                if ($(elID).get('value').clean().length < 6) {
                    $(elID).removeClass('greenring');
                    $(elID).addClass('redring');
                    errorFromPass = true;
                    if ($('reg_errors').hasClass('dnd')) {
                        $('reg_errors').removeClass('dnd');
                       
                        if (errorFromPass == true) {
                            $('reg_errors').set('html', join_invaliPasswordErr2);
                            errorFromPass = false;
                        }
                        if (errorFromEmail == true) {
                            $('reg_errors').set('html', join_invalidEmail);
                            errorFromEmail = false;
                        }
                        if (errorFromInterestName == true) {
                            $('reg_errors').set('html', join_invalidInterestName);
                            errorFromInterestName = false;
                        }
                    }
                }
                else {
                    $(elID).removeClass('redring');
                    $(elID).addClass('greenring');
                    if (!$('reg_errors').hasClass('dnd')) {
                        $('reg_errors').addClass('dnd');

                    }

                }
            }

        } // for other browsers
        else {

            if (!$(elID).hasClass('typing')) {
                if ($(elID).get('value').clean().length < 6) {
                    $(elID).removeClass('greenring');
                    $(elID).addClass('redring');
                    if ($('reg_errors').hasClass('dnd')) {
                        $('reg_errors').removeClass('dnd');
                          errorFromPass = true;
                        if (errorFromPass == true) {
                            $('reg_errors').set('html', join_invaliPasswordErr2);
                            errorFromPass = false;
                        }
                        if (errorFromEmail == true) {
                            $('reg_errors').set('html', join_invalidEmail);
                            errorFromEmail = false;
                        }
                        if (errorFromInterestName == true) {
                            $('reg_errors').set('html', join_invalidInterestName);
                            errorFromInterestName = false;
                        }
                    }
                }
                else {
                    $(elID).removeClass('redring');
                    $(elID).addClass('greenring');
                    if (!$('reg_errors').hasClass('dnd')) {
                        $('reg_errors').addClass('dnd');

                    }

                }
            }
        }

    },
    valduser: function (action) {
        if (action == 0) {
            $('text_wadjaid').removeClass('greenring');
            $('text_wadjaid').addClass('redring');
        }
        else {
            $('text_wadjaid').removeClass('redring');
            $('text_wadjaid').addClass('greenring');
        }
    },
    typing: {
        ont: function (elID) {

            if ($(elID).hasClass('typing')) {
                $(elID).removeClass('typing');
                $(elID).set('value', '');
            }
            try {
                if (elID == 'text_psw' && $('text_psw').get('type') != 'password')
                    $('text_psw').set('type', 'password');
            } catch (jer) {

            }

        },
        offt: function (elID, elIDTip) {
            if ($(elID).get('value') == '') {
                $(elID).addClass('typing');
                $(elID).set('value', elIDTip);
                try {
                    if (elID == 'text_psw')
                        $('text_psw').set('type', 'text');
                } catch (jer) {

                }
            }

        }
    }
}
