<?js
    var self = this;
    function not(fn) { return function() { return !fn.apply(this, arguments); }; }
    function isMainpage(doc) { return doc.kind === 'mainpage'; }
    docs = docs.filter(isMainpage).concat(docs.filter(not(isMainpage)));
    docs.forEach(function(doc, i) {
?>

<?js if (doc.kind === 'mainpage' || (doc.kind === 'package')) { ?>
	<?js if (i === 0){ ?>
    <h1 class="page-title main-page-title"><?js= title || doc.longname ?></h1>
    <?js= self.partial('mainpage.tmpl', doc) ?>
    <?js= self.partial('main-nav.tmpl', doc) ?>
    <?js } ?>
<?js } else if (doc.kind === 'source') { ?>
    <h1 class="page-title"><?js= title ?></h1>
    <?js= self.partial('source.tmpl', doc) ?>
<?js } else { ?>
<div class="aui-page-panel-content">

    <h1 class="page-title"><?js= title ?></h1>

    <section id="page-content">

    <header>
        <h2 id="<?js= doc.name ?>"><?js if (doc.ancestors && doc.ancestors.length) { ?>
            <span class="ancestors"><?js= doc.ancestors.join('') ?></span>
        <?js } ?>
        <?js= doc.name ?>
        <?js if (doc.variation) { ?>
            <sup class="variation"><?js= doc.variation ?></sup>
        <?js } ?></h2>
        <?js if (doc.classdesc) { ?>
            <div class="class-description"><?js= doc.classdesc ?></div>
        <?js } ?>
    </header>

    <article>
        <div class="container-overview">
        <?js if (doc.kind === 'module' && doc.module) { ?>
            <?js= self.partial('method.tmpl', doc.module) ?>
        <?js } ?>

        <?js if (doc.kind === 'class') { ?>
            <?js= self.partial('method.tmpl', doc) ?>
        <?js } else { ?>
            <?js if (doc.description) { ?>
                <div class="description"><?js= doc.description ?></div>
            <?js } ?>

            <?js= self.partial('details.tmpl', doc) ?>

            <?js if (doc.examples && doc.examples.length) { ?>
                <h3 id="<?js= doc.name ?>-Example">Example<?js= doc.examples.length > 1? 's':'' ?></h3>
                <?js= self.partial('examples.tmpl', doc.examples) ?>
            <?js } ?>
        <?js } ?>
        </div>

        <?js if (doc.augments && doc.augments.length) { ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Extends">Extends</h3>

            <ul><?js doc.augments.forEach(function(a) { ?>
                <li><?js= self.linkto(a, a) ?></li>
            <?js }); ?></ul>
        <?js } ?>

        <?js if (doc.mixes && doc.mixes.length) { ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Mixins">Mixes In</h3>

            <ul><?js doc.mixes.forEach(function(a) { ?>
                <li><?js= self.linkto(a, a) ?></li>
            <?js }); ?></ul>
        <?js } ?>

        <?js if (doc.requires && doc.requires.length) { ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Requires">Requires</h3>

            <ul><?js doc.requires.forEach(function(r) { ?>
                <li><?js= self.linkto(r, r) ?></li>
            <?js }); ?></ul>
        <?js } ?>

        <?js
            var classes = self.find({kind: 'class', memberof: doc.longname});
            if (doc.kind !== 'globalobj' && classes && classes.length) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Classes">Classes</h3>

            <dl><?js classes.forEach(function(c) { ?>
                <dt><?js= self.linkto(c.longname, c.name) ?></dt>
                <dd><?js if (c.summary) { ?><?js= c.summary ?><?js } ?></dd>
            <?js }); ?></dl>
        <?js } ?>

        <?js
            var namespaces = self.find({kind: 'namespace', memberof: doc.longname});
            if (doc.kind !== 'globalobj' && namespaces && namespaces.length) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Namespaces">Namespaces</h3>

            <dl><?js namespaces.forEach(function(n) { ?>
                <dt><a href="namespaces.html#<?js= n.longname ?>"><?js= self.linkto(n.longname, n.name) ?></a></dt>
                <dd><?js if (n.summary) { ?><?js= n.summary ?><?js } ?></dd>
            <?js }); ?></dl>
        <?js } ?>

        <?js
            var members = self.find({kind: 'member', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
            if (members && members.length && members.forEach) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Members">Members</h3>

            <dl><?js members.forEach(function(p) { ?>
                <?js= self.partial('members.tmpl', p) ?>
            <?js }); ?></dl>
        <?js } ?>

        <?js
            var methods = self.find({kind: 'function', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
            if (methods && methods.length && methods.forEach) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Methods">Methods</h3>

            <dl><?js methods.forEach(function(m) { ?>
                <?js= self.partial('method.tmpl', m) ?>
            <?js }); ?></dl>
        <?js } ?>

        <?js
            var typedefs = self.find({kind: 'typedef', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
            if (typedefs && typedefs.length && typedefs.forEach) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Types">Type Definitions</h3>

            <dl><?js typedefs.forEach(function(e) {
                    if (e.signature) {
                ?>
                    <?js= self.partial('method.tmpl', e) ?>
                <?js
                    }
                    else {
                ?>
                    <?js= self.partial('members.tmpl', e) ?>
                <?js
                    }
                }); ?></dl>
        <?js } ?>

        <?js
            var events = self.find({kind: 'event', memberof: title === 'Global' ? {isUndefined: true} : doc.longname});
            if (events && events.length && events.forEach) {
        ?>
            <h3 class="subsection-title" id="<?js= doc.name ?>-Events">Events</h3>

            <dl><?js events.forEach(function(e) { ?>
                <?js= self.partial('method.tmpl', e) ?>
            <?js }); ?></dl>
        <?js } ?>
    </article>

    </section>
</div>
<?js= self.partial('side-nav.tmpl', doc) ?>
<?js } ?>

<?js }); ?>
