1. JavaScript / Говнокод #19164

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    $(window).load(function () {
    
        $(".sidebar-list").mCustomScrollbar({
          // scrollButtons:{enable:true,scrollType:"stepped"},
          keyboard: {
            scrollType: "stepped"
          },
          mouseWheel: {
            scrollAmount: 188
          }, // theme:"rounded-dark",
          scrollbarPosition: "inside",
          autoExpandScrollbar: false,
          snapAmount: 188,
          snapOffset: 65
        });
        if ("onhashchange" in window && location.hash) {
          match = location.hash.match(/^[?#!]*(.*)$/)[1];
          scrollToPage(match);
        };
    
        if (!isMob.any() && isRoot) {
          // return false;
          var navM = $('.menu a');
          var section = $.map($(".section"), function (e) {
            var $e = $(e);
            var pos = $e.position();
            return {
              top: pos.top - 75,
              bottom: pos.top - 75 + $e.height(),
              hash: '#!' + $e.attr('id'),
              indx: $e.index()
            };
          });
          //Checking scroll 
          var top = null;
          var changed = false;
          var currentHash = null;
    
          $(window).scroll(function () {
            var newTop = $(document).scrollTop();
            changed = newTop != top;
            if (changed) {
              top = newTop;
              // step();
            }
          });
          function step() {
            if (!changed) {
              return setTimeout(step, 200);
            }
            var count = section.length;
            var p;
            while (p = section[--count]) {
              if (p.top >= top || p.bottom <= top) {
                continue;
              }
              if (currentHash == p.hash) {
                break;
              }
              var scrollTop = $(document).scrollTop();
              window.location.hash = currentHash = p.hash;
              $(document).scrollTop(scrollTop);
            }
            setTimeout(step, 200);
          }
          setTimeout(step, 200);
        }
      });

    Сей гениальный код должен управлять прокруткой и главным меню на сайте.

    moveax3, 10 Декабря 2015

    Комментарии (3)
  2. JavaScript / Говнокод #19160

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    function getQueryParam(param) {
        if (!getQueryParam.params) {
            var params = {},
                query = window.location.search.substring(1);
    
            if (query) {
                var queryParts = query.split('&'),
                    queryPartsLen = queryParts.length,
                    decode = decodeURIComponent;
    
                while (queryPartsLen--) {
                    var queryPart = queryParts[queryPartsLen].split('='),
                        key = queryPart[0],
                        value = queryPart[1];
    
                    params[decode(key)] = decode(value) || null;
                }
            }
    
            getQueryParam.params = params;
        }
    
        return getQueryParam.params[param] || null;
    }

    function getQueryParam

    bykovski, 09 Декабря 2015

    Комментарии (4)
  3. JavaScript / Говнокод #19146

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    if (/Version\/5[^S]+Safari/.test(navigator.userAgent)) {
                    // https://twitter.com/sonnypiers/status/187513545397776384
                    var xhr = new XMLHttpRequest();
                    xhr.open('GET', user_photo, true);
    
                    xhr.responseType = 'arraybuffer';
    
                    xhr.onload = function(e) {
                        if (this.status == 200) {
                            var uInt8Array = new Uint8Array(this.response);
                            var i = uInt8Array.length;
                            var binaryString = new Array(i);
                            while (i--) {
                                binaryString[i] = String.fromCharCode(uInt8Array[i]);
                            }
                            var data = binaryString.join('');
    
                            var base64 = window.btoa(data);
    
                            var image = new Image();
                            image.onload = function() {
                                ...
                            };
                            image.src = 'data:image/jpeg;base64,' + base64;
                        }
                    };
    
                    xhr.send();
                    return;
                }
    
                var image = new Image();
                image.onload = function() {
                    ...
                };
                image.crossOrigin = 'anonymous';
                image.src = user_photo;

    потому что старое сафари не умеет image.crossOrigin

    makc3d, 07 Декабря 2015

    Комментарии (5)
  4. JavaScript / Говнокод #19141

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    this.listenTo(App.vent, 'chat:newMessage', function(data) {
        if (!chatList.length && (data.Author.Id !== App.userModel.id)) {
            this.addNewChat(UsersList.get(data.Author.Id));
            this.createMessagesCollection(data.Author.Id);
            App.allMessages[data.Author.Id].add(data);
            this.addUnreadCount(data.Author.Id);
            this.showAllChats();
            this.showCurrentChat(App.allMessages[this.chatId]);
        } else if (data.Author.Id !== App.userModel.id) {
            this.addUnreadCount(data.Author.Id);
            !App.allMessages[data.Author.Id] && this.createMessagesCollection(data.Author.Id);
            App.allMessages[data.Author.Id].add(data);
            this.showAllChats();
        } else {
            !App.allMessages[this.chatId] && this.createMessagesCollection(this.chatId);
            App.allMessages[this.chatId].add(data);
            this.showAllChats();
        }
        if (data.Author.Id !== App.userModel.id) {
            App.vent.trigger("chat:newMessageToMe", data);
            App.allMessages[self.chatId].readMessages();
            setTimeout(function() {
                chatList.get(self.chatId).set({
                    UnreadCount: 0
                });
                App.vent.trigger('chat:messagesread', self.chatId);
                self.showAllChats();
            }, 1500);
        }
    });

    InTheArmyNow, 06 Декабря 2015

    Комментарии (0)
  5. JavaScript / Говнокод #19140

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    validate: function(elem) {
        var name = elem.attr('name'),
            self = this,
            err = elem.find('.registration-form-error'),
            inp = elem.find('input'),
            introForm = $('.registration-intro-form'),
            r;
        if (elem.attr('type') === 'radio') {
            return true
        };
        elem.next().hide();
        if (name === 'newpassword' || name === 'newpasswordrepeat') {
            if ((r = this.validatePassword(elem)) && r.err) {
                elem.addClass('error');
                elem.next().show().html(r.err);
                elem.focus();
            } else {
                elem.removeClass('error');
                return true;
            }
        } else if (name === 'email') {
            if ((r = this.validateEmail(elem)) && r.err) {
                elem.addClass('error');
                elem.next().show().html(r.err);
                elem.focus();
            } else if (r) {
                elem.removeClass('error');
                return true;
            }
        } else if (name === 'name') {
            if ((r = this.validateName(elem)) && r.err) {
                elem.addClass('error');
                elem.next().show().html(r.err);
                elem.focus();
            } else if (r) {
                elem.removeClass('error');
                return true;
            }
        } else if (name === 'city-autocomplete') {
    
            var CityId = $('input[name="CityId"]').val();
    
            if (CityId === "") {
                elem.addClass('error');
                elem.next().show().html("Выберите город из списка");
                elem.focus();
            } else {
                elem.removeClass('error');
                return true;
            }
        }
    },

    InTheArmyNow, 06 Декабря 2015

    Комментарии (0)
  6. JavaScript / Говнокод #19139

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
            renderer = new THREE.WebGLRenderer({ antialias: true, preserveDrawingBuffer: !!navigator.userAgent.match(/Trident.*rv[ :]*11\./) });
        } catch (mammothFeces) {
            renderer = new THREE.CanvasRenderer();
        }

    клиент тестирует на сафари 5. а я думал, ие11 (/Trident.*rv[ :]*11\./) это худшее, что случится на проекте

    makc3d, 04 Декабря 2015

    Комментарии (2)
  7. JavaScript / Говнокод #19132

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(var i=0; i<data.length; i++) {
    	…
    	self._markerList[data[i].r_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[0].GOZ.arrRowNum[self._markerList[0].GOZ.arrRowNum.length] = parseInt(i);
    }

    Это parseInt умилительно. Нет, со счётчиком ничего внутри цикла не делается. Но а вдруг?

    torbasow, 04 Декабря 2015

    Комментарии (2)
  8. JavaScript / Говнокод #19130

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $(".tabs_nav-item").click ->
        if($(this).hasClass("_active")) 
        else 
          $this = $(this)
          target = $(this).attr("href")
          $this.addClass("_active").siblings("._active").removeClass("_active")
          $(target).addClass("_active").siblings("._active").removeClass("_active")

    LOL
    P.S. coffeescript

    Crazyzubr, 03 Декабря 2015

    Комментарии (1)
  9. JavaScript / Говнокод #19129

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    jQuery.AdImage = function(props) {
    				li = $('<li>');
    				li.css({ position: 'relative' });
    				li.css('text-align', 'center');
    				img = $('<img src="'+Path.small+props.lamp+props.index+'.jpg" class="'+props.orientation+'" />');
    				img.css('display', 'inline');
    				img.css('height', '180px');
    				img.css('margin', '10px');
    				imga = $('<a>');
    				imga.attr('title', props.title);
    				imga.attr('rel', 'lightbox');
    				imga.attr('href', 'javascript:;');
    				imga.click(function() {
    					$.easybox(Path.large+props.lamp+props.index+'.jpg', props.title, {});
    				});
    				imga.append(img);
    				li.append(imga);
    				div = $('<div>');
    				div.text(props.title);
    				li.append(div);
    				$('.img_group:first').append(li);
    	hidden = $('<input type="hidden" />');
    	hidden.attr('value', props.id);
    				li.append(hidden);
    	togglePic = function() {
    		x = $(this);
    		b = $(this).closest('li');
    		h = b.children(':input');
    		n = h.attr('value')
    		jQuery.ajax('/lamper/delpic/'+n).done(function(data) {
    			obj = jQuery.parseJSON(data);
    			if (obj.status == 'deleted') {
    				b.addClass('hidden');
    				x.text('Восстановить');
    			}
    			if (obj.status == 'restored') {
    				b.removeClass('hidden');
    				x.text('Удалить');
    			}
    		});
    	};
    	btn_del = $('<button>').css('float', 'right');
    	btn_del.text(props.exists ? 'Удалить' : 'Восстановить');
    	//btn_del.css('display', 'none');
    	li.append(btn_del);
    	if (!props.exists) li.addClass('hidden');
    	btn_del.click(togglePic);
    	return li;
    }

    Из старой админки. Управление отображением товара на сайте. Префикс Ad, насколько я помню, сокращение от Admin

    kgm-rj, 03 Декабря 2015

    Комментарии (0)
  10. JavaScript / Говнокод #19128

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    for (var i = this.request.languages.length; i < this.MAX_LANGUAGES; i++) {
          if (!this.request.languages) {
              this.request.languages = [];
           }
    
           this.request.languages.push(this.createEmptyLanguage());
    }

    Когда сначала ничего не понял, а потом как заорал в голосину

    Disorder, 03 Декабря 2015

    Комментарии (4)