]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/include/javascript/yui3/build/arraysort/arraysort.js
Release 6.5.0
[Github/sugarcrm.git] / jssource / src_files / include / javascript / yui3 / build / arraysort / arraysort.js
1 /*
2 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3 Code licensed under the BSD License:
4 http://developer.yahoo.com/yui/license.html
5 version: 3.3.0
6 build: 3167
7 */
8 YUI.add('arraysort', function(Y) {
9
10 var LANG = Y.Lang,
11     ISVALUE = LANG.isValue,
12     ISSTRING = LANG.isString;
13
14 Y.ArraySort = {
15     /**
16      * Comparator function for simple case-insensitive string sorting.
17      *
18      * @method compare
19      * @param a {Object} First sort argument.
20      * @param b {Object} Second sort argument.
21      * @param desc {Boolean} True if sort direction is descending, false if
22      * sort direction is ascending.
23      * @return {Boolean} Return -1 when a < b. Return 0 when a = b.
24      * Return 1 when a > b.
25      */
26     compare: function(a, b, desc) {
27         if(!ISVALUE(a)) {
28             if(!ISVALUE(b)) {
29                 return 0;
30             }
31             else {
32                 return 1;
33             }
34         }
35         else if(!ISVALUE(b)) {
36             return -1;
37         }
38
39         if(ISSTRING(a)) {
40             a = a.toLowerCase();
41         }
42         if(ISSTRING(b)) {
43             b = b.toLowerCase();
44         }
45         if(a < b) {
46             return (desc) ? 1 : -1;
47         }
48         else if (a > b) {
49             return (desc) ? -1 : 1;
50         }
51         else {
52             return 0;
53         }
54     }
55 };
56
57
58
59 }, '3.3.0' ,{requires:['yui-base']});