src/cm/media/js/lib/yui/yui_3.10.3/docs/event/focus-example.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Event</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Event</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><style scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    .yui3-js-enabled .yui3-checkboxes-loading { display: none;	}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        Using Progressive Enhancement to skin checkboxes with the help of the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
        <a href="../../api/Loader.html">Loader</a>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        <a href="../../api/module_classnamemanager.html">ClassNameManager
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        Utility</a>, and the Event Utility's <code>focus</code> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        <code>blur</code> events and the <code>delegate</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
<div class="example yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    <div id="checkboxes" class="yui3-checkboxes-loading">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
	<div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
		<label for="field-1">Field 1: </label>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
		<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
			<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
				<input type="checkbox" id="field-1" name="field-1" value="1">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
			</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
		</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
	</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
	<div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
		<label for="field-2">Field 2: </label>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
		<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
			<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
				<input type="checkbox" id="field-2" name="field-2" value="2">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
			</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
		</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
	</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
	<div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
		<label for="field-3">Field 3: </label>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
		<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
			<span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
				<input type="checkbox" id="field-3" name="field-3" value="3">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
			</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
		</span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
	</div>			
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
	YUI({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
		//	Load the stylesheet for the skinned checkboxes via JavaScript, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
		//	since without JavaScript skinning of the checkboxes wouldn't 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
		//	be possible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
		
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
		modules: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
			"checkboxcss": {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
				type: "css",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
				fullpath: "../assets/event/checkbox.css"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
			},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
			"checkboxjs": {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
				type: "js",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
				fullpath: "../assets/event/checkbox.js",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
				requires: ["classnamemanager", "event-focus", "node-event-delegate", "checkboxcss"]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
			}			    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
		}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
	}).use("checkboxjs");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
<h2 id="challenges">Challenges</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
There are a few challenges when trying to skin an HTML checkbox using CSS.  To start, most of the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
<a href="http://developer.yahoo.com/yui/articles/gbs/#a-grade">A-grade browsers</a> don't provide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
support for CSS properties like <code>border</code> and <code>background</code> on the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
<code>&#60;input type="checkbox"&#62;</code> element.  Additionally, IE 6 and IE 7 (Quirks Mode) 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
lack support for attribute selectors &#151; necessary to style the <code>checked</code> and 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
<code>disabled</code> states.  Additionally, IE 6 and 7 only support the <code>:focus</code> and 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
<code>:active</code> pseudo classes on <code>&#60;a&#62;</code> elements, both of which are needed 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
to style a checkbox when it is focused or depressed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
<h2 id="approach">Approach</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
Despite the shortcomings in CSS support, with a little extra markup and through the use of 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
JavaScript it is possible to skin an <code>&#60;input type="checkbox"&#62;</code> element 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
consistently well in all of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
<a href="http://developer.yahoo.com/yui/articles/gbs/#a-grade">A-grade browsers</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
<h4 id="markup">Markup</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
Since CSS support for the <code>&#60;input type="checkbox"&#62;</code> element is lacking, wrap 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
<code>&#60;input type="checkbox"&#62;</code> elements in one or more inline elements to provide the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
necessary hooks for styling.  In this example, each <code>&#60;input type="checkbox"&#62;</code> 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
element is wrapped by two <code>&#60;span&#62;</code>s.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
<pre class="code prettyprint">&lt;span&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
  &lt;span&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    &lt;input type=&quot;checkbox&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
  &lt;&#x2F;span&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
&lt;&#x2F;span&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
<h4 id="css">CSS</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
To style each checkbox, a class name of <code>yui3-checkbox</code> will be applied to the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
outtermost <code>&#60;span&#62;</code> wrapping each <code>&#60;input type="checkbox"&#62;</code> 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
element.  An additional class will be used to represent the various states of each checkbox.  The 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
class name for each state will follow a consistent pattern: <code>yui3-checkbox-[state]</code>.  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
For this example, the following state-based class names will be used:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    <dt><code>yui3-checkbox-focus</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    <dd>The checkbox has focus</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    <dt><code>yui3-checkbox-active</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    <dd>The checkbox is active (pressed)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
    <dt><code>yui3-checkbox-checked</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    <dd>The checkbox is checked</dd>    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
The styles for each checkbox comes together as follows:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
<pre class="code prettyprint">.yui3-checkbox {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    display: -moz-inline-stack; &#x2F;* Gecko &lt; 1.9, since it doesn&#x27;t support &quot;inline-block&quot; *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    display: inline-block; &#x2F;* IE, Opera and Webkit, and Gecko 1.9 *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
    width: 10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
    height: 10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    border: inset 2px #999;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    background-color: #fff; &#x2F;*  Need to set a background color or IE won&#x27;t get mouse events *&#x2F;  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    &#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        Necessary for IE 6 (Quirks and Standards Mode) and IE 7 (Quirks Mode), since 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
        they don&#x27;t support use of negative margins without relative positioning.  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    _position: relative;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
.yui3-checkbox span {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    display: block;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    height: 14px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
    width: 12px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    overflow: hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    &#x2F;* Position the checkmark for Gecko, Opera and Webkit and IE 7 (Strict Mode). *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
    margin: -5px 0 0 1px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    &#x2F;* Position the checkmark for IE 6 (Strict and Quirks Mode) and IE 7 (Quirks Mode).*&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    _margin: 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
    _position: absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
    _top: -5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    _left: 1px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
&#x2F;* For Gecko &lt; 1.9: Positions the checkbox on the same line as its corresponding label. *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
.yui3-checkbox span:after {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    content: &quot;.&quot;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    visibility: hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    line-height: 2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
&#x2F;*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    Hide the actual checkbox offscreen so that it is out of view, but still accessible via 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    the keyboard. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
*&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
.yui3-checkbox input {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    position: absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    left: -10000px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
.yui3-checkbox-focus {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    border-color: #39f;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
    background-color: #9cf;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
.yui3-checkbox-active {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    background-color: #ccc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
.yui3-checkbox-checked span {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    &#x2F;* Draw a custom checkmark for the checked state using a background image. *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    background: url(checkmark.png) no-repeat;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
<h4 id="javascript">JavaScript</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
Application and removal of the state-based class names will be facilitated by JavaScript event 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
handlers.  Each event handler will track the state of the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
<code>&#60;input type="checkbox"&#62;</code> element, and apply and remove corresponding 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
state-based class names from its outtermost <code>&#60;span&#62;</code> &#151; 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
making it easy to style each state.  And since each JavaScript is required for state management, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
the stylesheet for the skinned checkboxes will only be added to the page when JavaScript is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
enabled.  This will ensure that each checkbox works correctly with and without JavaScript enabled.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
Since there could easily be many instances of a skinned checkbox on the page, all event 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
listeners will be attached to the containing element for all checkboxes.  Each listener will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
listen for events as they bubble up from each checkbox.  Relying on event bubbling will improve the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
overall performance of the page by reducing the number of event handlers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
Since the DOM <code>focus</code> and <code>blur</code> events do not bubble, use the Event Utility's 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
<a href="../../api/YUI.html#event_focus"><code>focus</code></a> and 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
<a href="../../api/YUI.html#event_focus"><code>blur</code></a> custom events, as an alternative to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
attaching discrete focus and blur event handlers to the <code>&#60;input type="checkbox"&#62;</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
element of each skinned checkbox.  The 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
<a href="../../api/YUI.html#event_focus"><code>focus</code></a> and 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
<a href="../../api/YUI.html#event_focus"><code>blur</code></a> custom events leverage 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
capture-phase DOM event listeners, making it possible to attach a single focus and blur event 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
listener on the containing element of each checkbox &#151; thereby increasing the performance 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
of the page.  The complete script for the example comes together as follows:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
<pre class="code prettyprint">YUI().use(&quot;*&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    var UA = Y.UA,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
        getClassName = Y.ClassNameManager.getClassName,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
        sCheckboxFocusClass = getClassName(&quot;checkbox&quot;, &quot;focus&quot;),    &#x2F;&#x2F; Create yui3-checkbox-focus
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
        sCheckboxCheckedClass = getClassName(&quot;checkbox&quot;, &quot;checked&quot;),    &#x2F;&#x2F; Create yui3-checkbox-checked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        sCheckboxActiveClass = getClassName(&quot;checkbox&quot;, &quot;active&quot;),  &#x2F;&#x2F; Create yui3-checkbox-active
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
        bKeyListenersInitialized = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        bMouseListenersInitialized = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
        forAttr = (UA.ie &amp;&amp; UA.ie &lt; 8) ? &quot;htmlFor&quot; : &quot;for&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        bBlockDocumentMouseUp = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        bBlockClearActive = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
        bBlockBlur = false,     
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        oActiveCheckbox;            
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    var initKeyListeners = function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
        this.delegate(&quot;keydown&quot;, onCheckboxKeyDown, &quot;.yui3-checkbox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        this.delegate(&quot;click&quot;, onCheckboxClick, &quot;.yui3-checkbox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        this.delegate(&quot;blur&quot;, onCheckboxBlur, &quot;input[type=checkbox]&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        bKeyListenersInitialized = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    var initMouseListeners = function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
        this.delegate(&quot;mouseover&quot;, onCheckboxMouseOver, &quot;.yui3-checkbox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
        this.delegate(&quot;mouseout&quot;, onCheckboxMouseOut, &quot;.yui3-checkbox-active&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
        this.get(&quot;ownerDocument&quot;).on(&quot;mouseup&quot;, onDocumentMouseUp);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        bMouseListenersInitialized = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    var getCheckbox = function (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        return (node.hasClass(&quot;yui3-checkbox&quot;) ? node : node.ancestor(&quot;.yui3-checkbox&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    var getCheckboxForLabel = function (label) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
        var sID = label.getAttribute(forAttr),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
            oInput,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
            oCheckbox;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
        if (sID) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
            oInput = Y.one(&quot;#&quot; + sID);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
            if (oInput) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
                oCheckbox = getCheckbox(oInput);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        return oCheckbox;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    var updateCheckedState = function (input) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
        var oCheckbox = getCheckbox(input);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
        if (input.get(&quot;checked&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
            oCheckbox.addClass(sCheckboxCheckedClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
            oCheckbox.removeClass(sCheckboxCheckedClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    var setActiveCheckbox = function (checkbox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        checkbox.addClass(sCheckboxActiveClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
        oActiveCheckbox = checkbox;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    var clearActiveCheckbox = function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
        if (oActiveCheckbox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
            oActiveCheckbox.removeClass(sCheckboxActiveClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
            oActiveCheckbox = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    var onCheckboxMouseOver = function (event, matchedEl) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
        if (oActiveCheckbox &amp;&amp; oActiveCheckbox.compareTo(this)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
            oActiveCheckbox.addClass(sCheckboxActiveClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    var onCheckboxMouseOut = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        this.removeClass(sCheckboxActiveClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    };              
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    var onDocumentMouseUp = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
        var oCheckbox;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
        if (!bBlockDocumentMouseUp) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
            oCheckbox = getCheckbox(event.target);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
            if ((oCheckbox &amp;&amp; !oCheckbox.compareTo(oActiveCheckbox)) || !oCheckbox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
                clearActiveCheckbox();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        bBlockDocumentMouseUp = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    var onCheckboxFocus = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        &#x2F;&#x2F;  Remove the focus style from any checkbox that might still have it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
        var oCheckbox = Y.one(&quot;#checkboxes&quot;).one(&quot;.yui3-checkbox-focus&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
        if (oCheckbox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
            oCheckbox.removeClass(sCheckboxFocusClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
        &#x2F;&#x2F;  Defer adding key-related and click event listeners until 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
        &#x2F;&#x2F;  one of the checkboxes is initially focused.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
        if (!bKeyListenersInitialized) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
            initKeyListeners.call(event.container);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        var oCheckbox = getCheckbox(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
        oCheckbox.addClass(sCheckboxFocusClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    var onCheckboxBlur = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
        if (bBlockBlur) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
            bBlockBlur = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        var oCheckbox = getCheckbox(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
        oCheckbox.removeClass(sCheckboxFocusClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
        if (!bBlockClearActive &amp;&amp; oCheckbox.compareTo(oActiveCheckbox)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
            clearActiveCheckbox();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
        bBlockClearActive = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    var onCheckboxMouseDown = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        &#x2F;&#x2F;  Defer adding mouse-related and click event listeners until 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
        &#x2F;&#x2F;  the user mouses down on one of the checkboxes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
        if (!bMouseListenersInitialized) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
            initMouseListeners.call(event.container);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
        var oCheckbox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
            oInput;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
        if (this.get(&quot;nodeName&quot;).toLowerCase() === &quot;label&quot;) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
            &#x2F;&#x2F;  If the target of the event was the checkbox&#x27;s label element, the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
            &#x2F;&#x2F;  label will dispatch a click event to the checkbox, meaning the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
            &#x2F;&#x2F;  &quot;onCheckboxClick&quot; handler will be called twice.  For that reason
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
            &#x2F;&#x2F;  it is necessary to block the &quot;onDocumentMouseUp&quot; handler from
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
            &#x2F;&#x2F;  clearing the active state, so that a reference to the active  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
            &#x2F;&#x2F;  checkbox still exists the second time the &quot;onCheckboxClick&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
            &#x2F;&#x2F;  handler is called.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
            bBlockDocumentMouseUp = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
            &#x2F;&#x2F;  When the user clicks the label instead of the checkbox itself, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
            &#x2F;&#x2F;  the checkbox will be blurred if it has focus.  Since the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
            &#x2F;&#x2F;  &quot;onCheckboxBlur&quot; handler clears the active state it is 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
            &#x2F;&#x2F;  necessary to block the clearing of the active state when the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
            &#x2F;&#x2F;  label is clicked instead of the checkbox itself.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
            bBlockClearActive = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
            oCheckbox = getCheckboxForLabel(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
        else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
            oCheckbox = this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
        &#x2F;&#x2F;  Need to focus the input manually for two reasons:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
        &#x2F;&#x2F;  1)  Mousing down on a label in Webkit doesn&#x27;t focus its  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
        &#x2F;&#x2F;      associated checkbox
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
        &#x2F;&#x2F;  2)  By default checkboxes are focused when the user mouses 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
        &#x2F;&#x2F;      down on them.  However, since the actually checkbox is 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
        &#x2F;&#x2F;      obscurred by the two span elements that are used to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        &#x2F;&#x2F;      style it, the checkbox wont&#x27; receive focus as it was 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
        &#x2F;&#x2F;      never the actual target of the mousedown event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        oInput = oCheckbox.one(&quot;input&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
        &#x2F;&#x2F;  Calling Event.preventDefault won&#x27;t block the blurring of the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
        &#x2F;&#x2F;  currently focused element in IE, so we&#x27;ll use the &quot;bBlockBlur&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
        &#x2F;&#x2F;  variable to stop the code in the blur event handler  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
        &#x2F;&#x2F;  from executing.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
        bBlockBlur = (UA.ie &amp;&amp; oInput.get(&quot;checked&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
        oInput.focus();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
        setActiveCheckbox(oCheckbox);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
        &#x2F;&#x2F;  Need to call preventDefault because by default mousing down on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
        &#x2F;&#x2F;  an element will blur the element in the document that currently 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
        &#x2F;&#x2F;  has focus--in this case, the input element that was 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
        &#x2F;&#x2F;  just focused.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
        event.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
    var onCheckboxClick = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
        var oInput;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
        if (this.compareTo(oActiveCheckbox)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
            oInput = this.one(&quot;input&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
            if (!event.target.compareTo(oInput)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                &#x2F;&#x2F;  If the click event was fired via the mouse the checked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                &#x2F;&#x2F;  state will have to be manually updated since the input 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
                &#x2F;&#x2F;  is hidden offscreen and therefore couldn&#x27;t be the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
                &#x2F;&#x2F;  target of the click.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
                oInput.set(&quot;checked&quot;, (!oInput.get(&quot;checked&quot;)));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
            updateCheckedState(oInput);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
            clearActiveCheckbox();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
    var onCheckboxKeyDown = function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
        &#x2F;&#x2F;  Style the checkbox as being active when the user presses the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        &#x2F;&#x2F;  space bar
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
        if (event.keyCode === 32) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
            setActiveCheckbox(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
    Y.all(&quot;#checkboxes&gt;div&gt;span&quot;).addClass(&quot;yui3-checkbox&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
    &#x2F;&#x2F;  Remove the &quot;yui3-checkboxes-loading&quot; class used to hide the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
    &#x2F;&#x2F;  checkboxes now that the checkboxes have been skinned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
    Y.one(&quot;#checkboxes&quot;).removeClass(&quot;yui3-checkboxes-loading&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
    &#x2F;&#x2F;  Add the minimum number of event listeners needed to start, bind the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
    &#x2F;&#x2F;  rest when needed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
    Y.delegate(&quot;mousedown&quot;, onCheckboxMouseDown, &quot;#checkboxes&quot;, &quot;.yui3-checkbox,label&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
    Y.delegate(&quot;focus&quot;, onCheckboxFocus, &quot;#checkboxes&quot;, &quot;input[type=checkbox]&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
<h4 id="progressive-enhancement">Progressive Enhancement</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
To account for the scenario where the user has CSS enabled in their browser but JavaScript 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
is disabled, the CSS used to style the checkboxes will be loaded via JavaScript 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
using the YUI instance's <a href="http://developer.yahoo.com/yui/3/yui#loader">built-in Loader</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
<pre class="code prettyprint">YUI({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
    base: &quot;${buildDirectory}&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
    &#x2F;&#x2F;  Load the stylesheet for the skinned checkboxes via JavaScript, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
    &#x2F;&#x2F;  since without JavaScript skinning of the checkboxes wouldn&#x27;t 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
    &#x2F;&#x2F;  be possible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    modules: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
        &quot;checkboxcss&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
            type: &quot;css&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
            fullpath: &quot;${assetsDirectory}checkbox.css&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
        &quot;checkboxjs&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
            type: &quot;js&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
            fullpath: &quot;${assetsDirectory}checkbox.js&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
            requires: [&quot;classnamemanager&quot;, &quot;event-focus&quot;, &quot;node-event-delegate&quot;, &quot;checkboxcss&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
        }               
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
}).use(&quot;checkboxjs&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
To prevent the user from seeing a flash unstyled content when JavaScript is enabled, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
a style rule is created using YUI's <code>yui3-js-enabled</code> class name that will temporarily 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
hide the markup while the JavaScript and CSS are in the process of loading.  For more on using the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
<code>yui3-js-enabled</code> class name, see the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
<a href="../../widget/#progressive">HIDING PROGRESSIVELY ENHANCED MARKUP</a> section of the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
<a href="../../widget/">YUI Widget landing page</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
<pre class="code prettyprint">.yui3-js-enabled .yui3-checkboxes-loading {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
    display: none;	
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
<a href="#challenges">Challenges</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
<a href="#approach">Approach</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
<a href="#markup">Markup</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
<a href="#css">CSS</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
<a href="#javascript">JavaScript</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
<a href="#progressive-enhancement">Progressive Enhancement</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
                                        <li data-description="Use the Event Utility to attach simple DOM event handlers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
                                            <a href="basic-example.html">Simple DOM Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
                                        <li data-description="Using the synthetic event API to create a DOM event that fires in response to arrow keys being pressed.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
                                            <a href="synth-example.html">Creating an Arrow Event for DOM Subscription</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                                        <li data-description="Supporting cross-device swipe gestures, using the event-move gesture events">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
                                            <a href="swipe-example.html">Supporting A Swipe Left Gesture</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
                                        <li data-description="Shows how to extend the base widget class, to create your own Widgets.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
                                            <a href="../widget/widget-extend.html">Extending the Base Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
                                        <li data-description="Example Photo Browser application.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
                                            <a href="../dd/photo-browser.html">Photo Browser</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
                                        <li data-description="Portal style example using Drag &amp; Drop Event Bubbling and Animation.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
                                            <a href="../dd/portal-drag.html">Portal Style Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
                                        <li data-description="Use IO to request data over HTTP.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
                                            <a href="../io/get.html">HTTP GET to request data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
    assets: '../assets/event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
    name: 'event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
    title: 'Event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
YUI.Env.Tests.examples.push('basic-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
YUI.Env.Tests.examples.push('synth-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
YUI.Env.Tests.examples.push('swipe-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
YUI.Env.Tests.examples.push('widget-extend');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
YUI.Env.Tests.examples.push('photo-browser');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
YUI.Env.Tests.examples.push('get');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
</html>