src/cm/media/js/lib/yui/yui3.0.0/build/compat/compat.js
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
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
        }
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
// add old load listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
if ("undefined" !== typeof YAHOO_config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
    var l=YAHOO_config.listener,ls=Y.Env.listeners,unique=true,i;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    if (l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
        // if YAHOO is loaded multiple times we need to check to see if
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        // this is a new config object.  If it is, add the new component
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
        // load listener to the stack
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
        for (i=0;i<ls.length;i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
            if (ls[i]==l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
                unique=false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
                break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
        if (unique) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
            ls.push(l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
        }
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
// add old registration for yahoo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
Y.register("yahoo", Y, {version: "3.0.0", build: "1549"});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
if (Y.Event) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
    var o = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
         * Safari detection
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
         * @property isSafari
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
         * @deprecated use Y.Env.UA.webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
        isSafari: Y.UA.webkit,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
         * webkit version
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
         * @property webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
         * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
         * @deprecated use Y.Env.UA.webkit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        webkit: Y.UA.webkit,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
         * Normalized keycodes for webkit/safari
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
         * @property webkitKeymap
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
         * @type {int: int}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
         * @final
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
        webkitKeymap: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
            63232: 38, // up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
            63233: 40, // down
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
            63234: 37, // left
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            63235: 39, // right
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            63276: 33, // page up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            63277: 34, // page down
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
            25: 9      // SHIFT-TAB (Safari provides a different key code in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
                       // this case, even though the shiftKey modifier is set)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        },
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
         * IE detection 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
         * @property isIE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
         * @deprecated use Y.Env.UA.ie
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
        isIE: Y.UA.ie,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
         * Returns scrollLeft
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
         * @method _getScrollLeft
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
        _getScrollLeft: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
            return this._getScroll()[1];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
        },
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
         * Returns scrollTop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
         * @method _getScrollTop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
        _getScrollTop: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
            return this._getScroll()[0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
        },
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
         * Returns the scrollTop and scrollLeft.  Used to calculate the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
         * pageX and pageY in Internet Explorer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
         * @method _getScroll
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        _getScroll: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
            var d = Y.config.doc, dd = d.documentElement, db = d.body;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
            if (dd && (dd.scrollTop || dd.scrollLeft)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
                return [dd.scrollTop, dd.scrollLeft];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
            } else if (db) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
                return [db.scrollTop, db.scrollLeft];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
                return [0, 0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
            }
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
         * Returns the event's pageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
         * @method getPageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
         * @return {int} the event's pageX
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        getPageX: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
            var x = ev.pageX;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            if (!x && 0 !== x) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
                x = ev.clientX || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
                if ( Y.UA.ie ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                    x += this._getScrollLeft();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                }
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
            return x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
        },
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
         * Returns the charcode for an event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
         * @method getCharCode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
         * @return {int} the event's charCode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
        getCharCode: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
            var code = ev.keyCode || ev.charCode || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
            // webkit normalization
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            if (Y.UA.webkit && (code in Y.Event.webkitKeymap)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
                code = Y.Event.webkitKeymap[code];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            return code;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
        },
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
         * Returns the event's pageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
         * @method getPageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
         * @return {int} the event's pageY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        getPageY: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
            var y = ev.pageY;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
            if (!y && 0 !== y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
                y = ev.clientY || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
                if ( Y.UA.ie ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                    y += this._getScrollTop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
                }
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
            return y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
        },
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
         * Returns the pageX and pageY properties as an indexed array.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
         * @method getXY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
         * @return {[x, y]} the pageX and pageY properties of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
        getXY: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
            return [this.getPageX(ev), this.getPageY(ev)];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
        },
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
         * Returns the event's related target 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
         * @method getRelatedTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
         * @return {HTMLElement} the event's relatedTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
        getRelatedTarget: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
            var t = ev.relatedTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
            if (!t) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
                if (ev.type == "mouseout") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
                    t = ev.toElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
                } else if (ev.type == "mouseover") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
                    t = ev.fromElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
                }
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
            return this.resolveTextNode(t);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
        },
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
         * Returns the time of the event.  If the time is not included, the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
         * event is modified using the current time.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
         * @method getTime
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
         * @return {Date} the time of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
        getTime: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
            if (!ev.time) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
                var t = new Date().getTime();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
                try {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
                    ev.time = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
                } catch(ex) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
                    this.lastError = ex;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
                    return t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
                }
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
            return ev.time;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
        },
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
         * Convenience method for stopPropagation + preventDefault
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
         * @method stopEvent
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
        stopEvent: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
            this.stopPropagation(ev);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
            this.preventDefault(ev);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
        },
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
         * Stops event propagation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
         * @method stopPropagation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
        stopPropagation: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
            if (ev.stopPropagation) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
                ev.stopPropagation();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
                ev.cancelBubble = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
            }
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
         * Prevents the default behavior of the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
         * @method preventDefault
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
        preventDefault: function(ev) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
            if (ev.preventDefault) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
                ev.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
                ev.returnValue = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
            }
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
         * Returns the event's target element.  Safari sometimes provides
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
         * a text node, and this is automatically resolved to the text
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
         * node's parent so that it behaves like other browsers.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
         * @method getTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
         * @param {Event} ev the event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
         * @param {boolean} resolveTextNode when set to true the target's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
         *                  parent will be returned if the target is a 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
         *                  text node.  @deprecated, the text node is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
         *                  now resolved automatically
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
         * @return {HTMLElement} the event's target
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
        getTarget: function(ev, resolveTextNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
            var t = ev.target || ev.srcElement;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
            return this.resolveTextNode(t);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        },
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
         * In some cases, some browsers will return a text node inside
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
         * the actual element that was targeted.  This normalizes the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
         * return value for getTarget and getRelatedTarget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
         * @method resolveTextNode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
         * @param {HTMLElement} node node to resolve
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
         * @return {HTMLElement} the normized node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
        resolveTextNode: function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
            if (node && 3 == node.nodeType) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
                return node.parentNode;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
                return node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
            }
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
         * We cache elements bound by id because when the unload event 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
         * fires, we can no longer use document.getElementById
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
         * @method getEl
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
         * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
         * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
         * @deprecated Elements are not cached any longer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
        getEl: function(id) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
            return Y.get(id);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
        }
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
    Y.mix(Y.Event, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
     * Calls Y.Event.attach with the correct argument order
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
     * @method removeListener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
    Y.Event.removeListener = function(el, type, fn, data, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
        var context, a=[type, fn, el];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        if (data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
            if (override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
                context = (override === true) ? data : override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
            a.push(context);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
            a.push(data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
        a.push(COMPAT_ARG);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
        return Y.Event.detach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
    };
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
     * Calls Y.Event.detach with the correct argument order
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
     * @method addListener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
    Y.Event.addListener = function(el, type, fn, data, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        // var a = Y.Array(arguments, 0, true), el = a.shift();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
        // a.splice(2, 0, el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
        // return Y.Event.attach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
        var context, a=[type, fn, el];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
        if (data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
            if (override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
                context = (override === true) ? data : override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
            a.push(context);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
            a.push(data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
        a.push(COMPAT_ARG);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
        return Y.Event.attach.apply(Y.Event, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
    Y.Event.on = Y.Event.addListener;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
    var newOnavail = Y.Event.onAvailable;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
    Y.Event.onAvailable = function(id, fn, p_obj, p_override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
        return newOnavail(id, fn, p_obj, p_override, false, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
    Y.Event.onContentReady = function(id, fn, p_obj, p_override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
        return newOnavail(id, fn, p_obj, p_override, true, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
    Y.Event.onDOMReady = function(fn) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
        var a = Y.Array(arguments, 0, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
        a.unshift('event:ready');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
        return Y.on.apply(Y, a);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
    Y.util.Event = Y.Event;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
    var CE = function(type, oScope, silent, signature) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
        //debugger;
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 o = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
            context: oScope,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
            silent: silent || false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
            // signature: signature || CE.LIST
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
        CE.superclass.constructor.call(this, type, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
        this.signature = signature || CE.LIST;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
    Y.extend(CE, Y.CustomEvent, {
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
     * Subscriber listener sigature constant.  The LIST type returns three
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
     * parameters: the event type, the array of args passed to fire, and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
     * the optional custom object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
     * @property YAHOO.util.CustomEvent.LIST
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
     * @type int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
    CE.LIST = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
     * Subscriber listener sigature constant.  The FLAT type returns two
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
     * parameters: the first argument passed to fire and the optional 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
     * custom object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
     * @property YAHOO.util.CustomEvent.FLAT
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
     * @type int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
    CE.FLAT = 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
    Y.util.CustomEvent = CE;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
    var EP = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
        //console.log('Compat CustomEvent constructor executed: ' + this._yuid);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
        if (!this._yuievt) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
            var sub = this.subscribe;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
            Y.EventTarget.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
            this.subscribe = sub;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
            this.__yuiepinit = function() {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
    Y.extend(EP, Y.EventTarget, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
        createEvent: function(type, o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
            o = o || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
            o.signature = o.signature || CE.FLAT;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
            return this.publish(type, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
        subscribe: function(type, fn, obj, override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
            var ce = this._yuievt.events[type] || this.createEvent(type),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
                a = Y.Array(arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
            if (override && true !== override) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
                // a[2] = override;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
                // a[1] = obj;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
            Y.EventTarget.prototype.subscribe.apply(this, a);
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
        fireEvent: function(type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
            return this.fire.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
        hasEvent: function(type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
            return this.getEvent(type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
    Y.util.EventProvider = EP;
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
Y.register("event", Y, {version: "3.0.0", build: "1549"});
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
var propertyCache = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
var patterns = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
    HYPHEN: /(-[a-z])/i, // to normalize get/setStyle
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
    ROOT_TAG: /^body|html$/i, // body for quirks mode, html for standards,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
    OP_SCROLL:/^(?:inline|table-row)$/i
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
var hyphenToCamel = function(property) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
    if ( !patterns.HYPHEN.test(property) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
        return property; // no hyphens
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
    if (propertyCache[property]) { // already converted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
        return propertyCache[property];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
    var converted = 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
    while( patterns.HYPHEN.exec(converted) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
        converted = converted.replace(RegExp.$1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
                RegExp.$1.substr(1).toUpperCase());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
    propertyCache[property] = converted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
    return converted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
    //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
   595
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
var Dom = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
    get: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
        if (el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
            if (el.nodeType || el.item) { // Node, or NodeList
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
                return el;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
            if (typeof el === 'string') { // id
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
                return document.getElementById(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
            if ('length' in el) { // array-like 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
                var c = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
                for (var i = 0, len = el.length; i < len; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
                    c[c.length] = Dom.get(el[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
                return c;
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 el; // some other object, just pass it back
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 null;
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
    isAncestor: function(haystack, needle) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
        return YUI.DOM.contains(Dom.get(haystack), Dom.get(needle));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
    inDocument: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
        return Dom.isAncestor(Y.config.doc.documentElement, el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
    batch: function(el, method, o, override, args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
        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
   633
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
        if (!el || !method) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
            return false; 
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 (args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
            args = Y.Array(args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
        var scope = (override) ? o : window; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
         
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
        var apply = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
            if (args) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
                var tmp = slice.call(args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
                tmp.unshift(el);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
                return method.apply(scope, tmp);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
                return method.call(scope, el, o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
        if (el.tagName || el.length === undefined) { // element or not array-like  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
            return apply(el); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
        }  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
        var collection = []; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
         
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
        for (var i = 0, len = el.length; i < len; ++i) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
            collection[collection.length] = apply(el[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
        } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
        return collection;
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
    // 2.x returns false if already present
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
    _addClass: function(el, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
        if ( YUI.DOM.hasClass(el, className) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
        YUI.DOM.addClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
    // 2.x returns false if not present
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
    _removeClass: function(el, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
        if ( !YUI.DOM.hasClass(el, className) ) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
        YUI.DOM.removeClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
    // 2.x returns false if no newClass or same as oldClass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
    _replaceClass: function(el, oldClass, newClass) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
        if (!newClass || oldClass === newClass) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
        YUI.DOM.replaceClass(el, oldClass, newClass);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
    getElementsByClassName: function(className, tag, root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
        tag = tag || '*';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
        root = (root) ? Dom.get(root) : Y.config.doc; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
        var nodes = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
        if (root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
            nodes = Y.Selector.query(tag + '.' + className, root);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
        return nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
    getElementsBy: function(method, tag, root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
        tag = tag || '*';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
        root = (root) ? Dom.get(root) : null || document;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
        var nodes = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
        if (root) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
            nodes = YUI.DOM.byTag(tag, root, method);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
        return nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
    getViewportWidth: YUI.DOM.winWidth,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
    getViewportHeight: YUI.DOM.winHeight,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
    getDocumentWidth: YUI.DOM.docWidth,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
    getDocumentHeight: YUI.DOM.docHeight,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
    getDocumentScrollTop: YUI.DOM.docScrollY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
    getDocumentScrollLeft: YUI.DOM.docScrollX,
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
    _guid: function(el, prefix) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
        prefix = prefix || 'yui-gen';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
        Dom._id_counter = Dom._id_counter || 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
        if (el && el.id) { // do not override existing ID
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
            return el.id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
        } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
        var id = prefix + Dom._id_counter++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
        if (el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
            el.id = id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
        return 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
    _region: function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
        if ( (el.parentNode === null || el.offsetParent === null ||
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
                YUI.DOM.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
        return YUI.DOM.region(el);
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
    _ancestorByClass: function(element, className) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
        return YUI.DOM.ancestor(element, function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
            return YUI.DOM.hasClass(el, className);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
    _ancestorByTag: function(element, tag) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
        tag = tag.toUpperCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
        return YUI.DOM.ancestor(element, function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
            return el.tagName.toUpperCase() === tag;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
var slice = [].slice;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
var wrap = function(fn, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
    Dom[name] = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
        var args = slice.call(arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
        args[0] = Dom.get(args[0]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
        return fn.apply(Dom, args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
var wrapped = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
    getAncestorBy: YUI.DOM.ancestor,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
    getAncestorByClassName: Dom._ancestorByClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
    getAncestorByTagName: Dom._ancestorByTag,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
    getPreviousSiblingBy: YUI.DOM.previous,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
    getPreviousSibling: YUI.DOM.previous,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
    getNextSiblingBy: YUI.DOM.next,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
    getNextSibling: YUI.DOM.next,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
    getFirstChildBy: YUI.DOM.firstChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
    getFirstChild: YUI.DOM.firstChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
    getLastChildBy: YUI.DOM.lastChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
    getLastChild: YUI.DOM.lastChild,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
    getChildrenBy: YUI.DOM.children,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
    getChildren: YUI.DOM.children,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
    insertBefore: function(newNode, refNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
        YUI.DOM.insertBefore(Dom.get(newNode), Dom.get(refNode));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
    insertAfter: function(newNode, refNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
        YUI.DOM.insertAfter(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
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
Y.each(wrapped, wrap);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
var batched = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
    getStyle: YUI.DOM.getStyle,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
    setStyle: YUI.DOM.setStyle,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
    getXY: YUI.DOM.getXY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
    setXY: YUI.DOM.setXY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
    getX: YUI.DOM.getX,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
    getY: YUI.DOM.getY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
    setX: YUI.DOM.setX, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
    setY: YUI.DOM.setY, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
    getRegion: Dom._region,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
    hasClass: YUI.DOM.hasClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
    addClass: Dom._addClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
    removeClass: Dom._removeClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
    replaceClass: Dom._replaceClass,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
    generateId: Dom._guid
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
Y.each(batched, function(v, n) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
    Dom[n] = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
        var args = slice.call(arguments, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
        return Dom.batch(el, v, null, null, args);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
Y.util.Dom = Dom;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
YAHOO.util.Region = function(t, r, b, l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
    this.top = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
    this[1] = t;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
    this.right = r;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
    this.bottom = b;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
    this.left = l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
    this[0] = l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
YAHOO.util.Region.prototype.contains = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
    return ( region.left   >= this.left   && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
             region.right  <= this.right  && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
             region.top    >= this.top    && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
             region.bottom <= this.bottom    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
YAHOO.util.Region.prototype.getArea = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
    return ( (this.bottom - this.top) * (this.right - this.left) );
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.intersect = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
    var t = Math.max( this.top,    region.top    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
    var r = Math.min( this.right,  region.right  );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
    var b = Math.min( this.bottom, region.bottom );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
    var l = Math.max( this.left,   region.left   );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
    if (b >= t && r >= l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
        return new YAHOO.util.Region(t, r, b, l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
        return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
YAHOO.util.Region.prototype.union = function(region) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
    var t = Math.min( this.top,    region.top    );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
    var r = Math.max( this.right,  region.right  );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
    var b = Math.max( this.bottom, region.bottom );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
    var l = Math.min( this.left,   region.left   );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
    return new YAHOO.util.Region(t, r, b, l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
YAHOO.util.Region.prototype.toString = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
    return ( "Region {"    +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
             "top: "       + this.top    + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
             ", right: "   + this.right  + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
             ", bottom: "  + this.bottom + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
             ", left: "    + this.left   + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
             "}" );
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
YAHOO.util.Region.getRegion = function(el) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
    return YUI.DOM.region(el);
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.Point = function(x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
   if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
      y = x[1]; // dont blow away x yet
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
      x = x[0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
   }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
    this.x = this.right = this.left = this[0] = x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
    this.y = this.top = this.bottom = this[1] = y;
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
YAHOO.util.Point.prototype = new YAHOO.util.Region();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
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
}, '3.0.0' ,{requires:['dom','event']});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
YUI._setup(); YUI.use('dom', 'event', 'compat');