src/cm/media/js/lib/yui/yui3.0.0/examples/get/get-script-basic.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: Get: Getting a Script Node with JSON Data</title>
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
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<script type="text/javascript" src="../../build/yui/yui-debug.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
#container ol {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
	/*bringing lists on to the page with breathing room */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
	margin-left:2em !important;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
#container ol li {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
	/*giving OL's LIs generated numbers*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
	list-style: decimal outside !important;	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
#container h3 {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
	margin-top: 1em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
	<div id="pagetitle"><h1>YUI Library Examples: Get: Getting a Script Node with JSON Data</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
	<h2>Get: Getting a Script Node with JSON Data</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
	<p>This example employs the <a href="http://developer.yahoo.com/yui/3/get/">YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
Get Utility</a> in a simple use case: retrieving JSON data from a cross-domain
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
web service. While this is a relatively common usage, it's important to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
understand the security ramifications of this technique. Scripts loaded via the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
Get Utility (or any other &quot;script node&quot; solution) execute immediately
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
once they are loaded. If you do not fully control (or fully trust) the script's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
source, this is not a safe technique and it can put the security of your users'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
data at risk. (For more information on the dangers of cross-site scripting
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
[XSS] exploits, <a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
href="http://en.wikipedia.org/wiki/Cross-site_scripting">check out the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
Wikipedia entry on this subject</a>.)</p> <p>Here, we will use a trusted Yahoo!
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
Search web service called <a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
href="http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html">Site
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
Explorer</a> to return a list of inbound links for a given URL. The principal
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
difference between this example and similar examples using <a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
href="http://developer.yahoo.com/yui/3/io/">YUI IO Utility</a> is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
that this technique does not require a server-side proxy. The browser connects
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
directly to the third-party web service without bouncing through a proxy page
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
as is required when using the XMLHttpRequest object (on which IO Utility
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
relies).</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
                <a href="get-script-basic_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
	<div id="container">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
    <!--Use a real form that works without JavaScript:-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    <form method="GET" action="http://siteexplorer.search.yahoo.com/advsearch" id="siteExplorer">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        <label for="searchString">Site URL:</label> <input type="text" name="p" id="searchString" value="http://developer.yahoo.com/yui" size="40">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
        <input type="hidden" name="bwm" value="i">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
        <input type="hidden" name="bwms" value="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
        <input type="submit" id="siteExplorerData" value="Click here to get JSON data.">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
    </form>
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 id="results">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
        <!--JSON output will be written to the DOM here-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
YUI({base:"../../build/", timeout: 10000, filter:"debug", logInclude: {get:true, event:true, example:true}}).use("node", "dump",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
function(Y) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    // We are going to create a global variable to get the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
    // data back from the web service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
    MyNamespace = YUI.namespace('example.SiteExplorer');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
    var elResults = Y.one("#results"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        tIds = {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
        loading = false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
        current = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
    // We use the Get Utility's success handler in conjunction with
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
    // the web service callback in order to detect bad responses 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
    // from the web service.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
    var onSiteExplorerSuccess = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
        // stop blocking requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
        loading = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        // A success response means the script node is inserted.  However, the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
        // utility is unable to detect whether or not the content of the script
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
        // node is correct, or even if there was a bad response (like a 404
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
        // error).  To get around this, we use the web service callback to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
        // verify that the script contents was correct.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
        if (o.tId in tIds) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
Y.log("The Get Utility has fired the success handler indicating that the " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
          "requested script has loaded and is ready for use.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
Y.log("The Get utility has fired onSuccess but the webservice callback did not " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
          "fire.  We could retry the transaction here, or notify the user of the " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
          "failure.", "info", "example");
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
    };
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 onSiteExplorerFailure = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
Y.log("The Get Utility failed.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
    var onSiteExplorerTimeout = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
Y.log("The Get Utility timed out.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
    //function to retrieve data from Yahoo! Site Explorer web service --
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
    // http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
    var getSiteExplorerData = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        Y.log("Button clicked; getSiteExplorerData firing.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        // block multiple requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        if (loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
            return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
        loading = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
        //Load the transitional state of the results section:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
        elResults.set("innerHTML", "<h3>Retrieving incoming links for " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
            Y.one("#searchString").get('value') + ":</h3>" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
            "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
            "alt='Please wait...'>");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
        //prepare the URL for the Yahoo Site Explorer API:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
        var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
            "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
            "&results=20&output=json&omit_inlinks=domain" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
            "&callback=MyNamespace.callback" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            "&query=" + encodeURIComponent(Y.one("#searchString").get('value'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
        //This simple line is the call to the Get Utility; we pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
        //in the URL and the configuration object, which in this case
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
        //consists merely of our success and failure callbacks:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
        var transactionObj = Y.Get.script(sURL, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
            onSuccess: onSiteExplorerSuccess,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
            onFailure: onSiteExplorerFailure,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
            onTimeout: onSiteExplorerTimeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
            timeout: 20000,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
            context: Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
        //The script method returns a single-field object containing the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
        //tranaction id:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
        Y.log("Get Utility transaction started; transaction object: " + Y.dump(transactionObj), "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
        // keep track of the current transaction id.  The transaction will be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
        // considered complete only if the web service callback is executed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
        current = transactionObj.tId; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
    MyNamespace.callback = function(results) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
        Y.log("Web service returned data to Y.example.SiteExplorer.callback; beginning to process.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
        // Mark the transaction as complete.  This will be checked by the onSuccess
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
        // handler to determine if the transaction really succeeded.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        tIds[current] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        //work with the returned data to extract meaningful fields:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
        var aResults = results.ResultSet.Result;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
        var totalLinks = results.ResultSet.totalResultsAvailable;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
        var returnedLinkCount = results.ResultSet.totalResultsReturned;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
        if(aResults) {//there are inbound links; process and display them:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
            //write header and open list of inbound links:          
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
            var html = "<h3>There are " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
                totalLinks + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
                " inbound links for this page; here are the first " + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
                returnedLinkCount +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
                ":</h3><ol>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
            //process list of inbound links:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
            for (var i=0; i < aResults.length; i++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
                html += "<li><strong>" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
                    aResults[i].Title +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
                    ":</strong> <a href='" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
                    aResults[i].Url +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
                    "'>" + aResults[i].Url +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
                    "</a></li>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            //close list of inbound links
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            html += "</ol>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
        } else {//no inbound links exist for this page:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
            var html = "<h3>There are no inbound links for the page specified.</h3>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
        //insert string into DOM:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
        elResults.set('innerHTML', html);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
    //suppress default form behavior
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
    Y.on("submit", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
        e.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
        getSiteExplorerData();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
    }, "#siteExplorer");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
	<h2 class="first">Using the Get Utility to Get a Script File with JSON-formatted Contents</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
<p>Here, we'll use <a href="http://developer.yahoo.com/yui/3/get/">the YUI Get Utility</a> to retrieve data via the <a href="http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html">Yahoo! Search Site-Explorer web service</a>, one of many Yahoo! APIs that support JSON.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
<p>First, we create a plain HTML form that will work for users who do not have JavaScript enabled:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="html4strict" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;container&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">  <span class="sc-1">&lt;!-- Use a real form that works without JavaScript: --&gt;</span></div></li><li class="li1"><div class="de1">  <span class="sc2">&lt;<span class="kw2">form</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;GET&quot;</span> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;http://siteexplorer.search.yahoo.com/advsearch&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;siteExplorer&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">    <span class="sc2">&lt;<span class="kw2">label</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;searchString&quot;</span>&gt;</span>Site URL:<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">label</span>&gt;</span></div></li><li class="li2"><div class="de2">    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;searchString&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;p&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;http://developer.yahoo.com/yui&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;40&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;bwm&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;i&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;bwms&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;p&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;siteExplorerButton&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Click here to get JSON data.&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">  <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">form</span>&gt;</span></div></li><li class="li2"><div class="de2">  <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;results&quot;</span>&gt;</span></div></li><li class="li1"><div class="de1">    <span class="sc-1">&lt;!--JSON output will be written to the DOM here--&gt;</span></div></li><li class="li1"><div class="de1">  <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span></div></li><li class="li1"><div class="de1"><span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="html4strict" style="font-family:monospace;"><span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;container&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
  <span class="sc-1">&lt;!-- Use a real form that works without JavaScript: --&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
  <span class="sc2">&lt;<span class="kw2">form</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;GET&quot;</span> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;http://siteexplorer.search.yahoo.com/advsearch&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;siteExplorer&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
    <span class="sc2">&lt;<span class="kw2">label</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;searchString&quot;</span>&gt;</span>Site URL:<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">label</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;searchString&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;p&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;http://developer.yahoo.com/yui&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;40&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;bwm&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;i&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;bwms&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;p&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
    <span class="sc2">&lt;<span class="kw2">input</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;siteExplorerButton&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Click here to get JSON data.&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
  <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">form</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
  <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;results&quot;</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
    <span class="sc-1">&lt;!--JSON output will be written to the DOM here--&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
  <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span></pre></div><textarea id="syntax1-plain"><div id="container">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
  <!-- Use a real form that works without JavaScript: -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
  <form method="GET" action="http://siteexplorer.search.yahoo.com/advsearch" id="siteExplorer">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
    <label for="searchString">Site URL:</label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
    <input type="text" name="searchString" id="p" value="http://developer.yahoo.com/yui" size="40">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
    <input type="hidden" name="bwm" value="i">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
    <input type="hidden" name="bwms" value="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
    <input type="submit" id="siteExplorerButton" value="Click here to get JSON data.">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
  </form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
  <div id="results">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
    <!--JSON output will be written to the DOM here-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
</div></textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
<p>With this in place, we can progressively enhance the form to create an in-page interaction for users with JavaScript turned on.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
<p>The most important JavaScript piece here is the method that we fire on form submission.  This method triggers our call to the Get Utility. This method, called <code>getSiteExplorerData</code>, accomplishes four things:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
<ol>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
  <li>It loads a transitional state for the display, alerting the user to the fact that data is being retrieved as a result of her action;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
  <li>It prepares the URL that will be passed to the Get Utility;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
  <li>It calls the Get Utility, passing in the URL of the script resource to load (in this case, the URL of our web service with the relevant paramaters assembled in the querystring);</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
  <li>It specifies the callback and the context in which the callback should
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
  run. Note that in this example the web service itself provides callback
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
  functionality, allowing us to pass a globally accessible callback function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
  name as one of the parameters of the REST API; you can see this reference
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
  below. As a result, we're making direct use of the intrinsic web service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
  callback in this example and just stubbing out the built-in Get Utility
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
  callback for the sake of illustration.</li> </ol> <p> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
<div id="syntax2" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//function to retrieve data from Yahoo!  Site Explorer web service --</span></div></li><li class="li1"><div class="de1"><span class="co1">// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="kw2">var</span> getSiteExplorerData <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Button clicked; getSiteExplorerData firing.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// block multiple requests</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>loading<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">return</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    loading <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//Load the transitional state of the results section:</span></div></li><li class="li1"><div class="de1">    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;h3&gt;Retrieving incoming links for &quot;</span> <span class="sy0">+</span></div></li><li class="li2"><div class="de2">        Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;:&lt;/h3&gt;&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&lt;img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;alt='Please wait...'&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//prepare the URL for the Yahoo Site Explorer API:</span></div></li><li class="li2"><div class="de2">    <span class="kw2">var</span> sURL <span class="sy0">=</span> <span class="st0">&quot;http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;results=20&amp;output=json&amp;omit_inlinks=domain&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;callback=MyNamespace.callback&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;query=&quot;</span> <span class="sy0">+</span> encodeURIComponent<span class="br0">&#40;</span>Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//This simple line is the call to the Get Utility; we pass</span></div></li><li class="li1"><div class="de1">    <span class="co1">//in the URL and the configuration object, which in this case</span></div></li><li class="li1"><div class="de1">    <span class="co1">//consists merely of our success and failure callbacks:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> transactionObj <span class="sy0">=</span> Y.<span class="me1">Get</span>.<span class="me1">script</span><span class="br0">&#40;</span>sURL<span class="sy0">,</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        onSuccess<span class="sy0">:</span> onSiteExplorerSuccess<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        onFailure<span class="sy0">:</span> onSiteExplorerFailure<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        onTimeout<span class="sy0">:</span> onSiteExplorerTimeout<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        timeout<span class="sy0">:</span> <span class="nu0">20000</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        context<span class="sy0">:</span> Y</div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//The script method returns a single-field object containing the</span></div></li><li class="li1"><div class="de1">    <span class="co1">//tranaction id:</span></div></li><li class="li1"><div class="de1">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Get Utility transaction started; transaction object: &quot;</span> <span class="sy0">+</span> Y.<span class="me1">dump</span><span class="br0">&#40;</span>transactionObj<span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// keep track of the current transaction id.  The transaction will be</span></div></li><li class="li1"><div class="de1">    <span class="co1">// considered complete only if the web service callback is executed.</span></div></li><li class="li1"><div class="de1">    current <span class="sy0">=</span> transactionObj.<span class="me1">tId</span><span class="sy0">;</span> </div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//function to retrieve data from Yahoo!  Site Explorer web service --</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
<span class="co1">// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
<span class="kw2">var</span> getSiteExplorerData <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Button clicked; getSiteExplorerData firing.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
    <span class="co1">// block multiple requests</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
    <span class="kw1">if</span> <span class="br0">&#40;</span>loading<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        <span class="kw1">return</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
    loading <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    <span class="co1">//Load the transitional state of the results section:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;h3&gt;Retrieving incoming links for &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;:&lt;/h3&gt;&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
        <span class="st0">&quot;&lt;img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
        <span class="st0">&quot;alt='Please wait...'&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
    <span class="co1">//prepare the URL for the Yahoo Site Explorer API:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
    <span class="kw2">var</span> sURL <span class="sy0">=</span> <span class="st0">&quot;http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
        <span class="st0">&quot;appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
        <span class="st0">&quot;&amp;results=20&amp;output=json&amp;omit_inlinks=domain&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        <span class="st0">&quot;&amp;callback=MyNamespace.callback&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
        <span class="st0">&quot;&amp;query=&quot;</span> <span class="sy0">+</span> encodeURIComponent<span class="br0">&#40;</span>Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
    <span class="co1">//This simple line is the call to the Get Utility; we pass</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
    <span class="co1">//in the URL and the configuration object, which in this case</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
    <span class="co1">//consists merely of our success and failure callbacks:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
    <span class="kw2">var</span> transactionObj <span class="sy0">=</span> Y.<span class="me1">Get</span>.<span class="me1">script</span><span class="br0">&#40;</span>sURL<span class="sy0">,</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
        onSuccess<span class="sy0">:</span> onSiteExplorerSuccess<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
        onFailure<span class="sy0">:</span> onSiteExplorerFailure<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
        onTimeout<span class="sy0">:</span> onSiteExplorerTimeout<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
        timeout<span class="sy0">:</span> <span class="nu0">20000</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
        context<span class="sy0">:</span> Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
    <span class="co1">//The script method returns a single-field object containing the</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
    <span class="co1">//tranaction id:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Get Utility transaction started; transaction object: &quot;</span> <span class="sy0">+</span> Y.<span class="me1">dump</span><span class="br0">&#40;</span>transactionObj<span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
    <span class="co1">// keep track of the current transaction id.  The transaction will be</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
    <span class="co1">// considered complete only if the web service callback is executed.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
    current <span class="sy0">=</span> transactionObj.<span class="me1">tId</span><span class="sy0">;</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
<span class="br0">&#125;</span><span class="sy0">;</span></pre></div><textarea id="syntax2-plain">//function to retrieve data from Yahoo!  Site Explorer web service --
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
var getSiteExplorerData = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
    Y.log("Button clicked; getSiteExplorerData firing.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
    // block multiple requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
    if (loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
        return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
    loading = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
    //Load the transitional state of the results section:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
    elResults.set("innerHTML", "<h3>Retrieving incoming links for " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
        Y.one("#searchString").get('value') + ":</h3>" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
        "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        "alt='Please wait...'>");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
    //prepare the URL for the Yahoo Site Explorer API:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
    var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
        "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
        "&results=20&output=json&omit_inlinks=domain" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
        "&callback=MyNamespace.callback" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
        "&query=" + encodeURIComponent(Y.one("#searchString").get('value'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
    //This simple line is the call to the Get Utility; we pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
    //in the URL and the configuration object, which in this case
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
    //consists merely of our success and failure callbacks:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
    var transactionObj = Y.Get.script(sURL, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
        onSuccess: onSiteExplorerSuccess,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
        onFailure: onSiteExplorerFailure,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
        onTimeout: onSiteExplorerTimeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
        timeout: 20000,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
        context: Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
    //The script method returns a single-field object containing the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
    //tranaction id:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
    Y.log("Get Utility transaction started; transaction object: " + Y.dump(transactionObj), "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
    // keep track of the current transaction id.  The transaction will be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    // considered complete only if the web service callback is executed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
    current = transactionObj.tId; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
};</textarea></div></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
<p>The full JavaScript codeblock for this example reads as follows:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// We are going to create a global variable to get the </span></div></li><li class="li1"><div class="de1"><span class="co1">// data back from the web service</span></div></li><li class="li1"><div class="de1">MyNamespace <span class="sy0">=</span> YUI.<span class="kw2">namespace</span><span class="br0">&#40;</span><span class="st0">'example.SiteExplorer'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2"><span class="kw2">var</span> elResults <span class="sy0">=</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#results&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    tIds <span class="sy0">=</span> <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    loading <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    current <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2"><span class="co1">// We use the Get Utility's success handler in conjunction with</span></div></li><li class="li1"><div class="de1"><span class="co1">// the web service callback in order to detect bad responses </span></div></li><li class="li1"><div class="de1"><span class="co1">// from the web service.</span></div></li><li class="li1"><div class="de1"><span class="kw2">var</span> onSiteExplorerSuccess <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">// stop blocking requests</span></div></li><li class="li1"><div class="de1">    loading <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// A success response means the script node is inserted.  However, the</span></div></li><li class="li1"><div class="de1">    <span class="co1">// utility is unable to detect whether or not the content of the script</span></div></li><li class="li2"><div class="de2">    <span class="co1">// node is correct, or even if there was a bad response (like a 404</span></div></li><li class="li1"><div class="de1">    <span class="co1">// error).  To get around this, we use the web service callback to</span></div></li><li class="li1"><div class="de1">    <span class="co1">// verify that the script contents was correct.</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>o.<span class="me1">tId</span> <span class="kw1">in</span> tIds<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility has fired the success handler indicating that the &quot;</span> <span class="sy0">+</span></div></li><li class="li2"><div class="de2">      <span class="st0">&quot;requested script has loaded and is ready for use.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get utility has fired onSuccess but the webservice callback did not &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">      <span class="st0">&quot;fire.  We could retry the transaction here, or notify the user of the &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">      <span class="st0">&quot;failure.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="kw2">var</span> onSiteExplorerFailure <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility failed.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="kw2">var</span> onSiteExplorerTimeout <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility timed out.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">//function to retrieve data from Yahoo! Site Explorer web service --</span></div></li><li class="li1"><div class="de1"><span class="co1">// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html</span></div></li><li class="li1"><div class="de1"><span class="kw2">var</span> getSiteExplorerData <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Button clicked; getSiteExplorerData firing.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// block multiple requests</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>loading<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">return</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    loading <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//Load the transitional state of the results section:</span></div></li><li class="li1"><div class="de1">    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;h3&gt;Retrieving incoming links for &quot;</span> <span class="sy0">+</span></div></li><li class="li2"><div class="de2">        Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;:&lt;/h3&gt;&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&lt;img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;alt='Please wait...'&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//prepare the URL for the Yahoo Site Explorer API:</span></div></li><li class="li2"><div class="de2">    <span class="kw2">var</span> sURL <span class="sy0">=</span> <span class="st0">&quot;http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;results=20&amp;output=json&amp;omit_inlinks=domain&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;callback=MyNamespace.callback&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">        <span class="st0">&quot;&amp;query=&quot;</span> <span class="sy0">+</span> encodeURIComponent<span class="br0">&#40;</span>Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//This simple line is the call to the Get Utility; we pass</span></div></li><li class="li1"><div class="de1">    <span class="co1">//in the URL and the configuration object, which in this case</span></div></li><li class="li1"><div class="de1">    <span class="co1">//consists merely of our success and failure callbacks:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> transactionObj <span class="sy0">=</span> Y.<span class="me1">Get</span>.<span class="me1">script</span><span class="br0">&#40;</span>sURL<span class="sy0">,</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        onSuccess<span class="sy0">:</span> onSiteExplorerSuccess<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        onFailure<span class="sy0">:</span> onSiteExplorerFailure<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        onTimeout<span class="sy0">:</span> onSiteExplorerTimeout<span class="sy0">,</span></div></li><li class="li1"><div class="de1">        timeout<span class="sy0">:</span> <span class="nu0">20000</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        context<span class="sy0">:</span> Y</div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//The script method returns a single-field object containing the</span></div></li><li class="li1"><div class="de1">    <span class="co1">//tranaction id:</span></div></li><li class="li1"><div class="de1">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Get Utility transaction started; transaction object: &quot;</span> <span class="sy0">+</span> Y.<span class="me1">dump</span><span class="br0">&#40;</span>transactionObj<span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// keep track of the current transaction id.  The transaction will be</span></div></li><li class="li1"><div class="de1">    <span class="co1">// considered complete only if the web service callback is executed.</span></div></li><li class="li1"><div class="de1">    current <span class="sy0">=</span> transactionObj.<span class="me1">tId</span><span class="sy0">;</span> </div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">MyNamespace.<span class="me1">callback</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>results<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Web service returned data to Y.example.SiteExplorer.callback; beginning to process.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// Mark the transaction as complete.  This will be checked by the onSuccess</span></div></li><li class="li2"><div class="de2">    <span class="co1">// handler to determine if the transaction really succeeded.</span></div></li><li class="li1"><div class="de1">    tIds<span class="br0">&#91;</span>current<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//work with the returned data to extract meaningful fields:</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> aResults <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">Result</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="kw2">var</span> totalLinks <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">totalResultsAvailable</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> returnedLinkCount <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">totalResultsReturned</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">if</span><span class="br0">&#40;</span>aResults<span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="co1">//there are inbound links; process and display them:</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        <span class="co1">//write header and open list of inbound links:          </span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> html <span class="sy0">=</span> <span class="st0">&quot;&lt;h3&gt;There are &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">            totalLinks <span class="sy0">+</span> </div></li><li class="li1"><div class="de1">            <span class="st0">&quot; inbound links for this page; here are the first &quot;</span> <span class="sy0">+</span> </div></li><li class="li1"><div class="de1">            returnedLinkCount <span class="sy0">+</span></div></li><li class="li2"><div class="de2">            <span class="st0">&quot;:&lt;/h3&gt;&lt;ol&gt;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//process list of inbound links:</span></div></li><li class="li1"><div class="de1">        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> aResults.<span class="me1">length</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            html <span class="sy0">+=</span> <span class="st0">&quot;&lt;li&gt;&lt;strong&gt;&quot;</span> <span class="sy0">+</span></div></li><li class="li2"><div class="de2">                aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Title</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">                <span class="st0">&quot;:&lt;/strong&gt; &lt;a href='&quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">                aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Url</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">                <span class="st0">&quot;'&gt;&quot;</span> <span class="sy0">+</span> aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Url</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">                <span class="st0">&quot;&lt;/a&gt;&lt;/li&gt;&quot;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//close list of inbound links</span></div></li><li class="li1"><div class="de1">        html <span class="sy0">+=</span> <span class="st0">&quot;&lt;/ol&gt;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><span class="co1">//no inbound links exist for this page:</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> html <span class="sy0">=</span> <span class="st0">&quot;&lt;h3&gt;There are no inbound links for the page specified.&lt;/h3&gt;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//insert string into DOM:</span></div></li><li class="li1"><div class="de1">    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">'innerHTML'</span><span class="sy0">,</span> html<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2"><span class="co1">//suppress default form behavior</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;submit&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    e.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    getSiteExplorerData<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#siteExplorer&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// We are going to create a global variable to get the </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
<span class="co1">// data back from the web service</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
MyNamespace <span class="sy0">=</span> YUI.<span class="kw2">namespace</span><span class="br0">&#40;</span><span class="st0">'example.SiteExplorer'</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
<span class="kw2">var</span> elResults <span class="sy0">=</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#results&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    tIds <span class="sy0">=</span> <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
    loading <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
    current <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
<span class="co1">// We use the Get Utility's success handler in conjunction with</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
<span class="co1">// the web service callback in order to detect bad responses </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
<span class="co1">// from the web service.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
<span class="kw2">var</span> onSiteExplorerSuccess <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
    <span class="co1">// stop blocking requests</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
    loading <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
    <span class="co1">// A success response means the script node is inserted.  However, the</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
    <span class="co1">// utility is unable to detect whether or not the content of the script</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
    <span class="co1">// node is correct, or even if there was a bad response (like a 404</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
    <span class="co1">// error).  To get around this, we use the web service callback to</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
    <span class="co1">// verify that the script contents was correct.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
    <span class="kw1">if</span> <span class="br0">&#40;</span>o.<span class="me1">tId</span> <span class="kw1">in</span> tIds<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility has fired the success handler indicating that the &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
      <span class="st0">&quot;requested script has loaded and is ready for use.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get utility has fired onSuccess but the webservice callback did not &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
      <span class="st0">&quot;fire.  We could retry the transaction here, or notify the user of the &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
      <span class="st0">&quot;failure.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
<span class="kw2">var</span> onSiteExplorerFailure <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility failed.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
<span class="kw2">var</span> onSiteExplorerTimeout <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>o<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;The Get Utility timed out.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
<span class="co1">//function to retrieve data from Yahoo! Site Explorer web service --</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
<span class="co1">// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
<span class="kw2">var</span> getSiteExplorerData <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Button clicked; getSiteExplorerData firing.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
    <span class="co1">// block multiple requests</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
    <span class="kw1">if</span> <span class="br0">&#40;</span>loading<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
        <span class="kw1">return</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
    loading <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
    <span class="co1">//Load the transitional state of the results section:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&lt;h3&gt;Retrieving incoming links for &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
        Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;:&lt;/h3&gt;&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
        <span class="st0">&quot;&lt;img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
        <span class="st0">&quot;alt='Please wait...'&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
    <span class="co1">//prepare the URL for the Yahoo Site Explorer API:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
    <span class="kw2">var</span> sURL <span class="sy0">=</span> <span class="st0">&quot;http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
        <span class="st0">&quot;appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
        <span class="st0">&quot;&amp;results=20&amp;output=json&amp;omit_inlinks=domain&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
        <span class="st0">&quot;&amp;callback=MyNamespace.callback&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
        <span class="st0">&quot;&amp;query=&quot;</span> <span class="sy0">+</span> encodeURIComponent<span class="br0">&#40;</span>Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#searchString&quot;</span><span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'value'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
    <span class="co1">//This simple line is the call to the Get Utility; we pass</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
    <span class="co1">//in the URL and the configuration object, which in this case</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
    <span class="co1">//consists merely of our success and failure callbacks:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
    <span class="kw2">var</span> transactionObj <span class="sy0">=</span> Y.<span class="me1">Get</span>.<span class="me1">script</span><span class="br0">&#40;</span>sURL<span class="sy0">,</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
        onSuccess<span class="sy0">:</span> onSiteExplorerSuccess<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
        onFailure<span class="sy0">:</span> onSiteExplorerFailure<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
        onTimeout<span class="sy0">:</span> onSiteExplorerTimeout<span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
        timeout<span class="sy0">:</span> <span class="nu0">20000</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
        context<span class="sy0">:</span> Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
    <span class="co1">//The script method returns a single-field object containing the</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
    <span class="co1">//tranaction id:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Get Utility transaction started; transaction object: &quot;</span> <span class="sy0">+</span> Y.<span class="me1">dump</span><span class="br0">&#40;</span>transactionObj<span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
    <span class="co1">// keep track of the current transaction id.  The transaction will be</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
    <span class="co1">// considered complete only if the web service callback is executed.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
    current <span class="sy0">=</span> transactionObj.<span class="me1">tId</span><span class="sy0">;</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
MyNamespace.<span class="me1">callback</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>results<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
    Y.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Web service returned data to Y.example.SiteExplorer.callback; beginning to process.&quot;</span><span class="sy0">,</span> <span class="st0">&quot;info&quot;</span><span class="sy0">,</span> <span class="st0">&quot;example&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
    <span class="co1">// Mark the transaction as complete.  This will be checked by the onSuccess</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
    <span class="co1">// handler to determine if the transaction really succeeded.</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
    tIds<span class="br0">&#91;</span>current<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
    <span class="co1">//work with the returned data to extract meaningful fields:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
    <span class="kw2">var</span> aResults <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">Result</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
    <span class="kw2">var</span> totalLinks <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">totalResultsAvailable</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
    <span class="kw2">var</span> returnedLinkCount <span class="sy0">=</span> results.<span class="me1">ResultSet</span>.<span class="me1">totalResultsReturned</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
    <span class="kw1">if</span><span class="br0">&#40;</span>aResults<span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="co1">//there are inbound links; process and display them:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
        <span class="co1">//write header and open list of inbound links:          </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
        <span class="kw2">var</span> html <span class="sy0">=</span> <span class="st0">&quot;&lt;h3&gt;There are &quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
            totalLinks <span class="sy0">+</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
            <span class="st0">&quot; inbound links for this page; here are the first &quot;</span> <span class="sy0">+</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
            returnedLinkCount <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
            <span class="st0">&quot;:&lt;/h3&gt;&lt;ol&gt;&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
        <span class="co1">//process list of inbound links:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> aResults.<span class="me1">length</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
            html <span class="sy0">+=</span> <span class="st0">&quot;&lt;li&gt;&lt;strong&gt;&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
                aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Title</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
                <span class="st0">&quot;:&lt;/strong&gt; &lt;a href='&quot;</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
                aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Url</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
                <span class="st0">&quot;'&gt;&quot;</span> <span class="sy0">+</span> aResults<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">Url</span> <span class="sy0">+</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
                <span class="st0">&quot;&lt;/a&gt;&lt;/li&gt;&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
        <span class="co1">//close list of inbound links</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
        html <span class="sy0">+=</span> <span class="st0">&quot;&lt;/ol&gt;&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><span class="co1">//no inbound links exist for this page:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
        <span class="kw2">var</span> html <span class="sy0">=</span> <span class="st0">&quot;&lt;h3&gt;There are no inbound links for the page specified.&lt;/h3&gt;&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
    <span class="co1">//insert string into DOM:</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
    elResults.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">'innerHTML'</span><span class="sy0">,</span> html<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
<span class="co1">//suppress default form behavior</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;submit&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
    e.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
    getSiteExplorerData<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="st0">&quot;#siteExplorer&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
&nbsp;</pre></div><textarea id="syntax3-plain">// We are going to create a global variable to get the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
// data back from the web service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
MyNamespace = YUI.namespace('example.SiteExplorer');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
var elResults = Y.one("#results"),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
    tIds = {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
    loading = false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
    current = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
// We use the Get Utility's success handler in conjunction with
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
// the web service callback in order to detect bad responses 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
// from the web service.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
var onSiteExplorerSuccess = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
    // stop blocking requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
    loading = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
    // A success response means the script node is inserted.  However, the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
    // utility is unable to detect whether or not the content of the script
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
    // node is correct, or even if there was a bad response (like a 404
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
    // error).  To get around this, we use the web service callback to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
    // verify that the script contents was correct.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
    if (o.tId in tIds) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
Y.log("The Get Utility has fired the success handler indicating that the " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
      "requested script has loaded and is ready for use.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
Y.log("The Get utility has fired onSuccess but the webservice callback did not " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
      "fire.  We could retry the transaction here, or notify the user of the " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
      "failure.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
var onSiteExplorerFailure = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
Y.log("The Get Utility failed.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
var onSiteExplorerTimeout = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
Y.log("The Get Utility timed out.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
//function to retrieve data from Yahoo! Site Explorer web service --
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
var getSiteExplorerData = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    Y.log("Button clicked; getSiteExplorerData firing.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
    // block multiple requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
    if (loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
        return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
    loading = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
    //Load the transitional state of the results section:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
    elResults.set("innerHTML", "<h3>Retrieving incoming links for " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
        Y.one("#searchString").get('value') + ":</h3>" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
        "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
        "alt='Please wait...'>");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
    //prepare the URL for the Yahoo Site Explorer API:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
    var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
        "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
        "&results=20&output=json&omit_inlinks=domain" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
        "&callback=MyNamespace.callback" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
        "&query=" + encodeURIComponent(Y.one("#searchString").get('value'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
    //This simple line is the call to the Get Utility; we pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
    //in the URL and the configuration object, which in this case
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
    //consists merely of our success and failure callbacks:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
    var transactionObj = Y.Get.script(sURL, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
        onSuccess: onSiteExplorerSuccess,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
        onFailure: onSiteExplorerFailure,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
        onTimeout: onSiteExplorerTimeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
        timeout: 20000,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
        context: Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
    //The script method returns a single-field object containing the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
    //tranaction id:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
    Y.log("Get Utility transaction started; transaction object: " + Y.dump(transactionObj), "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
    // keep track of the current transaction id.  The transaction will be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
    // considered complete only if the web service callback is executed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
    current = transactionObj.tId; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
MyNamespace.callback = function(results) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
    Y.log("Web service returned data to Y.example.SiteExplorer.callback; beginning to process.", "info", "example");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
    // Mark the transaction as complete.  This will be checked by the onSuccess
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
    // handler to determine if the transaction really succeeded.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
    tIds[current] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
    //work with the returned data to extract meaningful fields:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
    var aResults = results.ResultSet.Result;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
    var totalLinks = results.ResultSet.totalResultsAvailable;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
    var returnedLinkCount = results.ResultSet.totalResultsReturned;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
    if(aResults) {//there are inbound links; process and display them:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
        //write header and open list of inbound links:          
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
        var html = "<h3>There are " +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
            totalLinks + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
            " inbound links for this page; here are the first " + 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
            returnedLinkCount +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
            ":</h3><ol>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
        //process list of inbound links:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
        for (var i=0; i < aResults.length; i++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
            html += "<li><strong>" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
                aResults[i].Title +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
                ":</strong> <a href='" +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
                aResults[i].Url +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
                "'>" + aResults[i].Url +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
                "</a></li>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
        //close list of inbound links
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
        html += "</ol>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
    } else {//no inbound links exist for this page:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
        var html = "<h3>There are no inbound links for the page specified.</h3>";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
    //insert string into DOM:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
    elResults.set('innerHTML', html);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
//suppress default form behavior
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
Y.on("submit", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
    e.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
    getSiteExplorerData();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
}, "#siteExplorer");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
</textarea></div>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
    Get Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
								<li class='selected'><a href='../get/get-script-basic.html'>Getting a Script Node with JSON Data</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
						<h4>More Get Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
							<!-- <li><a href="http://developer.yahoo.com/yui/get/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
<li><a href="../../api/Get.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</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="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</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="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="selected "><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</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="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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 Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">Other Useful YUI 3 Resources</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="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></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
var yuiConfig = {base:"../../build/", timeout: 10000, filter:"debug", logInclude: {get:true, event:true, example:true}};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
</html>