1. 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)
  2. 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)
  3. 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)
  4. JavaScript / Говнокод #10515

    +163

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

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

    wvxvw, 01 Июня 2012

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

    +160

    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
    ISQ.Tools.reverseArray=function(a){
        var d=a.length;
        for(var b=0;b<a.length;++b){
    	var e=0;
    	for(var c=1;c<d;++c){
    	    var f=a[e];
    	    a[e]=a[c];
    	    a[c]=f;
    	    ++e
    	}
    	--d
        }
    };

    Все тот же автор... зачем он все это делал - ума не приложу.

    wvxvw, 01 Июня 2012

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

    +161

    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.Tools.RGBtoHex=function(c,b,a){
        return ISQ.Tools.toHex(c)+ISQ.Tools.toHex(b)+ISQ.Tools.toHex(a)
    };
    
    ISQ.Tools.RGBtoHex2=function(a){
        a=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        return "#"+ISQ.Tools.toHex(a[1])+ISQ.Tools.toHex(a[2])+ISQ.Tools.toHex(a[3])
    };
    
    ISQ.Tools.toHex=function(a){
        if(typeof(a)==="string"){
    	a=parseInt(a)
        }
        if(typeof(a)!=="number"||a===0){
    	return "00"
        }
        a=Math.max(0,a);
        a=Math.min(a,255);
        a=Math.round(a);
        return "0123456789ABCDEF".charAt((a-a%16)/16)+"0123456789ABCDEF".charAt(a%16)
    };

    ОК, это последний на сегодня, просто сил нет...

    wvxvw, 31 Мая 2012

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    checkParent: function () {
                var p = this.el.parent().length > 0 ? this.el.parent()[0] : this.el.parent(),
                    tp = this.parent && this.parent.length > 0 ? this.parent[0] : this.parent;
    
                return p !== tp;
            }

    wtf?

    nur, 31 Мая 2012

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

    +157

    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.Tools.getNumber=function(c,a){
        var d=typeof(c);
        if(typeof(c)==="number"){
    	return c
        }
        if(typeof(c)!=="string"){
    	c=c.toString()
        }
        var b;
        if(c.contains(".")){
    	b=parseFloat(c)
        }
        else
        {
    	b=parseInt(c)
        }
        if(isNaN(b)){
    	return typeof(a)==="number"?a:NaN
        }
        return b
    };

    Того же автора, что и предыдущий пост:
    Борьба идиота и динамической типизации, где в итоге динамическая типизация все же побеждает, но какой ценой...

    wvxvw, 31 Мая 2012

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

    +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
    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
    String.prototype.startsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        for(var a=0;a<b.length;++a){
    	if(this.charAt(a)!==b.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.endsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        var c=b.length-1;
        for(var a=this.length-1;a>this.length-1-b.length;--a){
    	if(b.charAt(c--)!==this.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.contains=function(a){
        return this.indexOf(a)!==-1
    };
    
    String.prototype.LastIndexOf=function(d,c){
        if(this.length===0||d===null){
    	return -1
        }
        if(d.length>this.length){
    	return -1
        }
        if(isNaN(c)){
    	c=this.length-d.length
        }
        var a=false;
        for(var b=c;b>=0;--b){
    	a=true;
    	for(var e=0;e<d.length;++e){
    	    if(this.charAt(b+e)!==d.charAt(e)){
    		a=false;
    		break
    	    }
    	}
    	if(a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.LastIndexOf_char=function(a){
        for(var b=this.length-1;b>=0;--b){
    	if(this.charAt(b)===a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.setCharAt=function(b,a){
        if(b>this.length-1){
    	return str
        }
        return this.substr(0,b)+a+this.substr(b+1)
    };
    
    String.prototype.countCharAppearances=function(a){
        var b=0;
        for(var c=0;c<this.length;++c){
    	if(this.charAt(c)==a){
    	    ++b
    	}
        }
        return b
    };

    Сорри, что много буков, но тут каждую функцию можно воспринимать как отдельное произведение.
    Разбираю бред какого-то безымянного идиота :(

    wvxvw, 31 Мая 2012

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

    +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
    var nav = document.getElementById('navigation');
    
    var properties = {
    	'display' : 'block',
    	'position' : 'fixed',
    	'top' : '5px',
    	'backgroundColor' : '#F2F0E3',
    	'opacity' : '.6',
            ........
            //Много всяких свойств
            ........
    	'border' : '2px solid #DDDDDD',
    	'borderRadius' : '1em',
    	'padding' : '5px',
    	'zIndex' : '1'
    }
    
    for (var i in properties) {
    	nav.style[i] = properties[i];
    }

    Послать бы автора на три буквы: CSS

    vistefan, 30 Мая 2012

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