src/cm/media/js/lib/yui/yui3.0.0/build/compat/compat-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('compat', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
var COMPAT_ARG = '~yui|2|compat~';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
if (window.YAHOO != YUI) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
    // get any existing YAHOO obj props
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
    var o = (window.YAHOO) ? YUI.merge(window.YAHOO) : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
    // Make the YUI global the YAHOO global
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
    window.YAHOO = YUI;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
    // augment old YAHOO props
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
    if (o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
        Y.mix(Y, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
// add old namespaces
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
Y.namespace("util", "widget", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
// case/location change
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
Y.env = (Y.env) ? Y.mix(Y.env, Y.Env) : Y.Env;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
Y.lang = (Y.lang) ? Y.mix(Y.lang, Y.Lang) : Y.Lang;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
Y.env.ua = Y.UA; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
// support Y.register
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
Y.mix(Y.env, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        modules: [],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
        listeners: [],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        getVersion: function(name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
            return this.Env.modules[name] || null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
var L = Y.lang;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
// add old lang properties 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
Y.mix(L, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
    augmentObject: function(r, s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
        var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
        return Y.mix(r, s, (wl), wl);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    augmentProto: function(r, s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
        var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
        return Y.mix(r, s, (wl), wl, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    // extend: Y.bind(Y.extend, Y), 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    extend: Y.extend,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    // merge: Y.bind(Y.merge, Y)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
    merge: Y.merge
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
}, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
L.augment = L.augmentProto;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
L.hasOwnProperty = function(o, k) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
    return (o.hasOwnProperty(k));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
Y.augmentProto = L.augmentProto;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
// add register function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
Y.mix(Y, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
    register: function(name, mainClass, data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
        var mods = Y.Env.modules;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
        if (!mods[name]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
            mods[name] = { versions:[], builds:[] };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        var m=mods[name],v=data.version,b=data.build,ls=Y.Env.listeners;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
        m.name = name;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        m.version = v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        m.build = b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
        m.versions.push(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
        m.builds.push(b);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
        m.mainClass = mainClass;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
        // fire the module load listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
        for (var i=0;i<ls.length;i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
            ls[i](m);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
        // label the main class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
        if (mainClass) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
            mainClass.VERSION = v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
            mainClass.BUILD = b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
            Y.log("mainClass is undefined for module " + name, "warn");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
// add old load listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
if ("undefined" !== typeof YAHOO_config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    var l=YAHOO_config.listener,ls=Y.Env.listeners,unique=true,i;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
    if (l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        // if YAHOO is loaded multiple times we need to check to see if
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
        // this is a new config object.  If it is, add the new component
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
        // load listener to the stack
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
        for (i=0;i<ls.length;i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
            if (ls[i]==l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
                unique=false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
                break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
        if (unique) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
            ls.push(l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
// add old registration for yahoo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
Y.register("yahoo", Y, {version: "3.0.0", build: "1549"});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
if (Y.Event) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
    var o = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
         * Safari detection
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
         * @property isSafari
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
         * @deprecated use Y.Env.UA.webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
        isSafari: Y.UA.webkit,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
         * webkit version
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
         * @property webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
         * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
         * @deprecated use Y.Env.UA.webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
        webkit: Y.UA.webkit,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
         * Normalized keycodes for webkit/safari
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
         * @property webkitKeymap
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
         * @type {int: int}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
         * @final
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
        webkitKeymap: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
            63232: 38, // up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
            63233: 40, // down
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            63234: 37, // left
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            63235: 39, // right
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            63276: 33, // page up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
            63277: 34, // page down
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
            25: 9      // SHIFT-TAB (Safari provides a different key code in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
                       // this case, even though the shiftKey modifier is set)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
         * IE detection 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
         * @property isIE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
         * @deprecated use Y.Env.UA.ie
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        isIE: Y.UA.ie,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
         * Returns scrollLeft
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
         * @method _getScrollLeft
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
        _getScrollLeft: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
            return this._getScroll()[1];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
         * Returns scrollTop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
         * @method _getScrollTop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
        _getScrollTop: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
            return this._getScroll()[0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
         * Returns the scrollTop and scrollLeft.  Used to calculate the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
         * pageX and pageY in Internet Explorer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
         * @method _getScroll
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
        _getScroll: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
            var d = Y.config.doc, dd = d.documentElement, db = d.body;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
            if (dd && (dd.scrollTop || dd.scrollLeft)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
                return [dd.scrollTop, dd.scrollLeft];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
            } else if (db) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
                return [db.scrollTop, db.scrollLeft];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
                return [0, 0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
         * Returns the event's pageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
         * @method getPageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
         * @return {int} the event's pageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
        getPageX: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            var x = ev.pageX;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
            if (!x && 0 !== x) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
                x = ev.clientX || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                if ( Y.UA.ie ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                    x += this._getScrollLeft();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
            return x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
         * Returns the charcode for an event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
         * @method getCharCode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
         * @return {int} the event's charCode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
        getCharCode: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
            var code = ev.keyCode || ev.charCode || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            // webkit normalization
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            if (Y.UA.webkit && (code in Y.Event.webkitKeymap)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
                code = Y.Event.webkitKeymap[code];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
            return code;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
         * Returns the event's pageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
         * @method getPageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
         * @return {int} the event's pageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
        getPageY: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
            var y = ev.pageY;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
            if (!y && 0 !== y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
                y = ev.clientY || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                if ( Y.UA.ie ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
                    y += this._getScrollTop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
            return y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
         * Returns the pageX and pageY properties as an indexed array.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
         * @method getXY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
         * @return {[x, y]} the pageX and pageY properties of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        getXY: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
            return [this.getPageX(ev), this.getPageY(ev)];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
         * Returns the event's related target 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
         * @method getRelatedTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
         * @return {HTMLElement} the event's relatedTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
        getRelatedTarget: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
            var t = ev.relatedTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
            if (!t) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
                if (ev.type == "mouseout") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
                    t = ev.toElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
                } else if (ev.type == "mouseover") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
                    t = ev.fromElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
            return this.resolveTextNode(t);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
         * Returns the time of the event.  If the time is not included, the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
         * event is modified using the current time.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
         * @method getTime
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
         * @return {Date} the time of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
        getTime: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
            if (!ev.time) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
                var t = new Date().getTime();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
                try {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
                    ev.time = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
                } catch(ex) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
                    this.lastError = ex;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
                    return t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
            return ev.time;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
         * Convenience method for stopPropagation + preventDefault
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
         * @method stopEvent
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
        stopEvent: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
            this.stopPropagation(ev);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
            this.preventDefault(ev);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
         * Stops event propagation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
         * @method stopPropagation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        stopPropagation: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
            if (ev.stopPropagation) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
                ev.stopPropagation();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
                ev.cancelBubble = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
         * Prevents the default behavior of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
         * @method preventDefault
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
        preventDefault: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
            if (ev.preventDefault) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
                ev.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
                ev.returnValue = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
         * Returns the event's target element.  Safari sometimes provides
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
         * a text node, and this is automatically resolved to the text
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
         * node's parent so that it behaves like other browsers.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
         * @method getTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
         * @param {boolean} resolveTextNode when set to true the target's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
         *                  parent will be returned if the target is a 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
         *                  text node.  @deprecated, the text node is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
         *                  now resolved automatically
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
         * @return {HTMLElement} the event's target
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
        getTarget: function(ev, resolveTextNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
            var t = ev.target || ev.srcElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
            return this.resolveTextNode(t);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
         * In some cases, some browsers will return a text node inside
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
         * the actual element that was targeted.  This normalizes the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
         * return value for getTarget and getRelatedTarget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
         * @method resolveTextNode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
         * @param {HTMLElement} node node to resolve
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
         * @return {HTMLElement} the normized node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
        resolveTextNode: function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
            if (node && 3 == node.nodeType) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
                return node.parentNode;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
                return node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
         * We cache elements bound by id because when the unload event 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
         * fires, we can no longer use document.getElementById
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
         * @method getEl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
         * @deprecated Elements are not cached any longer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
        getEl: function(id) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
            return Y.get(id);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
    Y.mix(Y.Event, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
     * Calls Y.Event.attach with the correct argument order
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
     * @method removeListener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
    Y.Event.removeListener = function(el, type, fn, data, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
        var context, a=[type, fn, el];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
        if (data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
            if (override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
                context = (override === true) ? data : override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
            a.push(context);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
            a.push(data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
        a.push(COMPAT_ARG);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
        return Y.Event.detach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
     * Calls Y.Event.detach with the correct argument order
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
     * @method addListener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
    Y.Event.addListener = function(el, type, fn, data, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        // Y.log('addListener:');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
        // Y.log(Y.Array(arguments, 0, true), 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
        // var a = Y.Array(arguments, 0, true), el = a.shift();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
        // a.splice(2, 0, el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
        // return Y.Event.attach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
        var context, a=[type, fn, el];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
        if (data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
            if (override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
                context = (override === true) ? data : override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
            a.push(context);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
            a.push(data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
        a.push(COMPAT_ARG);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
        return Y.Event.attach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
    Y.Event.on = Y.Event.addListener;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
    var newOnavail = Y.Event.onAvailable;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
    Y.Event.onAvailable = function(id, fn, p_obj, p_override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
        return newOnavail(id, fn, p_obj, p_override, false, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
    Y.Event.onContentReady = function(id, fn, p_obj, p_override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
        return newOnavail(id, fn, p_obj, p_override, true, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
    Y.Event.onDOMReady = function(fn) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
        var a = Y.Array(arguments, 0, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
        a.unshift('event:ready');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
        return Y.on.apply(Y, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
    Y.util.Event = Y.Event;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
    var CE = function(type, oScope, silent, signature) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
        //debugger;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
        var o = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
            context: oScope,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
            silent: silent || false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
            // signature: signature || CE.LIST
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
        CE.superclass.constructor.call(this, type, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
        this.signature = signature || CE.LIST;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
    Y.extend(CE, Y.CustomEvent, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
     * Subscriber listener sigature constant.  The LIST type returns three
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
     * parameters: the event type, the array of args passed to fire, and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
     * the optional custom object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
     * @property YAHOO.util.CustomEvent.LIST
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
     * @type int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
    CE.LIST = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
     * Subscriber listener sigature constant.  The FLAT type returns two
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
     * parameters: the first argument passed to fire and the optional 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
     * custom object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
     * @property YAHOO.util.CustomEvent.FLAT
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
     * @type int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
    CE.FLAT = 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
    Y.util.CustomEvent = CE;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
    var EP = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
        //console.log('Compat CustomEvent constructor executed: ' + this._yuid);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
        if (!this._yuievt) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
            var sub = this.subscribe;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
            Y.EventTarget.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
            this.subscribe = sub;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
            this.__yuiepinit = function() {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
    Y.extend(EP, Y.EventTarget, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
        createEvent: function(type, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
            o = o || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
            o.signature = o.signature || CE.FLAT;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
            return this.publish(type, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
        subscribe: function(type, fn, obj, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
            var ce = this._yuievt.events[type] || this.createEvent(type),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
                a = Y.Array(arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
            if (override && true !== override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
                // a[2] = override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
                // a[1] = obj;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
            Y.EventTarget.prototype.subscribe.apply(this, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
        fireEvent: function(type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
            return this.fire.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
        hasEvent: function(type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
            return this.getEvent(type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
    Y.util.EventProvider = EP;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
Y.register("event", Y, {version: "3.0.0", build: "1549"});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
var propertyCache = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
var patterns = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
    HYPHEN: /(-[a-z])/i, // to normalize get/setStyle
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
    ROOT_TAG: /^body|html$/i, // body for quirks mode, html for standards,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
    OP_SCROLL:/^(?:inline|table-row)$/i
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
var hyphenToCamel = function(property) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
    if ( !patterns.HYPHEN.test(property) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
        return property; // no hyphens
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
    if (propertyCache[property]) { // already converted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
        return propertyCache[property];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
    var converted = property;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
    while( patterns.HYPHEN.exec(converted) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
        converted = converted.replace(RegExp.$1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
                RegExp.$1.substr(1).toUpperCase());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
    propertyCache[property] = converted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
    return converted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
    //return property.replace(/-([a-z])/gi, function(m0, m1) {return m1.toUpperCase()}) // cant use function as 2nd arg yet due to safari bug
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
var Dom = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
    get: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
        if (el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
            if (el.nodeType || el.item) { // Node, or NodeList
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
                return el;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
            if (typeof el === 'string') { // id
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
                return document.getElementById(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
            if ('length' in el) { // array-like 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
                var c = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
                for (var i = 0, len = el.length; i < len; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
                    c[c.length] = Dom.get(el[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
                return c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
            return el; // some other object, just pass it back
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
        return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
    isAncestor: function(haystack, needle) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
        return YUI.DOM.contains(Dom.get(haystack), Dom.get(needle));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
    inDocument: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
        return Dom.isAncestor(Y.config.doc.documentElement, el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
    batch: function(el, method, o, override, args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
        el = (el && (el.tagName || el.item)) ? el : Dom.get(el); // skip get() when possible 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
        if (!el || !method) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
            return false; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
        }  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
        if (args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
            args = Y.Array(args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
        var scope = (override) ? o : window; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
         
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
        var apply = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
            if (args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
                var tmp = slice.call(args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
                tmp.unshift(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
                return method.apply(scope, tmp);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
                return method.call(scope, el, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
        if (el.tagName || el.length === undefined) { // element or not array-like  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
            return apply(el); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
        }  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
        var collection = []; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
         
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
        for (var i = 0, len = el.length; i < len; ++i) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
            collection[collection.length] = apply(el[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
        } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
        return collection;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
    // 2.x returns false if already present
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
    _addClass: function(el, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
        if ( YUI.DOM.hasClass(el, className) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
        YUI.DOM.addClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
    // 2.x returns false if not present
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
    _removeClass: function(el, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
        if ( !YUI.DOM.hasClass(el, className) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
        YUI.DOM.removeClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
    // 2.x returns false if no newClass or same as oldClass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
    _replaceClass: function(el, oldClass, newClass) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
        if (!newClass || oldClass === newClass) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
        YUI.DOM.replaceClass(el, oldClass, newClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
    getElementsByClassName: function(className, tag, root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
        tag = tag || '*';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
        root = (root) ? Dom.get(root) : Y.config.doc; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
        var nodes = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
        if (root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
            nodes = Y.Selector.query(tag + '.' + className, root);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
        return nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
    getElementsBy: function(method, tag, root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
        tag = tag || '*';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
        root = (root) ? Dom.get(root) : null || document;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
        var nodes = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
        if (root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
            nodes = YUI.DOM.byTag(tag, root, method);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
        return nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
    getViewportWidth: YUI.DOM.winWidth,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
    getViewportHeight: YUI.DOM.winHeight,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
    getDocumentWidth: YUI.DOM.docWidth,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
    getDocumentHeight: YUI.DOM.docHeight,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
    getDocumentScrollTop: YUI.DOM.docScrollY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
    getDocumentScrollLeft: YUI.DOM.docScrollX,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
    getDocumentHeight: YUI.DOM.docHeight,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
    _guid: function(el, prefix) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
        prefix = prefix || 'yui-gen';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
        Dom._id_counter = Dom._id_counter || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
        if (el && el.id) { // do not override existing ID
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
            return el.id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
        } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
        var id = prefix + Dom._id_counter++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
        if (el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
            el.id = id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
        return id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
    _region: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
        if ( (el.parentNode === null || el.offsetParent === null ||
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
                YUI.DOM.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
        return YUI.DOM.region(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
    _ancestorByClass: function(element, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
        return YUI.DOM.ancestor(element, function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
            return YUI.DOM.hasClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
    _ancestorByTag: function(element, tag) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
        tag = tag.toUpperCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
        return YUI.DOM.ancestor(element, function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
            return el.tagName.toUpperCase() === tag;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
var slice = [].slice;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
var wrap = function(fn, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
    Dom[name] = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
        var args = slice.call(arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
        args[0] = Dom.get(args[0]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
        return fn.apply(Dom, args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
var wrapped = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
    getAncestorBy: YUI.DOM.ancestor,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
    getAncestorByClassName: Dom._ancestorByClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
    getAncestorByTagName: Dom._ancestorByTag,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
    getPreviousSiblingBy: YUI.DOM.previous,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
    getPreviousSibling: YUI.DOM.previous,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
    getNextSiblingBy: YUI.DOM.next,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
    getNextSibling: YUI.DOM.next,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
    getFirstChildBy: YUI.DOM.firstChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
    getFirstChild: YUI.DOM.firstChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
    getLastChildBy: YUI.DOM.lastChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
    getLastChild: YUI.DOM.lastChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
    getChildrenBy: YUI.DOM.children,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
    getChildren: YUI.DOM.children,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
    insertBefore: function(newNode, refNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
        YUI.DOM.insertBefore(Dom.get(newNode), Dom.get(refNode));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
    insertAfter: function(newNode, refNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
        YUI.DOM.insertAfter(Dom.get(newNode), Dom.get(refNode));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
Y.each(wrapped, wrap);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
var batched = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
    getStyle: YUI.DOM.getStyle,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
    setStyle: YUI.DOM.setStyle,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
    getXY: YUI.DOM.getXY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
    setXY: YUI.DOM.setXY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
    getX: YUI.DOM.getX,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
    getY: YUI.DOM.getY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
    setX: YUI.DOM.setX, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
    setY: YUI.DOM.setY, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
    getRegion: Dom._region,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
    hasClass: YUI.DOM.hasClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
    addClass: Dom._addClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
    removeClass: Dom._removeClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
    replaceClass: Dom._replaceClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
    generateId: Dom._guid
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
Y.each(batched, function(v, n) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
    Dom[n] = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
        var args = slice.call(arguments, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
        return Dom.batch(el, v, null, null, args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
Y.util.Dom = Dom;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
YAHOO.util.Region = function(t, r, b, l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
    this.top = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
    this[1] = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
    this.right = r;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
    this.bottom = b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
    this.left = l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
    this[0] = l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
YAHOO.util.Region.prototype.contains = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
    return ( region.left   >= this.left   && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
             region.right  <= this.right  && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
             region.top    >= this.top    && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
             region.bottom <= this.bottom    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
    // this.logger.debug("does " + this + " contain " + region + " ... " + ret);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   844
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   845
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   846
YAHOO.util.Region.prototype.getArea = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
    return ( (this.bottom - this.top) * (this.right - this.left) );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
YAHOO.util.Region.prototype.intersect = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
    var t = Math.max( this.top,    region.top    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
    var r = Math.min( this.right,  region.right  );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
    var b = Math.min( this.bottom, region.bottom );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
    var l = Math.max( this.left,   region.left   );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
    if (b >= t && r >= l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
        return new YAHOO.util.Region(t, r, b, l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
        return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
YAHOO.util.Region.prototype.union = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
    var t = Math.min( this.top,    region.top    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
    var r = Math.max( this.right,  region.right  );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
    var b = Math.max( this.bottom, region.bottom );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
    var l = Math.min( this.left,   region.left   );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
    return new YAHOO.util.Region(t, r, b, l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
YAHOO.util.Region.prototype.toString = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
    return ( "Region {"    +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
             "top: "       + this.top    + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
             ", right: "   + this.right  + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
             ", bottom: "  + this.bottom + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
             ", left: "    + this.left   + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
             "}" );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   879
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   880
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   881
YAHOO.util.Region.getRegion = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
    return YUI.DOM.region(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
YAHOO.util.Point = function(x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
   if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
      y = x[1]; // dont blow away x yet
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
      x = x[0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   889
   }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   890
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   891
    this.x = this.right = this.left = this[0] = x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
    this.y = this.top = this.bottom = this[1] = y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   893
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   894
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   895
YAHOO.util.Point.prototype = new YAHOO.util.Region();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   897
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   898
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   899
}, '3.0.0' ,{requires:['dom','event']});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   900
YUI._setup(); YUI.use('dom', 'event', 'compat');