home=true
@jd:body


	<div id="mainBodyFixed">
              <div id="mainBodyLeft">			
                    <div id="homeMiddle">
                        <div id="topAnnouncement">
                            <div id="homeTitle">
                                <h2>Developer Announcements</h2>
                            </div><!-- end homeTitle -->
                            <div id="announcement-block">
                            <!-- total max width is 520px -->
                                <img src="{@docRoot}assets/images/home/android_adc.png" alt="Android Developer Challenge 2" width="232px" />
                                <div id="announcement" style="width:275px">
                                  <p>The second Android Developer Challenge has begun! In this contest,
                                  real-world users will help review and score applications and the overall winner will 
                                  take away $250,000. The deadline for submissions was August 31, 2009.</p>
                                  <p><a href="http://code.google.com/android/adc/">Learn more about ADC 2 &raquo;</a></p>
                                </div> <!-- end annoucement -->
                            </div> <!-- end annoucement-block -->  
                        </div><!-- end topAnnouncement -->
                        <div id="carouselMain" style="height:190px"> <!-- this height can be adjusted based on the content height -->
                        </div>
                            <div class="clearer"></div>
                        <div id="carouselWheel">
                            <div class="app-list-container" align="center"> 
                                <a href="javascript:{}" id="arrow-left" onclick="" class="arrow-left-off"></a>
                                <div id="list-clip">
                                    <div style="left: 0px;" id="app-list">
                                      <!-- populated by buildCarousel() -->
                                    </div>
                                </div><!-- end list-clip -->
                                <a href="javascript:{ page_right(); }" id="arrow-right" onclick="" class="arrow-right-on"></a>
                                <div class="clearer"></div>
                            </div><!-- end app-list container -->
                        </div><!-- end carouselWheel -->
                    </div><!-- end homeMiddle -->

                    <div style="clear:both">&nbsp;</div>
              </div><!-- end mainBodyLeft -->

              <div id="mainBodyRight">
                      <table id="rightColumn">
                              <tr>
                                      <td class="imageCell"><a href="{@docRoot}sdk/index.html"><img src="{@docRoot}assets/images/icon_download.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Download</h2>
                                              <p>The Android SDK has the tools, sample code, and docs you need to create great apps.  </p>
                                              <p><a href="{@docRoot}sdk/{@sdkCurrent}/index.html">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a href="http://www.android.com/market.html"><img src="{@docRoot}assets/images/icon_market.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Publish</h2>
                                              <p>Android Market is an open service that lets you distribute your apps to handsets.</p>
                                              <p><a href="http://www.android.com/market.html">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a href="http://source.android.com"><img src="{@docRoot}assets/images/icon_contribute.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Contribute</h2>
                                              <p>Android Open Source Project gives you access to the entire platform source.</p>
                                              <p><a href="http://source.android.com">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a href="http://www.youtube.com/user/androiddevelopers"><img src="{@docRoot}assets/images/video-droid.png" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Watch</h2>
                                              <object width="150" height="140"><param name="movie" value="http://www.youtube.com/v/GARMe7Km_gk&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/GARMe7Km_gk&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="150" height="140"></embed></object>
                                              <p style="margin-top:1em"><a href="{@docRoot}videos/index.html">More Android videos &raquo;</a></p>
                                      </td>
                              </tr>

                      </table>
              </div>
	</div>

<!--[if lte IE 6]>
  <style>
    #arrow-left {
      margin:0 0 0 5px;
    }
    #arrow-right {
      margin-left:0;
    }
    .app-list-container {
      margin: 37px 0 0 23px;
    }
    div#list-clip { 
      width:468px;
    }
  </style>
<![endif]-->

<script type="text/javascript">

// * -- carousel dictionary -- * //
  /* layout:  imgLeft, imgRight, imgTop
     icon:    image for carousel entry. cropped (height:70px, width:90px)
     name:    string for carousel entry
     img:     image for bulletin post. cropped (height: 170, width:230px)
     title:   header for bulletin (optional, insert "" value to skip
     desc:    the bulletin post. must include html tags. 
  */

  var droidList = {
    'sdk': {
      'layout':"imgLeft",
      'icon':"sdk-small.png",
      'name':"Android 1.6 SDK",
      'img':"donut-android.png",
      'title':"Android 1.6 SDK",
      'desc': "<p>The Android 1.6 SDK is now available, with new APIs and updated tools!</p>"
               + " <p>For more about the Android 1.6 platform, read the <a href='http://developer.android.com/sdk/android-1.6-highlights.html'>highlights</a>"
               + "<!--and watch some <a href='http://developer.android.com/videos/index.html'>videos</a>-->."
               + " Also keep an eye on the <a href='http://android-developers.blogspot.com'>Blog</a>"
               + " for posts about some of the new developer technologies in Android 1.6.</p>"
               + "<p><a href='{@docRoot}sdk/1.6_r1/index.html'>Download the Android 1.6 SDK &raquo;</a></p>"
    },

    'io': {
      'layout':"imgLeft",
      'icon':"io-small.png",
      'name':"Google I/O",
      'img':"io-large.png",
      'title':"Google I/O Developer Conference",
      'desc': "<p>The Google I/O developer conference took place May 27-28 in San Francisco. If you missed the conference, you can experience the Android sessions by viewing YouTube videos.</p><p><a href='{@docRoot}videos/index.html'>See the sessions from Google I/O &raquo;</a></p>"
    },

    'mapskey': {
      'layout':"imgLeft",
      'icon':"maps-small.png",
      'name':"Maps API Key",
      'img':"maps-large.png",
      'title':"Maps API Key",
      'desc':"<p>If you're writing an Android application that uses Google Maps (with MapView), you must register your application to obtain a Maps API Key. Without the key, your maps application will not work on Android devices. Obtaining a key requires just a couple of steps.</p><p><a href='http://code.google.com/android/add-ons/google-apis/maps-overview.html'>Learn more &raquo;</a></p>"
    },

    'devphone': {
      'layout':"imgLeft",
      'icon':"devphone-small.png",
      'name':"Dev Phone 1",
      'img':"devphone-large.png",
      'title':"Android Dev Phone 1",
      'desc': "<p>Run and debug your Android applications directly on this device. Modify and rebuild the Android operating system, and flash it onto the phone. The Android Dev Phone 1 is carrier independent, and available for purchase by any developer registered with <a href='http://market.android.com/publish'>Android Market</a>.</p><p><a href='/guide/developing/device.html#dev-phone-1'>Learn more about the Android Dev Phone 1 &raquo;</a></p>"
    }

  }
</script>
<script type="text/javascript" src="{@docRoot}assets/carousel.js"></script>
<script type="text/javascript">
  initCarousel("sdk");
</script>
