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