src/cm/media/js/lib/yui/yui3.0.0/examples/node-menunav/node-menunav-8_source.html
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
        "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
    <head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
        <title>YUI Library Examples: MenuNav Node Plugin</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
		<link rel="stylesheet" type="text/css" href="../../build/cssreset/reset-min.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
        <link rel="stylesheet" type="text/css" href="../../build/cssfonts/fonts-min.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
		<link rel="stylesheet" type="text/css" href="../../build/cssgrids/grids-min.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
		<link rel="stylesheet" type="text/css" href="../../build/cssbase/base-min.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
		<link rel="stylesheet" type="text/css" href="assets/node-menunav-examples-base.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
		<!-- include so that menu has basic styling if JS is no enabled -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
		<link rel="stylesheet" type="text/css" href="../../build/node-menunav/assets/skins/sam/node-menunav.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
		<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
			.yui-menu-content p {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
				margin: .25em .5em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
		</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    </head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    <body class="yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
		<div class="yui-d0">					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
			<h1>Header</h1>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
			<div class="yui-t1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
				<div class="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
					<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
					   <div id="productsandservices" class="yui-menu yui-menu-horizontal">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
							<div class="yui-menu-content">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
								<ul class="first-of-type">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
									<li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
										<span id="answers-label" class="yui-menu-label">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
											<a href="http://answers.yahoo.com">Answers</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
										</span>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
									</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
									<li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
										<span id="flickr-label" class="yui-menu-label">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
											<a href="http://www.flickr.com">Flickr</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
										</span>									
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
									</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
									<li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
										<span id="mobile-label" class="yui-menu-label">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
											<a href="http://mobile.yahoo.com">Mobile</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
										</span>									
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
									</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
									<li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
										<span id="upcoming-label" class="yui-menu-label">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
											<a href="http://upcoming.yahoo.com/">Upcoming</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
										</span>									
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
									</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
									<li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
										<span id="forgood-label" class="yui-menu-label">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
											<a href="http://forgood.yahoo.com/index.html">Yahoo! for Good</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
										</span>									
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
									</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
								</ul>            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
							</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
						<p class="first-of-type">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
						<form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
							<div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
								<label for="field-1">Field One</label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
								<input type="text" id="field-1" name="field-1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
							</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
							<div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
								<label for="field-2">Field Two</label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
								<input type="text" id="field-2" name="field-2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
							</div>							
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
							<div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
								<label for="field-3">Field Three</label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
								<select id="field-3" name="field-3">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
									<option value="1">Field Three - Option One</option>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
									<option value="2">Field Three - Option Two</option>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
									<option value="3">Field Three - Option Two</option>								
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
								</select>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
							</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
						</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
						<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
						<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
						<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
						<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
				<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
					<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
					<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>						
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
			</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
			<div id="footer">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
				<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sit amet metus. Nunc quam elit, posuere nec, auctor in, rhoncus quis, dui. Aliquam erat volutpat. Ut dignissim, massa sit amet dignissim cursus, quam lacus feugiat.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
			</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
		</div>        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
		<!-- YUI Seed -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
		<script type="text/javascript" src="../../build/yui/yui.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
		<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
			//	Call the "use" method, passing in "node-menunav".  This will load the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
			//	script and CSS for the MenuNav Node Plugin and all of the required 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
			//	dependencies.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
			YUI({base:"../../build/", timeout: 10000}).use("node-menunav", "io", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
				var applyARIA = function (menu) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
					var oMenuLabel,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
						oMenuToggle,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
						sID;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
					menu.set("role", "menu");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
					oMenuLabel = menu.previous();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
					oMenuToggle = oMenuLabel.one(".yui-menu-toggle");
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 (oMenuToggle) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
						oMenuLabel = oMenuToggle;
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
					sID = Y.stamp(oMenuLabel);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
					if (!oMenuLabel.get("id")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
						oMenuLabel.set("id", sID);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
					menu.set("aria-labelledby", sID);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
					menu.all("ul,li,.yui-menu-content").set("role", "presentation");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
					menu.all(".yui-menuitem-content").set("role", "menuitem");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
				};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
				var onIOComplete = function (transactionID, response, submenuNode) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
					var sHTML = response.responseText;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
					submenuNode.one(".yui-menu-content").set("innerHTML", sHTML);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
					submenuNode.one("ul").addClass("first-of-type");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
					applyARIA(submenuNode);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
					//	Need to set the width of the submenu to "" to clear it, then to nothing 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
					//	(or the offsetWidth for IE < 8) so that the width of the submenu is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
					//	rendered correctly, otherwise the width will be rendered at the width 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
					//	before the new content for the submenu was loaded.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
					submenuNode.setStyle("width", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
					if (Y.UA.ie && Y.UA.ie < 8) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
						submenuNode.setStyle("width", (submenuNode.get("offsetWidth") + "px"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
					var oAnchor = submenuNode.one("a");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
					if (oAnchor) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
						oAnchor.focus();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
					}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
				};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
				var addSubmenu = function (event, submenuIdBase) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
					var sSubmenuId = submenuIdBase + "-options",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
						bIsKeyDown = (event.type === "keydown"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
						nKeyCode = event.keyCode,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
						sURI;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
					if ((bIsKeyDown && nKeyCode === 40) || 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
						(event.target.hasClass("yui-menu-toggle") && 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
						(event.type === "mousedown" || (bIsKeyDown && nKeyCode === 13)))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
						//	Build the bounding box and content box for the submenu and fill
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
						//	the content box with a "Loading..." message so that the user 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
						//	knows the submenu's content is in the process of loading.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
						
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
						this.get("parentNode").append('<div id="' + sSubmenuId + '" class="yui-menu yui-menu-hidden"><div class="yui-menu-content"><p>Loading&#8230;</p></div></div>');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
						//	Use Y.io to fetch the content of the submenu
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
						sURI = "assets/submenus.php?menu=" + sSubmenuId;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
						Y.io(sURI, { on: { complete: onIOComplete }, arguments: Y.one(("#" + sSubmenuId)) });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
						//	Detach event listeners so that this code runs only once 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
						this.detach("mousedown", addSubmenu);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
						this.detach("keydown", addSubmenu);
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
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
				};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
				//	Retrieve the Node instance representing the root menu
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
				//	(<div id="productsandservices">)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
				var menu = Y.one("#productsandservices");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
				menu.addClass("yui-splitbuttonnav");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
				var oSubmenuToggles = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
						answers: { label: "Answers Options", url: "#answers-options" },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
						flickr: { label: "Flickr Options", url: "#flickr-options" },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
						mobile: { label: "Mobile Options", url: "#mobile-options" },						
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
						upcoming: { label: "Upcoming Options", url: "#upcoming-options" },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
						forgood: { label: "Yahoo! for Good Options", url: "#forgood-options" }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
					},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
					sKey,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
					oToggleData,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
					oSubmenuToggle;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
				//	Add the menu toggle to each menu label
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
				menu.all(".yui-menu-label").each(function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
					sKey = node.get("id").split("-")[0];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
					oToggleData = oSubmenuToggles[sKey];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
					oSubmenuToggle = Y.Node.create('<a class="yui-menu-toggle">' + oToggleData.label + '</a>');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
					//	Need to set the "href" attribute via the "set" method as opposed to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
					//	including it in the string passed to "Y.Node.create" to work around a 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
					//	bug in IE.  The MenuNav Node Plugin code examines the "href" attribute 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
					//	of all <A>s in a menu.  To do this, the MenuNav Node Plugin retrieves 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
					//	the value of the "href" attribute by passing "2" as a second argument 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
					//	to the "getAttribute" method.  This is necessary for IE in order to get 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
					//	the value of the "href" attribute exactly as it was set in script or in 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
					//	the source document, as opposed to a fully qualified path.  (See 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
					//	http://msdn.microsoft.com/en-gb/library/ms536429(VS.85).aspx for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
					//	more info.)  However, when the "href" attribute is set inline via the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
					//	string passed to "Y.Node.create", calls to "getAttribute('href', 2)" 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
					//	will STILL return a fully qualified URL rather than the value of the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
					//	"href" attribute exactly as it was set in script.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
					oSubmenuToggle.set("href", oToggleData.url);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
					//	Add a "mousedown" and "keydown" listener to each menu label that 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
					//	will build the submenu the first time the users requests it.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
					node.on("mousedown", addSubmenu, node, sKey);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
					node.on("keydown", addSubmenu, node, sKey);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
					node.appendChild(oSubmenuToggle);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
				});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
				//	Call the "plug" method passing in a reference to the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
				//	MenuNav Node Plugin.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
				menu.plug(Y.Plugin.NodeMenuNav, { autoSubmenuDisplay: false, mouseOutHideDelay: 0 });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
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
		</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
    </body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
</html>