#! /usr/bin/wml
<: use strict; :>
<: use warnings; :>
#use "perl-globals.wmi"
#use "links.wmi"
#use "versions.wmi"
#use "navigation.wmi"

<define-tag viewport whitespace=delete>
<meta name="viewport" content="width\=device-width, initial-scale=1">
</define-tag>


<!DOCTYPE html>
 <html>
 <head>

   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <viewport>
   <meta name="author" content="The Tor Project, Inc.">
   <meta name="description" content="The Tor Project's free software protects your privacy online. Site blocked? Email [mailto:gettor@torproject.org] for help downloading Tor Browser.">
   <meta name="keywords" content="tor, tor project, tor browser, avoid censorship, traffic analysis, anonymous communications, privacy, avoid surveillance, online security, anonymous online, private browsing, anonymity online, online privacy, protect privacy, private mac browser, private windows browser, private android browser, linux browser, anonymity network, tor network, onion router, onion browser">
   <meta property="og:image" content="https://www.torproject.org/images/tor-logo.jpg">
{#meta#}

   <title>$(TITLE)</title>

   <link rel="icon" href="$(IMGROOT)/favicon.ico">
   <ifneq "$(REDIRECT)" "" "<meta http-equiv="refresh" content="0;url=$(DOCROOT)/$(REDIRECT)">">
   <ifneq "$(REDIRECT_GLOBAL)" "" "<meta http-equiv="refresh" content="0;url=$(REDIRECT_GLOBAL)">">

   # begin WML to generate css/js paths
   <ifneq "$(STYLESHEET)" "" "<link href="$(DOCROOT)/$(STYLESHEET)" rel="stylesheet">">
   <ifeq "$(STYLESHEET)" "" "<link href="$(DOCROOT)/css/master.min.css" rel="stylesheet">">

   #<link href="css/master.min.css" rel="stylesheet">
   <!--[if lte IE 8]>
   <link href="$(DOCROOT)/css/ie8-and-down.min.css" rel="stylesheet">
   <![endif]-->
   <!--[if lte IE 7]>
   <link href="$(DOCROOT)/css/ie7-and-down.min.css" rel="stylesheet">
   <![endif]-->
   <!--[if IE 6]>
   <link href="$(DOCROOT)/css/ie6.min.css" rel="stylesheet">
   <![endif]-->
   #  <script language="javascript" type="text/javascript" src="$(DOCROOT)/global.js"></script>
   # end WML to generate css/js paths
</head>
<body>
<div id="wrap">
  <div id="header">
    <h1 id="logo"><a href="<page index>">Tor</a></h1>
      # navigation menu generation
      <div id="nav">
        <ul>
        <:{
            # create a hash and maintain order of keys
            my %navigation;
            my @keys;
            while (@navigation) {
              my $key = shift @navigation;
              my $val = shift @navigation;
              push @keys, $key;
              $navigation{$key} = $val;
            }

            my $page = $WML_SRC_BASENAME;
            my $lang = "$(LANG)";

            for my $key (@keys) {
              my ($dir, $base) = $key =~ m,^(?:(.*)/)?(.*?)$,;

              # in directory of active link, set class active. This rule should be improved with proper structuring of the links.
              my $class;
              if ((index($page, 'contact') ne -1) and (index($base, 'overview') ne -1)) {
                $class = '';
              } elsif ((defined $dir) and ($WML_SRC_DIRNAME =~/$dir/) and (index($key, 'contact') eq -1) or ($WML_SRC_BASENAME eq $base)) {
                $class = 'class="active '.$base.' '.$page.'"';
              } else {
                $class = '';
              }

	            $dir = '.' unless defined $dir;

              # translated version
              if (-e "$(DOCROOT)/$dir/$lang/$base.wml") {
                  printf '<li><a '.$class.' href="%s">%s</a></li>'."\n",
                         stripDotSlashs("$(DOCROOT)/$dir/$base.html.$(LANG)"),$navigation{$key};
              }
              # english version
              elsif (-e "$(DOCROOT)/$dir/en/$base.wml") {
              	printf '<li><a '.$class.' href="%s">%s</a></li>'."\n",
                  stripDotSlashs("$(DOCROOT)/$dir/$base.html"), $navigation{$key};
              }
              # full url
              elsif ($key =~/^http/) {
                printf '<li><a href="%s">%s</a></li>'."\n", $key, $navigation{$key};
              } else {
                warn "$WML_SRC_FILENAME has a [page $key] (parses to
docdir: $(DOCROOT)/; dir: $dir; base: $base -> $(DOCROOT)/$dir/$lang/$base.wml), but that doesn't exist.";
              }
            }
        }:>
        </ul>
      </div>
      <!-- END NAV -->
     # end navigation generation
      <div id="calltoaction">
        <ul>
          <:{
            my %calltoaction;
            my @keys;
            while (@calltoaction) {
              my $key = shift @calltoaction;
              my $val = shift @calltoaction;
              push @keys, $key;
              $calltoaction{$key} = $val;
            }

            my $page = $WML_SRC_BASENAME;
            my $lang = "$(LANG)";
            for my $key (@keys) {
              my ($dir, $base) = $key =~ m,^(?:(.*)/)?(.*?)$,;

              # in directory, set active
              my $class;
              if ((defined $dir) and ($WML_SRC_DIRNAME =~/$dir/) or ($WML_SRC_BASENAME eq $base)) {
              #if ($WML_SRC_BASENAME eq $base) {
                $class = 'class="active"';
              } else {
                $class = '';
              }

	          $dir = '.' unless defined $dir;
              # try to use a translated version
              if (-e "$(DOCROOT)/$dir/$lang/$base.wml") {
                  printf '<li class="donate"><a '.$class.' href="%s">%s</a></li>'."\n",
                         stripDotSlashs("$(DOCROOT)/$dir/$base.html.$(LANG)"),$calltoaction{$key};
              }
              # default to english version
              elsif (-e "$(DOCROOT)/$dir/en/$base.wml") {
              	printf '<li class="donate"><a '.$class.' href="%s">%s</a></li>'."\n",
                  stripDotSlashs("$(DOCROOT)/$dir/$base.html"), $calltoaction{$key};
              } else {
                warn "$WML_SRC_FILENAME has a [page $key] (parses to docdir: $(DOCROOT)/; dir: $dir; base: $base -> $(DOCROOT)/$dir/$lang/$base.wml), but that doesn't exist.";
              }
            }
          }:>
        </ul>
      </div>
      <!-- END CALLTOACTION -->
  </div>
  <!-- END HEADER -->

#<ifneq "$(REDIRECT)" "" "Redirecting to <a href="$(DOCROOT)/$(REDIRECT)">$(DOCROOT)/$(REDIRECT)</a>.">
#<ifneq "$(REDIRECT_GLOBAL)" "" "Redirecting to <a href="$(REDIRECT_GLOBAL)">$(REDIRECT_GLOBAL)</a>.">