<commit_before>﻿@using CPV
@model CPV.CPVBasicViewModel
<!DOCTYPE html>
@{
    // ========================================================
    // ViewData["Language"] = Model.Language;                  // ?? "en_US";
    // ViewData["CurrentLanguageName"] = Model.LanguageName;   // ?? "English";
    // ViewData["ThemeName"] = Model.ThemeName;                // ?? "carpoolvote";
    // ========================================================

    // ViewData["Language"] = Model.Language ?? "en_US";
    // ViewData["CurrentLanguageName"] = Model.LanguageName ?? "English";
    // ViewData["ThemeName"] = Model.ThemeName ?? "carpoolvote";

    String String0 = "Need voter support? Call ";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String0 = "Necesidad de apoyo de los votantes? Telefonear ";
    }

    String StringHelpPhone = "1-866-OURVOTE";
    String StringHelpPhoneDigits = "18666878683";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        StringHelpPhone = "(888) VE-Y-VOTA";
        StringHelpPhoneDigits = "18888398682";
    }


    String String10 = "Our Story";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String10 = "Nuestra Historia";
    }

    String ContactUs = "Contact us";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        ContactUs = "En contacto con nosotros";
    }
	
    String String11 = "How it works";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String11 = "Cómo funciona";
    }

    String String12 = "Support";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String12 = "Ayuda";
    }

    string SignupForNewsletter = "Sign up for our newsletter";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        SignupForNewsletter = "Suscribirse a nuestro boletín de noticias";
    }

    string EmailAddressHelpText = "email address";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        EmailAddressHelpText = "dirección de correo electrónico";
    }

    string TermsAndConditionsNameString = "Terms and Conditions";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        TermsAndConditionsNameString = "Términos y Condiciones";
    }
	
    //

    }

<html lang="@Model.LanguageCode">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>@ViewData["Title"] - @ViewData["BrandName"]</title>
    <meta name="description" content="" property="description">
    <meta name="keywords" content="" property="keywords">
    <meta property="og:url" content="http://carpoolvote.com" />
    <meta property="og:type" content="website" />
    <meta property="og:title" content="Carpool Vote - Vote America" />
    <meta property="og:description" content="Get a ride, or share a ride to vote, or register to vote. Support every American's right to vote!" />
    <meta property="og:image" content="http://carpoolvote/com/res/img/logo_fb.png?v=2" />
    <link rel="icon" href="@Href("~/favicon.ico")">
    <link href='https://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'>
    <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
    <link type="text/css" rel="stylesheet" href="@Href("~/res/jquery.datetimepicker.min.css")">
    <link type="text/css" rel="stylesheet" href="@Href("~/res/nouislider.min.css")">
    <link type="text/css" rel="stylesheet" href="@Href("~/css/main.css")">
	@* <link type="text/css" rel="stylesheet" href="@Href("~/css/site.css")"> *@
	<link type="text/css" rel="stylesheet" href="@Href("~/css/time-polyfill.css")">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <script>
        ! function (g, s, q, r, d) {
            r = g[r] = g[r] || function () {
                (r.q = r.q || []).push(
                    arguments)
            };
            d = s.createElement(q);
            q = s.getElementsByTagName(q)[0];
            d.src = '//d1l6p2sc9645hc.cloudfront.net/tracker.js';
            q.parentNode.
            insertBefore(d, q)
        }(window, document, 'script', '_gs');
        _gs('GSN-777832-U');
    </script>

    @*<environment names="Development">
        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
        <link rel="stylesheet" href="~/css/site.css" />
    </environment>
    <environment names="Staging,Production">
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
              asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
        <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
    </environment>*@
</head>

<body>
<!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>
    // Facebook SDK
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>


<a href="https://github.com/misteranderson/carpoolvote.aspnet/"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://camo.githubusercontent.com/82b228a3648bf44fc1163ef44c62fcc60081495e/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_left_red_aa0000.png"></a>



<div class="utility-bar">
	<div class="wrap">
		<div class="utility-bar-right">	
	
@*		<ul id="nav-lang" class="nav__languages">  *@
            @if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_ENGLISH, StringComparison.OrdinalIgnoreCase))
            {
@*                <li class="nav__item nav__language"> *@
				<text>
                    @Html.ActionLink(CPV.CPVConstants.LANGUAGE_SPANISH_NAME, "Index", null, new { themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_SPANISH }, new { @class = "nav__link", hreflang=CPV.CPVConstants.LANGUAGE_SPANISH, rel="alternate" })
				</text>
@*                </li>*@
            }
            else
            {
@*                <li class="nav__item nav__language"> *@
				<text>
                    @Html.ActionLink(CPV.CPVConstants.LANGUAGE_ENGLISH_NAME, "Index", null, new { themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_ENGLISH }, new { @class = "nav__link" })
                    @*<a href="@Url.Action("Index", new {themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_ENGLISH})" class="nav__link">@CPV.CPVConstants.LANGUAGE_ENGLISH_NAME</a>*@
				</text>
@*                </li>*@
            }
@*        </ul>*@
		</div>
	</div>
</div>


<header class="header">
    <p class="support-banner">@String0 <a href="tel:@StringHelpPhoneDigits">@StringHelpPhone</a></p>
    <nav class="nav wrapper">
        @{
            string logoUrl = "~/res/img/logo.jpg";
            int logoHeight = 187;
            int logoWidth = 709;
            string logoAlt = "Carpool Vote";

            if (String.Equals(Model.ThemeName, "souls2thepolls", StringComparison.OrdinalIgnoreCase))
            {
                logoUrl = "~/res/img/logo-souls2thepolls.png";
                logoHeight = 300;
                logoWidth = 661;
                logoAlt = "Souls2ThePolls - CarPool Vote";
            }

        }
        <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})" class="logo">
            <img id="logo" class="logo__img" src="@Href(logoUrl)" alt="@logoAlt" width="@logoWidth" height="@logoHeight"/>
        </a>
        <br/>
        @*<script>
            (function() {
                        if (window.location.search === '?souls2thepolls') {
                            var logo = document.getElementById('logo');
                            logo.setAttribute('src', 'res/img/logo-souls2thepolls.png');
                            logo.setAttribute('width', 661);
                            logo.setAttribute('height', 300);
                            logo.parentNode.setAttribute('href', '/?souls2thepolls');
                        }
                    })();
        </script>*@

        <ul id="nav-links" class="nav__links">
            <li class="nav__item nav__story">
                <a href="@Url.Action("Index", "Story", new {themeName = Model.ThemeName, lang = Model.LanguageCode})" class="nav__link story" id="story-link">@String10</a>
            </li>
            <li class="nav__item nav__how">
                <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})#howtoclaim" class="nav__link">@String11</a>
            </li>
            <li class="nav__item nav__support">
                <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})#support" class="nav__link">@String12</a>
            </li>
        </ul>

@*
*@
        

        <ul class="social">
            <li role="presentation" class="social__twitter">
                <a href="https://twitter.com/intent/tweet" class="twitter-mention-button" data-text="Need a ride to vote on election day? CarpoolVote.com can help! #election" data-related="" data-show-count="false">Tweet to help others find out about this!</a>
                <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
            </li>
            <li role="presentation" class="social__facebook">
                <div class="fb-share-button" data-href="http://carpoolvote.com?v=1" data-layout="button"></div>
            </li>
            <li role="presentation" class="social__youtube">
                <script src="https://apis.google.com/js/platform.js"></script>
                <div class="g-ytsubscribe" data-channelid="UCY1aS3TMDGxVbckA7Va0QFA" data-layout="default" data-count="hidden"></div>
            </li>
        </ul>
    </nav>
</header>

@*
    <div class="content">
            @await Html.PartialAsync("_LoginPartial")
        </div>
*@

@*
    <div id="LanguageNote">
    <pre>
        Currently Viewing Site:
        Language Name:  @ViewData["CurrentLanguageName"]  [@Model.LanguageName]
        Language     :  @ViewData["Language"]             [@Model.Language]
        Theme        :  @ViewData["ThemeName"]            [@Model.ThemeName]
    </pre>
    </div>
*@


<div class="content">
	@RenderBody()
</div>

    <footer class="footer">
        <div class="wrapper">
            <p class="footer__text">
                @ContactUs: <a class="footer__link" href="mailto:<EMAIL>"><EMAIL></a>
            </p>
            <form class="newsletter">
                <label class="newsletter__label" for="signup">@SignupForNewsletter</label>
                <input class="newsletter__input" type="text" placeholder="@EmailAddressHelpText">
                <input name="languageCode" type="hidden" value="@Model.LanguageCode">
                <input class="newsletter__submit" value="Join" type="submit">
            </form>
        </div>
        <div class="wrapper">
			@Html.ActionLink(TermsAndConditionsNameString,"Index", "TermsAndConditions", new {themeName = Model.ThemeName, lang = Model.LanguageCode})
        </div>
    </footer>

    <noscript>
        <style>
            .forms {
                margin-top: 0;
            }

            .ride-form {
                display: block;
            }
        </style>
    </noscript>
    <script>
        (function (i, s, o, g, r, a, m) {
            i['GoogleAnalyticsObject'] = r;
            i[r] = i[r] || function () {
                (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();
            a = s.createElement(o),
                m = s.getElementsByTagName(o)[0];
            a.async = 1;
            a.src = g;
            m.parentNode.insertBefore(a, m)
        })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
        ga('create', 'UA-1858235-15', 'auto');
        ga('send', 'pageview');
    </script>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/salvattore/1.0.9/salvattore.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.5/validator.min.js"></script>
    <script type="text/javascript" src="@Href("~/res/jquery-dateFormat.min.js")"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="@Href("~/res/jquery.datetimepicker.full.min.js")"></script>
    <script type="text/javascript" src="@Href("~/res/nouislider.min.js")"></script>
    <!-- dropdown for issue #37 - voting registrations per state -->
    <script type="text/javascript" src="@Href("~/dropdown.js")"></script>
	
@*
	TODO: Many of these scripts can be moved outside the Layout Page and into the script block for the relevant view. 
	(for example, rider/driver page needs the form scripts, the others do not)
	They would then be rendered by the optional script sections: 
		RenderSection("scripts", required: false)

*@	
	
    <script>
        $(document).ready(function () {
            // ECA: Since we removed the use of a query string, for a path instead, we don't need to do this.
            // Rewrite all hyperlinks to use a single query string.
            // if (window.location.search === '?souls2thepolls') {
            //     $('a[href^="/"]').each(function () {
            //         $(this).attr('href', $(this).attr('href') + '?souls2thepolls');
            //     });
            // }

            var $forms = $('#forms'),
                $intro = $('#intro'),
                supportsHistoryApi = !!(window.history && history.pushState);

            function scrollTo(offset, speed) {
                $('html, body').animate({
                    scrollTop: offset
                }, speed || 500);
            };

            function showForm(target) {
                $(target).slideDown(200).siblings().slideUp(200);
                $intro.slideUp(200);
                scrollTo(0);
            };

            function hideForms() {
                $forms.children().slideUp(200);
                $intro.slideDown(200);
                scrollTo(0);
            };

            function toggleFormsOnHashChange() {
                if (document.location.hash.length) {
                    showForm(document.location.hash);
                } else {
                    hideForms();
                }
            };

            $('#nav-links').on('click', 'a', function (e) {
                var anchor = $(this).attr('href');
                scrollTo($(anchor).offset().top, 999);
                e.preventDefault();
            });

            $intro.on('click', '.show-form', function (e) {
                var href = $(this).attr('href');
                showForm(href);
                if (supportsHistoryApi) {
                    history.pushState({ page: href }, href, href);
                } else {
                    window.location.hash = href;
                }
                e.preventDefault();
            });

            $forms.on('click', '.close-form', function (e) {
                hideForms();
                if (supportsHistoryApi) {
                    history.pushState({ page: 'home' }, 'Home', '/' + window.location.search);
                } else {
                    window.location.hash = '';
                }
                e.preventDefault();
            });

            $forms.find('.available-times-list')
                .on('click', '.remove-time', function () {
                    var $timesList = $(this).parents('.available-times-list');
                    $(this).parent().remove();
                    updateHiddenJSONTimes($timesList);
                });

            $forms.on('change', '#toggleRiderEmail', function () {
                $forms.find('#riderEmail')
                    .prop('required', $(this).is(':checked'));
            });

            $forms.on('submit', 'form', function () {
                updateHiddenJSONTimes($(this).find('.available-times-list'));
            });

            toggleFormsOnHashChange();
            window.onpopstate = toggleFormsOnHashChange;
        });

        $('.redirect').val(window.location.origin + window.location.pathname + 'thanks.html');

        var currentDateString = $.format.date(new Date(), "ddd, MMM d");
        $('#driver-button-date, #rider-button-date').text(currentDateString);


        // Toggle Official Driver input when checkbox is ticked:
        $('#officialDriver').on('change', function () {
            var isOfficialDriver = $(this).is(':checked');
            $('#quesDriverOrgName').toggle(isOfficialDriver)
                .find('#officialDriverOrgName').prop('required', isOfficialDriver);
        });

        function initDatePicker($datetime, $datepicker) {
            // Initialize datepickers
            // Max Date = Voting Day 2016!'
            $datepicker.datetimepicker({
                timepicker: false,
                format: 'l, M j',
                startDate: '2016/10/05',
                minDate: '2016/10/05',
                maxDate: '2016/11/08',
                yearStart: 2016,
                yearEnd: 2016,
                inline: true
            });

            // Must manually set the initial value of the calendar input
            // Needs to be today's date.
            var currDate = new Date();
            $datepicker.attr('value', currDate);

            $datepicker.on('change', function () {
                $datetime.find('.button-date').text($(this).val());
            });
        }

        function initTimeSlider($datetime, slider) {
            noUiSlider.create(slider, {
                start: [360, 1440],
                connect: true,
                step: 10,
                range: {
                    'min': [360],
                    'max': [1320]
                },
                pips: {
                    mode: 'values',
                    density: 2,
                    values: [480, 720, 960, 1200, ],
                    format: {
                        to: formatTime
                    }
                }
            });

            slider.noUiSlider.on('update', function () {
                var sliderData = slider.noUiSlider.get();
                var startTime = formatTime(sliderData[0]);
                var endTime = formatTime(sliderData[1]);
                $datetime.find('.add-time-btn')
                    .children('.button-time')
                    .text(startTime + '-' + endTime);
            });
        }

        function addTimeBtnListener($datetime, $slider, $timesList, $datepicker) {
            $datetime.on('click', '.add-time-btn', function (e) {
                var sliderData = $slider[0].noUiSlider.get();
                var startTime = formatTime(sliderData[0]);
                var endTime = formatTime(sliderData[1]);

                var date = $datepicker.val();
                var niceDate = $.format.date(date, "ddd D MMMM");

                // not comfortable with this, but can't see why don't get this from datepicker
                var datePlusYear = date + " 2016";

                var niceDateYear = $.format.date(datePlusYear, "ddd D MMMM yyyy");
                var startDateTime = niceDateYear + ' ' + startTime;
                var endDateTime = niceDateYear + ' ' + endTime;

                var ndt = $.format.date(datePlusYear, "dd MMMM yyyy");
                var sdt = moment(ndt);
                var edt = moment(ndt);

                var sliderStartTime = formatTime2(sliderData[0]);
                var sliderEndTime = formatTime2(sliderData[1]);

                var isoStart = getISOString(sdt, sliderStartTime);
                var isoEnd = getISOString(edt, sliderEndTime);


                var cancelButton = ' <button class="remove-time button--cancel" aria-label="Delete time">&times;</button>';

                var $listItem = $('<li/>')
                    .data('datetime', [isoStart, isoEnd].join('/'))
                    .html(niceDate + ', ' + startTime + '�' + endTime + cancelButton);

                $timesList.append($listItem);

                updateHiddenJSONTimes($timesList);

                e.preventDefault();
            });
        }

        function updateHiddenJSONTimes($timesList) {
            var timeData = $timesList.find('li').get().map(function (li) {
                return $(li).data('datetime');
            }).join('|');

            $timesList.siblings('.hiddenJSONTimes')
                .val(timeData)
                .trigger('change');
        }

        $('.date-time-pickers').each(function () {
            // Add selected date and time to list of available times on button click
            var $slider = $(this).find('.time-range-slider'),
                $timesList = $(this).find('.available-times-list'),
                $datepicker = $(this).find('.datepicker');

            initDatePicker($(this), $datepicker);

            initTimeSlider($(this), $slider.get(0));

            addTimeBtnListener($(this), $slider, $timesList, $datepicker);
        });

        function getISOString(date, timeAdjustment) {
            var isoString = '';

            date = date.add(timeAdjustment.mins, 'm');
            date = date.add(timeAdjustment.hour, 'h');

            if (timeAdjustment.am === false && timeAdjustment.hour !== 12) {
                date = date.add(12, 'h');
            }

            isoString = date.toISOString();

            return isoString;
        }

        // The sliders work with the day in terms of minutes, this function translates the minutes
        // into readable format i.e. 4:34pm
        function formatTime(minutes) {
            var am = false;
            if (minutes < 720) {
                am = true;
            }
            var hour = Math.floor(minutes / 60);
            hour = minutes < 780 ? hour : hour - 12;
            var out_minutes = minutes % 60;
            out_minutes = out_minutes < 10 ? '0' + out_minutes : out_minutes.toString();
            var ampmString = am ? 'am' : 'pm';

            return hour + ':' + out_minutes + ampmString;
        }

        function formatTime2(minutes) {
            var am = false;
            if (minutes < 720) {
                am = true;
            }
            var hour = Math.floor(minutes / 60);
            hour = minutes < 780 ? hour : hour - 12;
            var out_minutes = minutes % 60;
            out_minutes = out_minutes < 10 ? '0' + out_minutes : out_minutes.toString();
            var ampmString = am ? 'am' : 'pm';

            return {
                hour: hour,
                mins: out_minutes,
                am: am
            };
        }

    </script>

    @*<environment names="Development">
        <script src="~/lib/jquery/dist/jquery.js"></script>
        <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
        <script src="~/js/site.js" asp-append-version="true"></script>
    </environment>
    <environment names="Staging,Production">
        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.3.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/bootstrap.min.js"
                asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
                asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
        </script>
        <script src="~/js/site.min.js" asp-append-version="true"></script>
    </environment>*@

    @RenderSection("scripts", required: false)

</body>
</html>

<commit_msg>Support for Issue # 155. https://github.com/voteamerica/voteamerica.github.io/issues/155<commit_after>﻿@using CPV
@model CPV.CPVBasicViewModel
<!DOCTYPE html>
@{
    // ========================================================
    // ViewData["Language"] = Model.Language;                  // ?? "en_US";
    // ViewData["CurrentLanguageName"] = Model.LanguageName;   // ?? "English";
    // ViewData["ThemeName"] = Model.ThemeName;                // ?? "carpoolvote";
    // ========================================================

    // ViewData["Language"] = Model.Language ?? "en_US";
    // ViewData["CurrentLanguageName"] = Model.LanguageName ?? "English";
    // ViewData["ThemeName"] = Model.ThemeName ?? "carpoolvote";

    String String0 = "Need voter support? Call ";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String0 = "Necesidad de apoyo de los votantes? Telefonear ";
    }

    String StringHelpPhone = "1-866-OURVOTE";
    String StringHelpPhoneDigits = "18666878683";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        StringHelpPhone = "(888) VE-Y-VOTA";
        StringHelpPhoneDigits = "18888398682";
    }


    String String10 = "Our Story";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String10 = "Nuestra Historia";
    }

    String ContactUs = "Contact us";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        ContactUs = "En contacto con nosotros";
    }
	
    String String11 = "How it works";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String11 = "Cómo funciona";
    }

    String String12 = "Support";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH,StringComparison.OrdinalIgnoreCase))
    {
        String12 = "Ayuda";
    }

    string SignupForNewsletter = "Sign up for our newsletter";
    if (String.Equals(Model.LanguageCode,CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        SignupForNewsletter = "Suscribirse a nuestro boletín de noticias";
    }

    string EmailAddressHelpText = "email address";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        EmailAddressHelpText = "dirección de correo electrónico";
    }

    string TermsAndConditionsNameString = "Terms and Conditions";
    if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_SPANISH, StringComparison.OrdinalIgnoreCase))
    {
        TermsAndConditionsNameString = "Términos y Condiciones";
    }
	
    //

    }

<html lang="@Model.LanguageCode">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>@ViewData["Title"] - @ViewData["BrandName"]</title>
    <meta name="description" content="" property="description">
    <meta name="keywords" content="" property="keywords">
    <meta property="og:url" content="http://carpoolvote.com" />
    <meta property="og:type" content="website" />
    <meta property="og:title" content="Carpool Vote - Vote America" />
    <meta property="og:description" content="Get a ride or share a ride in the 2016 US Presidential Election. Every American DESERVES a vote!" />
    <meta property="og:image" content="http://carpoolvote/com/res/img/logo_fb.png?v=2" />
    <link rel="icon" href="@Href("~/favicon.ico")">
    <link href='https://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'>
    <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
    <link type="text/css" rel="stylesheet" href="@Href("~/res/jquery.datetimepicker.min.css")">
    <link type="text/css" rel="stylesheet" href="@Href("~/res/nouislider.min.css")">
    <link type="text/css" rel="stylesheet" href="@Href("~/css/main.css")">
	@* <link type="text/css" rel="stylesheet" href="@Href("~/css/site.css")"> *@
	<link type="text/css" rel="stylesheet" href="@Href("~/css/time-polyfill.css")">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <script>
        ! function (g, s, q, r, d) {
            r = g[r] = g[r] || function () {
                (r.q = r.q || []).push(
                    arguments)
            };
            d = s.createElement(q);
            q = s.getElementsByTagName(q)[0];
            d.src = '//d1l6p2sc9645hc.cloudfront.net/tracker.js';
            q.parentNode.
            insertBefore(d, q)
        }(window, document, 'script', '_gs');
        _gs('GSN-777832-U');
    </script>

    @*<environment names="Development">
        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
        <link rel="stylesheet" href="~/css/site.css" />
    </environment>
    <environment names="Staging,Production">
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
              asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
        <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
    </environment>*@
</head>

<body>
<!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>
    // Facebook SDK
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>


<a href="https://github.com/misteranderson/carpoolvote.aspnet/"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://camo.githubusercontent.com/82b228a3648bf44fc1163ef44c62fcc60081495e/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_left_red_aa0000.png"></a>



<div class="utility-bar">
	<div class="wrap">
		<div class="utility-bar-right">	
	
@*		<ul id="nav-lang" class="nav__languages">  *@
            @if (String.Equals(Model.LanguageCode, CPV.CPVConstants.LANGUAGE_ENGLISH, StringComparison.OrdinalIgnoreCase))
            {
@*                <li class="nav__item nav__language"> *@
				<text>
                    @Html.ActionLink(CPV.CPVConstants.LANGUAGE_SPANISH_NAME, "Index", null, new { themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_SPANISH }, new { @class = "nav__link", hreflang=CPV.CPVConstants.LANGUAGE_SPANISH, rel="alternate" })
				</text>
@*                </li>*@
            }
            else
            {
@*                <li class="nav__item nav__language"> *@
				<text>
                    @Html.ActionLink(CPV.CPVConstants.LANGUAGE_ENGLISH_NAME, "Index", null, new { themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_ENGLISH }, new { @class = "nav__link" })
                    @*<a href="@Url.Action("Index", new {themeName = Model.ThemeName, lang = CPV.CPVConstants.LANGUAGE_ENGLISH})" class="nav__link">@CPV.CPVConstants.LANGUAGE_ENGLISH_NAME</a>*@
				</text>
@*                </li>*@
            }
@*        </ul>*@
		</div>
	</div>
</div>


<header class="header">
    <p class="support-banner">@String0 <a href="tel:@StringHelpPhoneDigits">@StringHelpPhone</a></p>
    <nav class="nav wrapper">
        @{
            string logoUrl = "~/res/img/logo.jpg";
            int logoHeight = 187;
            int logoWidth = 709;
            string logoAlt = "Carpool Vote";

            if (String.Equals(Model.ThemeName, "souls2thepolls", StringComparison.OrdinalIgnoreCase))
            {
                logoUrl = "~/res/img/logo-souls2thepolls.png";
                logoHeight = 300;
                logoWidth = 661;
                logoAlt = "Souls2ThePolls - CarPool Vote";
            }

        }
        <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})" class="logo">
            <img id="logo" class="logo__img" src="@Href(logoUrl)" alt="@logoAlt" width="@logoWidth" height="@logoHeight"/>
        </a>
        <br/>
        @*<script>
            (function() {
                        if (window.location.search === '?souls2thepolls') {
                            var logo = document.getElementById('logo');
                            logo.setAttribute('src', 'res/img/logo-souls2thepolls.png');
                            logo.setAttribute('width', 661);
                            logo.setAttribute('height', 300);
                            logo.parentNode.setAttribute('href', '/?souls2thepolls');
                        }
                    })();
        </script>*@

        <ul id="nav-links" class="nav__links">
            <li class="nav__item nav__story">
                <a href="@Url.Action("Index", "Story", new {themeName = Model.ThemeName, lang = Model.LanguageCode})" class="nav__link story" id="story-link">@String10</a>
            </li>
            <li class="nav__item nav__how">
                <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})#howtoclaim" class="nav__link">@String11</a>
            </li>
            <li class="nav__item nav__support">
                <a href="@Url.Action("Index", "Home", new {themeName = Model.ThemeName, lang = Model.LanguageCode})#support" class="nav__link">@String12</a>
            </li>
        </ul>

@*
*@
        

        <ul class="social">
            <li role="presentation" class="social__twitter">
                <a href="https://twitter.com/intent/tweet" class="twitter-mention-button" data-text="Need a ride to vote on election day? CarpoolVote.com can help! #election" data-related="" data-show-count="false">Tweet to help others find out about this!</a>
                <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
            </li>
            <li role="presentation" class="social__facebook">
                <div class="fb-share-button" data-href="http://carpoolvote.com?v=1" data-layout="button"></div>
            </li>
            <li role="presentation" class="social__youtube">
                <script src="https://apis.google.com/js/platform.js"></script>
                <div class="g-ytsubscribe" data-channelid="UCY1aS3TMDGxVbckA7Va0QFA" data-layout="default" data-count="hidden"></div>
            </li>
        </ul>
    </nav>
</header>

@*
    <div class="content">
            @await Html.PartialAsync("_LoginPartial")
        </div>
*@

@*
    <div id="LanguageNote">
    <pre>
        Currently Viewing Site:
        Language Name:  @ViewData["CurrentLanguageName"]  [@Model.LanguageName]
        Language     :  @ViewData["Language"]             [@Model.Language]
        Theme        :  @ViewData["ThemeName"]            [@Model.ThemeName]
    </pre>
    </div>
*@


<div class="content">
	@RenderBody()
</div>

    <footer class="footer">
        <div class="wrapper">
            <p class="footer__text">
                @ContactUs: <a class="footer__link" href="mailto:<EMAIL>"><EMAIL></a>
            </p>
            <form class="newsletter">
                <label class="newsletter__label" for="signup">@SignupForNewsletter</label>
                <input class="newsletter__input" type="text" placeholder="@EmailAddressHelpText">
                <input name="languageCode" type="hidden" value="@Model.LanguageCode">
                <input class="newsletter__submit" value="Join" type="submit">
            </form>
        </div>
        <div class="wrapper">
			@Html.ActionLink(TermsAndConditionsNameString,"Index", "TermsAndConditions", new {themeName = Model.ThemeName, lang = Model.LanguageCode})
        </div>
    </footer>

    <noscript>
        <style>
            .forms {
                margin-top: 0;
            }

            .ride-form {
                display: block;
            }
        </style>
    </noscript>
    <script>
        (function (i, s, o, g, r, a, m) {
            i['GoogleAnalyticsObject'] = r;
            i[r] = i[r] || function () {
                (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();
            a = s.createElement(o),
                m = s.getElementsByTagName(o)[0];
            a.async = 1;
            a.src = g;
            m.parentNode.insertBefore(a, m)
        })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
        ga('create', 'UA-1858235-15', 'auto');
        ga('send', 'pageview');
    </script>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/salvattore/1.0.9/salvattore.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.5/validator.min.js"></script>
    <script type="text/javascript" src="@Href("~/res/jquery-dateFormat.min.js")"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="@Href("~/res/jquery.datetimepicker.full.min.js")"></script>
    <script type="text/javascript" src="@Href("~/res/nouislider.min.js")"></script>
    <!-- dropdown for issue #37 - voting registrations per state -->
    <script type="text/javascript" src="@Href("~/dropdown.js")"></script>
	
@*
	TODO: Many of these scripts can be moved outside the Layout Page and into the script block for the relevant view. 
	(for example, rider/driver page needs the form scripts, the others do not)
	They would then be rendered by the optional script sections: 
		RenderSection("scripts", required: false)

*@	
	
    <script>
        $(document).ready(function () {
            // ECA: Since we removed the use of a query string, for a path instead, we don't need to do this.
            // Rewrite all hyperlinks to use a single query string.
            // if (window.location.search === '?souls2thepolls') {
            //     $('a[href^="/"]').each(function () {
            //         $(this).attr('href', $(this).attr('href') + '?souls2thepolls');
            //     });
            // }

            var $forms = $('#forms'),
                $intro = $('#intro'),
                supportsHistoryApi = !!(window.history && history.pushState);

            function scrollTo(offset, speed) {
                $('html, body').animate({
                    scrollTop: offset
                }, speed || 500);
            };

            function showForm(target) {
                $(target).slideDown(200).siblings().slideUp(200);
                $intro.slideUp(200);
                scrollTo(0);
            };

            function hideForms() {
                $forms.children().slideUp(200);
                $intro.slideDown(200);
                scrollTo(0);
            };

            function toggleFormsOnHashChange() {
                if (document.location.hash.length) {
                    showForm(document.location.hash);
                } else {
                    hideForms();
                }
            };

            $('#nav-links').on('click', 'a', function (e) {
                var anchor = $(this).attr('href');
                scrollTo($(anchor).offset().top, 999);
                e.preventDefault();
            });

            $intro.on('click', '.show-form', function (e) {
                var href = $(this).attr('href');
                showForm(href);
                if (supportsHistoryApi) {
                    history.pushState({ page: href }, href, href);
                } else {
                    window.location.hash = href;
                }
                e.preventDefault();
            });

            $forms.on('click', '.close-form', function (e) {
                hideForms();
                if (supportsHistoryApi) {
                    history.pushState({ page: 'home' }, 'Home', '/' + window.location.search);
                } else {
                    window.location.hash = '';
                }
                e.preventDefault();
            });

            $forms.find('.available-times-list')
                .on('click', '.remove-time', function () {
                    var $timesList = $(this).parents('.available-times-list');
                    $(this).parent().remove();
                    updateHiddenJSONTimes($timesList);
                });

            $forms.on('change', '#toggleRiderEmail', function () {
                $forms.find('#riderEmail')
                    .prop('required', $(this).is(':checked'));
            });

            $forms.on('submit', 'form', function () {
                updateHiddenJSONTimes($(this).find('.available-times-list'));
            });

            toggleFormsOnHashChange();
            window.onpopstate = toggleFormsOnHashChange;
        });

        $('.redirect').val(window.location.origin + window.location.pathname + 'thanks.html');

        var currentDateString = $.format.date(new Date(), "ddd, MMM d");
        $('#driver-button-date, #rider-button-date').text(currentDateString);


        // Toggle Official Driver input when checkbox is ticked:
        $('#officialDriver').on('change', function () {
            var isOfficialDriver = $(this).is(':checked');
            $('#quesDriverOrgName').toggle(isOfficialDriver)
                .find('#officialDriverOrgName').prop('required', isOfficialDriver);
        });

        function initDatePicker($datetime, $datepicker) {
            // Initialize datepickers
            // Max Date = Voting Day 2016!'
            $datepicker.datetimepicker({
                timepicker: false,
                format: 'l, M j',
                startDate: '2016/10/05',
                minDate: '2016/10/05',
                maxDate: '2016/11/08',
                yearStart: 2016,
                yearEnd: 2016,
                inline: true
            });

            // Must manually set the initial value of the calendar input
            // Needs to be today's date.
            var currDate = new Date();
            $datepicker.attr('value', currDate);

            $datepicker.on('change', function () {
                $datetime.find('.button-date').text($(this).val());
            });
        }

        function initTimeSlider($datetime, slider) {
            noUiSlider.create(slider, {
                start: [360, 1440],
                connect: true,
                step: 10,
                range: {
                    'min': [360],
                    'max': [1320]
                },
                pips: {
                    mode: 'values',
                    density: 2,
                    values: [480, 720, 960, 1200, ],
                    format: {
                        to: formatTime
                    }
                }
            });

            slider.noUiSlider.on('update', function () {
                var sliderData = slider.noUiSlider.get();
                var startTime = formatTime(sliderData[0]);
                var endTime = formatTime(sliderData[1]);
                $datetime.find('.add-time-btn')
                    .children('.button-time')
                    .text(startTime + '-' + endTime);
            });
        }

        function addTimeBtnListener($datetime, $slider, $timesList, $datepicker) {
            $datetime.on('click', '.add-time-btn', function (e) {
                var sliderData = $slider[0].noUiSlider.get();
                var startTime = formatTime(sliderData[0]);
                var endTime = formatTime(sliderData[1]);

                var date = $datepicker.val();
                var niceDate = $.format.date(date, "ddd D MMMM");

                // not comfortable with this, but can't see why don't get this from datepicker
                var datePlusYear = date + " 2016";

                var niceDateYear = $.format.date(datePlusYear, "ddd D MMMM yyyy");
                var startDateTime = niceDateYear + ' ' + startTime;
                var endDateTime = niceDateYear + ' ' + endTime;

                var ndt = $.format.date(datePlusYear, "dd MMMM yyyy");
                var sdt = moment(ndt);
                var edt = moment(ndt);

                var sliderStartTime = formatTime2(sliderData[0]);
                var sliderEndTime = formatTime2(sliderData[1]);

                var isoStart = getISOString(sdt, sliderStartTime);
                var isoEnd = getISOString(edt, sliderEndTime);


                var cancelButton = ' <button class="remove-time button--cancel" aria-label="Delete time">&times;</button>';

                var $listItem = $('<li/>')
                    .data('datetime', [isoStart, isoEnd].join('/'))
                    .html(niceDate + ', ' + startTime + '�' + endTime + cancelButton);

                $timesList.append($listItem);

                updateHiddenJSONTimes($timesList);

                e.preventDefault();
            });
        }

        function updateHiddenJSONTimes($timesList) {
            var timeData = $timesList.find('li').get().map(function (li) {
                return $(li).data('datetime');
            }).join('|');

            $timesList.siblings('.hiddenJSONTimes')
                .val(timeData)
                .trigger('change');
        }

        $('.date-time-pickers').each(function () {
            // Add selected date and time to list of available times on button click
            var $slider = $(this).find('.time-range-slider'),
                $timesList = $(this).find('.available-times-list'),
                $datepicker = $(this).find('.datepicker');

            initDatePicker($(this), $datepicker);

            initTimeSlider($(this), $slider.get(0));

            addTimeBtnListener($(this), $slider, $timesList, $datepicker);
        });

        function getISOString(date, timeAdjustment) {
            var isoString = '';

            date = date.add(timeAdjustment.mins, 'm');
            date = date.add(timeAdjustment.hour, 'h');

            if (timeAdjustment.am === false && timeAdjustment.hour !== 12) {
                date = date.add(12, 'h');
            }

            isoString = date.toISOString();

            return isoString;
        }

        // The sliders work with the day in terms of minutes, this function translates the minutes
        // into readable format i.e. 4:34pm
        function formatTime(minutes) {
            var am = false;
            if (minutes < 720) {
                am = true;
            }
            var hour = Math.floor(minutes / 60);
            hour = minutes < 780 ? hour : hour - 12;
            var out_minutes = minutes % 60;
            out_minutes = out_minutes < 10 ? '0' + out_minutes : out_minutes.toString();
            var ampmString = am ? 'am' : 'pm';

            return hour + ':' + out_minutes + ampmString;
        }

        function formatTime2(minutes) {
            var am = false;
            if (minutes < 720) {
                am = true;
            }
            var hour = Math.floor(minutes / 60);
            hour = minutes < 780 ? hour : hour - 12;
            var out_minutes = minutes % 60;
            out_minutes = out_minutes < 10 ? '0' + out_minutes : out_minutes.toString();
            var ampmString = am ? 'am' : 'pm';

            return {
                hour: hour,
                mins: out_minutes,
                am: am
            };
        }

    </script>

    @*<environment names="Development">
        <script src="~/lib/jquery/dist/jquery.js"></script>
        <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
        <script src="~/js/site.js" asp-append-version="true"></script>
    </environment>
    <environment names="Staging,Production">
        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.3.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery">
        </script>
        <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/bootstrap.min.js"
                asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
                asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
        </script>
        <script src="~/js/site.min.js" asp-append-version="true"></script>
    </environment>*@

    @RenderSection("scripts", required: false)

</body>
</html>


{'fraction_non_alphanumeric': 0.15745791311854962, 'fraction_numerical': 0.01809049170034925, 'mean_word_length': 2.0775315500271723, 'pattern_counts': {'":': 0, '<': 399, '<?xml version=': 0, '>': 387, 'https://': 35, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6515858', 'n_tokens_mistral': 16138, 'n_tokens_neox': 14761, 'n_words': 2757}