<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://developer.myspace.com/Community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chez Chris : example code</title><link>http://developer.myspace.com/Community/blogs/chris/archive/tags/example+code/default.aspx</link><description>Tags: example code</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20910.1126)</generator><item><title>Example App: Dream Interpretation</title><link>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-dream-interpretation.aspx</link><pubDate>Sun, 24 Feb 2008 01:53:00 GMT</pubDate><guid isPermaLink="false">8e485011-333f-425c-b84a-1febdb8bfab0:1798</guid><dc:creator>Chris</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developer.myspace.com/Community/blogs/chris/rsscomments.aspx?PostID=1798</wfw:commentRss><comments>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-dream-interpretation.aspx#comments</comments><description>  &lt;div id="cb_content"&gt;
        

    &lt;p&gt;For the purposes of demoing OpenSocial on MySpace to the SixApart Hackathon, I put together a dream interpretation application. This application is intended to demo a piece of third party functionality integrated into MySpace. People asked for the source and a brief explanation, so we&amp;#39;ll put that in this blog post. This isn&amp;#39;t exactly a working app--it&amp;#39;s more of a bunch of source code that you can use to see various clumps of OpenSocial glue working. It highlights how to make requests to a third party site and combine the results with MySpace friend information. &lt;/p&gt;

    &lt;p&gt;The application profile is&lt;a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;amp;friendid=315672404"&gt; here&lt;/a&gt;:&lt;/p&gt;
    &lt;p&gt;A profile with the app installed is &lt;a href="http://www.myspace.com/lemmsjid3"&gt;here&lt;/a&gt;:&lt;/p&gt;
    
    &lt;p&gt;To make this application, I took a pre-existing web site (a dream interpretation
        site I put together a long time ago), called http://www.enhypniomancy.com. This
        site has existed over the years in several different languages, on several different
        hosting companies, and using several different databases. Now it&amp;#39;s written in C#,
        so you&amp;#39;ll have to follow C# code to get the server stuff. If you&amp;#39;ve encountered c-style syntax before, it should be fairly easy
        to extrapolate that code into your server-side language of choice.
    &lt;/p&gt;
    &lt;p&gt;In order to work, the Dream Application needs to allow users to save dreams, interpret dreams, and request dreams on behalf of themselves and their friends. To enable this on the server-side, enhypniomancy.com exposes a set of JSON-formatted HTTP calls
        that encompass the following simple functionality: &lt;/p&gt;

        &lt;ul&gt;&lt;li&gt;Get dream (dream id)&lt;/li&gt;&lt;li&gt;Get
        dreams (user id)&lt;/li&gt;&lt;li&gt;Get friends&amp;#39; dreams (multiple user ids)&lt;/li&gt;
   
    &lt;li&gt;Add dream (user id, title, narrative)&lt;/li&gt;&lt;li&gt;Add interpretation (dream id, user id,
        interpretation)&lt;/li&gt;&lt;li&gt;Delete dream (dream id)&lt;/li&gt;&lt;/ul&gt;
    &lt;p&gt;
        That functionality is available as a simple
        set of GET URLs. For example, the URL to get a dream is: 
    &lt;/p&gt;
    &lt;pre&gt;&lt;br /&gt;        http://www.enhypniomancy.com/Soc.ashx?command=getdream&amp;amp;dreamid=6&lt;br /&gt;    &lt;/pre&gt;
    &lt;p&gt;Simple enough. For those of you familiar with ASP.NET, the .ashx file is a HttpHandler, which is
        a simple request/response piping mechanism--functionally similar to a Java servlet.
        When you look at the source, you&amp;#39;ll see some database glue. I&amp;#39;m not going to release
        the database glue code because it isn&amp;#39;t relevant. &lt;/p&gt;
        &lt;h2&gt;Server side code (hosted on third party site)&lt;/h2&gt;
        &lt;p&gt;Below is the source for the server-side HttpHandler:&lt;/p&gt;
             &lt;span id="ctl00_MainContentPlaceHolder_Code1"&gt;&lt;a class="" title="code snippet1" name="code snippet1"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 1 : Dream App Server-Side C# (hosted on www.enhypniomancy.com&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;&amp;lt;%&lt;/span&gt;&lt;span&gt;@ WebHandler Language&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;C#&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; Class&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Soc&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;%&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; System.Text;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; System.Web;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; System.Web.Script.Serialization;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; Enhypniomancy.DreamDomain.CollectionClasses;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt; Enhypniomancy.DreamDomain.EntityClasses;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonDreamResponse&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; ErrorMessage;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;bool&lt;/span&gt;&lt;span&gt; HadError;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; ResponseMessage;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonDream&lt;br /&gt;{&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; DreamId;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; Title;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; Narrative;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; Date;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; Interpretations;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; UserId;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; System.Collections.Generic.IList&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;JSonInterp&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; Interps &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; System.Collections.Generic.List&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;JSonInterp&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonInterp&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; Interpretation;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; UserId;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; InterpretationDate;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonFriend&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; UserId;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; System.Collections.Generic.IList&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;JSonDream&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; Dreams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; System.Collections.Generic.List&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;JSonDream&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonDreamList : JSonDreamResponse&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; JSonDream[] Dreams;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; JSonFriendDreamList : JSonDreamResponse&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; JSonFriend[] Friends;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; Soc : IHttpHandler {&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ProcessRequest (HttpContext context) {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; command &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;command&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;switch&lt;/span&gt;&lt;span&gt;(command)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getdream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    GetDream(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getdreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    GetDreams(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getfrienddreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    GetFriendDreams(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;adddream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    EnterDream(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;addinterpretation&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    EnterInterpretation(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;deletedream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    DeleteDream(context);&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; :&lt;br /&gt;                {&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;throw&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; ApplicationException(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Command: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; command &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; is not supported&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        context.Response.ContentType &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;text/json&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;       context.Response.Cache.SetExpires(DateTime.Now.AddYears(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;));&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; GetUserId(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;userid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; GetFriendDreams(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; friendArray &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friendidlist&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;[] friendIdStringArray &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                friendArray.Split(&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;[]{&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;},StringSplitOptions.RemoveEmptyEntries);            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;[] friendIdIntArray &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;[friendIdStringArray.Length];&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; friendIdStringArray.Length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            {&lt;br /&gt;                friendIdIntArray[i] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(friendIdStringArray[i]);&lt;br /&gt;            }&lt;br /&gt;            SocialDreamCollection sdc &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamCollection();&lt;br /&gt;&lt;br /&gt;            SD.LLBLGen.Pro.ORMSupportClasses.IPredicate predicate &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SD.LLBLGen.Pro.ORMSupportClasses.FieldCompareRangePredicate(&lt;br /&gt;                    Enhypniomancy.DreamDomain.HelperClasses.SocialDreamFields.UserId, friendIdIntArray);&lt;br /&gt;&lt;br /&gt;            sdc.GetMulti(predicate);&lt;br /&gt;            JSonFriendDreamList friendList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonFriendDreamList();&lt;br /&gt;            friendList.Friends &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonFriend[friendIdIntArray.Length];&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; friendIdIntArray.Length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt; )&lt;br /&gt;            {&lt;br /&gt;                friendList.Friends[i] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonFriend();&lt;br /&gt;                friendList.Friends[i].UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendIdIntArray[i];                &lt;br /&gt;            }&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; sdc.Count; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    SocialDreamEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sdc[i];&lt;br /&gt;                    JSonDream dream &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDream();&lt;br /&gt;                    MapJSonToSocialDream(dream, sde);&lt;br /&gt;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; j &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; j &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; friendIdIntArray.Length; j&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(friendList.Friends[j].UserId &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; sde.UserId)&lt;br /&gt;                        {&lt;br /&gt;                            friendList.Friends[j].Dreams.Add(dream);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            WriteToOutput(context,friendList);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;(Exception exc)&lt;br /&gt;        {&lt;br /&gt;            WriteError(context,exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; DeleteDream(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            SocialDreamEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamEntity(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            sde.SocialDreamInterpretation.DeleteMulti();&lt;br /&gt;            &lt;br /&gt;            sde.Delete();     &lt;br /&gt;            &lt;br /&gt;            WriteResponse(context,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Successfully deleted dream &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]));      &lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;(Exception exc)&lt;br /&gt;        {&lt;br /&gt;            WriteError(context,exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; EnterInterpretation(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            Enhypniomancy.DreamDomain.EntityClasses.SocialDreamInterpretationEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamInterpretationEntity();&lt;br /&gt;&lt;br /&gt;            sde.DreamId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;            sde.InterpreterUserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;userid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;            sde.InterpretationDate &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; DateTime.Now;&lt;br /&gt;            sde.Interpretation &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpretation&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;            sde.Save();&lt;br /&gt;            &lt;br /&gt;            WriteResponse(context,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Saved interpreation for dream &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                sde.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; by interpreter &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; sde.InterpreterUserId);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt; (Exception exc)&lt;br /&gt;        {&lt;br /&gt;            WriteError(context, exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; EnterDream(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            Enhypniomancy.DreamDomain.EntityClasses.SocialDreamEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamEntity();&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; userId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; GetUserId(context);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; narrative &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;narrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;&lt;br /&gt;            sde.DateCreated &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; DateTime.Now;&lt;br /&gt;            sde.UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userId;&lt;br /&gt;            sde.Narrative &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; narrative;&lt;br /&gt;            sde.Title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; title;&lt;br /&gt;            sde.Save();&lt;br /&gt;&lt;br /&gt;            WriteResponse(context,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Successfully saved dream &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; sde.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; with title &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; sde.Title &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; to user &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; userId);&lt;br /&gt;           &lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;(Exception exc)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            WriteError(context,exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; WriteToOutput(HttpContext context, &lt;/span&gt;&lt;span&gt;object&lt;/span&gt;&lt;span&gt; obj)&lt;br /&gt;    {&lt;br /&gt;        System.Text.StringBuilder output &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; StringBuilder();&lt;br /&gt;        System.Web.Script.Serialization.JavaScriptSerializer jss &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JavaScriptSerializer();&lt;br /&gt;        jss.Serialize(obj, output);&lt;br /&gt;        context.Response.Write(output);&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; WriteError(HttpContext context, &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; message)&lt;br /&gt;    {&lt;br /&gt;        JSonDreamResponse e &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDreamResponse();&lt;br /&gt;        e.ErrorMessage &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; message;&lt;br /&gt;&lt;br /&gt;        e.HadError &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        WriteToOutput(context,e);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; WriteResponse(HttpContext context,&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; message)&lt;br /&gt;    {&lt;br /&gt;        JSonDreamResponse jdr &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDreamResponse();&lt;br /&gt;        jdr.ResponseMessage &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; message;&lt;br /&gt;        jdr.HadError &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        WriteToOutput(context,jdr);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; GetDream(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            SocialDreamEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamEntity(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]));&lt;br /&gt;&lt;br /&gt;            JSonDreamList jdl &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDreamList();&lt;br /&gt;            jdl.Dreams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDream[&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;];&lt;br /&gt;            JSonDream jdr &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDream();&lt;br /&gt;            MapJSonToSocialDream(jdr,sde);&lt;br /&gt;&lt;br /&gt;            SocialDreamInterpretationCollection sdic &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamInterpretationCollection();&lt;br /&gt;            sdic.GetMulti((Enhypniomancy.DreamDomain.HelperClasses.SocialDreamInterpretationFields.DreamId &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                           jdr.DreamId));&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;foreach&lt;/span&gt;&lt;span&gt;(SocialDreamInterpretationEntity sdie &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; sdic)&lt;br /&gt;            {&lt;br /&gt;                JSonInterp jsi &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonInterp();&lt;br /&gt;                jsi.Interpretation &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sdie.Interpretation;&lt;br /&gt;                jsi.InterpretationDate &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sdie.InterpretationDate.ToShortDateString();&lt;br /&gt;                jsi.UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sdie.InterpreterUserId;&lt;br /&gt;                jdr.Interps.Add(jsi);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            jdl.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; jdr;&lt;br /&gt;            &lt;br /&gt;            WriteToOutput(context,jdl);&lt;br /&gt;                        &lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;(Exception exc)&lt;br /&gt;        {&lt;br /&gt;            WriteError(context,exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; MapJSonToSocialDream(JSonDream dream, SocialDreamEntity sde)&lt;br /&gt;    {&lt;br /&gt;        dream.Date &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.DateCreated.ToShortDateString();&lt;br /&gt;        dream.Narrative &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.Narrative;&lt;br /&gt;        dream.DreamId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.DreamId;&lt;br /&gt;        dream.Title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.Title;&lt;br /&gt;        dream.UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.UserId;&lt;br /&gt;        dream.Interpretations &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sde.SocialDreamInterpretation.Count;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; GetDreams(HttpContext context)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;try&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; userId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;.Parse(context.Request[&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;userid&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;&lt;br /&gt;            Enhypniomancy.DreamDomain.CollectionClasses.SocialDreamCollection sdc &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SocialDreamCollection();&lt;br /&gt;&lt;br /&gt;            SD.LLBLGen.Pro.ORMSupportClasses.ISortExpression ise &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; SD.LLBLGen.Pro.ORMSupportClasses.SortExpression(&lt;br /&gt;                (Enhypniomancy.DreamDomain.HelperClasses.SocialDreamFields.DateCreated &lt;/span&gt;&lt;span&gt;|&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                 SD.LLBLGen.Pro.ORMSupportClasses.SortOperator.Descending));&lt;br /&gt;            &lt;br /&gt;            sdc.GetMulti(&lt;br /&gt;                (Enhypniomancy.DreamDomain.HelperClasses.SocialDreamFields.UserId &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; userId),&lt;/span&gt;&lt;span&gt;15&lt;/span&gt;&lt;span&gt;, ise);&lt;br /&gt;            JSonDreamList jdl &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDreamList();&lt;br /&gt;            jdl.Dreams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDream[sdc.Count];&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; sdc.Count; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            {&lt;br /&gt;                JSonDream dream &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; JSonDream();&lt;br /&gt;                SocialDreamEntity sde &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; sdc[i];&lt;br /&gt;                MapJSonToSocialDream(dream, sde);&lt;br /&gt;&lt;br /&gt;                jdl.Dreams[i] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dream;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            WriteToOutput(context, jdl);&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;catch&lt;/span&gt;&lt;span&gt;(Exception exc)&lt;br /&gt;        {&lt;br /&gt;            WriteError(context,exc.ToString());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;bool&lt;/span&gt;&lt;span&gt; IsReusable {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;get&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;

             &lt;p&gt;The handler uses the Microsoft ASP.NET AJAX Framework to serialize objects into JSON. You&amp;#39;ll notice the complete lack of security. People could do anything on behalf of anyone else by munging requests. For this to be a secure application, I would enable OAuth support on the server side. As soon as I have that done I&amp;#39;ll update this blog post, but this article is really focused more on the client--JavaScript using the OpenSocial API.
             &lt;/p&gt;
&lt;h2&gt;OpenSocial JavaScript code on MySpace&lt;/h2&gt;
        &lt;p&gt;
        Now on to the JavaScript! I&amp;#39;m not trying to wow anyone here with
        my JavaScript abilities. I do like my little &amp;#39;renderView&amp;#39; system, which takes a
        set of divs and switches them on or off depending on what view you want to render,
        but it&amp;#39;s been done better, I&amp;#39;m sure. Unfortunately (or fortunately, depending on
        your leanings), the app only works on FireFox. If I get it working on IE I&amp;#39;ll send
        along an update. Below is the entirety of the application (you could cut and paste this into an app of your own and it would work):
    &lt;/p&gt;
    &lt;span&gt;&lt;a class="" title="working app1" name="working app1"&gt;&lt;/a&gt;&lt;h5&gt;working app 1 : Dream App JavaScript Source&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;style &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt;=&amp;quot;text/css&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    body &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        margin&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 0px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; black&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #ui &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-position&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; bottom&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #000000&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 430px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 430px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #FFFFFF&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        background-image&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        url(http://www.enhypniomancy.com/images/DreamsTitle.jpg)&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-repeat&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; no-repeat&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    #nav &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #000066&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border-bottom-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #FF0000&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        border-bottom-width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; thin&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border-bottom-style&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; dashed&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    a &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #FF00FF&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        cursor&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; pointer&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    a:active &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #FF0000&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    a:hover &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; #00FFFF&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    .view_Visible &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 100%&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 100%&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        display&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; inline&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        word-wrap&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; normal&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    .view_Invisible &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        display&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; none&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #canvas &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        overflow&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; auto&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; thin solid #800000&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 85%&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        margin&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 15px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        padding&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 5px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #Text2 &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 177px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 373px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    textarea &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 68px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 375px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    span &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    pre &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-family&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Arial&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        font-style&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; italic&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;ui&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;nav&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a &lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;=&amp;quot;Dreams&amp;quot;&lt;/span&gt;&lt;span&gt; onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;renderView(&amp;#39;dreams&amp;#39;)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Dreams&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        | &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a &lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;=&amp;quot;Enter Dream&amp;quot;&lt;/span&gt;&lt;span&gt; onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;renderView(&amp;#39;newdream&amp;#39;);&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Enter Dream&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        | &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a &lt;/span&gt;&lt;span&gt;onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;renderView(&amp;#39;friends&amp;#39;)&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Friends&amp;#39; Dreams&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        | &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a &lt;/span&gt;&lt;span&gt;onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;renderView(&amp;#39;search&amp;#39;);&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Search&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        | &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a &lt;/span&gt;&lt;span&gt;onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;renderView(&amp;#39;help&amp;#39;);&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;Help!&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;canvas&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;dreams&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;lastDreams&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;friends&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            Friends&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;view&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            View dream&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;interpret&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            Interpret dream&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                Title: &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;span &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;interpTitle&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;span&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                Narrative:&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;span &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;interpNarrative&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;span&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                Your interpretation:&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;textarea &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;interpInput&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;textarea&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;input &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt;=&amp;quot;button&amp;quot;&lt;/span&gt;&lt;span&gt; value&lt;/span&gt;&lt;span&gt;=&amp;quot;Submit your interpretation&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;addInterp()&amp;quot;&lt;/span&gt;&lt;span&gt; id&lt;/span&gt;&lt;span&gt;=&amp;quot;interpButton&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;search&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            Search&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;help&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Visible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            Welcome to the land of dream interpretations!&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            You can use this application to journal your dreams, &lt;br /&gt;            view your friends&amp;#39; dreams, &lt;br /&gt;            and interpret your friends&amp;#39; dreams. &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            You can also search through your and your friends&amp;#39; dreams. &lt;br /&gt;            Ever wonder if themes &lt;br /&gt;            are floating between you and your friends&amp;#39; dreams? Hmm?&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            Thought so.&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;newdream&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            Enter a new dream into your journal:&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            Title: &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;input &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;dreamTitle&amp;quot;&lt;/span&gt;&lt;span&gt; type&lt;/span&gt;&lt;span&gt;=&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            Narrative:&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;textarea &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;dreamNarrative&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;textarea&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;input &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;button_EnterDream&amp;quot;&lt;/span&gt;&lt;span&gt; type&lt;/span&gt;&lt;span&gt;=&amp;quot;button&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            value&lt;/span&gt;&lt;span&gt;=&amp;quot;Enter dream...&amp;quot;&lt;/span&gt;&lt;span&gt; onclick&lt;/span&gt;&lt;span&gt;=&amp;quot;enterDream()&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;waiting&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;blink&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;                Working...&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;blink&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span&gt; class&lt;/span&gt;&lt;span&gt;=&amp;quot;view_Invisible&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        Errors:&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;br&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;script &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;####Helper functions####&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; showError(errorMessage){&lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;error&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; errorDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;error&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        errorDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; errorMessage &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;####Globals and class definitions####&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    User.prototype.getDisplayHtml &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; response &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;img width=\&amp;quot;45px\&amp;quot; src=\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserThumbnail &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;a href=\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserProfileURL &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserName &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; response;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; currentUserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendIdList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; Array();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendDictionary &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; currentUser;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerId;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; User(userId, userName, userThumnail, userProfileURL){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userId;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userName;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserThumbnail &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userThumnail;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserProfileURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userProfileURL;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; init(){&lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;working&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        populateUserData();&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; populateUserData(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;1: Create the DataRequest.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dataRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.newDataRequest();&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;2: Prepare RequestItems to be added to the DataRequest             &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            dataRequest.newFetchPeopleRequest(&lt;br /&gt;                opensocial.DataRequest.Group.OWNER_FRIENDS);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; personRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            dataRequest.newFetchPersonRequest(&lt;br /&gt;                opensocial.DataRequest.PersonId.OWNER);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            dataRequest.newFetchPersonRequest(&lt;br /&gt;                opensocial.DataRequest.PersonId.VIEWER);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;3: Add the RequestItems to the DataRequest.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        dataRequest.add(friendRequest);&lt;br /&gt;        dataRequest.add(personRequest);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;4: Send it along, and expect a function called responseCallback(dataResponse) to be executed when it&amp;#39;s done.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        dataRequest.send(populateUserData_Callback);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; populateUserData_Callback(dataResponse){&lt;br /&gt;    &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; errorHappened &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.hadError();&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;errorHappened) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendsData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                dataResponse.get(&lt;br /&gt;                    opensocial.DataRequest.Group.OWNER_FRIENDS).getData();&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                dataResponse.get(&lt;br /&gt;                    opensocial.DataRequest.PersonId.OWNER).getData();&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewer &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                dataResponse.get(&lt;br /&gt;                    opensocial.DataRequest.PersonId.VIEWER);&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (viewer &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    dataResponse.get(&lt;br /&gt;                        opensocial.DataRequest.PersonId.VIEWER).getData();&lt;br /&gt;                viewerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    viewerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;                viewerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                ownerData.getField(opensocial.Person.Field.NAME);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                ownerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                ownerData.getField(opensocial.Person.Field.PROFILE_URL);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerImage &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                ownerData.getField(opensocial.Person.Field.THUMBNAIL_URL);&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerObj &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; User(ownerId, ownerName, ownerImage, ownerURL);&lt;br /&gt;            currentUser &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerObj;&lt;br /&gt;            currentUserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerId;&lt;br /&gt;            &lt;br /&gt;            friendsData.each(&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(friendData){&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendData.getField(opensocial.Person.Field.NAME);&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendThumbnailUrl &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendData.getField(opensocial.Person.Field.ID);&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendData.getField(opensocial.Person.Field.PROFILE_URL);&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendObj &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; User(friendId, friendName, friendThumbnailUrl, friendURL);&lt;br /&gt;                friendDictionary[friendId] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendObj;&lt;br /&gt;                friendIdList.push(friendId);&lt;br /&gt;            });&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Let&amp;#39;s shove the current user into the &amp;quot;friendDictionary&amp;quot; so we can look him/her up without silly if login&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;            friendDictionary[currentUserId] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; currentUser;&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;            renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;help&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;            showError(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Error on dataresponse&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;End OpenSocial integration point&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;View management code&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Views assume that there is a &amp;lt;div&amp;gt; whose ID corresponds to the name of the view&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; currentView &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; views &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; Array(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;search&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;help&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;newdream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpret&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;waiting&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; switchOnWaitingView(message){&lt;br /&gt;    &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; views.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; view &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; views[i];&lt;br /&gt;            document.getElementById(view).setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Invisible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; waitingDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;waiting&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;        waitingDiv.innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;blink&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; message &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/blink&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        waitingDiv.setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Visible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; switchOffWaitingView(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; waitingDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;waiting&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;        &lt;br /&gt;        waitingDiv.setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Invisible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; views.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; view &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; views[i];&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (view &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; currentView) &lt;br /&gt;                document.getElementById(view).setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Visible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; renderView(name){&lt;br /&gt;        currentView &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; name;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; views.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; view &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; views[i];&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (view &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; name) {&lt;br /&gt;                document.getElementById(view)&lt;br /&gt;                    .setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Visible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;                document.getElementById(view)&lt;br /&gt;                    .setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view_Invisible&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;For a specific initialize function for a view, add it to the below. Some views do not&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;require initialization because they do not grab data.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;switch&lt;/span&gt;&lt;span&gt; (name) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                initializeView_dreams();&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                initializeView_frienddreams();&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;newdream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                initializeView_newdream();&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_frienddreams(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; intArray &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; friendIdList.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            intArray &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; friendIdList[i] &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; finalIntArray &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; intArray.substr(&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;, intArray.length &lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.friendidlist &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; intArray;&lt;br /&gt;        &lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getfrienddreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;br /&gt;            initializeView_frienddreams_Callback, params);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_frienddreams_Callback(response){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendDreamDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;The following friends have posted dreams.&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; numPosted &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; response.Friends.size(); i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dreamer &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendDictionary[response.Friends[i].UserId];&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (dreamer &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; response.Friends[i].Dreams.size() &lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            {&lt;br /&gt;                friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    dreamer.getDisplayHtml() &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; j &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; j &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; response.Friends[i].Dreams.size(); j&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                    friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                        renderDream(response.Friends[i].Dreams[j]);&lt;br /&gt;                }&lt;br /&gt;                numPosted&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (numPosted &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;None of your friends have posted dreams--encourage them to do so! Here&amp;#39;s a list of them--go to their profiles and remind them :)&amp;lt;br/&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; friendIdList.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                friendDreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendDictionary[friendIdList[i]].getDisplayHtml();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_dreams(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.userid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; currentUserId;&lt;br /&gt;        &lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getdreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, initializeView_dreams_Callback, params);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_dreams_Callback(response){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; numDreams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; response.Dreams.size();&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dreamDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;lastDreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        dreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (numDreams &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            dreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; currentUser.UserName &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; has no dreams in the system.&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (numDreams &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                dreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;Displaying 1 dream of &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; currentUser.UserName &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;                dreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;Displaying &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; numDreams &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; dream of &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; currentUser.UserName &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; numDreams; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dream &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; response.Dreams[i];&lt;br /&gt;            dreamDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; renderDream(dream);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; renderDream(dream){&lt;br /&gt;    &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; response &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;span id=\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; dream.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        dream.Date &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        dream.Title &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        dream.Interpretations &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; Interps &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;(&amp;lt;a onclick=\&amp;quot;deleteDream(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        dream.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)\&amp;quot;&amp;gt;del&amp;lt;/a&amp;gt;/&amp;lt;a onclick=\&amp;quot;newInterp(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        dream.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)\&amp;quot;&amp;gt;interp&amp;lt;/a&amp;gt;/&amp;lt;a onclick=\&amp;quot;viewDream(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        dream.DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)\&amp;quot;&amp;gt;view&amp;lt;/a&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; response;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; viewDream(dreamId){&lt;br /&gt;    &lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.dreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dreamId;&lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getdream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, viewDream_Callback, params);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; viewDream_Callback(response){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewDiv &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;view&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;img width=\&amp;quot;200\&amp;quot; src=\&amp;quot;http://www.enhypniomancy.com/images/tiny_logo.jpg\&amp;quot; /&amp;gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dreamerHtml &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            friendDictionary[response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].UserId].getDisplayHtml();&lt;br /&gt;        &lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; dreamerHtml;&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Date: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Date &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Title: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Title &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Narrative: &amp;lt;br/&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;p&amp;gt;&amp;lt;i&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Narrative &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Interps.size() &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;p&amp;gt;&amp;lt;a onclick=\&amp;quot;newInterp(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)\&amp;quot;&amp;gt;No interpretations yet! Click here to interpret this dream.&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; {&lt;br /&gt;            viewDiv.innerHTML &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;img width=\&amp;quot;200\&amp;quot; src=\&amp;quot;http://www.enhypniomancy.com/images/post_interpretation.jpg\&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Interps.size(); i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dreamInterpreter &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    friendDictionary[response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Interps[i].UserId];&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (dreamInterpreter &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;If we have an interpretation without an interpreter, they are probably not friends any more.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;                {&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; dreamInterpreter.getDisplayHtml() &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Date: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Interps[i].InterpretationDate &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Interpretation: &amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;i&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Interps[i].Interpretation &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/i&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    viewDiv.innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; newInterp(dreamId){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.dreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dreamId;&lt;br /&gt;        &lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;getdream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, newInterp_Callback, params);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; newInterp_Callback(response){&lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpret&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpInput&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpTitle&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Title;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpNarrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;i&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].Narrative &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/i&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpButton&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;onclick&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;addInterp(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; response.Dreams[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;].DreamId &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpButton&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Click to add interpretation&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; addInterp(dreamId){&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpButton&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Submitting...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; interpText &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpInput&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.dreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dreamId;&lt;br /&gt;        params.userid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; viewerId;&lt;br /&gt;        params.interpretation &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; interpText;&lt;br /&gt;        tempdreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dreamId;&lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;addinterpretation&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, addInterp_Callback, params);&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; tempdreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; addInterp_Callback(response){&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpButton&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Interpretation added. Click to see the dream.&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;interpButton&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .setAttribute(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;onclick&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;viewDream(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; tempdreamid &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; deleteDream(dreamId){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (confirm(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Are you sure you wish to delete this dream?&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;            params.dreamid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dreamId;&lt;br /&gt;            getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;deletedream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, deleteDream_Callback, params);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; deleteDream_Callback(response){&lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; trace(message){&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;messageDiv&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; message &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; startThisUp(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;var dataRequest = opensocial.newDataRequest();&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        alert(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;hi!&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        trace(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Starting...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; id &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamIdText&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;        trace(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Getting dream with id &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; id);&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        trace(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Hello world called&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; helloWorldSuccess(response){&lt;br /&gt;        trace(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Success callback&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; helloWorldFailure(response){&lt;br /&gt;        trace(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;fail callback&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_newdream(){&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamTitle&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamNarrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Click to enter dream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;            .disabled &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; enterDream(){&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; titleText &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamTitle&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; narrativeText &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamNarrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; button &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        button.disabled &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        button.value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Submitting...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        params.userid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; viewerId;&lt;br /&gt;        params.title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; titleText;&lt;br /&gt;        params.narrative &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; narrativeText;&lt;br /&gt;        &lt;br /&gt;        getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;adddream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, enterDream_Callback, params);&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; enterDream_Callback(response){&lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getResponse(command, callback, params){&lt;br /&gt;        params.random &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Math.random();&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;http://www.enhypniomancy.com/Soc.ashx?command=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; command;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; param &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; params) {&lt;br /&gt;            url &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; param &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; encodeURIComponent(params[param]);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url2 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; url;&lt;br /&gt;        os_params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        switchOnWaitingView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Executing makeRequest for external url and waiting for resopnse...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;        opensocial.makeRequest(url2, makeRequest_Callback, os_params);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; makeRequest_Callback(data){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; jsonedResponseObject &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.responseText.evalJSON();&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (jsonedResponseObject.HadError &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                showError(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Error talking to server: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; jsonedResponseObject.ErrorMessage);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            switchOffWaitingView();&lt;br /&gt;            callback(jsonedResponseObject);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    init();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
&lt;p&gt;Let&amp;#39;s call out some important pieces. When you start up the app, it calls the init() function, which in turn grabs the OpenSocial-centric data necessary for the application to work. It needs the data of the Owner (the user who installed the app) and the Owner&amp;#39;s friends (the friends of the user who installed the app). Below is a call-out of the code that does all the OpenSocial data munging. You&amp;#39;ll notice that I map the OpenSocial Person objects to my own User object--I actually built this entire application without OpenSocial, and took about an hour to integrate. I think that&amp;#39;s a good practice and also shows the strength of the platform, which is that it is very much just another JavaScript library you import, while you focus on writing your app in the exact way you want.&lt;/p&gt;

&lt;span&gt;&lt;a class="" title="code snippet2" name="code snippet2"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 2 : Initialization Calls for Owner and Owner&amp;#39;s Friends&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; currentUserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendIdList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; Array();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendDictionary &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; currentUser;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerId;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; User(userId, userName, userThumnail, userProfileURL)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userId;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userName;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserThumbnail &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userThumnail;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.UserProfileURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; userProfileURL;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; init()&lt;br /&gt;{&lt;br /&gt;    renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;working&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    populateUserData();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; populateUserData()&lt;br /&gt;{    &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;1: Create the DataRequest.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dataRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.newDataRequest();&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;2: Prepare RequestItems to be added to the DataRequest             &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataRequest.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; personRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataRequest.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerRequest &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataRequest.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;3: Add the RequestItems to the DataRequest.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        dataRequest.add(friendRequest);&lt;br /&gt;        dataRequest.add(personRequest);&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;4: Send it along, and expect a function called responseCallback(dataResponse) to be executed when it&amp;#39;s done.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        dataRequest.send(populateUserData_Callback);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; populateUserData_Callback(dataResponse)&lt;br /&gt;{&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; errorHappened &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.hadError();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;errorHappened)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendsData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.get(opensocial.DataRequest.Group.OWNER_FRIENDS).getData();&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.get(opensocial.DataRequest.PersonId.OWNER).getData();&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewer &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.get(opensocial.DataRequest.PersonId.VIEWER);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (viewer &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; viewerData &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dataResponse.get(opensocial.DataRequest.PersonId.VIEWER).getData();&lt;br /&gt;            viewerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; viewerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt;{&lt;br /&gt;            viewerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.NAME);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.ID);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.PROFILE_URL);&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerImage &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerData.getField(opensocial.Person.Field.THUMBNAIL_URL);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; ownerObj &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; User(ownerId,ownerName,ownerImage,ownerURL);&lt;br /&gt;        currentUser &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerObj;&lt;br /&gt;        currentUserId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; ownerId;&lt;br /&gt;        &lt;br /&gt;        friendsData.each(&lt;br /&gt;         &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(friendData) {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendName &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendData.getField(opensocial.Person.Field.NAME);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendThumbnailUrl &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendData.getField(opensocial.Person.Field.ID);&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendURL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendData.getField(opensocial.Person.Field.PROFILE_URL);&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendObj &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; User(friendId,friendName,friendThumbnailUrl,friendURL);&lt;br /&gt;            friendDictionary[friendId] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; friendObj;&lt;br /&gt;            friendIdList.push(friendId);&lt;br /&gt;         }&lt;br /&gt;        );&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Let&amp;#39;s shove the current user into the &amp;quot;friendDictionary&amp;quot; so we can look him/her up without silly if login&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        friendDictionary[currentUserId] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; currentUser;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;help&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    {&lt;br /&gt;        showError(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Error on dataresponse&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
&lt;p&gt;The above code initializes the app. It loads information about the Owner, the Viewer, and the Owner&amp;#39;s friends. It then maps them to a custom User object and stores the users as a collection that can be accessed by the rest of the application in a manner that is decoupled from OpenSocial-specific calls. 
&lt;/p&gt;
&lt;p&gt;The above code is one half of the OpenSocial interaction in this app. The other half uses the OpenSocial client-to-third-party-server API call: opensocial.makeRequest(). In the below code I&amp;#39;m using a wrapper around makeRequest, so as far as my code is concerned I&amp;#39;m making a simple AJAX call. (In fact, before I integrated OpenSocial into this app I was using Prototype&amp;#39;s AJAX method.)&lt;/p&gt;

&lt;span&gt;&lt;a class="" title="code snippet3" name="code snippet3"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 3 : makeRequest() wrapper&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getResponse(command,callback,params)&lt;br /&gt;{&lt;br /&gt;            params.random &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; Math.random();&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;http://www.enhypniomancy.com/Soc.ashx?command=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; command;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; param &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; params)&lt;br /&gt;            {&lt;br /&gt;                url &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; param &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; encodeURIComponent(params[param]);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url2 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; url;&lt;br /&gt;            os_params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};            &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            switchOnWaitingView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Executing makeRequest for external url and waiting for resopnse...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            opensocial.makeRequest(url2,makeRequest_Callback,os_params);&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; makeRequest_Callback(data)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; jsonedResponseObject &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.responseText.evalJSON();&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(jsonedResponseObject.HadError &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    showError(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Error talking to server: &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; jsonedResponseObject.ErrorMessage);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                switchOffWaitingView();&lt;br /&gt;                callback(jsonedResponseObject);&lt;br /&gt;            }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;&lt;p&gt;The above code allows you to pass a bucket of parameters that will be translated into a single opensocial.makeRequest() call. Following is an example of code that calls it:&lt;/p&gt;
&lt;span&gt;&lt;a class="" title="code snippet4" name="code snippet4"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 4 : Javascript that calls makeRequest wrapper&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; initializeView_newdream()&lt;br /&gt;{&lt;br /&gt;            document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamTitle&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamNarrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Click to enter dream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).disabled &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; enterDream()&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; titleText &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamTitle&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; narrativeText &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreamNarrative&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).value;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; button &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;button_EnterDream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            button.disabled &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            button.value &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Submitting...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;            params.userid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; viewerId;&lt;br /&gt;            params.title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; titleText;&lt;br /&gt;            params.narrative &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; narrativeText;&lt;br /&gt;            &lt;br /&gt;            getResponse(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;adddream&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,enterDream_Callback,params);&lt;br /&gt;&lt;br /&gt;                        &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; enterDream_Callback(response)&lt;br /&gt;        {&lt;br /&gt;            renderView(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;dreams&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;

&lt;p&gt;What you will see under the covers when you invoke this code is a request that goes to http://api.msappsapce.com/relay.proxy.  This will then return the response from your own site. The rest of the app is custom UI. Put it all together, and you have yourself a dream interpretation app!&lt;/p&gt;

    &lt;/div&gt;&lt;img src="http://developer.myspace.com/Community/aggbug.aspx?PostID=1798" width="1" height="1"&gt;</description><category domain="http://developer.myspace.com/Community/blogs/chris/archive/tags/example+code/default.aspx">example code</category></item><item><title>Example App: Lots of OpenSocial Calls</title><link>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-lots-of-opensocial-calls.aspx</link><pubDate>Sun, 24 Feb 2008 01:49:00 GMT</pubDate><guid isPermaLink="false">8e485011-333f-425c-b84a-1febdb8bfab0:1797</guid><dc:creator>Chris</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developer.myspace.com/Community/blogs/chris/rsscomments.aspx?PostID=1797</wfw:commentRss><comments>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-lots-of-opensocial-calls.aspx#comments</comments><description> &lt;div id="cb_content"&gt;
&lt;p&gt;
&lt;a&gt;&lt;img src="http://i190.photobucket.com/albums/z190/stephaniebambam/chris_small.gif" alt="" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;        
&lt;p&gt;Happy holidays for you who had time off, and happy work for you who didn&amp;#39;t. Of 
    course, for those of us who are developers we no doubt had a working holiday :). 
    Such is life in the world of tech...&lt;/p&gt;

    &lt;h2&gt;Where&amp;#39;s my Data API? Where&amp;#39;s my Activities API?&lt;/h2&gt;
    &lt;p&gt;Just wanted to let you folks know that we&amp;#39;re working hard on the Data and 
        Activities portions of OpenSocial. A lot of forum participants have been asking 
        about them, and we&amp;#39;re quite eager to get them up for you. &lt;/p&gt;
    &lt;p&gt;Why aren&amp;#39;t they here already? Well, MySpace is kind of huge, and MySpace profiles 
        tend to be very public--especially profiles of popular bands and celebrities. 
        That creates a lovely atmosphere for virality, because popular profiles tend to 
        be loci of friendship clusters, thus minimizing the degrees of separation 
        between users. Hopefully those popular profiles will pick up your app and make 
        it go viral. If your app goes viral, there is much cause to celebrate. That 
        celebration might be cut short if the app goes down due to load. Because of the 
        rather large scale of MySpace, we need to make sure that our middle tier is 
        ready to go--your app will potentially be utilized by millions of simultaneous 
        users, so we want your data to be served smoothy and error free. &lt;/p&gt;
    &lt;p&gt;Speaking of virality, we&amp;#39;re also working on the Activities API. It&amp;#39;s quite 
        challenging to make it both flexible and scalable. As soon as we have a good 
        picture of how it will look, we&amp;#39;ll give you examples so you can get started 
        coding.&lt;/p&gt;

    &lt;h2&gt;Yes, there&amp;#39;s Sample Code!&lt;/h2&gt;
    &lt;p&gt;What blog post would be complete without sample code? The below app, which I 
        recommend that you paste into the Canvas section, issues quite a few requests 
        (different person, friends, photos, and albums requests). It then dumps the 
        response objects into HTML so you can look at the properties that are available 
        to you. Pretty straightforward, but illuminatory if you&amp;#39;re new to the OpenSocial 
        development process. I won&amp;#39;t do much explaining of the workings of the 
        code--it&amp;#39;s more of a cut and paste deal. If you want basic documentation, head 
        over to the &amp;quot;Learn and Play&amp;quot; section.&lt;/p&gt;
             &lt;span&gt;&lt;a class="" title="Working App1" name="Working App1"&gt;&lt;/a&gt;&lt;h5&gt;Working App 1 : Request example and data dump app&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    #output &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; overflow&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;scroll&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;100%&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    .objectGraph &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;whitesmoke&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        margin&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;10px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        padding&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;10px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;solid&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border-width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;1px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    .arrayGraph &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    pre &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        padding&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;20px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;white&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;dashed&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        border-width&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;1px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;output&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;script &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; init()&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Set the owner id so we don&amp;#39;t have to use it later&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; personId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.DataRequest.PersonId.OWNER;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Create our DataRequest object&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; dr &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.newDataRequest();&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Set up an empty params object so we can use it for functions that require params.        &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; opt_params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Albums&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; albumReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        dr.newFetchAlbumsRequest(personId,opt_params);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Person data&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; personReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        dr.newFetchPersonRequest(personId);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Friends&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friendReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        dr.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Online Friends&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; onlineFriends_Params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;        onlineFriends_Params[opensocial.DataRequest.PeopleRequestFields.FILTER] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;            opensocial.DataRequest.FilterType.ONLINE_FRIENDS;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; onlineFriendsReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        dr.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS,onlineFriends_Params);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request First 5 Friends (using paging)        &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; pagedFriends_Params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;    pagedFriends_Params[opensocial.DataRequest.PeopleRequestFields.FIRST] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    pagedFriends_Params[opensocial.DataRequest.PeopleRequestFields.MAX] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; pagedFriendsReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        dr.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS,pagedFriends_Params);&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Extended Person data&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; extendedPersonParams &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;    extendedPersonParams[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        [opensocial.Person.Field.ID,MyOpenSpace.Person.Field.ABOUT,&lt;br /&gt;        MyOpenSpace.Person.Field.BOOKS];&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; bigPersonReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dr.newFetchPersonRequest(personId,extendedPersonParams);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Request Photos        &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; photoReq &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; dr.newFetchPhotosRequest(personId,opt_params);&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Add all the requests to the DataRequest&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    dr.add(albumReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;Albums&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(personReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;SmallPerson&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(bigPersonReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;ExtendedPerson&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(friendReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;BasicFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(onlineFriendsReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;OnlineFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(pagedFriendsReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;PagedFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.add(photoReq,&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;Photos&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    &lt;br /&gt;    writeToOutput(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Requesting data...&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    dr.send(response);            &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Response callback...&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; response(data)&lt;br /&gt;{&lt;br /&gt;    writeToOutput(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Got response back&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; albums &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;Albums&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; bigPerson &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;ExtendedPerson&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; person &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;SmallPerson&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; friends &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;BasicFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; onlineFriends &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;OnlineFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; pagedFriends &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;PagedFriends&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; photos &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.get(&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;Photos&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;).getData();&lt;br /&gt;&lt;br /&gt;    dumpArray(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Albums&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;album&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,albums);&lt;br /&gt;    dumpObject(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Person&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;person&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,person);            &lt;br /&gt;    dumpObject(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Extended Person&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;person&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,bigPerson);            &lt;br /&gt;    dumpArray(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friend&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,friends);&lt;br /&gt;    dumpArray(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Online Friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friend&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,onlineFriends);&lt;br /&gt;    dumpArray(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Paged Friends&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;friend&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,pagedFriends);&lt;br /&gt;    dumpArray(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Photos&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;photo&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,photos);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Takes an object and dumps it out, with some example code&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; spillTheBeans(name, input)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; docOutput &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; cOutput &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; out &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(input.fields_ &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;    {&lt;br /&gt;        input &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; input.fields_;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; prop &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; input)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;typeof&lt;/span&gt;&lt;span&gt;(input[prop]) &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;br /&gt;        {&lt;br /&gt;            docOutput &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; prop &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&amp;lt;/b&amp;gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; input[prop];&lt;br /&gt;            cOutput &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;var _&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; prop &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; name &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;.getField(\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;prop&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot;)&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;\n&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;; &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;div class=\&amp;quot;objectGraph\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;b&amp;gt;Properties of &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;            &lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; docOutput;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Code to access:&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;pre&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; cOutput &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; out;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Writes a response object&amp;#39;s data and example code    &lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; dumpObject(name,smallname,obj)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; out &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;div class=\&amp;quot;arrayGraph\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;h2&amp;gt;Got response back: Object of type &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;name &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; spillTheBeans(smallname,obj.fields_);&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    writeRaw(out);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Writes a response array&amp;#39;s data and example code&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; dumpArray(name,subname,obj)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; out &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;div class=\&amp;quot;arrayGraph\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;h2&amp;gt;Got response back: Array of &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; with &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; obj.size() &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; items&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; iterator &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;            &lt;br /&gt;    &lt;br /&gt;    obj.each(&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(myObj)            &lt;br /&gt;    {&lt;br /&gt;        out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;h4&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; subname &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; iterator &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        iterator&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; spillTheBeans(subname,myObj);    &lt;br /&gt;    });&lt;br /&gt;    &lt;br /&gt;    out &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;br /&gt;    writeRaw(out);            &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; writeToOutput(message)&lt;br /&gt;{&lt;br /&gt;    document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;output&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; message;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; writeRaw(message)&lt;br /&gt;{&lt;br /&gt;    document.getElementById(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;output&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; message;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;init();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
   
    &lt;/div&gt;&lt;img src="http://developer.myspace.com/Community/aggbug.aspx?PostID=1797" width="1" height="1"&gt;</description><category domain="http://developer.myspace.com/Community/blogs/chris/archive/tags/example+code/default.aspx">example code</category></item><item><title>Example App: RSS Reader</title><link>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-rss-reader.aspx</link><pubDate>Sun, 24 Feb 2008 01:47:00 GMT</pubDate><guid isPermaLink="false">8e485011-333f-425c-b84a-1febdb8bfab0:1796</guid><dc:creator>Chris</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://developer.myspace.com/Community/blogs/chris/rsscomments.aspx?PostID=1796</wfw:commentRss><comments>http://developer.myspace.com/Community/blogs/chris/archive/2008/02/24/example-app-rss-reader.aspx#comments</comments><description>&lt;div id="cb_content"&gt;&lt;p&gt;
&lt;a&gt;&lt;img src="http://i190.photobucket.com/albums/z190/stephaniebambam/chris_small.gif" alt="" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
        

        &lt;p&gt;In this post I hope to get you off the ground in terms of how to request data 
            from other sites using the OpenSocial API. Remember that in OpenSocial your 
            application is hosted in the browser and served off the container&amp;#39;s domain (in 
            this case, MySpace). XHRs (XML Http Requests) cannot be issued across domains 
            (for example, Javascript hosted off of &lt;a href="http://www.myspace.com"&gt;

            http://www.myspace.com&lt;/a&gt; cannot access data from
            &lt;a href="http://www.google.com"&gt;http://www.google.com&lt;/a&gt;). Because of that 
            restriction, you can&amp;#39;t make a straight call to another domain. The OpenSocial 
            API provides a simple mechanism called &amp;quot;makeRequest&amp;quot; that allows you to request 
            data from any domain you want.&lt;/p&gt;
    &lt;p&gt;makeRequest gets around the XHR cross-domain restriction by utilizing a custom 
        http proxy hosted by MySpace. This proxy relays incoming requests to other sites 
        and pipes the results back to the browser. It also optionally signs the requests 
        using the OAuth methodology (the specifics will be covered in another article). 
        It is important to note that this is not a standard open proxy--it does its best 
        to verify that the request came from a valid OpenSocial application hosted on 
        MySpace.&lt;/p&gt;
                    &lt;h2&gt;MakeRequest method signature:&lt;/h2&gt;

                    &lt;pre&gt;opensocial.makeRequest(url,callback,opt_param)&lt;/pre&gt;
                    &lt;h4&gt;url&lt;/h4&gt;
                    &lt;p&gt;The url you wish to be called.&lt;/p&gt;
                    &lt;h4&gt;callback(data)&lt;/h4&gt;
                    &lt;p&gt;The function you wish to be called with the results. The signature of the 
                        function should have at least one parameter (which will contain a reference to 
                        the data returned by the call).&lt;/p&gt;
                &lt;h4&gt;&amp;nbsp;opt_param&lt;/h4&gt;

                &lt;p&gt;A bucket for a set of standard OpenSocial parameters that tell the proxy how to 
                    behave. There is quite a bit of functionality accessible through the 
                    manipulation of this object. To give you a taste of what you can do, below is 
                    some example code that exercises opt_param to its fullest.&lt;/p&gt;
   &lt;span id="ctl00_MainContentPlaceHolder_Code2"&gt;&lt;a class="" title="code snippet1" name="code snippet1"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 1 : Drill down into makeRequest parameters&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getRss(){&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;http://www.codeproject.com/webservices/articlerss.aspx?cat=1&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Lets makeRequest know that the result will be an XML document.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    params[opensocial.ContentRequestParameters.CONTENT_TYPE] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        opensocial.ContentRequestParameters.ContentType.XML;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Sets the request method to POST (default is GET).&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;     params[opensocial.ContentRequestParameters.METHOD] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        opensocial.ContentRequestParameters.MethodType.POST;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Adds two custom headers to the request. These headers will be passed on to the target.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    params[opensocial.ContentRequestParameters.HEADERS] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;br /&gt;        {&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;x-myheader&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;myheadervalue&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;x-myotherheader&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;myotherheadervalue&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;};&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Tells the proxy to sign the request using OAuth.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    params[opensocial.ContentRequestParameters.AUTHORIZATION] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.ContentRequestParameters.AuthorizationType.SIGNED;    &lt;br /&gt; &lt;br /&gt;    opensocial.makeRequest(url, makeRequest_callback, params);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
&lt;p&gt;So goes the request. opt_param takes a bucket of constants that you can use to tweak the request:&lt;/p&gt;
&lt;pre&gt;opensocial.ContentRequestParameters.CONTENT_TYPE &lt;br /&gt;    (takes a value from: opensocial.ContentRequestParameters.ContentType)&lt;/pre&gt;
&lt;pre&gt;opensocial.ContentRequestParameters.METHOD &lt;br /&gt;    (takes a value from: opensocial.ContentRequestParameters.MethodType)&lt;/pre&gt;
&lt;pre&gt;opensocial.ContentRequestParameters.HEADERS &lt;br /&gt;    (takes a key-value bucket)&lt;/pre&gt;
&lt;pre&gt;opensocial.ContentRequestParameters.AUTHORIZATION &lt;br /&gt;    (takes a value from: opensocial.ContentRequestParameters.AuthorizationType)&lt;/pre&gt;
&lt;p&gt; This is not the official documentation for makeRequest, so I won&amp;#39;t go into many details--instead I&amp;#39;ll go on to create the app:). The code that parses the response is quite simple:

&lt;/p&gt;
&lt;span&gt;&lt;a class="" title="code snippet2" name="code snippet2"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 2 : Response handling code&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; makeRequest_callback(data,error){&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (data &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;        $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;rssDisplay&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;no data returned--check your RSS url!&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; channelList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.getElementsByTagName(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;channel&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; channel &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; RSSChannel(channelList[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;    &lt;br /&gt;    $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;header&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getTag(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, channel.Title);&lt;br /&gt;    $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;rssDisplay&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; channel.render();&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;

                &lt;p&gt;The example application in this post is an RSS reader that uses a custom bit of 
                    code that translates XML into JavaScript objects. Parts of that code 
        will be a lovely exercise in redundancy. Why? Because OpenSocial exposes an RSS 
        implementation that is more robust than the one in this article. This article is more about how to call a third party 
        site and parse the results (be they XML, JSON, or some other format). A lot of 
        sites happen to expose XML in RSS, so I&amp;#39;m using such exposure as an example. In 
        other words, this article continues the long and storied tradition of useless 
        demo-code--sit back and enjoy!&lt;/p&gt;
    &lt;h2&gt;MakeRequest: Simple RSS Reader Application&lt;/h2&gt;
                &lt;p&gt;MakeRequest is for pasing data to and receiving data from your site (or, in the 
                    case of a mashup, a third party&amp;#39;s site). Its method signature is:&lt;/p&gt;
                &lt;p&gt;First, let&amp;#39;s set up some chrome and an initialization function:&lt;/p&gt;

&lt;span&gt;&lt;a class="" title="code snippet3" name="code snippet3"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 3 : Simple chrome for application&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    body &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; whitesmoke&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    h1 &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; medium&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #rssDisplay &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 1px solid&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 240px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        overflow&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; auto&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        padding&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 3px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; white&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #rssDisplay p &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;rssDisplay&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getRss(){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;this will get the feed&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        }&lt;br /&gt;        &lt;br /&gt;        getRss(); &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;initialize the application&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
    &lt;p&gt;Above we have the trappings of an application--with no functionality. We&amp;#39;ll now fill in the getRss() call with Javascript that calls the RSS feed (which happens to be the latest articles from &amp;quot;The Code Project&amp;quot;).&lt;/p&gt;
&lt;span id="ctl00_MainContentPlaceHolder_Code1"&gt;&lt;a class="" title="code snippet4" name="code snippet4"&gt;&lt;/a&gt;&lt;h5&gt;code snippet 4 : Completed application&lt;/h5&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    body &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; whitesmoke&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    h1 &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; medium&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    #rssDisplay &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        border&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 1px solid&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        height&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 240px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        overflow&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; auto&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        padding&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; 3px&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        background-color&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; white&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;br /&gt;    #rssDisplay p &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        font-size&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; small&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;style&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;div &lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;=&amp;quot;rssDisplay&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;/*&lt;/span&gt;&lt;span&gt;&lt;br /&gt;         * makeRequest implementation&lt;br /&gt;         &lt;/span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getRss(){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; url &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;http://www.codeproject.com/webservices/articlerss.aspx?cat=1&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; params &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {};&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;This parameter lets makeRequest know that the result will be an XML document.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;            params[opensocial.ContentRequestParameters.CONTENT_TYPE] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; opensocial.ContentRequestParameters.ContentType.XML;&lt;br /&gt;            &lt;br /&gt;            opensocial.makeRequest(url, makeRequest_callback, params);&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; makeRequest_callback(data, url, error){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (data &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;rssDisplay&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;no data returned--check your RSS url!&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; channelList &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; data.getElementsByTagName(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;channel&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; channel &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; RSSChannel(channelList[&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;]);&lt;br /&gt;            &lt;br /&gt;            $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;header&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getTag(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;, channel.Title);&lt;br /&gt;            $(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;rssDisplay&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;).innerHTML &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; channel.render();&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;/*&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;         * Utility functions&lt;br /&gt;         &lt;/span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Cross browser grabber for text in an xml element&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getNodeText(node){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (node.text &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; node.text;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;span&gt; &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; node.textContent;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Simple, non-performant tag renderer&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; getTag(tag, txt){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; tag &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; txt &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; tag &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;Adds a tag to a string&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; appendTag(str, tag, txt){&lt;br /&gt;            str &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; getTag(tag, txt);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;/*&lt;/span&gt;&lt;span&gt;&lt;br /&gt;         * RSS Feed Wrapper Objects&lt;br /&gt;         &lt;/span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;span&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; RSSChannel(node){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; node.childNodes.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; childNode &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; node.childNodes.item(i);&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;switch&lt;/span&gt;&lt;span&gt; (childNode.nodeName) {&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;link&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Link &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;description&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Description &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; items &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; node.getElementsByTagName(&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;item&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.RSSItems &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; [];&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; items.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; item &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; items.item(i);&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; rssItem &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; RSSItem(item);&lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.RSSItems.push(rssItem);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        RSSChannel.prototype.render &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; output &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;    output += &amp;quot;&amp;lt;h1&amp;gt;&amp;quot; + this.Title + &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; rssItemId &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.RSSItems) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; rssItem &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.RSSItems[rssItemId];&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (rssItem.IsValid &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; rssItem.IsValid()) &lt;br /&gt;                    output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; rssItem.render();&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; output;&lt;br /&gt;            &lt;br /&gt;        };&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; RSSItem(node){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Description &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Link &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Author &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (node.childNodes &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; i &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; node.childNodes.length; i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; childNode &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; node.childNodes.item(i);&lt;br /&gt;                &lt;br /&gt;                &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;switch&lt;/span&gt;&lt;span&gt; (childNode.nodeName) {&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;description&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Description &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;link&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Link &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;author&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Author &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; getNodeText(childNode);&lt;br /&gt;                        &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        RSSItem.prototype.render &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; output &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;a target=\&amp;quot;_top\&amp;quot; href=\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Link &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot; title=\&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Description &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;i&amp;gt;by &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Author &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/i&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            output &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; output;&lt;br /&gt;        };&lt;br /&gt;        &lt;br /&gt;        RSSItem.prototype.IsValid &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;(){&lt;br /&gt;            &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.Title &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span&gt;) &lt;br /&gt;                &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;        };&lt;br /&gt;        &lt;br /&gt;        getRss();&lt;br /&gt;    &lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;script&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;div&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;
&lt;p&gt;And there you have it. A simple RSS reader. Don&amp;#39;t expect the code to parse all types of RSS feeds :).&lt;/p&gt;

    &lt;/div&gt;&lt;img src="http://developer.myspace.com/Community/aggbug.aspx?PostID=1796" width="1" height="1"&gt;</description><category domain="http://developer.myspace.com/Community/blogs/chris/archive/tags/example+code/default.aspx">example code</category></item></channel></rss>