source: cows/branches/cows-vis/cows/pylons/project_templates/cows_server/+package+/public/js/yui/examples/dd/list-drag.html @ 5259

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cows/branches/cows-vis/cows/pylons/project_templates/cows_server/+package+/public/js/yui/examples/dd/list-drag.html@5259
Revision 5259, 22.9 KB checked in by domlowe, 11 years ago (diff)

adding yui javascript

Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3<head>
4        <title>YUI Library Examples: Drag &amp; Drop Utility: List reorder w/Bubbling</title>
5    <meta http-equiv="content-type" content="text/html; charset=utf-8">
6        <link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
7
8<style>
9    /*Supplemental CSS for the YUI distribution*/
10    #custom-doc { width: 95%; min-width: 950px; }
11    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
12    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}
13</style>
14
15<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
16
17<!--there is no custom header content for this example-->
18
19<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
20<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
21
22</head>
23<body id="yahoo-com" class=" yui-skin-sam">
24<div id="custom-doc" class="yui-t2">
25<div id="hd">
26        <div id="ygunav">
27                <p>
28            <em>
29                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i> 
30            </em>
31                </p>
32                <form action="http://search.yahoo.com/search" id="sitesearchform">
33            <input name="vs" type="hidden" value="developer.yahoo.com">
34            <input name="vs" type="hidden" value="yuiblog.com">
35                    <div id="sitesearch">
36                        <label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
37                            <input type="text" id="searchinput" name="p">
38                            <input type="submit" value="Search" id="searchsubmit" class="ygbt">
39                    </div>
40                </form>
41    </div>
42        <div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
43        <div id="pagetitle"><h1>YUI Library Examples: Drag &amp; Drop Utility: List reorder w/Bubbling</h1></div>
44</div>
45<div id="bd">
46
47        <div id="bar-note"><p><strong>Note:</strong> This is YUI 3.x. Looking for <a href="http://developer.yahoo.com/yui/">YUI 2.x</a>?</p></div>
48
49        <div id="yui-main">
50                <div class="yui-b">
51                  <div class="yui-ge">
52                          <div class="yui-u first example" id="main">
53
54        <h2>Drag &amp; Drop Utility: List reorder w/Bubbling</h2>
55
56        <div id="example" class="promo">
57        <p>
58        <p>This example shows how to make a sortable list using Custom Event Bubbling.</p>
59        </p>   
60
61        <div class="module example-container ">
62                        <div class="hd exampleHd">
63                        <p class="newWindowButton yui-skin-sam">
64                <a href="list-drag_clean.html" target="_blank">View example in new window.</a>
65            </p>
66                </div>          <div id="example-canvas" class="bd">
67
68               
69        <!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
70       
71        <style type="text/css" media="screen">
72    .yui-dd-proxy {
73        text-align: left;
74    }
75    #play {
76        border: 1px solid black;
77        padding: 10px;
78        margin: 10px;
79        zoom: 1;
80    }
81    #play:after { display: block; clear: both; visibility: hidden; content: '.'; height: 0;}
82    #play ul {
83        border: 1px solid black;
84        margin: 10px;
85        width: 200px;
86        height: 300px;
87        float: left;
88        padding: 0;
89        zoom: 1;
90        position: relative;
91    }
92    #play ul li {
93        background-image: none;
94        list-style-type: none;
95        padding-left: 20px;
96        padding: 5px;
97        margin: 2px;
98        cursor: move;
99        zoom: 1;
100        position: relative;
101    }
102    #play ul li.list1 {
103        background-color: #8DD5E7;
104        border:1px solid #004C6D;
105    }
106    #play ul li.list2 {
107        background-color: #EDFF9F;
108        border:1px solid #CDCDCD;
109    }
110</style>
111
112<div id="play">
113    <ul id="list1">
114        <li class="list1">Item #1</li>
115        <li class="list1">Item #2</li>
116        <li class="list1">Item #3</li>
117        <li class="list1">Item #4</li>
118        <li class="list1">Item #5</li>
119    </ul>
120    <ul id="list2">
121        <li class="list2">Item #1</li>
122        <li class="list2">Item #2</li>
123        <li class="list2">Item #3</li>
124        <li class="list2">Item #4</li>
125        <li class="list2">Item #5</li>
126    </ul>
127</div>
128
129<script type="text/javascript">
130YUI({base:"../../build/", timeout: 10000}).use('dd-constrain', 'dd-proxy', 'dd-drop', function(Y) {
131    //Listen for all drop:over events
132    Y.DD.DDM.on('drop:over', function(e) {
133        //Get a reference to out drag and drop nodes
134        var drag = e.drag.get('node'),
135            drop = e.drop.get('node');
136       
137        //Are we dropping on a li node?
138        if (drop.get('tagName').toLowerCase() === 'li') {
139            //Are we not going up?
140            if (!goingUp) {
141                drop = drop.get('nextSibling');
142            }
143            //Add the node to this list
144            e.drop.get('node').get('parentNode').insertBefore(drag, drop);
145            //Resize this nodes shim, so we can drop on it later.
146            e.drop.sizeShim();
147        }
148    });
149    //Listen for all drag:drag events
150    Y.DD.DDM.on('drag:drag', function(e) {
151        //Get the last y point
152        var y = e.target.lastXY[1];
153        //is it greater than the lastY var?
154        if (y < lastY) {
155            //We are going up
156            goingUp = true;
157        } else {
158            //We are going down..
159            goingUp = false;
160        }
161        //Cache for next check
162        lastY = y;
163    });
164    //Listen for all drag:start events
165    Y.DD.DDM.on('drag:start', function(e) {
166        //Get our drag object
167        var drag = e.target;
168        //Set some styles here
169        drag.get('node').setStyle('opacity', '.25');
170        drag.get('dragNode').set('innerHTML', drag.get('node').get('innerHTML'));
171        drag.get('dragNode').setStyles({
172            opacity: '.5',
173            borderColor: drag.get('node').getStyle('borderColor'),
174            backgroundColor: drag.get('node').getStyle('backgroundColor')
175        });
176    });
177    //Listen for a drag:end events
178    Y.DD.DDM.on('drag:end', function(e) {
179        var drag = e.target;
180        //Put out styles back
181        drag.get('node').setStyles({
182            visibility: '',
183            opacity: '1'
184        });
185    });
186    //Listen for all drag:drophit events
187    Y.DD.DDM.on('drag:drophit', function(e) {
188        var drop = e.drop.get('node'),
189            drag = e.drag.get('node');
190
191        //if we are not on an li, we must have been dropped on a ul
192        if (drop.get('tagName').toLowerCase() !== 'li') {
193            if (!drop.contains(drag)) {
194                drop.appendChild(drag);
195            }
196        }
197    });
198   
199    //Static Vars
200    var goingUp = false, lastY = 0;
201
202    //Get the list of li's in the lists and make them draggable
203    var lis = Y.Node.all('#play ul li');
204    lis.each(function(v, k, items) {
205        var dd = new Y.DD.Drag({
206            node: items.item(k),
207            proxy: true,
208            moveOnEnd: false,
209            constrain2node: '#play',
210            target: {
211                padding: '0 0 0 20'
212            }
213        });
214    });
215
216    //Create simple targets for the 2 lists..
217    var uls = Y.Node.all('#play ul');
218    uls.each(function(v, k, items) {
219        var tar = new Y.DD.Drop({
220            node: items.item(k)
221        });
222    });
223   
224});
225
226</script>
227
228       
229        <!--END SOURCE CODE FOR EXAMPLE =============================== -->
230       
231               
232                </div>
233        </div>                 
234        </div>
235               
236        <h3>Setting up the lists</h3>
237<p>First we will make some lists that we want to make sortable.</p>
238<textarea name="code" class="HTML">
239<div id="play">
240    <ul id="list1">
241        <li class="list1">Item #1</li>
242        <li class="list1">Item #2</li>
243        <li class="list1">Item #3</li>
244        <li class="list1">Item #4</li>
245        <li class="list1">Item #5</li>
246    </ul>
247    <ul id="list2">
248        <li class="list2">Item #1</li>
249        <li class="list2">Item #2</li>
250        <li class="list2">Item #3</li>
251        <li class="list2">Item #4</li>
252        <li class="list2">Item #5</li>
253    </ul>
254</div>
255</textarea>
256
257<h3>Setting up the YUI Instance</h3>
258<p>Now we need to create our YUI instance and tell it to load the <code>dd-constrain</code>, <code>dd-proxy</code> and <code>dd-drop</code>, modules.</p>
259<textarea name="code" class="JScript">
260YUI().use('dd-constrain', 'dd-proxy', 'dd-drop', function(Y) {
261</textarea>
262
263<h3>Making the Nodes Drag Instances and Drop Targets</h3>
264<p>Now we have our YUI instance ready, we can make the list items draggable. We will do this using <code>Y.Node.all</code></p>
265<p>We will be passing the selector string <code>#play ul li</code> to <code>Y.Node.all</code> to have it return us a <code>NodeList</code> of the li's in our 2 lists.
266Using this selector syntax we will be able to add new list markup to the <code>#play</code> div and not have to change our code.</p>
267<p>Then we will walk that <code>NodeList</code> and create our draggable Nodes.</p>
268<p>Note that we are setting the following configs on the Drag instance: <code>proxy, moveOnEnd, constrain2node, target</code>.</p>
269<textarea name="code" class="JScript">
270//Get the list of li's in the lists and make them draggable
271var lis = Y.Node.all('#play ul li');
272lis.each(function(v, k, items) {
273    var dd = new Y.DD.Drag({
274        node: items.item(k),
275        proxy: true,
276        //Don't move the node at the end of the drag
277        moveOnEnd: false,
278        //Keep it inside the #play node
279        constrain2node: '#play',
280        //Make it Drop target and pass this config to the Drop constructor
281        target: {
282            padding: '0 0 0 20'
283        }
284    });
285});
286</textarea>
287
288<h3>Making the List Drop Target's too</h3>
289<p>We need to make the UL nodes a Drop Target so we can catch drops on the empty space of the list.
290Using this selector syntax we will be able to add new list markup to the <code>#play</code> div and not have to change our code.</p>
291<textarea name="code" class="JScript">
292//Create simple targets for the 2 lists..
293var uls = Y.Node.all('#play ul');
294uls.each(function(v, k, items) {
295    var tar = new Y.DD.Drop({
296        node: items.item(k)
297    });
298});
299</textarea>
300
301<h3>Using Event Bubbling</h3>
302<p>By default, all Drag and Drop instances bubble their event's up to the DragDropMgr. In this example we are assuming that there are no other Drag Operations in this YUI Instance.</p>
303<h3>Start Drag Event</h3>
304<p>The first thing we will do is handle the drag:start event. In this event, we will setup some styles to apply to the <code>node</code> and <code>dragNode</code> of the current Drag instance.</p>
305<p>We will also be copying the <code>innerHTML</code> of the <code>node</code> and copying that to the <code>innerHTML</code> of the <code>dragNode</code>. </p>
306<p><em>It should be noted, that
307doing this will also copy any <code>id</code>'s of the nodes inside the <code>node</code>. So if you are using this on something that is <code>id</code> based, you may need to remove the <code>id</code>'s
308of the nodes inside the <code>node</code> that is being dragged.
309</em></p>
310<textarea name="code" class="JScript">
311Y.DD.DDM.on('drag:start', function(e) {
312    //Get our drag object
313    var drag = e.target;
314    //Set some styles here
315    drag.get('node').setStyle('opacity', '.25');
316    drag.get('dragNode').set('innerHTML', drag.get('node').get('innerHTML'));
317    drag.get('dragNode').setStyles({
318        opacity: '.5',
319        borderColor: drag.get('node').getStyle('borderColor'),
320        backgroundColor: drag.get('node').getStyle('backgroundColor')
321    });
322});
323</textarea>
324
325<h3>End Drag Event</h3>
326<p>In this event, we will reset some of the styles set in the drag:start event.</p>
327<textarea name="code" class="JScript">
328Y.DD.DDM.on('drag:end', function(e) {
329    var drag = e.target;
330    //Put out styles back
331    drag.get('node').setStyles({
332        visibility: '',
333        opacity: '1'
334    });
335});
336</textarea>
337
338<h3>Drag Event</h3>
339<p>In this event, we will track the up/down movement for later use.</p>
340<textarea name="code" class="JScript">
341Y.DD.DDM.on('drag:drag', function(e) {
342    //Get the last y point
343    var y = e.target.lastXY[1];
344    //is it greater than the lastY var?
345    if (y &lt; lastY) {
346        //We are going up
347        goingUp = true;
348    } else {
349        //We are going down..
350        goingUp = false;
351    }
352    //Cache for next check
353    lastY = y;
354});
355</textarea>
356
357<h3>Over Drop Event</h3>
358<p>In this event, know which Target we are over, so we add the Drag node to the list either above or below the current Drop Target.</p>
359<textarea name="code" class="JScript">
360Y.DD.DDM.on('drop:over', function(e) {
361    //Get a reference to out drag and drop nodes
362    var drag = e.drag.get('node'),
363        drop = e.drop.get('node');
364   
365    //Are we dropping on a li node?
366    if (drop.get('tagName').toLowerCase() === 'li') {
367        //Are we not going up?
368        if (!goingUp) {
369            drop = drop.get('nextSibling');
370        }
371        //Add the node to this list
372        e.drop.get('node').get('parentNode').insertBefore(drag, drop);
373        //Resize this nodes shim, so we can drop on it later.
374        e.drop.sizeShim();
375    }
376});
377</textarea>
378
379<h3>Drop Hit Event</h3>
380<p>In this event, we check to see if the target that was dropped on was not an LI node. If it wasn't, then we know it was dropped on the empty space of the UL.</p>
381<textarea name="code" class="JScript">
382Y.DD.DDM.on('drag:drophit', function(e) {
383    var drop = e.drop.get('node'),
384        drag = e.drag.get('node');
385
386    //if we are not on an li, we must have been dropped on a ul
387    if (drop.get('tagName').toLowerCase() !== 'li') {
388        if (!drop.contains(drag)) {
389            drop.appendChild(drag);
390        }
391    }
392});
393</textarea>
394
395<h3>Full Javascript Source</h3>
396<textarea name="code" class="JScript">
397YUI().use('dd-constrain', 'dd-proxy', 'dd-drop', function(Y) {
398    //Listen for all drop:over events
399    Y.DD.DDM.on('drop:over', function(e) {
400        //Get a reference to out drag and drop nodes
401        var drag = e.drag.get('node'),
402            drop = e.drop.get('node');
403       
404        //Are we dropping on a li node?
405        if (drop.get('tagName').toLowerCase() === 'li') {
406            //Are we not going up?
407            if (!goingUp) {
408                drop = drop.get('nextSibling');
409            }
410            //Add the node to this list
411            e.drop.get('node').get('parentNode').insertBefore(drag, drop);
412            //Resize this nodes shim, so we can drop on it later.
413            e.drop.sizeShim();
414        }
415    });
416    //Listen for all drag:drag events
417    Y.DD.DDM.on('drag:drag', function(e) {
418        //Get the last y point
419        var y = e.target.lastXY[1];
420        //is it greater than the lastY var?
421        if (y &lt; lastY) {
422            //We are going up
423            goingUp = true;
424        } else {
425            //We are going down..
426            goingUp = false;
427        }
428        //Cache for next check
429        lastY = y;
430    });
431    //Listen for all drag:start events
432    Y.DD.DDM.on('drag:start', function(e) {
433        //Get our drag object
434        var drag = e.target;
435        //Set some styles here
436        drag.get('node').setStyle('opacity', '.25');
437        drag.get('dragNode').set('innerHTML', drag.get('node').get('innerHTML'));
438        drag.get('dragNode').setStyles({
439            opacity: '.5',
440            borderColor: drag.get('node').getStyle('borderColor'),
441            backgroundColor: drag.get('node').getStyle('backgroundColor')
442        });
443    });
444    //Listen for a drag:end events
445    Y.DD.DDM.on('drag:end', function(e) {
446        var drag = e.target;
447        //Put out styles back
448        drag.get('node').setStyles({
449            visibility: '',
450            opacity: '1'
451        });
452    });
453    //Listen for all drag:drophit events
454    Y.DD.DDM.on('drag:drophit', function(e) {
455        var drop = e.drop.get('node'),
456            drag = e.drag.get('node');
457
458        //if we are not on an li, we must have been dropped on a ul
459        if (drop.get('tagName').toLowerCase() !== 'li') {
460            if (!drop.contains(drag)) {
461                drop.appendChild(drag);
462            }
463        }
464    });
465   
466    //Static Vars
467    var goingUp = false, lastY = 0;
468
469    //Get the list of li's in the lists and make them draggable
470    var lis = Y.Node.all('#play ul li');   
471    lis.each(function(v, k, items) {
472        var dd = new Y.DD.Drag({
473            node: items.item(k),
474            proxy: true,
475            moveOnEnd: false,
476            constrain2node: '#play',
477            target: {
478                padding: '0 0 0 20'
479            }
480        });
481    });
482
483    //Create simple targets for the 2 lists..
484    var uls = Y.Node.all('#play ul');   
485    uls.each(function(v, k, items) {
486        var tar = new Y.DD.Drop({
487            node: items.item(k)
488        });
489    });
490   
491});
492</textarea>
493                                </div>
494                                <div class="yui-u sidebar">
495                                       
496                               
497                                        <div id="examples" class="mod box4">
498                        <div class="hd">
499                                                <h4>
500    Drag &amp; Drop Utility Examples:</h4>
501                        </div>
502                                                <div class="bd">
503                                                        <ul>
504                                                                <li><a href='../dd/simple-drag.html'>Simple Drag</a></li><li><a href='../dd/drag-plugin.html'>Drag Node Plugin</a></li><li><a href='../dd/proxy-drag.html'>Proxy Drag</a></li><li><a href='../dd/constrained-drag.html'>Drag Constrained to a Region</a></li><li><a href='../dd/groups-drag.html'>Interaction Groups</a></li><li><a href='../dd/shim-drag.html'>Using the Drag Shim</a></li><li class='selected'><a href='../dd/list-drag.html'>List reorder w/Bubbling</a></li><li><a href='../dd/portal-drag.html'>Portal Style Example</a></li><li><a href='../dd/anim-drop.html'>Animated Drop Targets</a></li><li><a href='../dd/drop-code.html'>Drop Based Coding</a></li>                                                        </ul>
505                                                </div>
506                                        </div>
507                                       
508                                        <div class="mod box4">
509                        <div class="hd">
510                                                <h4>More Drag &amp; Drop Utility Resources:</h4>
511                        </div>
512                        <div class="bd">
513                                                <ul>
514                                                        <!-- <li><a href="http://developer.yahoo.com/yui/dd/">User's Guide</a> (external)</li> -->
515                                                <li><a href="../../api/module_dd.html">API Documentation</a></li>
516</ul>
517                        </div>
518                                        </div>
519                          </div>
520                </div>
521               
522                </div>
523        </div>
524
525
526<div class="yui-b toc3" id="tocWrapper">
527<!-- TABLE OF CONTENTS -->
528<div id="toc">
529       
530<ul>
531<li class="sect first">YUI 3.x Project</li><li class="item"><a title="The Yahoo! User Interface (YUI) Library, 3.x Branch, " href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site (external)</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="The YUI Library can be downloaded from SourceForge" href="http://sourceforge.net/projects/yui/">YUI 3 on Sourceforge (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/3/license.html">YUI License (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI (Global Prerequisite) - Functional Examples" href="../../examples/yui/index.html">YUI (Global Prerequisite)</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Base - Functional Examples" href="../../examples/base/index.html">Base</a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="selected "><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Queue - Functional Examples" href="../../examples/queue/index.html">Queue</a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Grids - Functional Examples" href="../../examples/cssgrids/index.html">CSS Grids</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">The YUI Community</li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="item"><a title="The Yahoo! Group YDN-JavaScript hosts the YUI community forum" href="http://tech.groups.yahoo.com/group/ydn-javascript/">YUI Forum (external)</a></li><li class="item"><a title="The Yahoo! Group yui3 is dedicated to the 3.x branch of the Yahoo! User Interface (YUI) Library." href="http://tech.groups.yahoo.com/group/yui3/">YUI 3 Forum (external)</a></li><li class="item"><a title="YUI is used by Yahoo! and by hundreds of other sites, including many you know and love." href="/yui/poweredby/">YUI Sightings (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/3/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li></ul>
532</div>
533</div>
534        </div><!--closes bd-->
535
536        <div id="ft">
537        <p class="first">Copyright &copy; 2008 Yahoo! Inc. All rights reserved.</p>
538        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> -
539            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> -
540            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> -
541            <a href="http://careers.yahoo.com/">Job Openings</a></p>
542        </div>
543</div>
544<script src="../../assets/dpSyntaxHighlighter.js"></script>
545<script language="javascript"> 
546dp.SyntaxHighlighter.HighlightAll('code'); 
547</script>
548</body>
549</html>
550<!-- delightfuture.corp.yahoo.com uncompressed/chunked Wed Aug 13 16:45:31 PDT 2008 -->
Note: See TracBrowser for help on using the repository browser.