<?cs # This default template file is meant to be replaced. ?>
<?cs # Use the -tempatedir arg to javadoc to set your own directory with a replacement for this file in it. ?>

<?cs def:custom_masthead() ?>
<div id="header">
    <div id="headerLeft">
        <a href="<?cs var:toroot ?>index.html" tabindex="-1"><img
            src="<?cs var:toroot ?>assets/images/bg_logo.png" alt="Android Developers" /></a>

        <ul class="<?cs 
                if:reference ?>reference<?cs
                elif:guide ?>guide<?cs
                elif:sdk ?>sdk<?cs
                elif:home ?>home<?cs
                elif:community ?>community<?cs
                elif:publish ?>publish<?cs
                elif:about ?>about<?cs /if ?>">
            <li id="home-link"><a href="<?cs var:toroot ?><?cs 
                if:android.whichdoc != "online" ?>offline.html<?cs 
                else ?>index.html<?cs /if ?>">
                <span>Home</span></a></li>
            
            <li id="sdk-link"><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html"><span>SDK</span></a></li>
            <li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html"
                                onClick="return loadLast('guide')"><span>Dev Guide</span></a></li>
            <li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" 
                                onClick="return loadLast('reference')"><span>Reference</span></a></li>
            <li><a href="http://android-developers.blogspot.com"><span>Blog</span></a></li>
            <li id="community-link"><a href="<?cs var:toroot ?>community/index.html"><span>Community</span></a></li>
        </ul>

    </div>
    <div id="headerRight">
        <div id="headerLinks">
           <!-- <img src="<?cs var:toroot ?>assets/images/icon_world.jpg" alt="" /> -->
           <span class="text">
             <!-- &nbsp;<a href="#">English</a> | -->
             <a href="http://www.android.com">Android.com</a>
           </span>
        </div>

        <?cs call:default_search_box() ?>

    </div><!-- headerRight -->
</div><!-- header -->

<?cs /def ?><?cs # custom_masthead ?>

<?cs def:sdk_nav() ?>
<div class="g-section g-tpl-240" id="body-content">
  <div class="g-unit g-first not-resizable" id="side-nav">
    <div id="devdoc-nav">
      <?cs include:"../../../java/android/html/sdk/sdk_toc.cs" ?>
    </div>
  </div> <!-- end side-nav -->
<?cs /def ?>

<?cs def:guide_nav() ?>
<div class="g-section g-tpl-240" id="body-content">
  <div class="g-unit g-first side-nav-resizable" id="side-nav">
    <div id="devdoc-nav">
      <?cs include:"../../../java/android/html/guide/guide_toc.cs" ?>
    </div>
  </div> <!-- end side-nav -->
  <script>
    addLoadEvent(function() {
      scrollIntoView("devdoc-nav");
      });
  </script>
<?cs /def ?>

<?cs def:publish_nav() ?>
<div class="g-section g-tpl-180" id="body-content">
  <div class="g-unit g-first" id="side-nav">
    <div id="devdoc-nav">
      <?cs include:"../../../java/android/html/publish/publish_toc.cs" ?>
    </div>
  </div> <!-- end side-nav -->
<?cs /def ?>

<?cs def:custom_left_nav() ?>
  <?cs if:guide ?>
    <?cs call:guide_nav() ?>
  <?cs elif:publish ?>
    <?cs call:publish_nav() ?> 
  <?cs elif:sdk ?>
    <?cs call:sdk_nav() ?>
  <?cs else ?>
    <?cs call:default_left_nav() ?> 
  <?cs /if ?>
<?cs /def ?>

<?cs # appears on the left side of the blue bar at the bottom of every page ?>
<?cs def:custom_cc_copyright() ?>Except as noted, this content is 
licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
Creative Commons Attribution 2.5</a>. For details and 
restrictions, see the <a href="<?cs var:toroot ?>license.html">Content 
License</a>.<?cs /def ?>

<?cs def:custom_copyright() ?>Except as noted, this content is 
licensed under <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
For details and restrictions, see the <a href="<?cs var:toroot ?>license.html">
Content License</a>.<?cs /def ?>

<?cs def:custom_footerlinks() ?>
<p>
	<a href="http://www.android.com/terms.html">Site Terms of Service</a> -
	<a href="http://www.android.com/privacy.html">Privacy Policy</a> -
	<a href="http://www.android.com/branding.html">Brand Guidelines</a>
</p>
<?cs /def ?>

<?cs # appears on the right side of the blue bar at the bottom of every page ?>
<?cs def:custom_buildinfo() ?>Android 1.1 r1 - <?cs var:page.now ?><?cs /def ?>
