// interface_profile-edit.js
// 2013 Miguel Freitas
//
// Profile editing interface (profile-edit.html)

var newUserWarnDisplayed = false;

function initProfileEdit() {
    // Check for the various File API support.
    if (window.File && window.FileReader && window.FileList && window.Blob) {
        // Great success! All the File APIs are supported.
    } else {
        alert('The File APIs are not fully supported in this browser.');
    }

    initInterfaceCommon();

    $('.profile-card-photo.forEdition').on('click', function() { $('#avatar-file').click(); });
    $('#avatar-file').on('change', handleAvatarFileSelect);
    $('.submit-changes').on('click', saveProfile);
    $('.cancel-changes').on('click', $.MAL.goHome);

    initUser(function() {
        if (!defaultScreenName) {
            alert(polyglot.t('username_undefined'));
            $.MAL.goLogin();
            return;
        }
        checkNetworkStatusAndAskRedirect();

        loadFollowing(function() {
            twisterFollowingO = TwisterFollowing(defaultScreenName);
            verifyUserAlreadyInBlockchain();
            initMentionsCount();
            initDMsCount();
        });

        $('.profile-card-main h2').text('@' + defaultScreenName);
        loadAvatarForEdit();
        loadProfileForEdit();

        $('.secret-key-container').hide();

        $('.toggle-priv-key').on('click', function () {
            if ($('.secret-key-container').is(':visible')) {
                $('.secret-key-container').fadeOut(function () {
                    $('.secret-key').text('');
                });
            } else {
                dumpPrivkey(defaultScreenName, function(args, key) {
                    $('.secret-key').text(key);
                    $('.secret-key-container').fadeIn();
                }, {});
            }
        });
    });
}

function handleAvatarFileSelect(event) {
    var files = event.target.files; // FileList object
    var file = files[0];

     // Only process image files.
     if (file.type.match('image.*')) {
        var reader = new FileReader();

        reader.onload = function(event) {
            var img = new Image();
            img.onload = function() {
                var MAXWidthHeight = 64;
                var ratio = MAXWidthHeight / Math.max(this.width, this.height);
                var canvas = document.createElement('canvas');
                canvas.width = Math.round(this.width * ratio);
                canvas.height = Math.round(this.height * ratio);
                canvas.getContext('2d').drawImage(this, 0, 0, canvas.width, canvas.height);

                var imgURL = undefined;
                for (var quality = 1.0; (!imgURL || imgURL.length > 4096) && quality > 0.1; quality -= 0.01) {
                    imgURL = canvas.toDataURL('image/jpeg', quality);
                }
                $('.profile-card-photo.forEdition').attr('src', imgURL);
            }
            img.src = event.target.result;
        }

        // Read in the image file as a data URL.
        reader.readAsDataURL(file);
    }
}


function verifyUserAlreadyInBlockchain() {
    $.MAL.disableButton($('.submit-changes'));

    dumpPubkey(defaultScreenName, function(args, pubkey) {
        if (pubkey.length > 0) {
            follow('twister', true, function() {
                $.MAL.enableButton($('.submit-changes'));
            });
        } else {
            if (!newUserWarnDisplayed) {
                alert(polyglot.t('user_not_yet_accepted'));
                newUserWarnDisplayed = true;
            }
            setTimeout(verifyUserAlreadyInBlockchain, 5000);
        }
    }, {});
}

function localizePlaceholders() {
    $('.input-name').attr('placeholder', polyglot.t('Full name here'));
    $('.input-description').attr('placeholder', polyglot.t('Describe yourself'));
    $('.input-city').attr('placeholder', polyglot.t('Location'));
    $('.input-website').attr('placeholder', polyglot.t('website'));
    $('.input-tox').attr('placeholder', polyglot.t('Tox address'));
    $('.input-bitmessage').attr('placeholder', polyglot.t('Bitmessage address'));
}

$(document).ready(localizePlaceholders);