Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var user_logo_url = '';
  2. var version_crop = 1;
  3. var isOldPage = document.doctype.publicId.indexOf('XHTML') !== -1;
  4.  
  5. $(function() {
  6.     var nameWrap = $('.ac-userInfo__nameWrap');
  7.     var name = $('.ac-userInfo__name');
  8.     var nameSaveBtn = $('.ac-save-form');
  9.     var open = $('.h-ac__caret');
  10.     var accautWrap = $('.h-accautWrap');
  11.  
  12.     if (typeof window.CSRF !== 'object') {
  13.         window.CSRF = {
  14.             getParams:  function (form_name) {
  15.                 if (typeof form_name === 'string') {
  16.                     var params = {};
  17.                     params.token = $("input[name='" + form_name + "']").val() || "";
  18.                     if (params.token) {
  19.                         params.formName = form_name;
  20.                     } else {
  21.                         params.prefix = 'action__';
  22.                         params.formName = params.prefix + (form_name || "");
  23.                         params.token = $("input[name='" + params.formName + "']").val() ||"";
  24.                     }
  25.                     return params;
  26.                 }
  27.                 return {};
  28.             },
  29.             errorHandler: function(message) {
  30.                 if (typeof message === 'string') {
  31.                     showError(message);
  32.                 }
  33.             }
  34.         };
  35.     }
  36.  
  37.     name.on('click', function () {
  38.         if (($('base').length > 0)) {
  39.             window.location = $('#_LANG').val() + '/account.htm/?op=personal_info#owners-name';
  40.         } else {
  41.             window.isUploaderKeyboardDisabled = true;
  42.             nameWrap.addClass('edit');
  43.  
  44.             var val_nameWrap = $('#inputUserName').val();
  45.             $('#inputUserName').focus().val('').val(val_nameWrap);        
  46.         }
  47.     });
  48.     nameSaveBtn.on('click', function () {
  49.         changeUserName();
  50.     });
  51.  
  52.     open.on('click', function () {
  53.         accautWrap.toggleClass('open');
  54.     });
  55.  
  56.     $('body').click(function (event){
  57.         if (nameWrap.hasClass('edit') && nameWrap.is(':visible')){
  58.             if ($(event.target).closest(nameWrap).length) return;
  59.  
  60.             changeUserName();
  61.         }
  62.         else if (accautWrap.hasClass('open') && accautWrap.is(':visible')) {
  63.             if ($(event.target).closest(accautWrap).length) return;
  64.  
  65.             accautWrap.removeClass('open');
  66.         }
  67.     });
  68.  
  69.     $('body').keyup(function (event) {
  70.         if (accautWrap.hasClass('open') && accautWrap.is(':visible')) {
  71.             if (event.keyCode == 27) {
  72.                 if (nameWrap.hasClass('edit')) {
  73.                     nameWrap.removeClass('edit');
  74.  
  75.                     $('#inputUserName').val($.trim($('#inputUserName').data('default')));
  76.                 }
  77.                 else {
  78.                     accautWrap.removeClass('open');
  79.                 }
  80.             }
  81.             else if (event.keyCode == 13 && nameWrap.hasClass('edit')){
  82.                 // for ie => fixed blinking cursor in input
  83.                 $('#inputUserName').blur();
  84.                 changeUserName();
  85.             }
  86.         }
  87.  
  88.         if ($('#dialog-crop').is(":visible")) {
  89.             if (event.keyCode == 27) {
  90.                 if ($('.alert-modal').exists()){
  91.                     $('.alert-modal').find('[data-dismiss=modal-alert]').trigger('click');
  92.                 }
  93.                 else{
  94.                     jcropShow();
  95.                 }
  96.             }
  97.         }
  98.     });
  99.  
  100.     $('body').on('click', '#edit_user_logo', function(){
  101.         if(isOldPage) {
  102.             jcropShow();
  103.         } else {
  104.             window.location = $('#_LANG').val() + '/account.htm/?op=personal_info#picture';
  105.         }
  106.     });
  107.  
  108.  
  109.     if (!$('html').hasClass('ie8')) {
  110.         var $desktopNav = $('.h-nav');
  111.         var slideout;
  112.         var slideoutInit = function(enableTouchNav) {
  113.             slideout = new Slideout({
  114.                 'panel': document.getElementById('mobile-panel'),
  115.                 'menu': document.getElementById('mobile-menu'),
  116.                 'padding': 256,
  117.                 'tolerance': 70,
  118.                 'side': 'right',
  119.                 'touch': enableTouchNav
  120.             });
  121.         };
  122.         var enableTouchNav = function() {
  123.             return !$desktopNav.is(':visible');
  124.         };
  125.  
  126.         if ($('#mobile-panel').length > 0 && typeof window.SlideoutInit === "undefined") {
  127.             //var iOsOffMenu = ( navigator.userAgent.match(/iPad|iPhone|iPod/) ? false : true );
  128.  
  129.             slideoutInit(enableTouchNav());
  130.             window.SlideoutInit = true;
  131.  
  132.             var mobileMenuBtn = document.querySelector('.mobile-menu-btn');
  133.             var mobilePanelClose = document.querySelector('.mobile-panel-close');
  134.  
  135.             mobileMenuBtn.addEventListener('click', function () {
  136.                 slideout.toggle();
  137.             });
  138.             mobilePanelClose.addEventListener('click', function () {
  139.                 slideout.close();
  140.             });
  141.  
  142.             $(window).on('resize', function(){
  143.                 slideout.destroy();
  144.                 slideoutInit(enableTouchNav());
  145.             });
  146.         }
  147.     }
  148. });
  149.  
  150. function headerHide(){
  151.     $('.h-accautWrap').removeClass('open');
  152. }
  153.  
  154. function jcrop() {
  155.     $('.jcrop').Jcrop({
  156.         bgColor:     'black',
  157.         bgOpacity:   .4,
  158.         setSelect:   [ 0, 0, 200, 200 ],
  159.         aspectRatio: 1,
  160.         onSelect: updateCoords
  161.     });
  162. }
  163.  
  164. function updateCoords(c)
  165. {
  166.     $('#x').val(c.x);
  167.     $('#y').val(c.y);
  168.     $('#w').val(c.w);
  169.     $('#h').val(c.h);
  170. }
  171.  
  172. function checkCoords()
  173. {
  174.     if (!$('#save_crop_logo').hasClass('disabled')){
  175.         if (parseInt($('#w').val()) > 0){
  176.             $('#img_w').val($('.jcrop-holder').width());
  177.             $('#img_h').val($('.jcrop-holder').height());
  178.  
  179.             submitCropLogo();
  180.         }
  181.         else{
  182.             modalAlert('attention', 'Please select a crop region then press submit.');
  183.         }
  184.     }
  185.  
  186.     return false;
  187. }
  188.  
  189. function jcropShow() {
  190.     if ($('#dialog-crop').is(":visible")) {
  191.         if ($('.jcrop').data('Jcrop')) {
  192.             $('.jcrop').data('Jcrop').destroy();
  193.         }
  194.         uiWinOldClose('crop');
  195.     }
  196.     else {
  197.         headerHide();
  198.         openCropUserLogoDlg();
  199.     }
  200. }
  201.  
  202. function openCropUserLogoDlg(){
  203.     uiWinOld(
  204.         $('#_LANG').val() + '/header/ajaxGetCropDlg',
  205.         {version_crop: version_crop, baseClass: 'crop', dialogName: 'crop', fullsize: true},
  206.         function(){
  207.             if (user_logo_url.length === 0 && $('img#user_logo_crop').attr('src').indexOf('socava') !== -1) {
  208.                 user_logo_url = $('img#user_logo_crop').attr('src').replace(/\?.*$/g, '');
  209.             }
  210.         }
  211.     );
  212.    
  213. }
  214.  
  215. function resizeHeight(container) {
  216.     $(container).css({
  217.         position:'absolute',
  218.         top: ($(window).height() - $(container).outerHeight())/2
  219.     });
  220. }
  221.  
  222. function submitCropLogo(){
  223.     startLoad();
  224.     var csrf = CSRF.getParams('checkCoordsCrop');
  225.     $.postJSON($('#_LANG').val() + '/account/ajaxCropUserLogo?' + $('#checkCoordsCrop').serialize(), {logo_url: user_logo_url, csrf: csrf},
  226.         function(json) {
  227.             stopLoad();
  228.             if (json.result) {
  229.                 updateUserLogo(json.logo_url, true);
  230.                 user_logo_url = '';
  231.             } else {
  232.                 json.hasOwnProperty('csrf') ? modalAlert('attention', json.message) : modalAlert('attention', json.alertMessage);
  233.             }
  234.         }
  235.     );
  236. }
  237.  
  238. function updateUserLogo(url_logo, is_hide_jcrop){
  239.     url_logo = url_logo || '';
  240.     is_hide_jcrop = is_hide_jcrop || false;
  241.  
  242.     window.is_user_logo = true;
  243.     $('.default_logo_crop').removeClass('default_logo_crop');
  244.  
  245.     if ($('.jcrop').data('Jcrop')) {
  246.         $('.jcrop').data('Jcrop').destroy();
  247.     }
  248.  
  249.     $('#user_logo_crop').removeAttr('style').attr('src', url_logo + '?full=true&v=' + version_crop);
  250.  
  251.     if (is_hide_jcrop){
  252.         $('#user_logo_thumb').css('background-image', 'none');
  253.         $('#user_logo_thumb_header').css('background-image', 'none');
  254.         setTimeout(function(){
  255.             $('#userphoto').attr('src', url_logo + '?v=' + version_crop);
  256.             $('.h-ac__img').css('background-image', 'url(' + url_logo + '?v=' + version_crop + ')');
  257.             $('#user_logo_thumb_header').css('background-image', 'url(' + url_logo + '?v=' + version_crop + ')');
  258.         }, 500);
  259.  
  260.         $('#userInfoFromHeader').addClass('userIcon');
  261.         $('#userphoto-delete').removeClass('hide');
  262.     }
  263.  
  264.     $('#save_crop_logo').removeClass('disabled');
  265.  
  266.     version_crop++;
  267.  
  268.     if (is_hide_jcrop){
  269.         stopLoad();
  270.         jcropShow();
  271.     }
  272.     else{
  273.         $('#save_crop_logo, #delete_user_logo').addClass('disabled');
  274.         setTimeout(function(){
  275.             jcrop();
  276.             $('#save_crop_logo, #delete_user_logo').removeClass('disabled');
  277.             stopLoad();
  278.         }, 1000);
  279.     }
  280. }
  281.  
  282. function deleteUserLogo(){
  283.     if (!$('#delete_user_logo').hasClass('disabled')) {
  284.         startLoad();
  285.         $.postJSON($('#_LANG').val() + '/account/ajaxDeletePicture',
  286.             function (json) {
  287.                 stopLoad();
  288.                 if (json.result) {
  289.                     modalAlert('info', json.message, {nobtn: true});
  290.  
  291.                     deleteLogoFromHeader();
  292.                    
  293.                     //and replace settings thumb if needed
  294.                     $('#userphoto').attr("src","/images/uploaded/nophoto.png");
  295.                     $('#userphoto-delete').addClass('hide');
  296.                 }
  297.                 else {
  298.                     modalAlert('attention', json.message);
  299.                 }
  300.             }
  301.         );
  302.     }
  303.     return false;
  304. }
  305.  
  306. function deleteLogoFromHeader(){
  307.     window.is_user_logo = false;
  308.  
  309.     if ($('.jcrop').data('Jcrop')) {
  310.         $('.jcrop').data('Jcrop').destroy();
  311.     }
  312.  
  313.     $('#userInfoFromHeader').removeClass('userIcon');
  314.     $('#save_crop_logo, #delete_user_logo').addClass('disabled');
  315.     $('#user_logo_crop').attr('src', "/img/global/user-photo.jpg").removeAttr('style');
  316.     $('#user_logo_thumb').css('background-image', 'url("/img/header/header-user-icon-default.png")');
  317.     $('#user_logo_thumb_header').css('background-image', 'url("/img/header/header-user-icon-default.png")');
  318.    
  319. }
  320.  
  321. function changeUserName(){
  322.     $('.ac-userInfo__nameWrap').removeClass('edit');
  323.  
  324.     var val = $.trim($('#inputUserName').val());
  325.  
  326.     var default_val = $.trim($('#inputUserName').data('default'));
  327.  
  328.     $('#inputUserName').val(default_val);
  329.  
  330.     if (val != default_val){
  331.         startLoad();
  332.  
  333.         var val_split  = val.split(' ');
  334.         var first_name = '';
  335.         var last_name  = '';
  336.  
  337.         if (!val_split){
  338.             val = $('#inputUserName').data('placeholder');
  339.         }
  340.         else{
  341.             if (val_split.length == 1){
  342.                 first_name = val_split[0];
  343.             }
  344.             else{
  345.                 for(var i = 0; i < val_split.length - 1; i++){
  346.                     first_name += val_split[i] + ' ';
  347.                 }
  348.  
  349.                 last_name = val_split[val_split.length - 1];
  350.             }
  351.         }
  352.         var csrf = CSRF.getParams('changeFL');
  353.         $.postJSON($('#_LANG').val() + '/account/ajaxChangePersonalInfo', {fname: first_name, lname: last_name, csrf: csrf},
  354.             function (json) {
  355.                 stopLoad();
  356.  
  357.                 if (json.result) {
  358.                     if (val == ''){
  359.                         val = $('#inputUserName').data('placeholder');
  360.                     } else {
  361.                         val = $.trim(first_name) + (last_name ? ' ' + $.trim(last_name) : '');
  362.                     }
  363.  
  364.                     $('#labelUserName').text(val);
  365.                     $('#inputUserName').val(val).attr('data-default', val);
  366.                 }
  367.                 else {
  368.                     modalAlert('attention', json.message);
  369.                 }
  370.             }
  371.         );
  372.     }
  373. }
  374.  
  375. var is_upload_now = false;
  376. function userAvatarUpload() {
  377.     try {
  378.         var url_load = $('#_LANG').val() + '/account/ajaxUploadUserLogo';
  379.  
  380.         $('#upload_user_logo').fileupload({
  381.             url: url_load,
  382.             dataType: 'json',
  383.             singleFileUploads: false,
  384.             start: function (e, data) {
  385.                 automatic_loader_count = false;
  386.                 is_upload_now = true;
  387.                 startLoad();
  388.             },
  389.             stop: function (e, data) {
  390.                 is_upload_now = false;
  391.             },
  392.             add: function (e, data) {
  393.                 if (!is_upload_now){
  394.                     if (data.files[0].size >= (1048576 * 15)){
  395.                         modalAlert('attention', pdffiller.t('ACCOUNT_ERROR_UPLOAD_FILES_TOO_BIG'));
  396.                     }
  397.                     else{
  398.                         var ext = strrchr(data.files[0].name, '.').toLowerCase();
  399.                         var filetype = ['.jpg','.gif','.png','.jpeg'];
  400.  
  401.                         if (filetype.in_array(ext)){
  402.                             data.submit();
  403.                         }
  404.                         else{
  405.                             modalAlert('attention', pdffiller.t('ACCOUNT_ERROR_UPLOAD_FILES_NOT_FORMAT'));
  406.                         }
  407.                     }
  408.                 }
  409.             },
  410.             done: function (e, data) {
  411.                 if ($('.ie8').exists()){
  412.                     var result_json = data.result;
  413.                 }
  414.                 else{
  415.                     var result_json = JSON.parse(data.jqXHR.responseText);
  416.                 }
  417.  
  418.                 afterUploadImg(result_json);
  419.             },
  420.             fail: function (e, data) {
  421.                 stopLoad();
  422.                 modalAlert('attention', 'File upload failed.');
  423.             },
  424.             progressall: function (e, data) {
  425.                 var progress = parseInt(data.loaded / data.total * 100, 10);
  426.                 loaderCounter(progress);
  427.             }
  428.         }).prop('disabled', !$.support.fileInput)
  429.             .parent().addClass($.support.fileInput ? undefined : 'disabled');
  430.  
  431.  
  432.         $('.old-modal-background').show();
  433.         $('.old-modal-wrapper.crop').show();
  434.  
  435.         resizeHeight('.old-modal-container');
  436.  
  437.         $('#save_crop_logo').addClass('disabled');
  438.         $('.h-accautWrap').removeClass('open');
  439.     } catch (e) {
  440.         window.location.href = $('#_LANG').val() + '/account.htm/?op=personal_info#picture';
  441.     }
  442. }
  443. function afterDialogShow() {
  444.     if(isOldPage) {
  445.         userAvatarUpload()
  446.     }
  447. }
  448.  
  449. function afterUploadImg(result_json){
  450.     if (result_json.result){
  451.         updateUserLogo(result_json.logo_url);
  452.         user_logo_url = result_json.logo_url;
  453.     }
  454.     else{
  455.         stopLoad();
  456.         modalAlert('attention', result_json.alertMessage);
  457.     }
  458. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement