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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    switch (achievements.length) {
      case 0: return 0;
      case 1: return 30;
      case 2: return 60;
      case 3: return 75;
      case 4: return 90;
      case 5: return 100;
      default: return 0;
    }

    зато не if'ы

    dimalev, 07 Июня 2012

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

    +167

    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
    var pic_jpg = /(\.jpg)$/ig;
    var pic_jpeg = /(\.jpeg)$/ig;
    var pic_png = /(\.png)$/ig;
    var pic_bmp = /(\.bmp)$/ig;
     var a = $("a");
    $.each(a, function (i, val) {
    		var src = $(val).attr("href");
    		if (src !== undefined) {
    				if (src.match(pic_jpg)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_jpeg)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_png)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_bmp)) {
    						AppendImage(i, src, 'a');
    				}
    		}
    });

    DarkThinker, 06 Июня 2012

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

    +158

    1. 1
    <span class="header-search-icon" onclick="document.forms['search-form'].submit();"></span>

    Выдержка из стандартного шаблона компонента 1С-Битрикс.

    и что помешало поставить <button type=submit>?

    wildhind, 06 Июня 2012

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

    +155

    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
    function createLinks(abys_id)
    	{
    		//get current year
    		var cur_year = parseInt($("#abys_id"+abys_id).children("span").text());
    		/*
    		 *	create links hrefs
    		 */
    		var ml_block = $("#ab_month_grid > .abmg_line");
    		ml_block.each(function(num,elem)
    			{
    				var month;
    				var anchors = elem.getElementsByTagName("a");
    				for(var n=0;n<anchors.length;n++)
    				{
    					month = (n==0)?12:(n==1)?3:(n==2)?6:9;
    					(num == 1)
    					?
    						(month == 12)
    						?
    							month = 1
    						:
    							month++
    					:
    					(num == 2)
    					?
    						(month == 12)
    						?
    							month = 2
    						:
    							month+=2
    					:
    						"--empty--"
    					;
    
    					anchors[n].href = "http://some_site/archive/news/all/"+cur_year+"/"+month+"/";
    				}
    			});
    		
    	}

    Вот люблю я инлайновые условия и все тут=)
    Это callback для заполнения href у ссылок календаря архива новостей.

    ikenfin, 06 Июня 2012

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

    +148

    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
    ISQ.Translation.Infra.extractJobIdFromText=function(k){
        var d;
        var g=k.toLowerCase();
        var j=g.indexOf("<"+ISQ.Translation.Infra.jobIdMarkerTag);
        if(j===-1){
    	j=g.indexOf("< "+ISQ.Translation.Infra.jobIdMarkerTag)
        }
        if(j===-1){
    	if(ISQ.Widget&&ISQ.Widget.Log){
    	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: Couldnt parse jobIdMarker from text! "+k,ISQ.Widget.Log.statusEnum.RED)
    	}
    	return{id:-1,text:k}
        }
        var b=k.indexOf(">",j);
        if(b===-1){
    	if(ISQ.Widget&&ISQ.Widget.Log){
    	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid!",ISQ.Widget.Log.statusEnum.RED)
    	}
    	return{id:-1,text:k}
    
        }
        b+=1;
        var h=g.substring(j,b);
        var e=h.indexOf(ISQ.Translation.Infra.jobIdMarkerTag);
        if(e===-1){
    	if(ISQ.Widget&&ISQ.Widget.Log){
    	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid!",ISQ.Widget.Log.statusEnum.RED)
    	}
    	return{id:-1,text:k}
        }
        e+=ISQ.Translation.Infra.jobIdMarkerTag.length;
        var f="";
        var a;
        do
        {
    	if(e>h.length){
    	    break
    	}
    	a=h.charAt(e++);
    	if(a.charCodeAt(0)<48||a.charCodeAt(0)>57){
    	    break
    	}
    	f+=a
        }
        while(true);
        d=parseInt(f);
        if(isNaN(d)){
    	if(ISQ.Widget&&ISQ.Widget.Log){
    	    ISQ.Widget.Log.add(
    		"ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid: could not parse id#",
    		ISQ.Widget.Log.statusEnum.RED)
    	}
    	return{id:-1,text:k}
        }
        var i;
        if(j===0){
    	i=k.substring(b)
        }
        else
        {
    	i=k.substring(0,j);
    	if(b<k.length){
    	    i+=k.substring(b)
    	}
        }
        return{id:d,text:i}
    };

    Закомммммммммммментировал!

    wvxvw, 04 Июня 2012

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

    +151

    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
    ISQ.Widget.ContactForm.clickEventHandler=function(a){
        switch(a.result){
        case ISQ.Forms.clickEventEnum.SUBMIT:
    	ISQ.Widget.Log.add("contactForm submit");
    	ISQ.Widget.ContactForm.send(a.formElements);
    	ISQ.Widget.ContactForm.close(true);
    	break;
        case ISQ.Forms.clickEventEnum.CANCEL:
    	if(ISQ.Cnf.limited){
    	    break
    	}
    	ISQ.Widget.Log.add("contactForm cancel");
    	if(a.query!==""){
    	    ISQ.Widget.HTML.queryField.value=a.query
    	}
    	ISQ.Widget.ContactForm.canceled=true;
    	ISQ.Widget.ContactForm.close();
    	break;
        case ISQ.Forms.clickEventEnum.ERROR:
    	ISQ.Widget.Log.add("contactForm input error");
    	break
        }
    };

    Если честно, то тут автор даже удивил. Как-то раньше ни разу не пришлось два брейка в одном кейсе делать, все как-то одним обходился.

    wvxvw, 04 Июня 2012

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

    +152

    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
    ISQ.Widget.Query.keyUpHandler=function(c){
        var b=c||window.event;
        if(!ISQ.Widget.userActive){
    	return
        }
        if(typeof(b.keyCode)!="unknown"&&ISQ.Widget.Query.ignoreKeyCodes[b.keyCode]){
    	return false
        }
        if(ISQ.Cnf.limited&&ISQ.Widget.state!==ISQ.Widget.enumState.contactForm){
    	return false
        }
        if(ISQ.Widget.state===ISQ.Widget.enumState.customLink){
    	ISQ.Widget.state=ISQ.Widget.enumState.questions
        }
        ISQ.Widget.Query.clearQuestionTrail();
        var a=_query(false);
        if(ISQ.Widget.Query.lastQueryWritten!=a){
    	ISQ.Widget.Query.analyzeQuery(a)
        }
        return false
    };

    По поводу уверенных программистов (явно задел на будущее, а вдруг добаят).

    wvxvw, 04 Июня 2012

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

    +155

    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
    ISQ.Data.checkString=function(e,f){
        var d=true;
        switch(f){
        case"email":
    	var a=/^[\w-_\&.]+\@([\w-_]+\.[\w-_]+){1,3}$/;
    	var g=new RegExp("[~!#$%^&*()=''\"\\/><?[]{}|]","g");
    	return(e.search(g)===-1)&&(e.match(a))&&(e!=="");
    	break;
        case"number":
    	var b=/^[-]?[0-9]+\.?[0-9]?$/;
    	return b.test(e);
    	break;
        case"username":
    	var c=new RegExp(".+@.+");
    	return(c.test(e));
    	break;
        case"url":
    	var c=new RegExp("^https?://([a-zA-Z0-9]+.){1,}[a-zA-Z0-9]+");
    	return(c.test(e));
    	break
        }
        return d
    }
    
    // Функция универсальной валидации.
    // (Но незадолго до того было еще и)
    
    ISQ.Data.getEmailAddress=function(e){
        var a=/[\w-_\&.]+\@[\w-_]+\.+[\w-_.]+/g;
        var d=e.match(a);
        if(d===null||d.length===0){
    	return null
        }
        var f=new RegExp();
        f.compile("[~!#$%^&*()=`'\"\\/><?[]{}|]","g");
        var b=new Array();
        for(var c=0;c<d.length;++c){
    	if(d[c].search(f)===-1){
    	    b.push(d[c])
    	}
        }
        return b
    }

    Еще одна творческая работа.

    wvxvw, 03 Июня 2012

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

    +158

    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
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    ISQ.Http.detectBroswer=function(){
        var b=navigator.appVersion;
        var f=navigator.userAgent;
        var a=0;
        ISQ.Http.browser={};
        if(navigator.appVersion.indexOf("Android")!==-1){
    	ISQ.Http.browser.app="android";
    	var c=navigator.appVersion.indexOf("Version/")+8;
    	var g=navigator.appVersion.substring(c,navigator.appVersion.indexOf(" ",c));
    	ISQ.Http.browser.version=parseInt(g);
    	ISQ.Http.browser.isMobile=true;
    	ISQ.Http.browser.usesViewport=true;
    	ISQ.Http.browser.isAndroid=true
        }
        else
        {
    	if(navigator.appVersion.indexOf("iPhone")!==-1){
    	    var g=navigator.appVersion.substring(0,navigator.appVersion.indexOf(" "));
    	    ISQ.Http.browser.app="safari";
    	    ISQ.Http.browser.version="iphone "+parseInt(g);
    	    ISQ.Http.browser.isMobile=true;
    	    ISQ.Http.browser.usesViewport=true;
    	    ISQ.Http.browser.isIPhone=true
    	}
    	else
    	{
    	    if(navigator.appVersion.indexOf("iPad")!==-1){
    		var g=navigator.appVersion.substring(0,navigator.appVersion.indexOf(" "));
    		/* identical to iPhone */
    	    }
    	    else
    	    {
    		if((a=b.indexOf("MSIE "))!==-1){
    		    ISQ.Http.browser.app="ie";
    		    a+=5;
    		    /* version check skipped */
    		}
    		else
    		{
    		    if(b.indexOf("Chrome")!==-1){
    			ISQ.Http.browser.app="chrome";
    			ISQ.Http.browser.version="0"
    		    }
    		    else
    		    {
    			if((a=b.indexOf("Safari"))!==-1){
    			    /* version check skipped */
    			}
    			else
    			{
    			    if((a=f.indexOf("Firefox/"))!==-1){
    				ISQ.Http.browser.app="ff";
    				/* version check skipped */
    			    }
    			    else
    			    {
    				if(f.indexOf("Opera/")!==-1){
    				    ISQ.Http.browser.app="opera";
    				    var c=f.indexOf("Version/");
    				    if(c===-1){
    					var d=f.indexOf(" ",6);
    					ISQ.Http.browser.version=f.substring(6,d)
    				    }
    				    else
    				    {
    					/* version check skipped */
    				    }
    				    ISQ.Http.browser.isOpera=true
    				}
    				else
    				{
    				    if(f.contains("Symbian")){
    					ISQ.Http.browser.app="symbian";
    					ISQ.Http.browser.version=1;
    					ISQ.Http.browser.full=ISQ.Http.browser.app+
    					    ISQ.Http.browser.version
    				    }
    				    else
    				    {
    					ISQ.Http.browser.app="ie";
    					ISQ.Http.browser.version="7.0;";
    					ISQ.Http.browser.isIE7=true
    				    }
    				}
    			    }
    			}
    		    }
    		}
    	    }
    	}
        }
        ISQ.Http.browser.full=ISQ.Http.browser.app+ISQ.Http.browser.version;
        f=null;
        b=null
    }

    Неизвестный автор ISQ фреймворка определяет браузер.
    Яваскрипт, Визуал Студио; Частное собрание сочинений.

    wvxvw, 03 Июня 2012

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

    +163

    1. 1
    2. 2
    3. 3
    ISQ.Html.scrollBarWidth=function(){
        return 17
    };

    С одной стороны, конечно, проблематично посчитать, но возможно же...

    wvxvw, 01 Июня 2012

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