engagementgamelab/CivicSeed

View on GitHub
client/static/assets/main/1450475783291.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html lang="en" class="no-js">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>{ ::: Civic Seed ::: }</title>
    <meta name="viewport" content="width=device-width">
    <meta name="description" content="">
    <meta name="author" content="">
    <link href="http://fonts.googleapis.com/css?family=Nunito:300,700|Arvo:400,700,400italic" rel="stylesheet" type="text/css">
    <script src="/js/modernizr-2.6.2.min.js"></script>
    <link rel="stylesheet" type="text/css" href="/css/normalize.css">
    <link rel="stylesheet" type="text/css" href="/css/main.css">
    <link rel="stylesheet" type="text/css" href="/css/font-awesome.min.css">
    <script>window.CivicSeed = {"VERSION":"0.2.0","CACHE":"0.2.0","ENVIRONMENT":"production","CLOUD_PATH":"http://res.cloudinary.com/engagement-lab-home/image/upload/civicseed","CLOUD_PATH_MEDIA":"http://res.cloudinary.com/engagement-lab-home/video/upload/civicseed","CONNECTED":true,"SURVEY_POSTGAME_LINK":"https://tufts.qualtrics.com/SE/?SID=SV_8e4f2B5477oF84l","SURVEY_PREGAME_LINK":"https://tufts.qualtrics.com/SE/?SID=SV_0fhrpway6HnKT5j"};</script><link href="/assets/main/1450475783291.css" media="screen" rel="stylesheet" type="text/css"><script src="/assets/main/1450475783291.js" type="text/javascript"></script><script type="text/javascript">if(!window.JT){window.JT = {};}
window.JT['admin-export'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div id=\"admin-export\" class=\"console\"><div class=\"console-content\"><p>Click on a button below to export data.</p><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"user\" class=\"btn\">Users<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"game\" class=\"btn\">Game<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"color\" class=\"btn\">Colors<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"chat\" class=\"btn\">Chat<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"botanist\" class=\"btn\">Botanist<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"npc\" class=\"btn\">NPC<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p></p></div></div></div></div></div></div></div>");;return buf.join("");
});

window.JT['admin-invitecodes'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div id=\"admin-invites\" class=\"console\"><div class=\"console-content\"><h2>Create a new group of invites.</h2><p><strong class='color-darkblue'>Instructions.</strong> Please set a new game name and include up to twenty (20) e-mail addresses.</p><p><strong class='color-red'>Warning!</strong> This creates a new user account for each e-mail address. If the user is already in the system, this will overwrite their profile without warning!</p><form><div class=\"row\"><div class=\"col-sm-3\"><label for=\"invite-email-list\" class=\"control-label\">Email addresses:</label></div><div class=\"col-sm-9 controls\"><textarea id=\"invite-email-list\" rows=\"4\" placeholder=\"Enter a list of comma-separated email addresses. Note: more than twenty e-mail addresses will be ignored!\"></textarea></div></div><div class=\"row control-group\"><div class=\"col-sm-3\"><label for=\"invite-game-name\" class=\"control-label\">Game name:</label></div><div class=\"col-sm-9 controls\"><input id=\"invite-game-name\" placeholder=\"ex. Tufts Round 1\"/></div></div><div class=\"row control-group\"><div class=\"col-sm-9 col-sm-offset-3 controls\"><button id=\"invite-button\" type=\"button\" class=\"btn\">Create and send invites<div class=\"spinner\"></div></button></div></div><div class=\"row\"><div class=\"col-sm-9 col-sm-offset-3\"><div class=\"server-response\"></div></div></div></form></div></div></div></div></div>");;return buf.join("");
});

window.JT['admin-monitor'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment,instances = locals_.instances;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div id=\"admin-monitor\"><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\">");
// iterate instances
;(function(){
  var $$obj = instances;
  if ('number' == typeof $$obj.length) {

    for (var i = 0, $$l = $$obj.length; i < $$l; i++) {
      var instance = $$obj[i];

buf.push("<div class=\"console-buttons\"><h3>Game: <span class='color-darkblue'>" + (jade.escape((jade.interp = instance) == null ? '' : jade.interp)) + "</span></h3><button id=\"players\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Players</button><button id=\"chat\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Chat Logs</button><button id=\"questions\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Questions</button><button id=\"addPlayer\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Add Player</button><button id=\"startStop\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Start / Stop</button></div>");
    }

  } else {
    var $$l = 0;
    for (var i in $$obj) {
      $$l++;      var instance = $$obj[i];

buf.push("<div class=\"console-buttons\"><h3>Game: <span class='color-darkblue'>" + (jade.escape((jade.interp = instance) == null ? '' : jade.interp)) + "</span></h3><button id=\"players\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Players</button><button id=\"chat\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Chat Logs</button><button id=\"questions\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Questions</button><button id=\"addPlayer\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Add Player</button><button id=\"startStop\"" + (jade.attr("data-instance", '' + (instance) + '', true, false)) + " class=\"monitor-button btn\">Start / Stop</button></div>");
    }

  }
}).call(this);

buf.push("</div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"console\"><div class=\"console-content\"><div class=\"output\"><p>Click a button above to monitor an aspect of a game session.</p></div></div></div></div></div></div></div>");;return buf.join("");
});

window.JT['admin-npcs'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment,npcs = locals_.npcs;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div id=\"admin-npcs\" class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"npc-actions\"><button type=\"button\" class=\"npc-export-button btn\">Export All NPC Data</button><button type=\"button\" class=\"npc-add-button btn\">Add NPC</button></div><div class=\"npc-add-insert-here\"></div>");
// iterate npcs
;(function(){
  var $$obj = npcs;
  if ('number' == typeof $$obj.length) {

    for (var n = 0, $$l = $$obj.length; n < $$l; n++) {
      var npc = $$obj[n];

buf.push("<div" + (jade.attr("data-sprite", npc.sprite, true, false)) + (jade.cls(['npc','level' + npc.level +' npc' + npc.id], [null,true])) + ">");
var formId = 'npc_' + npc.id
buf.push("<form" + (jade.attr("id", formId, true, false)) + "><div class=\"information\"><div class=\"sprite\"><div class=\"sprite-controls\"><i class=\"fa fa-arrow-circle-up sprite-up\"></i><i class=\"fa fa-arrow-circle-down sprite-down\"></i></div></div><div class=\"npc-basic-info\"><input type=\"text\" data-area=\"name\"" + (jade.attr("value", '' + (npc.name) + '', true, false)) + " placeholder=\"name\" class=\"name\"/><label" + (jade.attr("for", 'npcLevel_' + npc.id, true, false)) + ">level:</label><input" + (jade.attr("id", 'npcLevel_' + npc.id, true, false)) + " type=\"text\" data-area=\"level\"" + (jade.attr("value", '' + (npc.level + 1) + '', true, false)) + " placeholder=\"lvl\" class=\"number\"/><label" + (jade.attr("for", 'npcCoordsX_' + npc.id, true, false)) + ">location:</label><input" + (jade.attr("id", 'npcCoordsX_' + npc.id, true, false)) + " type=\"text\" data-area=\"position.x\"" + (jade.attr("value", '' + (npc.position.x) + '', true, false)) + " placeholder=\"x\" class=\"number\"/><input" + (jade.attr("id", 'npcCoordsY_' + npc.id, true, false)) + " type=\"text\" data-area=\"position.y\"" + (jade.attr("value", '' + (npc.position.y) + '', true, false)) + " placeholder=\"y\" class=\"number\"/>");
var npcIsHolding = (npc.isHolding) ? true : false
buf.push("<label" + (jade.attr("for", 'npcIsHolding_' + npc.id, true, false)) + ">holding:</label><input" + (jade.attr("id", 'npcIsHolding_' + npc.id, true, false)) + " name=\"isHolding\" value=\"isHolding\" type=\"checkbox\"" + (jade.attr("checked", npcIsHolding, true, false)) + " class=\"holding\"/></div></div><div" + (jade.attr("style", (npcIsHolding) ? 'display:block' : 'display:none', true, false)) + " class=\"resource\"><button type=\"button\" class=\"view-resource-button btn\">view resource</button><h3>Resource</h3><label" + (jade.attr("for", 'resourceUrl_' + npc.id, true, false)) + ">URL <small>case and space sensitive</small></label><input" + (jade.attr("id", 'resourceUrl_' + npc.id, true, false)) + " type=\"text\" data-area=\"url\" placeholder=\"numerical id\"" + (jade.attr("value", (npc.resource.url) ? '' + (npc.resource.url) + '' : '', true, false)) + " class=\"url\"/><label" + (jade.attr("for", 'resourceTangram_' + npc.id, true, false)) + ">Tangram Piece</label><input" + (jade.attr("id", 'resourceTangram_' + npc.id, true, false)) + " type=\"text\" data-area=\"shape\"" + (jade.attr("value", (npc.resource.shape) ? '' + (npc.resource.shape) + '' : '', true, false)) + " class=\"url\"/><label" + (jade.attr("for", 'resourceQuestion_' + npc.id, true, false)) + ">Question");
var questionOpen      = (npc.resource.questionType === 'open')      ? true : false
var questionTrueFalse = (npc.resource.questionType === 'truefalse') ? true : false
var questionYesNo     = (npc.resource.questionType === 'yesno')     ? true : false
var questionMultiple  = (npc.resource.questionType === 'multiple')  ? true : false
buf.push("<div class=\"questionType\"><input" + (jade.attr("id", 'questionOpen_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"open\" type=\"radio\"" + (jade.attr("checked", questionOpen, true, false)) + "/><label" + (jade.attr("for", 'questionOpen_' + npc.id, true, false)) + ">open</label><input" + (jade.attr("id", 'questionTrueFalse_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"truefalse\" type=\"radio\"" + (jade.attr("checked", questionTrueFalse, true, false)) + "/><label" + (jade.attr("for", 'questionTrueFalse_' + npc.id, true, false)) + ">true / false</label><input" + (jade.attr("id", 'questionYesNo_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"yesno\" type=\"radio\"" + (jade.attr("checked", questionYesNo, true, false)) + "/><label" + (jade.attr("for", 'questionYesNo_' + npc.id, true, false)) + ">yes / no</label><input" + (jade.attr("id", 'questionMultiple_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"multiple\" type=\"radio\"" + (jade.attr("checked", questionMultiple, true, false)) + "/><label" + (jade.attr("for", 'questionMultiple_' + npc.id, true, false)) + ">multiple choice</label></div></label><textarea" + (jade.attr("id", 'resourceQuestion_' + npc.id, true, false)) + " data-area=\"question\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.question) == null ? '' : jade.interp)) + "</textarea><div" + (jade.attr("style", (questionOpen) ? 'display:block' : 'display:none', true, false)) + " class=\"requiredDiv questionOptions\"><label" + (jade.attr("for", 'questionSuggestedLength_' + npc.id, true, false)) + ">Suggested Length</label><input" + (jade.attr("id", 'questionSuggestedLength_' + npc.id, true, false)) + " type=\"text\" data-area=\"requiredLength\" maxlength=\"3\"" + (jade.attr("value", (npc.resource.requiredLength) ? '' + (npc.resource.requiredLength) + '' : '', true, false)) + "/></div><div" + (jade.attr("style", (questionMultiple) ? 'display:block' : 'display:none', true, false)) + " class=\"possibleDiv questionOptions\"><label>Choices</label>");
if ( (questionMultiple))
{
// iterate npc.resource.possibleAnswers
;(function(){
  var $$obj = npc.resource.possibleAnswers;
  if ('number' == typeof $$obj.length) {

    for (var c = 0, $$l = $$obj.length; c < $$l; c++) {
      var choice = $$obj[c];

buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\">" + (jade.escape((jade.interp = npc.resource.possibleAnswers[c]) == null ? '' : jade.interp)) + "</textarea>");
    }

  } else {
    var $$l = 0;
    for (var c in $$obj) {
      $$l++;      var choice = $$obj[c];

buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\">" + (jade.escape((jade.interp = npc.resource.possibleAnswers[c]) == null ? '' : jade.interp)) + "</textarea>");
    }

  }
}).call(this);

}
else
{
buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea>");
}
buf.push("</div><div" + (jade.attr("style", (!questionOpen) ? 'display:block' : 'display:none', true, false)) + " class=\"answerDiv questionOptions\"><label" + (jade.attr("for", 'questionAnswer_' + npc.id, true, false)) + ">Answer</label><input" + (jade.attr("id", 'questionAnswer_' + npc.id, true, false)) + " type=\"text\" data-area=\"answer\"" + (jade.attr("value", (npc.resource.answer) ? '' + (npc.resource.answer) + '' : '', true, false)) + " class=\"answer\"/></div><label" + (jade.attr("for", 'resourceDependsOn_' + npc.id, true, false)) + ">Depends on NPC</label><input" + (jade.attr("id", 'resourceDependsOn_' + npc.id, true, false)) + " type=\"text\" data-area=\"dependsOn\" maxlength=\"4\"" + (jade.attr("value", (npc.dependsOn) ? '' + (npc.dependsOn) + '' : '', true, false)) + "/><label" + (jade.attr("for", 'resourceCorrect_' + npc.id, true, false)) + ">Feedback Correct</label><textarea" + (jade.attr("id", 'resourceCorrect_' + npc.id, true, false)) + " data-area=\"feedbackRight\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.feedbackRight) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'resourceWrong_' + npc.id, true, false)) + ">Feedback Wrong</label><textarea" + (jade.attr("id", 'resourceWrong_' + npc.id, true, false)) + " data-area=\"feedbackWrong\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.feedbackWrong) == null ? '' : jade.interp)) + "</textarea></div><div" + (jade.attr("style", npcIsHolding?'display:block':'display:none', true, false)) + " class=\"prompts\"><h3>Prompts</h3><label" + (jade.attr("for", 'promptsFirstTime_' + npc.id, true, false)) + ">First Time</label><textarea" + (jade.attr("id", 'promptsFirstTime_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[0]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'promptsAfterIncorrect_' + npc.id, true, false)) + ">Returning After Incorrect</label><textarea" + (jade.attr("id", 'promptsAfterIncorrect_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[1]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'promptsAfterCompleted_' + npc.id, true, false)) + ">Returning After Completed</label><textarea" + (jade.attr("id", 'promptsAfterCompleted_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[2]) == null ? '' : jade.interp)) + "</textarea></div><div" + (jade.attr("style", !npcIsHolding?'display:block':'display:none', true, false)) + " class=\"smalltalk\"><h3>Dialog</h3><label" + (jade.attr("for", 'dialogPast_' + npc.id, true, false)) + ">Past</label><textarea" + (jade.attr("id", 'dialogPast_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"0\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[0]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'dialogPresent_' + npc.id, true, false)) + ">Present</label><textarea" + (jade.attr("id", 'dialogPresent_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"1\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[1]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'dialogFuture_' + npc.id, true, false)) + ">Future</label><textarea" + (jade.attr("id", 'dialogFuture_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"2\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[2]) == null ? '' : jade.interp)) + "</textarea></div><div class=\"skinSuit\"><h3>Skin Suit</h3><input type=\"text\"" + (jade.attr("value", (npc.skinSuit) ? '' + (npc.skinSuit) + '' : '', true, false)) + "/></div><div class=\"options\">");
if (!(npc.id >= 0))
{
buf.push("<button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-create-button btn\">create</button><button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-cancel-button btn\">cancel</button>");
}
else
{
buf.push("<button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-save-button btn\">save</button><button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-delete-button btn\">delete</button>");
}
buf.push("</div></form></div>");
    }

  } else {
    var $$l = 0;
    for (var n in $$obj) {
      $$l++;      var npc = $$obj[n];

buf.push("<div" + (jade.attr("data-sprite", npc.sprite, true, false)) + (jade.cls(['npc','level' + npc.level +' npc' + npc.id], [null,true])) + ">");
var formId = 'npc_' + npc.id
buf.push("<form" + (jade.attr("id", formId, true, false)) + "><div class=\"information\"><div class=\"sprite\"><div class=\"sprite-controls\"><i class=\"fa fa-arrow-circle-up sprite-up\"></i><i class=\"fa fa-arrow-circle-down sprite-down\"></i></div></div><div class=\"npc-basic-info\"><input type=\"text\" data-area=\"name\"" + (jade.attr("value", '' + (npc.name) + '', true, false)) + " placeholder=\"name\" class=\"name\"/><label" + (jade.attr("for", 'npcLevel_' + npc.id, true, false)) + ">level:</label><input" + (jade.attr("id", 'npcLevel_' + npc.id, true, false)) + " type=\"text\" data-area=\"level\"" + (jade.attr("value", '' + (npc.level + 1) + '', true, false)) + " placeholder=\"lvl\" class=\"number\"/><label" + (jade.attr("for", 'npcCoordsX_' + npc.id, true, false)) + ">location:</label><input" + (jade.attr("id", 'npcCoordsX_' + npc.id, true, false)) + " type=\"text\" data-area=\"position.x\"" + (jade.attr("value", '' + (npc.position.x) + '', true, false)) + " placeholder=\"x\" class=\"number\"/><input" + (jade.attr("id", 'npcCoordsY_' + npc.id, true, false)) + " type=\"text\" data-area=\"position.y\"" + (jade.attr("value", '' + (npc.position.y) + '', true, false)) + " placeholder=\"y\" class=\"number\"/>");
var npcIsHolding = (npc.isHolding) ? true : false
buf.push("<label" + (jade.attr("for", 'npcIsHolding_' + npc.id, true, false)) + ">holding:</label><input" + (jade.attr("id", 'npcIsHolding_' + npc.id, true, false)) + " name=\"isHolding\" value=\"isHolding\" type=\"checkbox\"" + (jade.attr("checked", npcIsHolding, true, false)) + " class=\"holding\"/></div></div><div" + (jade.attr("style", (npcIsHolding) ? 'display:block' : 'display:none', true, false)) + " class=\"resource\"><button type=\"button\" class=\"view-resource-button btn\">view resource</button><h3>Resource</h3><label" + (jade.attr("for", 'resourceUrl_' + npc.id, true, false)) + ">URL <small>case and space sensitive</small></label><input" + (jade.attr("id", 'resourceUrl_' + npc.id, true, false)) + " type=\"text\" data-area=\"url\" placeholder=\"numerical id\"" + (jade.attr("value", (npc.resource.url) ? '' + (npc.resource.url) + '' : '', true, false)) + " class=\"url\"/><label" + (jade.attr("for", 'resourceTangram_' + npc.id, true, false)) + ">Tangram Piece</label><input" + (jade.attr("id", 'resourceTangram_' + npc.id, true, false)) + " type=\"text\" data-area=\"shape\"" + (jade.attr("value", (npc.resource.shape) ? '' + (npc.resource.shape) + '' : '', true, false)) + " class=\"url\"/><label" + (jade.attr("for", 'resourceQuestion_' + npc.id, true, false)) + ">Question");
var questionOpen      = (npc.resource.questionType === 'open')      ? true : false
var questionTrueFalse = (npc.resource.questionType === 'truefalse') ? true : false
var questionYesNo     = (npc.resource.questionType === 'yesno')     ? true : false
var questionMultiple  = (npc.resource.questionType === 'multiple')  ? true : false
buf.push("<div class=\"questionType\"><input" + (jade.attr("id", 'questionOpen_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"open\" type=\"radio\"" + (jade.attr("checked", questionOpen, true, false)) + "/><label" + (jade.attr("for", 'questionOpen_' + npc.id, true, false)) + ">open</label><input" + (jade.attr("id", 'questionTrueFalse_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"truefalse\" type=\"radio\"" + (jade.attr("checked", questionTrueFalse, true, false)) + "/><label" + (jade.attr("for", 'questionTrueFalse_' + npc.id, true, false)) + ">true / false</label><input" + (jade.attr("id", 'questionYesNo_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"yesno\" type=\"radio\"" + (jade.attr("checked", questionYesNo, true, false)) + "/><label" + (jade.attr("for", 'questionYesNo_' + npc.id, true, false)) + ">yes / no</label><input" + (jade.attr("id", 'questionMultiple_' + npc.id, true, false)) + (jade.attr("name", ('radio' + npc.id), true, false)) + " value=\"multiple\" type=\"radio\"" + (jade.attr("checked", questionMultiple, true, false)) + "/><label" + (jade.attr("for", 'questionMultiple_' + npc.id, true, false)) + ">multiple choice</label></div></label><textarea" + (jade.attr("id", 'resourceQuestion_' + npc.id, true, false)) + " data-area=\"question\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.question) == null ? '' : jade.interp)) + "</textarea><div" + (jade.attr("style", (questionOpen) ? 'display:block' : 'display:none', true, false)) + " class=\"requiredDiv questionOptions\"><label" + (jade.attr("for", 'questionSuggestedLength_' + npc.id, true, false)) + ">Suggested Length</label><input" + (jade.attr("id", 'questionSuggestedLength_' + npc.id, true, false)) + " type=\"text\" data-area=\"requiredLength\" maxlength=\"3\"" + (jade.attr("value", (npc.resource.requiredLength) ? '' + (npc.resource.requiredLength) + '' : '', true, false)) + "/></div><div" + (jade.attr("style", (questionMultiple) ? 'display:block' : 'display:none', true, false)) + " class=\"possibleDiv questionOptions\"><label>Choices</label>");
if ( (questionMultiple))
{
// iterate npc.resource.possibleAnswers
;(function(){
  var $$obj = npc.resource.possibleAnswers;
  if ('number' == typeof $$obj.length) {

    for (var c = 0, $$l = $$obj.length; c < $$l; c++) {
      var choice = $$obj[c];

buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\">" + (jade.escape((jade.interp = npc.resource.possibleAnswers[c]) == null ? '' : jade.interp)) + "</textarea>");
    }

  } else {
    var $$l = 0;
    for (var c in $$obj) {
      $$l++;      var choice = $$obj[c];

buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\">" + (jade.escape((jade.interp = npc.resource.possibleAnswers[c]) == null ? '' : jade.interp)) + "</textarea>");
    }

  }
}).call(this);

}
else
{
buf.push("<textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea><textarea data-area=\"possibleAnswers\" class=\"possible\"></textarea>");
}
buf.push("</div><div" + (jade.attr("style", (!questionOpen) ? 'display:block' : 'display:none', true, false)) + " class=\"answerDiv questionOptions\"><label" + (jade.attr("for", 'questionAnswer_' + npc.id, true, false)) + ">Answer</label><input" + (jade.attr("id", 'questionAnswer_' + npc.id, true, false)) + " type=\"text\" data-area=\"answer\"" + (jade.attr("value", (npc.resource.answer) ? '' + (npc.resource.answer) + '' : '', true, false)) + " class=\"answer\"/></div><label" + (jade.attr("for", 'resourceDependsOn_' + npc.id, true, false)) + ">Depends on NPC</label><input" + (jade.attr("id", 'resourceDependsOn_' + npc.id, true, false)) + " type=\"text\" data-area=\"dependsOn\" maxlength=\"4\"" + (jade.attr("value", (npc.dependsOn) ? '' + (npc.dependsOn) + '' : '', true, false)) + "/><label" + (jade.attr("for", 'resourceCorrect_' + npc.id, true, false)) + ">Feedback Correct</label><textarea" + (jade.attr("id", 'resourceCorrect_' + npc.id, true, false)) + " data-area=\"feedbackRight\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.feedbackRight) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'resourceWrong_' + npc.id, true, false)) + ">Feedback Wrong</label><textarea" + (jade.attr("id", 'resourceWrong_' + npc.id, true, false)) + " data-area=\"feedbackWrong\" class=\"question\">" + (jade.escape((jade.interp = npc.resource.feedbackWrong) == null ? '' : jade.interp)) + "</textarea></div><div" + (jade.attr("style", npcIsHolding?'display:block':'display:none', true, false)) + " class=\"prompts\"><h3>Prompts</h3><label" + (jade.attr("for", 'promptsFirstTime_' + npc.id, true, false)) + ">First Time</label><textarea" + (jade.attr("id", 'promptsFirstTime_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[0]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'promptsAfterIncorrect_' + npc.id, true, false)) + ">Returning After Incorrect</label><textarea" + (jade.attr("id", 'promptsAfterIncorrect_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[1]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'promptsAfterCompleted_' + npc.id, true, false)) + ">Returning After Completed</label><textarea" + (jade.attr("id", 'promptsAfterCompleted_' + npc.id, true, false)) + " data-area=\"prompt\">" + (jade.escape((jade.interp = npc.dialog.prompts[2]) == null ? '' : jade.interp)) + "</textarea></div><div" + (jade.attr("style", !npcIsHolding?'display:block':'display:none', true, false)) + " class=\"smalltalk\"><h3>Dialog</h3><label" + (jade.attr("for", 'dialogPast_' + npc.id, true, false)) + ">Past</label><textarea" + (jade.attr("id", 'dialogPast_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"0\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[0]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'dialogPresent_' + npc.id, true, false)) + ">Present</label><textarea" + (jade.attr("id", 'dialogPresent_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"1\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[1]) == null ? '' : jade.interp)) + "</textarea><label" + (jade.attr("for", 'dialogFuture_' + npc.id, true, false)) + ">Future</label><textarea" + (jade.attr("id", 'dialogFuture_' + npc.id, true, false)) + " data-area=\"smalltalk\" data-index=\"2\">" + (jade.escape((jade.interp = npc.dialog.smalltalk[2]) == null ? '' : jade.interp)) + "</textarea></div><div class=\"skinSuit\"><h3>Skin Suit</h3><input type=\"text\"" + (jade.attr("value", (npc.skinSuit) ? '' + (npc.skinSuit) + '' : '', true, false)) + "/></div><div class=\"options\">");
if (!(npc.id >= 0))
{
buf.push("<button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-create-button btn\">create</button><button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-cancel-button btn\">cancel</button>");
}
else
{
buf.push("<button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-save-button btn\">save</button><button type=\"button\"" + (jade.attr("data-id", '' + (npc.id) + '', true, false)) + " class=\"npc-delete-button btn\">delete</button>");
}
buf.push("</div></form></div>");
    }

  }
}).call(this);

buf.push("<div class=\"resource-overlay\"></div><div class=\"resource-viewport-container\"><div class=\"resource-control-panel text-center\"><a id=\"article-source-link\" href=\"\" target=\"_blank\" class=\"btn\">View / edit source of article on GitHub</a></div><div class=\"resource-viewport scrollable\"><div id=\"article-insert\"></div></div></div></div></div><div class=\"npc-admin-level-filter\"><div class=\"current\">1</div><div class=\"current\">2</div><div class=\"current\">3</div><div class=\"current\">4</div></div></div>");;return buf.join("");
});

window.JT['admin-panel'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div id=\"admin-panel\" class=\"console\"><div class=\"console-content\">");
if(sessionStorage.userRole === 'superadmin')
{
buf.push("<div class=\"row\"><div class=\"col-sm-3\"><a href=\"/admin/startup\" class=\"btn\">Startup</a></div><div class=\"admin-instructions col-sm-9\"><p>Initializes all data.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><a href=\"/admin/npcs\" class=\"btn\">NPCs</a></div><div class=\"admin-instructions col-sm-9\"><p>Sets NPC interaction and speech content.</p></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-sm-3\"><a href=\"/admin/invitecodes\" class=\"btn\">Invite Codes</a></div><div class=\"admin-instructions col-sm-9\"><p>Begins a new game and sends invite codes to players.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><a href=\"/admin/monitor\" class=\"btn\">Monitor</a></div><div class=\"admin-instructions col-sm-9\"><p>Look at information on current games.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><a href=\"/admin/export\" class=\"btn\">Export</a></div><div class=\"admin-instructions col-sm-9\"><p>Export data.</p></div></div></div></div></div></div></div>");;return buf.join("");
});

window.JT['admin-startup'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),id = locals_.id,title = locals_.title,environment = locals_.environment;
buf.push("<div class=\"admin-container\">");
if ( id !== 'admin')
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 back-to-admin\"><a href=\"/admin\"><i class=\"fa fa-arrow-circle-o-left fa-lg\"></i>back</a></div></div>");
}
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h1>" + (jade.escape((jade.interp = title) == null ? '' : jade.interp)) + "</h1><h4 class=\"color-darkorange\"><span class=\"environment\">" + (jade.escape((jade.interp = environment) == null ? '' : jade.interp)) + "</span>&nbsp;environment</h4></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div id=\"admin-startup\" class=\"console\"><div class=\"console-content\"><h2>Database Initialization</h2><p><strong class='color-darkblue'>Instructions.</strong> Click on a button below to reset each of the following categories to the default data. If this is your first time initializing Civic Seed, click on each button in order from top to bottom. The button will turn green after the loading is complete.</p><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"users\" class=\"btn\">Users<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Clears current users; sets up test and demo users.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"game\" class=\"btn\">Game<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Clears current game sessions; sets up test and demo games.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"colors\" class=\"btn\">Colors<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Loads game colors.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"chat\" class=\"btn\">Chat<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Clears all chat logs.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"tiles\" class=\"btn\">Tiles<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Loads tileset for game world. Always update NPCs next so that tile states can be updated with NPC locations. <strong>This may take a while.</strong></p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"botanist\" class=\"btn\">Botanist<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Loads default Botanist conversations.</p></div></div><div class=\"row\"><div class=\"col-sm-3\"><button data-type=\"npcs\" class=\"btn\">NPC<div class=\"spinner\"></div></button></div><div class=\"admin-instructions col-sm-9\"><p>Loads default NPC data. <strong class='color-red'>Super Caution!!</strong> This will overwrite all modifications! Be sure to export the current data to a backup first.</p></div></div></div></div></div></div></div>");;return buf.join("");
});

window.JT['game-content-boss-instructions'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/boss/mini_lab.jpg', true, false)) + " class=\"minilab\"/><h3>How to play</h3><p>This is the basement of my lab. The <strong class='color-darkorange'>Charging Modules</strong> <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/charger.png'> are hidden somewhere here.  To find the charging modules, you’ll need to use the <strong class='color-darkgreen'>Special Seeds</strong> you earned.  These special seeds can detect and reveal the charging modules. Whenever you plant one, the color bursts will be <strong>darker</strong> the <strong>closer</strong> it is to a charging module. It will help guide the way!</p><p>Once you reveal a charging module, you have to <strong>walk over to it</strong>, and disable it by hand. Find all four to shut down the robot!  You might also find some of my other inventions down here. These can give you more <strong class='color-darkgreen'>seeds <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing1.png'></strong>, or more <strong class='color-darkblue'>time <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing2.png'></strong>. Watch out for the <strong class='color-red'>red potion <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing3.png'></strong> which can erase your progress, or the <strong class='color-darkorange'>watch <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing4.png'></strong> that speeds up the timer. If you run out seeds, or run out of time, you’ll have to try again.</p>");;return buf.join("");
});

window.JT['game-content-help'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<p>The goal of the game is to fully color return color to the world, which starts in grayscale. To do this, you must explore, talk to the Calliopeans you see, answer their questions, plant seeds, and find research to complete new seed recipes.</p><h3>The Game Display</h3><p>You can see and interact with the game through your display. This consists of the view screen, the Status Bar, and the Display Icons.</p><h3>The View Screen</h3><p>This shows you the portion of the world you are in, along with any other characters that are in the same location. At the upper right hand corner of the map, you can see a mini map. All players, including you, appear on the mini map as little white dots. The mini-map tells you roughly where you are in the world. The large white block near the center of the mini map represents the Botanist's Garden. You must return here at the end of each level to solve the puzzle.</p><h3>The Status Bar</h3><p>Beneath the view screen, you can see the status bar. This tells you useful information, like what level you're on, when you've entered a new area of the world, and when other players interact with you. The Status Bar can be converted into a chat box by clicking the speech bubble icon in the display.</p><h3>The Icons</h3><p>The seven display icons each have unique functions. You can activate them by clicking the icon or by pressing the associated keyboard shortcut.</p><ul class=\"fa-ul\"><li><i class='fa-li fa fa-briefcase fa-lg'></i> <strong><u>I</u>nventory:</strong> Open and close your inventory</li><li><i class='fa-li fa fa-user fa-lg'></i> <strong><u>C</u>hanging room:</strong> Enter or exit seed mode</li><li><i class='fa-li fa fa-leaf fa-lg'></i> <strong>S<u>e</u>ed:</strong> Enter or exit seed mode</li><!-- li <i class='fa-li fa fa-globe fa-lg'></i> <strong>Globe:</strong> Toggle mini map off and on--><li><i class='fa-li fa fa-list fa-lg'></i> <strong>Game <u>L</u>og:</strong> Display log of game events and chat dialogue.</li><li><i class='fa-li fa fa-desktop fa-lg'></i> <strong><u>P</u>rogress:</strong> Show your progress. You can view your seed-planting, other players' planting, review your answers, and see who's in the lead.</li><li><i class='fa-li fa fa-volume-up fa-lg'></i> <strong><u>V</u>olume:</strong> Turn music on or off</li><li><i class='fa-li fa fa-question-circle fa-lg'></i> <strong><u>H</u>elp:</strong> Launch help document</li></ul><h3>Exploring The World</h3><p>To move your character, click anywhere on the screen. Your cursor will appear as a green box if it's possible to move there. If it's not possible to move there, the box will turn red.</p><h3>Interacting With Characters and Answering Questions</h3><p>To interact with characters you see, click on that character. This opens up a dialogue box. Most characters will ask you a question and reward you with seeds and puzzle pieces for a right answer, but some share game pointers or offer other observations. When you answer questions correctly, you are rewarded with seeds. If the question was multiple choice, you receive fewer seeds for each wrong answer you submit, so read carefully!</p><p>By default, your answers are private. You can make them public by clicking the “make public” button next to your answer. An “unlock” icon will appear, indicating that others can read your answer. If you accidentally make an answer public, you can make it private again by clicking the “unlock” icon that appears.</p><h3>Planting Seeds</h3><p>To plant a seed, click the leaf icon at the bottom of your display. This puts you in “Seed-Planting Mode.” While you are in Seed-Planting Mode, you can plant a seed by clicking anywhere in the world. A patch of color the same shade as your character will appear. You just brought some color back to the world! To exit seed mode and resume exploring, click the leaf icon again.</p><h3>Paintbrush Seeds</h3><p>Most characters reward you with normal seeds, but the Botanist gives you Paintbrush Seeds which allow you to plant color in custom shapes. If you have any Paintbrush Seeds, clicking the leaf icon brings up a menu of three choices. Click the leftmost icon to plant normal seeds. Plant the middle icon to plant Paintbrush Seeds. The rightmost icon is a mystery you'll have to uncover as you play and explore.</p><h3>Interacting With Other Players</h3><p>There are two ways you can interact with other players in the game. The first way is to chat with them. If you see another player (they'll look just like you, but in a different color) you can chat with them. To do this, click on the speech bubble icon. This transforms the status bar into a chat box. Type your message and hit the “enter” key to chat. Clicking the speech bubble icon again exits chat mode.</p><h3>Seed It!</h3><p>You can also grant bonus seeds to your fellow players. After you answer a question, you'll see all answers that have been made public. If you like another player's answer, click “Seed it!” to grant them a bonus seed. This bonus seed does not come from your supply, it's a bonus seed awarded for excellent answers. These bonus seeds are always mega seeds. You may award up to five bonus seeds to other players each level, and you may award multiple bonus seeds to one response if you feel so inclined.</p><h3>Completing the Recipes</h3><p>The Botanist's notebook contains four recipes for Paintbrush Seeds, which correspond with the four levels of the game. Each recipe also includes a special puzzle. As you explore the world and answer questions, you'll earn research pieces, in addition to seeds, which you will use to answer solve the puzzle.</p><p>When you think you have enough research pieces to solve the puzzle, return to the Botanist. He will show you the outline of the puzzle. You can then drag pieces from your inventory onto the puzzle. The text of the recipe appears next to the puzzle. Look at the text for hints!</p><p>As long as there are any wrong pieces on the board, you cannot solve the riddle. To remove a puzzle piece from the board, drop it into the trash.</p><p>When you think you've correctly solved the riddle, hit “Answer.” If you're correct, you progress to the next level, and earn some Paintbrush Seeds. For each time you answer incorrectly, you will receive less and less seeds. After you complete all four levels, the game is complete and you unlock your civic resume!</p><h3>Your Inventory</h3><p>Every time you answer a question correctly, you gain a research piece. You can view the pieces you've collected at any time by clicking the toolbox icon on your display. From here, you can view the resources again by clicking the puzzle pieces,</p><h3>Your Profile: A Civic Resume</h3><p>After each level, you will be prompted to fill in a section of your civic resume. At the end of the game, your resume is unlocked, enabling you to use it as a public tool for civic engagement. This lets everyone know that you have completed Civic Seed, and are certified by Tufts to engage with their host communities. It also lets organizations and the people you'll work with understand you better, so your goals can be aligned.</p>");;return buf.join("");
});

window.JT['game-content-master-npc-instructions'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"master-npc-instructions\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\">Salutations! I have something very important for you, but first,\nyou must choose your path by selecting one of the three host communities:\nChinatown, Medford, or Somerville. The three friendly folks standing\nbehind me are Hampton, Goose, and Zeebo.\n<strong class='color-blue'>Hampton</strong> will tell you about <strong class='color-darkorange'>Chinatown</strong>.\n<strong class='color-blue'>Goose</strong> will tell you about <strong class='color-darkorange'>Medford</strong>.\n<strong class='color-blue'>Zeebo</strong> will tell you about <strong class='color-darkorange'>Somerville</strong>.\nOnce you've talked to one of those peeps, come back and talk to me!\n</span></div><div id=\"community-npcs\"><div class=\"npc hampton\"><div class=\"npc-image\"></div><div class=\"npc-name\">Hampton</div><div class=\"community-name\">Chinatown</div></div><div class=\"npc goose\"><div class=\"npc-image\"></div><div class=\"npc-name\">Goose</div><div class=\"community-name\">Medford</div></div><div class=\"npc zeebo\"><div class=\"npc-image\"></div><div class=\"npc-name\">Zeebo</div><div class=\"community-name\">Somerville</div></div></div></div>");;return buf.join("");
});

window.JT['game-hud'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"hud\" class=\"container\"><div class=\"row hud-regular\"><div class=\"col-xs-4 hud-player\"><div class=\"hud-button hud-inventory\"><a title=\"(I)nventory\" data-placement=\"top\"><i class=\"fa fa-briefcase fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-skinventory\"><a title=\"(C)hanging room\" data-placement=\"top\"><i class=\"fa fa-user fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-seed\"><a title=\"S(e)eds\" data-placement=\"top\"><i class=\"fa fa-leaf fa-lg\"></i></a><span class=\"badge always-show\"></span></div></div><div class=\"col-xs-4 hud-chat\"><form class=\"form-inline\"><input id=\"chat-input\" type=\"text\" maxlength=\"90\" placeholder=\"chat with other players...\" class=\"input-xlarge\"/><button id=\"chat-submit\" type=\"submit\" class=\"btn btn-info\">Chat</button></form></div><div class=\"col-xs-4 hud-global\"><div class=\"hud-button hud-log\"><a title=\"Game (L)og\" data-placement=\"top\"><i class=\"fa fa-list fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-progress\"><a title=\"(P)rogress\" data-placement=\"top\"><i class=\"fa fa-desktop fa-lg\"></i></a></div><div class=\"hud-button hud-mute\"><a title=\"(V)olume\" data-placement=\"top\"><i class=\"fa fa-volume-up fa-lg\"></i></a></div><div class=\"hud-button hud-help\"><a title=\"(H)elp\" data-placement=\"top\"><i class=\"fa fa-question-circle fa-lg\"></i></a></div></div></div><div class=\"row hud-boss\"><div class=\"col-xs-4\"><div class=\"hud-button hud-seed\"><a title=\"S(e)eds\" data-placement=\"top\"><i class=\"fa fa-leaf fa-lg\"></i></a><span class=\"badge always-show\">20</span></div></div><div class=\"col-xs-4\"><div class=\"clock\">90</div></div><div class=\"col-xs-3\"><div class=\"score\">score: <span>---</span></div></div><div class=\"col-xs-1\"><div class=\"hud-button hud-mute\"><a title=\"(V)olume\" data-placement=\"top\"><i class=\"fa fa-volume-up fa-lg\"></i></a></div></div></div></div>");;return buf.join("");
});

window.JT['game-index'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"gameboard\"><canvas id=\"background\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"characters\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"foreground\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"interface\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"minimap-tile\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas><canvas id=\"minimap-player\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas><canvas id=\"minimap-radar\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas><div id=\"loading\"><p><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/loader.gif', true, false)) + "/></p><p>loading</p></div><div id=\"resource-area\" class=\"gameboard-overlay\"><div class=\"resource-article scrollable\"></div><div class=\"resource-question\"><div class=\"dialog question\"></div><form></form></div><div class=\"resource-content\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"tangram\"></div><form method=\"POST\" class=\"tagline-input\"><input name=\"tagline\" type=\"text\" value=\"\" placeholder=\"Summarize what you just learned.\" maxLength=\"60\" autofocus=\"autofocus\"/><div class=\"privacy-message\">You’ll need it later!</div></form></div><div class=\"resource-responses\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"responses content-box scrollable\"><p class=\"question\"></p><ul class=\"responses\"></ul></div></div><div class=\"resource-custom-content\"><div id=\"master-npc-instructions\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\">Salutations! I have something very important for you, but first,\nyou must choose your path by selecting one of the three host communities:\nChinatown, Medford, or Somerville. The three friendly folks standing\nbehind me are Hampton, Goose, and Zeebo.\n<strong class='color-blue'>Hampton</strong> will tell you about <strong class='color-darkorange'>Chinatown</strong>.\n<strong class='color-blue'>Goose</strong> will tell you about <strong class='color-darkorange'>Medford</strong>.\n<strong class='color-blue'>Zeebo</strong> will tell you about <strong class='color-darkorange'>Somerville</strong>.\nOnce you've talked to one of those peeps, come back and talk to me!\n</span></div><div id=\"community-npcs\"><div class=\"npc hampton\"><div class=\"npc-image\"></div><div class=\"npc-name\">Hampton</div><div class=\"community-name\">Chinatown</div></div><div class=\"npc goose\"><div class=\"npc-image\"></div><div class=\"npc-name\">Goose</div><div class=\"community-name\">Medford</div></div><div class=\"npc zeebo\"><div class=\"npc-image\"></div><div class=\"npc-name\">Zeebo</div><div class=\"community-name\">Somerville</div></div></div></div></div><div class=\"buttons\"><div class=\"left\"><button type=\"button\" class=\"back-button btn btn-info\">Back</button></div><div class=\"right\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"answer-button btn btn-success\">Answer</button><button type=\"button\" class=\"save-button btn btn-success\">Save</button><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><div class=\"check\"><div class=\"check-dialog confirm-skimpy\"><p>Are you sure? That seems a bit skimpy...</p><div class=\"buttons\"><button type=\"button\" class=\"sure-button right btn btn-success\">I'm Sure</button><button type=\"button\" class=\"retry-button left btn btn-primary\">I'll Add More</button></div></div><div class=\"check-dialog message-feedback\"><div class=\"feedback\"></div><div class=\"buttons\"><button type=\"button\" class=\"btn btn-primary\">Okay</button></div></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div><div id=\"botanist-area\" class=\"gameboard-overlay background-3\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"botanist-content\"></div><div class=\"botanist-puzzle\"></div><div class=\"buttons\"><div class=\"left\"><button type=\"button\" class=\"back-button btn btn-info\">Back</button><button type=\"button\" class=\"clear-button btn btn-info\">Clear Board</button></div><div class=\"right\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"answer-button btn btn-success\">Answer</button><button type=\"button\" class=\"save-button btn btn-success\">Save</button><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><div class=\"check\"><div class=\"check-dialog\"><div class=\"feedback\"></div><div class=\"buttons\"><button type=\"button\" class=\"retryButton btn btn-primary\">Okay</button></div></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div><div id=\"progress-area\" class=\"gameboard-overlay\"><h2>Progress</h2><div class=\"personal-info\"><div class=\"level-images\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/0.png', true, false)) + " class=\"current-level-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/1.png', true, false)) + "/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/2.png', true, false)) + "/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/3.png', true, false)) + "/></div><div class=\"current-level-name\">Novice gardener</div><div class=\"resources-collected-heading\">Resources collected:</div><div class=\"resources-collected\"><span class=\"resources-collected-amount\">0</span><span class=\"resources-collected-divider\">&nbsp;/&nbsp;</span><span class=\"resources-collected-total\">0</span></div><button type=\"button\" class=\"btn collected-button btn-success\">View Answers</button></div><div class=\"color-map tabbable\"><div class=\"tabs\"><div class=\"tab-you\">you</div><div class=\"tab-everyone\">everyone</div></div><div class=\"tab-content\"><div id=\"tab-you-pane\" class=\"tab-pane active\"><div class=\"color-map-you\"><img src=\"\" class=\"color-map-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/minimap.png', true, false)) + " class=\"minimap\"/></div><div class=\"time-played\"><i class=\"fa fa-clock-o fa-lg\"></i><span class=\"time-played-text\"></span></div><div class=\"time-played-label\">time played</div></div><div id=\"tab-everyone-pane\" class=\"tab-pane\"><div class=\"color-map-everyone\"><img src=\"\" class=\"color-map-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/minimap.png', true, false)) + " class=\"minimap\"/></div><div class=\"percent-complete\"><div class=\"progress\"><div class=\"bar\"></div></div></div><div class=\"percent-label\">world color meter</div></div></div></div><div class=\"top-seeders\"><div class=\"top-seeders-heading\">Top seeders</div><div class=\"your-seeds\"></div><ol class=\"top-seeders-ranking\"></ol></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div><div id=\"collected-resources\" class=\"gameboard-overlay background-3\"><h2>Your Answers</h2><div class=\"displayMyAnswers content-box\">You haven't collected any resources yet.</div><button type=\"button\" class=\"btn back-button btn-info\">Back</button></div><div id=\"help-area\" class=\"gameboard-overlay\"><h2>How To Play</h2><div class=\"content-box\"><p>The goal of the game is to fully color return color to the world, which starts in grayscale. To do this, you must explore, talk to the Calliopeans you see, answer their questions, plant seeds, and find research to complete new seed recipes.</p><h3>The Game Display</h3><p>You can see and interact with the game through your display. This consists of the view screen, the Status Bar, and the Display Icons.</p><h3>The View Screen</h3><p>This shows you the portion of the world you are in, along with any other characters that are in the same location. At the upper right hand corner of the map, you can see a mini map. All players, including you, appear on the mini map as little white dots. The mini-map tells you roughly where you are in the world. The large white block near the center of the mini map represents the Botanist's Garden. You must return here at the end of each level to solve the puzzle.</p><h3>The Status Bar</h3><p>Beneath the view screen, you can see the status bar. This tells you useful information, like what level you're on, when you've entered a new area of the world, and when other players interact with you. The Status Bar can be converted into a chat box by clicking the speech bubble icon in the display.</p><h3>The Icons</h3><p>The seven display icons each have unique functions. You can activate them by clicking the icon or by pressing the associated keyboard shortcut.</p><ul class=\"fa-ul\"><li><i class='fa-li fa fa-briefcase fa-lg'></i> <strong><u>I</u>nventory:</strong> Open and close your inventory</li><li><i class='fa-li fa fa-user fa-lg'></i> <strong><u>C</u>hanging room:</strong> Enter or exit seed mode</li><li><i class='fa-li fa fa-leaf fa-lg'></i> <strong>S<u>e</u>ed:</strong> Enter or exit seed mode</li><!-- li <i class='fa-li fa fa-globe fa-lg'></i> <strong>Globe:</strong> Toggle mini map off and on--><li><i class='fa-li fa fa-list fa-lg'></i> <strong>Game <u>L</u>og:</strong> Display log of game events and chat dialogue.</li><li><i class='fa-li fa fa-desktop fa-lg'></i> <strong><u>P</u>rogress:</strong> Show your progress. You can view your seed-planting, other players' planting, review your answers, and see who's in the lead.</li><li><i class='fa-li fa fa-volume-up fa-lg'></i> <strong><u>V</u>olume:</strong> Turn music on or off</li><li><i class='fa-li fa fa-question-circle fa-lg'></i> <strong><u>H</u>elp:</strong> Launch help document</li></ul><h3>Exploring The World</h3><p>To move your character, click anywhere on the screen. Your cursor will appear as a green box if it's possible to move there. If it's not possible to move there, the box will turn red.</p><h3>Interacting With Characters and Answering Questions</h3><p>To interact with characters you see, click on that character. This opens up a dialogue box. Most characters will ask you a question and reward you with seeds and puzzle pieces for a right answer, but some share game pointers or offer other observations. When you answer questions correctly, you are rewarded with seeds. If the question was multiple choice, you receive fewer seeds for each wrong answer you submit, so read carefully!</p><p>By default, your answers are private. You can make them public by clicking the “make public” button next to your answer. An “unlock” icon will appear, indicating that others can read your answer. If you accidentally make an answer public, you can make it private again by clicking the “unlock” icon that appears.</p><h3>Planting Seeds</h3><p>To plant a seed, click the leaf icon at the bottom of your display. This puts you in “Seed-Planting Mode.” While you are in Seed-Planting Mode, you can plant a seed by clicking anywhere in the world. A patch of color the same shade as your character will appear. You just brought some color back to the world! To exit seed mode and resume exploring, click the leaf icon again.</p><h3>Paintbrush Seeds</h3><p>Most characters reward you with normal seeds, but the Botanist gives you Paintbrush Seeds which allow you to plant color in custom shapes. If you have any Paintbrush Seeds, clicking the leaf icon brings up a menu of three choices. Click the leftmost icon to plant normal seeds. Plant the middle icon to plant Paintbrush Seeds. The rightmost icon is a mystery you'll have to uncover as you play and explore.</p><h3>Interacting With Other Players</h3><p>There are two ways you can interact with other players in the game. The first way is to chat with them. If you see another player (they'll look just like you, but in a different color) you can chat with them. To do this, click on the speech bubble icon. This transforms the status bar into a chat box. Type your message and hit the “enter” key to chat. Clicking the speech bubble icon again exits chat mode.</p><h3>Seed It!</h3><p>You can also grant bonus seeds to your fellow players. After you answer a question, you'll see all answers that have been made public. If you like another player's answer, click “Seed it!” to grant them a bonus seed. This bonus seed does not come from your supply, it's a bonus seed awarded for excellent answers. These bonus seeds are always mega seeds. You may award up to five bonus seeds to other players each level, and you may award multiple bonus seeds to one response if you feel so inclined.</p><h3>Completing the Recipes</h3><p>The Botanist's notebook contains four recipes for Paintbrush Seeds, which correspond with the four levels of the game. Each recipe also includes a special puzzle. As you explore the world and answer questions, you'll earn research pieces, in addition to seeds, which you will use to answer solve the puzzle.</p><p>When you think you have enough research pieces to solve the puzzle, return to the Botanist. He will show you the outline of the puzzle. You can then drag pieces from your inventory onto the puzzle. The text of the recipe appears next to the puzzle. Look at the text for hints!</p><p>As long as there are any wrong pieces on the board, you cannot solve the riddle. To remove a puzzle piece from the board, drop it into the trash.</p><p>When you think you've correctly solved the riddle, hit “Answer.” If you're correct, you progress to the next level, and earn some Paintbrush Seeds. For each time you answer incorrectly, you will receive less and less seeds. After you complete all four levels, the game is complete and you unlock your civic resume!</p><h3>Your Inventory</h3><p>Every time you answer a question correctly, you gain a research piece. You can view the pieces you've collected at any time by clicking the toolbox icon on your display. From here, you can view the resources again by clicking the puzzle pieces,</p><h3>Your Profile: A Civic Resume</h3><p>After each level, you will be prompted to fill in a section of your civic resume. At the end of the game, your resume is unlocked, enabling you to use it as a public tool for civic engagement. This lets everyone know that you have completed Civic Seed, and are certified by Tufts to engage with their host communities. It also lets organizations and the people you'll work with understand you better, so your goals can be aligned.</p></div><div class=\"buttons\"><div class=\"right\"><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div><div id=\"boss-area\" class=\"gameboard-overlay\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"boss-introduction video\"></div><div class=\"boss-resumes\"><div class=\"content-box\"></div></div><div class=\"boss-instructions\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/boss/mini_lab.jpg', true, false)) + " class=\"minilab\"/><h3>How to play</h3><p>This is the basement of my lab. The <strong class='color-darkorange'>Charging Modules</strong> <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/charger.png'> are hidden somewhere here.  To find the charging modules, you’ll need to use the <strong class='color-darkgreen'>Special Seeds</strong> you earned.  These special seeds can detect and reveal the charging modules. Whenever you plant one, the color bursts will be <strong>darker</strong> the <strong>closer</strong> it is to a charging module. It will help guide the way!</p><p>Once you reveal a charging module, you have to <strong>walk over to it</strong>, and disable it by hand. Find all four to shut down the robot!  You might also find some of my other inventions down here. These can give you more <strong class='color-darkgreen'>seeds <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing1.png'></strong>, or more <strong class='color-darkblue'>time <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing2.png'></strong>. Watch out for the <strong class='color-red'>red potion <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing3.png'></strong> which can erase your progress, or the <strong class='color-darkorange'>watch <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing4.png'></strong> that speeds up the timer. If you run out seeds, or run out of time, you’ll have to try again.</p></div><div class=\"boss-win video\"></div><div class=\"buttons\"><button type=\"button\" class=\"boss-button btn btn-success\">Next</button></div></div><div id=\"skinventory\" class=\"gameboard-overlay background-3\"><h2>Changing Room</h2><p>Customize your suit! Mix and match different parts to create your look.  Unlock more pieces by talking to other characters in the world.</p><div class=\"parts\"><div data-part=\"head\" class=\"part head\"></div><div data-part=\"torso\" class=\"part torso\"></div><div data-part=\"legs\" class=\"part legs\"></div></div><div class=\"skinformation\"><h3>You're wearing</h3><p>Nothing!</p></div><a href=\"\" class=\"close-button\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div><div id=\"inventory\"><div class=\"inventory-boxes\"></div><div class=\"inventory-items\"></div><div class=\"inventory-tangram\"></div><button type=\"button\" class=\"close-button btn btn-primary\">Close</button><div class=\"help\">click piece to view resource</div></div><div id=\"status-update\"><span></span></div><div id=\"seedventory\"><div class=\"seed regular-button\"><i title=\"regular seed\" data-placement=\"top\" class=\"fa fa-leaf fa-lg\"></i><span class=\"badge always-show\"></span></div><div class=\"seed draw-button\"><i title=\"paintbrush seed\" data-placement=\"top\" class=\"fa fa-star fa-lg\"></i><span class=\"badge always-show\"></span></div><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div><div id=\"graffiti\">seeds left: <span class='remaining'></span></div><div id=\"speech-bubble\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"buttons\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"close-button btn btn-primary\">Okay</button><button type=\"button\" class=\"no-button btn btn-primary\">Close</button><button type=\"button\" class=\"yes-button btn btn-success\">View</button></div></div><div id=\"game-log-overlay\" class=\"scrollable\"></div><div id=\"pause-menu\"><p>please re-focus your mind, body, and the window...</p><p><button type=\"button\" class=\"unpause btn btn-success\">Resume Game</button></p></div><div id=\"waiting-for-seed\" class=\"spinner\"><!-- img(src='#{CivicSeed.CLOUD_PATH}/img/game/spinloader.gif')--></div><div id=\"beaming\"></div></div><div id=\"resource-stage\"></div><div id=\"hud\" class=\"container\"><div class=\"row hud-regular\"><div class=\"col-xs-4 hud-player\"><div class=\"hud-button hud-inventory\"><a title=\"(I)nventory\" data-placement=\"top\"><i class=\"fa fa-briefcase fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-skinventory\"><a title=\"(C)hanging room\" data-placement=\"top\"><i class=\"fa fa-user fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-seed\"><a title=\"S(e)eds\" data-placement=\"top\"><i class=\"fa fa-leaf fa-lg\"></i></a><span class=\"badge always-show\"></span></div></div><div class=\"col-xs-4 hud-chat\"><form class=\"form-inline\"><input id=\"chat-input\" type=\"text\" maxlength=\"90\" placeholder=\"chat with other players...\" class=\"input-xlarge\"/><button id=\"chat-submit\" type=\"submit\" class=\"btn btn-info\">Chat</button></form></div><div class=\"col-xs-4 hud-global\"><div class=\"hud-button hud-log\"><a title=\"Game (L)og\" data-placement=\"top\"><i class=\"fa fa-list fa-lg\"></i></a><span class=\"badge\"></span></div><div class=\"hud-button hud-progress\"><a title=\"(P)rogress\" data-placement=\"top\"><i class=\"fa fa-desktop fa-lg\"></i></a></div><div class=\"hud-button hud-mute\"><a title=\"(V)olume\" data-placement=\"top\"><i class=\"fa fa-volume-up fa-lg\"></i></a></div><div class=\"hud-button hud-help\"><a title=\"(H)elp\" data-placement=\"top\"><i class=\"fa fa-question-circle fa-lg\"></i></a></div></div></div><div class=\"row hud-boss\"><div class=\"col-xs-4\"><div class=\"hud-button hud-seed\"><a title=\"S(e)eds\" data-placement=\"top\"><i class=\"fa fa-leaf fa-lg\"></i></a><span class=\"badge always-show\">20</span></div></div><div class=\"col-xs-4\"><div class=\"clock\">90</div></div><div class=\"col-xs-3\"><div class=\"score\">score: <span>---</span></div></div><div class=\"col-xs-1\"><div class=\"hud-button hud-mute\"><a title=\"(V)olume\" data-placement=\"top\"><i class=\"fa fa-volume-up fa-lg\"></i></a></div></div></div></div><div id=\"game-log\" class=\"scrollable\"></div>");;return buf.join("");
});

window.JT['game-log'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"game-log\" class=\"scrollable\"></div>");;return buf.join("");
});

window.JT['game-overlays-boss'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"boss-area\" class=\"gameboard-overlay\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"boss-introduction video\"></div><div class=\"boss-resumes\"><div class=\"content-box\"></div></div><div class=\"boss-instructions\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/boss/mini_lab.jpg', true, false)) + " class=\"minilab\"/><h3>How to play</h3><p>This is the basement of my lab. The <strong class='color-darkorange'>Charging Modules</strong> <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/charger.png'> are hidden somewhere here.  To find the charging modules, you’ll need to use the <strong class='color-darkgreen'>Special Seeds</strong> you earned.  These special seeds can detect and reveal the charging modules. Whenever you plant one, the color bursts will be <strong>darker</strong> the <strong>closer</strong> it is to a charging module. It will help guide the way!</p><p>Once you reveal a charging module, you have to <strong>walk over to it</strong>, and disable it by hand. Find all four to shut down the robot!  You might also find some of my other inventions down here. These can give you more <strong class='color-darkgreen'>seeds <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing1.png'></strong>, or more <strong class='color-darkblue'>time <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing2.png'></strong>. Watch out for the <strong class='color-red'>red potion <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing3.png'></strong> which can erase your progress, or the <strong class='color-darkorange'>watch <img src='" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/game/boss/thing4.png'></strong> that speeds up the timer. If you run out seeds, or run out of time, you’ll have to try again.</p></div><div class=\"boss-win video\"></div><div class=\"buttons\"><button type=\"button\" class=\"boss-button btn btn-success\">Next</button></div></div>");;return buf.join("");
});

window.JT['game-overlays-botanist'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"botanist-area\" class=\"gameboard-overlay background-3\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"botanist-content\"></div><div class=\"botanist-puzzle\"></div><div class=\"buttons\"><div class=\"left\"><button type=\"button\" class=\"back-button btn btn-info\">Back</button><button type=\"button\" class=\"clear-button btn btn-info\">Clear Board</button></div><div class=\"right\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"answer-button btn btn-success\">Answer</button><button type=\"button\" class=\"save-button btn btn-success\">Save</button><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><div class=\"check\"><div class=\"check-dialog\"><div class=\"feedback\"></div><div class=\"buttons\"><button type=\"button\" class=\"retryButton btn btn-primary\">Okay</button></div></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div>");;return buf.join("");
});

window.JT['game-overlays-collected-resources'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"collected-resources\" class=\"gameboard-overlay background-3\"><h2>Your Answers</h2><div class=\"displayMyAnswers content-box\">You haven't collected any resources yet.</div><button type=\"button\" class=\"btn back-button btn-info\">Back</button></div>");;return buf.join("");
});

window.JT['game-overlays-help'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"help-area\" class=\"gameboard-overlay\"><h2>How To Play</h2><div class=\"content-box\"><p>The goal of the game is to fully color return color to the world, which starts in grayscale. To do this, you must explore, talk to the Calliopeans you see, answer their questions, plant seeds, and find research to complete new seed recipes.</p><h3>The Game Display</h3><p>You can see and interact with the game through your display. This consists of the view screen, the Status Bar, and the Display Icons.</p><h3>The View Screen</h3><p>This shows you the portion of the world you are in, along with any other characters that are in the same location. At the upper right hand corner of the map, you can see a mini map. All players, including you, appear on the mini map as little white dots. The mini-map tells you roughly where you are in the world. The large white block near the center of the mini map represents the Botanist's Garden. You must return here at the end of each level to solve the puzzle.</p><h3>The Status Bar</h3><p>Beneath the view screen, you can see the status bar. This tells you useful information, like what level you're on, when you've entered a new area of the world, and when other players interact with you. The Status Bar can be converted into a chat box by clicking the speech bubble icon in the display.</p><h3>The Icons</h3><p>The seven display icons each have unique functions. You can activate them by clicking the icon or by pressing the associated keyboard shortcut.</p><ul class=\"fa-ul\"><li><i class='fa-li fa fa-briefcase fa-lg'></i> <strong><u>I</u>nventory:</strong> Open and close your inventory</li><li><i class='fa-li fa fa-user fa-lg'></i> <strong><u>C</u>hanging room:</strong> Enter or exit seed mode</li><li><i class='fa-li fa fa-leaf fa-lg'></i> <strong>S<u>e</u>ed:</strong> Enter or exit seed mode</li><!-- li <i class='fa-li fa fa-globe fa-lg'></i> <strong>Globe:</strong> Toggle mini map off and on--><li><i class='fa-li fa fa-list fa-lg'></i> <strong>Game <u>L</u>og:</strong> Display log of game events and chat dialogue.</li><li><i class='fa-li fa fa-desktop fa-lg'></i> <strong><u>P</u>rogress:</strong> Show your progress. You can view your seed-planting, other players' planting, review your answers, and see who's in the lead.</li><li><i class='fa-li fa fa-volume-up fa-lg'></i> <strong><u>V</u>olume:</strong> Turn music on or off</li><li><i class='fa-li fa fa-question-circle fa-lg'></i> <strong><u>H</u>elp:</strong> Launch help document</li></ul><h3>Exploring The World</h3><p>To move your character, click anywhere on the screen. Your cursor will appear as a green box if it's possible to move there. If it's not possible to move there, the box will turn red.</p><h3>Interacting With Characters and Answering Questions</h3><p>To interact with characters you see, click on that character. This opens up a dialogue box. Most characters will ask you a question and reward you with seeds and puzzle pieces for a right answer, but some share game pointers or offer other observations. When you answer questions correctly, you are rewarded with seeds. If the question was multiple choice, you receive fewer seeds for each wrong answer you submit, so read carefully!</p><p>By default, your answers are private. You can make them public by clicking the “make public” button next to your answer. An “unlock” icon will appear, indicating that others can read your answer. If you accidentally make an answer public, you can make it private again by clicking the “unlock” icon that appears.</p><h3>Planting Seeds</h3><p>To plant a seed, click the leaf icon at the bottom of your display. This puts you in “Seed-Planting Mode.” While you are in Seed-Planting Mode, you can plant a seed by clicking anywhere in the world. A patch of color the same shade as your character will appear. You just brought some color back to the world! To exit seed mode and resume exploring, click the leaf icon again.</p><h3>Paintbrush Seeds</h3><p>Most characters reward you with normal seeds, but the Botanist gives you Paintbrush Seeds which allow you to plant color in custom shapes. If you have any Paintbrush Seeds, clicking the leaf icon brings up a menu of three choices. Click the leftmost icon to plant normal seeds. Plant the middle icon to plant Paintbrush Seeds. The rightmost icon is a mystery you'll have to uncover as you play and explore.</p><h3>Interacting With Other Players</h3><p>There are two ways you can interact with other players in the game. The first way is to chat with them. If you see another player (they'll look just like you, but in a different color) you can chat with them. To do this, click on the speech bubble icon. This transforms the status bar into a chat box. Type your message and hit the “enter” key to chat. Clicking the speech bubble icon again exits chat mode.</p><h3>Seed It!</h3><p>You can also grant bonus seeds to your fellow players. After you answer a question, you'll see all answers that have been made public. If you like another player's answer, click “Seed it!” to grant them a bonus seed. This bonus seed does not come from your supply, it's a bonus seed awarded for excellent answers. These bonus seeds are always mega seeds. You may award up to five bonus seeds to other players each level, and you may award multiple bonus seeds to one response if you feel so inclined.</p><h3>Completing the Recipes</h3><p>The Botanist's notebook contains four recipes for Paintbrush Seeds, which correspond with the four levels of the game. Each recipe also includes a special puzzle. As you explore the world and answer questions, you'll earn research pieces, in addition to seeds, which you will use to answer solve the puzzle.</p><p>When you think you have enough research pieces to solve the puzzle, return to the Botanist. He will show you the outline of the puzzle. You can then drag pieces from your inventory onto the puzzle. The text of the recipe appears next to the puzzle. Look at the text for hints!</p><p>As long as there are any wrong pieces on the board, you cannot solve the riddle. To remove a puzzle piece from the board, drop it into the trash.</p><p>When you think you've correctly solved the riddle, hit “Answer.” If you're correct, you progress to the next level, and earn some Paintbrush Seeds. For each time you answer incorrectly, you will receive less and less seeds. After you complete all four levels, the game is complete and you unlock your civic resume!</p><h3>Your Inventory</h3><p>Every time you answer a question correctly, you gain a research piece. You can view the pieces you've collected at any time by clicking the toolbox icon on your display. From here, you can view the resources again by clicking the puzzle pieces,</p><h3>Your Profile: A Civic Resume</h3><p>After each level, you will be prompted to fill in a section of your civic resume. At the end of the game, your resume is unlocked, enabling you to use it as a public tool for civic engagement. This lets everyone know that you have completed Civic Seed, and are certified by Tufts to engage with their host communities. It also lets organizations and the people you'll work with understand you better, so your goals can be aligned.</p></div><div class=\"buttons\"><div class=\"right\"><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div>");;return buf.join("");
});

window.JT['game-overlays-progress'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"progress-area\" class=\"gameboard-overlay\"><h2>Progress</h2><div class=\"personal-info\"><div class=\"level-images\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/0.png', true, false)) + " class=\"current-level-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/1.png', true, false)) + "/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/2.png', true, false)) + "/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/rank/3.png', true, false)) + "/></div><div class=\"current-level-name\">Novice gardener</div><div class=\"resources-collected-heading\">Resources collected:</div><div class=\"resources-collected\"><span class=\"resources-collected-amount\">0</span><span class=\"resources-collected-divider\">&nbsp;/&nbsp;</span><span class=\"resources-collected-total\">0</span></div><button type=\"button\" class=\"btn collected-button btn-success\">View Answers</button></div><div class=\"color-map tabbable\"><div class=\"tabs\"><div class=\"tab-you\">you</div><div class=\"tab-everyone\">everyone</div></div><div class=\"tab-content\"><div id=\"tab-you-pane\" class=\"tab-pane active\"><div class=\"color-map-you\"><img src=\"\" class=\"color-map-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/minimap.png', true, false)) + " class=\"minimap\"/></div><div class=\"time-played\"><i class=\"fa fa-clock-o fa-lg\"></i><span class=\"time-played-text\"></span></div><div class=\"time-played-label\">time played</div></div><div id=\"tab-everyone-pane\" class=\"tab-pane\"><div class=\"color-map-everyone\"><img src=\"\" class=\"color-map-image\"/><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/minimap.png', true, false)) + " class=\"minimap\"/></div><div class=\"percent-complete\"><div class=\"progress\"><div class=\"bar\"></div></div></div><div class=\"percent-label\">world color meter</div></div></div></div><div class=\"top-seeders\"><div class=\"top-seeders-heading\">Top seeders</div><div class=\"your-seeds\"></div><ol class=\"top-seeders-ranking\"></ol></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div>");;return buf.join("");
});

window.JT['game-overlays-resource'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"resource-area\" class=\"gameboard-overlay\"><div class=\"resource-article scrollable\"></div><div class=\"resource-question\"><div class=\"dialog question\"></div><form></form></div><div class=\"resource-content\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"tangram\"></div><form method=\"POST\" class=\"tagline-input\"><input name=\"tagline\" type=\"text\" value=\"\" placeholder=\"Summarize what you just learned.\" maxLength=\"60\" autofocus=\"autofocus\"/><div class=\"privacy-message\">You’ll need it later!</div></form></div><div class=\"resource-responses\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"responses content-box scrollable\"><p class=\"question\"></p><ul class=\"responses\"></ul></div></div><div class=\"resource-custom-content\"><div id=\"master-npc-instructions\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\">Salutations! I have something very important for you, but first,\nyou must choose your path by selecting one of the three host communities:\nChinatown, Medford, or Somerville. The three friendly folks standing\nbehind me are Hampton, Goose, and Zeebo.\n<strong class='color-blue'>Hampton</strong> will tell you about <strong class='color-darkorange'>Chinatown</strong>.\n<strong class='color-blue'>Goose</strong> will tell you about <strong class='color-darkorange'>Medford</strong>.\n<strong class='color-blue'>Zeebo</strong> will tell you about <strong class='color-darkorange'>Somerville</strong>.\nOnce you've talked to one of those peeps, come back and talk to me!\n</span></div><div id=\"community-npcs\"><div class=\"npc hampton\"><div class=\"npc-image\"></div><div class=\"npc-name\">Hampton</div><div class=\"community-name\">Chinatown</div></div><div class=\"npc goose\"><div class=\"npc-image\"></div><div class=\"npc-name\">Goose</div><div class=\"community-name\">Medford</div></div><div class=\"npc zeebo\"><div class=\"npc-image\"></div><div class=\"npc-name\">Zeebo</div><div class=\"community-name\">Somerville</div></div></div></div></div><div class=\"buttons\"><div class=\"left\"><button type=\"button\" class=\"back-button btn btn-info\">Back</button></div><div class=\"right\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"answer-button btn btn-success\">Answer</button><button type=\"button\" class=\"save-button btn btn-success\">Save</button><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div></div><div class=\"check\"><div class=\"check-dialog confirm-skimpy\"><p>Are you sure? That seems a bit skimpy...</p><div class=\"buttons\"><button type=\"button\" class=\"sure-button right btn btn-success\">I'm Sure</button><button type=\"button\" class=\"retry-button left btn btn-primary\">I'll Add More</button></div></div><div class=\"check-dialog message-feedback\"><div class=\"feedback\"></div><div class=\"buttons\"><button type=\"button\" class=\"btn btn-primary\">Okay</button></div></div></div><a href=\"\" class=\"close-overlay\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div>");;return buf.join("");
});

window.JT['game-overlays-skinventory'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"skinventory\" class=\"gameboard-overlay background-3\"><h2>Changing Room</h2><p>Customize your suit! Mix and match different parts to create your look.  Unlock more pieces by talking to other characters in the world.</p><div class=\"parts\"><div data-part=\"head\" class=\"part head\"></div><div data-part=\"torso\" class=\"part torso\"></div><div data-part=\"legs\" class=\"part legs\"></div></div><div class=\"skinformation\"><h3>You're wearing</h3><p>Nothing!</p></div><a href=\"\" class=\"close-button\"><i class=\"fa fa-times-circle fa-lg\"></i></a></div>");;return buf.join("");
});

window.JT['game-resource-staging'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"resource-stage\"></div>");;return buf.join("");
});

window.JT['game-ui-beaming'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"beaming\"></div>");;return buf.join("");
});

window.JT['game-ui-canvas'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<canvas id=\"background\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"characters\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"foreground\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"interface\" width=\"960px\" height=\"480px\"></canvas><canvas id=\"minimap-tile\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas><canvas id=\"minimap-player\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas><canvas id=\"minimap-radar\" width=\"142px\" height=\"132px\" class=\"minimap\"></canvas>");;return buf.join("");
});

window.JT['game-ui-game-log'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"game-log-overlay\" class=\"scrollable\"></div>");;return buf.join("");
});

window.JT['game-ui-graffiti'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"graffiti\">seeds left: <span class='remaining'></span></div>");;return buf.join("");
});

window.JT['game-ui-inventory'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"inventory\"><div class=\"inventory-boxes\"></div><div class=\"inventory-items\"></div><div class=\"inventory-tangram\"></div><button type=\"button\" class=\"close-button btn btn-primary\">Close</button><div class=\"help\">click piece to view resource</div></div>");;return buf.join("");
});

window.JT['game-ui-loading'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"loading\"><p><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/game/loader.gif', true, false)) + "/></p><p>loading</p></div>");;return buf.join("");
});

window.JT['game-ui-pause-menu'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"pause-menu\"><p>please re-focus your mind, body, and the window...</p><p><button type=\"button\" class=\"unpause btn btn-success\">Resume Game</button></p></div>");;return buf.join("");
});

window.JT['game-ui-seedventory'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"seedventory\"><div class=\"seed regular-button\"><i title=\"regular seed\" data-placement=\"top\" class=\"fa fa-leaf fa-lg\"></i><span class=\"badge always-show\"></span></div><div class=\"seed draw-button\"><i title=\"paintbrush seed\" data-placement=\"top\" class=\"fa fa-star fa-lg\"></i><span class=\"badge always-show\"></span></div><button type=\"button\" class=\"close-button btn btn-primary\">Close</button></div>");;return buf.join("");
});

window.JT['game-ui-speech-bubble'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"speech-bubble\"><div class=\"dialog\"><span class=\"speaker\"></span><span class=\"message\"></span></div><div class=\"buttons\"><button type=\"button\" class=\"next-button btn btn-success\">Next</button><button type=\"button\" class=\"close-button btn btn-primary\">Okay</button><button type=\"button\" class=\"no-button btn btn-primary\">Close</button><button type=\"button\" class=\"yes-button btn btn-success\">View</button></div></div>");;return buf.join("");
});

window.JT['game-ui-status-update'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"status-update\"><span></span></div>");;return buf.join("");
});

window.JT['game-ui-waiting-for-seed'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div id=\"waiting-for-seed\" class=\"spinner\"><!-- img(src='#{CivicSeed.CLOUD_PATH}/img/game/spinloader.gif')--></div>");;return buf.join("");
});

window.JT['pages-404'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),badURL = locals_.badURL;
buf.push("<h1>404'd!</h1>");
if(typeof badURL === 'string')
{
buf.push("<p>\"" + (jade.escape((jade.interp = badURL) == null ? '' : jade.interp)) + "\" is not a valid path. Please find another one. :P</p>");
}
else
{
buf.push("<p>You have mistakenly come to the wrong universe.</p>");
};return buf.join("");
});

window.JT['pages-about'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div class=\"row about\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"about-tag\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/other/pigeon.png', true, false)) + "/><h1>The color has vanished! <br>Can you help bring it back?</h1></div><p>Civic Seed is a multi-player RPG that harnesses the power of online social play to teach and certify students to civically engage with partner communities.</p><div class=\"video\"><iframe src=\"//player.vimeo.com/video/64315985?title=0&amp;byline=0&amp;portrait=0&amp;color=ff9933\" width=\"100%\" height=\"400\" allowfullscreen></iframe></div><h2>Civic Engagement</h2><p>Many incoming university students are eager to make an impact on their school's partner communities and give something back to the people who live there. However, to most, the people and challenges of these communities are unknown, and under-trained volunteers can even do more harm than good.</p><p>For local organizations, it's difficult to know which students have the necessary knowledge and skills to make a positive impact, and whose personal goals align with the goals of the organization and the community.</p><h2>The Power of Play</h2><p>In Civic Seed, students get to explore a fantastical world, engage with the people who live there, and work together to solve a mystery and help bring the world back to life. Reflective learning is mixed with puzzle-solving, social gaming, and collaborative art. Learning through play makes it easy to engage with, reflect upon, and apply new knowledge. Civic Seed lets students learn how to tackle issues systematically and internalize information through experience instead of just memorizing for a quiz.</p><h2>Real World Results</h2><p><strong class='color-blue'>The Civic Resume.</strong> By playing the game, student-players not only learn about civic engagement, they become certified to civically engage with their partner communities. Game actions and responses are recorded and transformed into a civic resume&mdash;a sharable profile, owned by the player, that lets partners understand a student's background, skills, goals, and motivations.</p><p><strong class='color-orange'>Real Learning.</strong> Players take part in a reflective, collaborative learning process that prepares them to engage effectively in partner communities and make a positive, informed impact.</p><div class=\"creators\">This game was created by the <a href='http://engagementgamelab.org' target='_blank'>Engagement Game Lab</a>\nin partnernship with <a href='http://tufts.edu' target='_blank'>Tufts University</a>.</div></div></div>");;return buf.join("");
});

window.JT['pages-changeinfo'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),pregameSurveyLink = locals_.pregameSurveyLink;
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h2>Before you get started...</h2><p>Tell us a little bit about yourself!</p></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"console\"><div class=\"console-content\"><form id=\"change-info-form\" method=\"post\" action=\"/change-info\">");
if ( pregameSurveyLink)
{
buf.push("<div class=\"row no-print\"><div class=\"col-sm-4\"><strong>If you have not yet completed the pre-game survey, please do it now.</strong></div><div class=\"col-sm-8 controls\"><a" + (jade.attr("href", '' + (pregameSurveyLink) + '', true, false)) + " target=\"_blank\" class=\"btn btn-info survey\">Click here to open the survey/!</a></div></div>");
}
buf.push("<div class=\"row control-group\"><div class=\"col-sm-4\"><label for=\"firstname\" class=\"control-label\">What is your name?</label></div><div class=\"col-sm-4 controls\"><input id=\"firstname\" type=\"text\" name=\"firstname\" placeholder=\"first\" maxlength=\"20\"/></div><div class=\"col-sm-4 controls\"><input id=\"lastname\" type=\"text\" name=\"lastname\" placeholder=\"last\" maxlength=\"20\"/></div></div><div class=\"row control-group\"><div class=\"col-sm-4\"><label for=\"school\" class=\"control-label\">What school do you attend?</label></div><div class=\"col-sm-8 controls\"><input id=\"school\" type=\"text\" name=\"school\" placeholder=\"school name\" maxlength=\"40\"/></div></div><div class=\"row control-group\"><div class=\"col-sm-8 col-sm-offset-4 controls\"><button type=\"submit\" class=\"btn\">Submit</button></div></div><div class=\"row\"><div class=\"col-sm-8 col-sm-offset-4\"><div class=\"server-response\"></div></div></div></form></div></div></div></div>");;return buf.join("");
});

window.JT['pages-contactus'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h2>Contact Us</h2><p>Found a bug? Having a problem? Let us know!</p></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"console\"><div class=\"console-content\"><form id=\"contact-form\" method=\"post\" action=\"/contact-us\"><div class=\"row\"><div class=\"col-sm-12\"><p>We look forward to hearing from you! Please write your message below and provide us with your email address. <strong class='color-darkgreen'>If you’re experiencing a problem with the game, please be as detailed as possible so we can look into it. Thank you!</strong></p></div></div><div class=\"row control-group\"><div class=\"col-sm-3\"><label for=\"email\" class=\"control-label\">Your e-mail:</label></div><div class=\"col-sm-9 controls\"><input id=\"email\" type=\"text\" name=\"email\" placeholder=\"\"/></div></div><div class=\"row\"><div class=\"col-sm-3\"><label for=\"message\" class=\"control-label\">Your message:</label></div><div class=\"col-sm-9 controls\"><textarea id=\"message\" rows=\"6\" type=\"text\" name=\"message\" placeholder=\"Enter your message here...\"></textarea></div></div><div class=\"row control-group\"><div class=\"col-sm-9 col-sm-offset-3 controls\"><button id=\"submit\" type=\"submit\" class=\"btn\">Send<div class=\"spinner\"></div></button></div></div><div class=\"row\"><div class=\"col-sm-9 col-sm-offset-3\"><div class=\"server-response\"></div></div></div></form></div></div></div></div>");;return buf.join("");
});

window.JT['pages-home'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div class=\"row homepage\"><div class=\"col-md-7 welcome\"><!--h1 Welcome to Civic Seed!--><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/logo-large.png', true, false)) + " class=\"logo\"/><h4>Where civic engagement meets social gaming.</h4><p>We believe learning becomes even more powerful when you have fun doing it. Civic Seed is an experimental gaming and teaching platform designed to do just that. By playing Civic Seed, you'll learn more about yourself and your peers, Tuft’s host communities, how to build mutually beneficial relationships with them, and the philosophies behind meaningful and effective civic engagement.</p><p>Best of all, you’ll be certified by Tufts to engage with the vibrant host communities it partners with, and build your own Civic Resume as you play!</p></div><div class=\"col-md-4 col-md-offset-1 col-sm-6 col-sm-offset-3 text-center\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/other/trees.png', true, false)) + "/>");
if ((!sessionStorage.userId))
{
buf.push("<form id=\"login-form\" method=\"post\" action=\"/\" class=\"form-inline\"><input id=\"username\" type=\"text\" name=\"username\" rel=\"popover\" data-content=\"Enter your email.\" data-original-title=\"Email Address\" placeholder=\"Email\" class=\"input\"/><input id=\"password\" type=\"password\" name=\"password\" rel=\"popover\" data-content=\"Super secret password.\" data-original-title=\"Password\" placeholder=\"Password\" class=\"input\"/><button type=\"submit\" class=\"btn btn-primary btn-lg\">Sign In</button><p><a href=\"/remind-me\">Forget your password?</a></p></form>");
}
else
{
buf.push("<div><a" + (jade.attr("href", '/profiles/' + sessionStorage.profileLink, true, false)) + " class=\"btn btn-info btn-lg profile\">See your civic resume</a><a href=\"/game\" class=\"btn btn-info btn-lg play-game\">Play the game!</a></div>");
}
buf.push("</div></div>");;return buf.join("");
});

window.JT['pages-introduction'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1 introduction\"><h2>Civic Seed Introduction</h2><iframe src=\"http://player.vimeo.com/video/64315985\" width=\"640\" height=\"360\" allowfullscreen></iframe></div></div>");
if ((sessionStorage.userFirstName))
{
buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><p><a id=\"startGame\"" + (jade.attr("href", '/profiles/' + sessionStorage.profileLink, true, false)) + " class=\"btn btn-info btn-lg\">Go to your profile</a></p></div></div>");
};return buf.join("");
});

window.JT['pages-remindme'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h2>Forget your password?</h2><p>Let us help you.</p></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><div class=\"console\"><div class=\"console-content\"><form id=\"password-reminder-form\" method=\"post\" action=\"/remind-me\"><div class=\"row\"><div class=\"col-sm-12\"><p>Provide us with your email address and we'll reset your password via email.</p></div></div><div class=\"row control-group\"><div class=\"col-sm-3\"><label for=\"username\" class=\"control-label\">Your username:</label></div><div class=\"col-sm-9 controls\"><input id=\"username\" type=\"text\" name=\"username\" placeholder=\"Email\"/></div></div><div class=\"row control-group\"><div class=\"col-sm-9 col-sm-offset-3 controls\"><button type=\"submit\" class=\"btn\">Reset</button></div></div><div class=\"row\"><div class=\"col-sm-9 col-sm-offset-3\"><div class=\"server-response\"></div></div></div></form></div></div></div></div><div class=\"row\"><div class=\"col-md-10 col-md-offset-1\"><h4>Forget your username?</h4><p><small>Please contact your administrator if your email is not working.</small></p></div></div>");;return buf.join("");
});

window.JT['partials-navigation'] = (function template(locals) {
var buf = [];
var jade_mixins = {};

buf.push("<nav class=\"navbar navbar-default navbar-fixed-top no-print\"><div class=\"container-fluid\"><div class=\"navbar-header\"><button type=\"button\" data-toggle=\"collapse\" data-target=\".navbar-collapse\" class=\"navbar-toggle\"><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span></button><a href=\"/\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/logo.png', true, false)) + " class=\"logo\"/></a></div><div class=\"navbar-collapse collapse navbar-right\"><ul class=\"nav navbar-nav\"><li><a href=\"/\">Home</a></li><li><a href=\"/about\">About</a></li><li><a href=\"/profiles\">Profiles</a></li><li><a href=\"/contact\">Contact us</a></li>");
if (sessionStorage.userRole === 'superadmin' || sessionStorage.userRole === 'admin')
{
buf.push("<li><a href=\"/admin\">Admin console</a></li>");
}
if (sessionStorage.userFirstName)
{
buf.push("<li class=\"dropdown\"><button data-toggle=\"dropdown\" class=\"dropdown-toggle\"><i class=\"fa fa-user\"></i><span class=\"username\">" + (jade.escape((jade.interp = sessionStorage.userFirstName) == null ? '' : jade.interp)) + "</span><span class=\"caret\"></span></button><ul class=\"dropdown-menu\"><li><a href=\"/game\">Enter game</a></li><li><a" + (jade.attr("href", '/profiles/' + sessionStorage.profileLink, true, false)) + ">My civic resume</a></li><li class=\"divider\"></li><li><a href=\"/signout\" class=\"dropdown-sign-out\">Sign out</a></li></ul></li>");
}
buf.push("</ul></div></div><div class=\"zag\"></div></nav>");;return buf.join("");
});

window.JT['profiles-allprofiles'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),users = locals_.users;
var userIsAdmin = (sessionStorage.userRole === 'superadmin' || sessionStorage.userRole === 'admin') ? true : false
buf.push("<div class=\"row all-profiles\"><div class=\"col-md-10 col-md-offset-1\"><h2>Public Profiles</h2>");
if ( userIsAdmin == true)
{
buf.push("<p>Below is a list of all users who have started playing the game.\nThis is an <strong>administrator</strong> view. Profiles that are not made\npublic by the player themselves will show a lock symbol by their name.</p>");
}
else
{
buf.push("<p>Below is a list of all users who have chosen to make their profile publicly available.\n</p>");
}
// iterate users
;(function(){
  var $$obj = users;
  if ('number' == typeof $$obj.length) {

    for (var $index = 0, $$l = $$obj.length; $index < $$l; $index++) {
      var user = $$obj[$index];

if ( user.profilePublic || (userIsAdmin && user.gameStarted))
{
if ( user.profile.mugshotURL)
{
var mugshotURL = user.profile.mugshotURL
}
else
{
var mugshotURL = CivicSeed.CLOUD_PATH + '/img/profile/placeholder.png'
}
buf.push("<div class=\"profile-grid-box\"><div" + (jade.attr("style", 'background-image:url(' + (mugshotURL) + ');', true, false)) + " title=\"profile image\" class=\"profile-image\"><a" + (jade.attr("href", 'profiles/' + user.profileLink, true, false)) + " class=\"profile-link\"></a></div><h3 class=\"name\"><a" + (jade.attr("href", 'profiles/' + user.profileLink, true, false)) + ">" + (jade.escape(null == (jade.interp = user.firstName + ' ' + user.lastName) ? "" : jade.interp)) + "</a>");
if (!( user.profilePublic))
{
buf.push("<i title=\"this profile is not public\" data-placement=\"top\" class=\"fa fa-lock\"></i>");
}
buf.push("</h3><h4 class=\"tagline\">" + (jade.escape(null == (jade.interp = user.profile.tagline) ? "" : jade.interp)) + "</h4></div>");
}
    }

  } else {
    var $$l = 0;
    for (var $index in $$obj) {
      $$l++;      var user = $$obj[$index];

if ( user.profilePublic || (userIsAdmin && user.gameStarted))
{
if ( user.profile.mugshotURL)
{
var mugshotURL = user.profile.mugshotURL
}
else
{
var mugshotURL = CivicSeed.CLOUD_PATH + '/img/profile/placeholder.png'
}
buf.push("<div class=\"profile-grid-box\"><div" + (jade.attr("style", 'background-image:url(' + (mugshotURL) + ');', true, false)) + " title=\"profile image\" class=\"profile-image\"><a" + (jade.attr("href", 'profiles/' + user.profileLink, true, false)) + " class=\"profile-link\"></a></div><h3 class=\"name\"><a" + (jade.attr("href", 'profiles/' + user.profileLink, true, false)) + ">" + (jade.escape(null == (jade.interp = user.firstName + ' ' + user.lastName) ? "" : jade.interp)) + "</a>");
if (!( user.profilePublic))
{
buf.push("<i title=\"this profile is not public\" data-placement=\"top\" class=\"fa fa-lock\"></i>");
}
buf.push("</h3><h4 class=\"tagline\">" + (jade.escape(null == (jade.interp = user.profile.tagline) ? "" : jade.interp)) + "</h4></div>");
}
    }

  }
}).call(this);

buf.push("</div></div>");;return buf.join("");
});

window.JT['profiles-singleprofile'] = (function template(locals) {
var buf = [];
var jade_mixins = {};
var locals_ = (locals || {}),email = locals_.email,firstName = locals_.firstName,profilePublic = locals_.profilePublic,profileUnlocked = locals_.profileUnlocked,lastName = locals_.lastName,profile = locals_.profile,postgameSurveyLink = locals_.postgameSurveyLink,resume = locals_.resume,resumeFeedback = locals_.resumeFeedback,colorMap = locals_.colorMap,active = locals_.active;
jade_mixins["filteredPeerFeedback"] = function(resumeIndex, resumeFeedback){
var block = (this && this.block), attributes = (this && this.attributes) || {};
var filtered = []
// iterate resumeFeedback
;(function(){
  var $$obj = resumeFeedback;
  if ('number' == typeof $$obj.length) {

    for (var index = 0, $$l = $$obj.length; index < $$l; index++) {
      var comment = $$obj[index];

if ( (comment.resumeIndex === resumeIndex))
{
filtered.push(comment)
}
    }

  } else {
    var $$l = 0;
    for (var index in $$obj) {
      $$l++;      var comment = $$obj[index];

if ( (comment.resumeIndex === resumeIndex))
{
filtered.push(comment)
}
    }

  }
}).call(this);

if ( (filtered.length > 0))
{
buf.push("<div class=\"feedback no-print\"><button class=\"btn-info btn-lg\">Peer feedback</button>");
// iterate filtered
;(function(){
  var $$obj = filtered;
  if ('number' == typeof $$obj.length) {

    for (var index = 0, $$l = $$obj.length; index < $$l; index++) {
      var comment = $$obj[index];

buf.push("<div class=\"row\"><div class=\"col-sm-12\"><div class=\"comment\"><h4>A peer said:</h4><p>" + (jade.escape((jade.interp = comment.comment) == null ? '' : jade.interp)) + "</p></div></div></div>");
    }

  } else {
    var $$l = 0;
    for (var index in $$obj) {
      $$l++;      var comment = $$obj[index];

buf.push("<div class=\"row\"><div class=\"col-sm-12\"><div class=\"comment\"><h4>A peer said:</h4><p>" + (jade.escape((jade.interp = comment.comment) == null ? '' : jade.interp)) + "</p></div></div></div>");
    }

  }
}).call(this);

buf.push("</div>");
}
};
var userIsAdmin = (sessionStorage.userRole === 'superadmin' || sessionStorage.userRole === 'admin') ? true : false
buf.push("<div class=\"row user-profile\"><div class=\"col-md-10 col-md-offset-1\">");
if ( (sessionStorage.userEmail === email))
{
var thisBelongsToCurrentUser = true
}
if ( !firstName)
{
buf.push("<h1>This profile does not exist.</h1>");
}
else if ( (firstName === 'Demo'))
{
buf.push("<div class=\"row demo-profile\"><div class=\"col-sm-12\"><h1>The story of Civic Seed</h1><h3>Call to action</h3><p>At the start of the game, the players are told that the color has vanished from the world, and that they have been tasked to help restore it. The Botanist (our game guide) has developed special color seeds to this effect. If the players want to bring the color back, they must plant these seeds all over the world.</p><p>Knowledge is the fertilizer that gives the seeds their power, so the players must answer questions to earn and plant the seeds, up to and including the Enigma Civica, a great riddle that the players must solve to progress through each level.</p><h3>Exploring the mystery</h3><p>As the players explore the world, talk to NPCs, and earn and plant seeds, more of the backstory comes to light. Through aspects of the NPC’s dialogue and rare sightings of a mysterious robot on the outskirts of the map, they learn that an Autonomous Harvesting Robot T-Class (AHR-T) is the source of the color crisis. Furthermore, it becomes apparent that AHR-T has stolen all the color multiple times&mdash;and that each time this happens, the people replant the color seeds.</p><h3>The big reveal</h3><p>After completing level 4, AHR-T sucks up all the seeds, rendering the world gray once again. Finally, the players learn the truth: it turns out, the robot was an invention of the Botanist, designed to fertilize and harvest more colorful crops, but instead, it went haywire and sucked up all the color.</p><p>The Botanist is at his wit’s end, believing that no matter what he does, the cycle will only continue.</p><h3>Boss battle and final sequence</h3><p>Now, the players must use the skills and knowledge mastered in the game to defeat the robot once and for all. The seeds, which they used to color the world, take on an extra effect: they illuminate hidden objects under the ground. To defeat AHR-T, they must race against time to uncover the four hidden control ports, and test their understanding of the content one last time at each.</p><p>This overwhelms the seeds in AHR-T’s collection bag, which rapidly expands and explodes like a giant bag of microwave popcorn. The seeds fly everywhere, floating on the breeze and bringing color back to the world where they land.</p><h3>Features of the full version of Civic Seed</h3><ul><li>Music and sound effects</li><li>Animated intro and finale sequences</li><li>Timed boss level</li><li>Hidden “Easter Egg” seeds</li><li>Heads-up knowledge contests between players</li><li>Sharable Community Service Resumes</li></ul><iframe src=\"http://player.vimeo.com/video/64315985\" width=\"640\" height=\"360\" allowfullscreen></iframe></div></div><div class=\"row\"><div class=\"col-sm-12\"><a href=\"/game\" class=\"btn btn-info btn-lg play-game\">Play the game</a></div></div>");
}
else if ( !profilePublic && !thisBelongsToCurrentUser && !userIsAdmin)
{
buf.push("<h1>This profile is not public.</h1>");
}
else
{
if ( userIsAdmin && !thisBelongsToCurrentUser)
{
buf.push("<div class=\"row text-center\"><div class=\"col-sm-8 col-sm-offset-2\"><p>");
if ( !profileUnlocked)
{
buf.push("<strong>This player has not finished the game, so the profile will only be\npartially complete.\nBut you get to view it because you are an administrator!</strong>");
}
else if ( !profilePublic)
{
buf.push("<strong>This player has not made his or her profile public.\nBut you get to view it because you are an administrator!\n</strong>");
}
buf.push("</p></div></div>");
}
buf.push("<div class=\"row user-header\"><div class=\"col-sm-8 col-sm-offset-2 profile-box text-center\"><h1 class=\"name\">" + (jade.escape(null == (jade.interp = firstName + ' ' + lastName) ? "" : jade.interp)) + "</h1><h4 class=\"tagline\">" + (jade.escape(null == (jade.interp = profile.tagline) ? "" : jade.interp)) + "</h4>");
if ( thisBelongsToCurrentUser)
{
var editable = 'editable'
}
if ( profile.mugshotURL)
{
var mugshotURL = profile.mugshotURL
}
else
{
var mugshotURL = CivicSeed.CLOUD_PATH + '/img/profile/placeholder.png'
}
buf.push("<div" + (jade.attr("style", 'background-image:url(' + (mugshotURL) + ');', true, false)) + " title=\"profile image\"" + (jade.cls(['profile-image',editable], [null,true])) + ">");
if ( thisBelongsToCurrentUser)
{
buf.push("<div class=\"uploader no-print\"><i class=\"upload-icon fa fa-camera\"></i><p>change image</p><input id=\"mugshot-uploader\" type=\"file\" name=\"pic\" accept=\"image/*\"/></div>");
}
buf.push("</div><div class=\"profile-address\"><p class=\"address-line-1\">" + (jade.escape(null == (jade.interp = profile.address1) ? "" : jade.interp)) + "</p><p class=\"address-line-2\">" + (jade.escape(null == (jade.interp = profile.address2) ? "" : jade.interp)) + "</p><p class=\"city-state-zip\">" + (jade.escape((jade.interp = profile.city) == null ? '' : jade.interp)) + "");
if ( profile.state)
{
buf.push(", " + (jade.escape((jade.interp = profile.state) == null ? '' : jade.interp)) + "");
}
if ( profile.zip)
{
buf.push("&nbsp;" + (jade.escape((jade.interp = profile.zip) == null ? '' : jade.interp)) + "");
}
buf.push("</p><p class=\"phone\">" + (jade.escape(null == (jade.interp = profile.phone) ? "" : jade.interp)) + "</p><p class=\"email\">" + (jade.escape(null == (jade.interp = profile.email) ? "" : jade.interp)) + "</p></div></div>");
if ( thisBelongsToCurrentUser)
{
buf.push("<div" + (jade.attr("data-public", profilePublic, true, false)) + " class=\"col-xs-12 col-sm-2 profile-toggle no-print\"><div class=\"public-lock\"><div" + (jade.attr("style", profilePublic ? 'display: block;' : 'display: none;', true, false)) + " class=\"profile-public\"><div class=\"profile-toggle-icon\"><i title=\"make profile public\" data-placement=\"top\" class=\"fa fa-unlock-alt fa fa-4x\"></i></div><div class=\"profile-toggle-text\">your profile is public</div></div><div" + (jade.attr("style", !profilePublic ? 'display: block;' : 'display: none;', true, false)) + " class=\"profile-private\"><div class=\"profile-toggle-icon\"><i title=\"make profile private\" data-placement=\"top\" class=\"fa fa-lock fa fa-4x\"></i></div><div class=\"profile-toggle-text\">your profile is private</div></div></div></div>");
}
buf.push("</div>");
if ( profileUnlocked || userIsAdmin)
{
if ( thisBelongsToCurrentUser)
{
if ( postgameSurveyLink)
{
buf.push("<div class=\"row profile-divider no-print text-center\"><div class=\"col-sm-12 postgame-survey\"><p><strong>Please complete the post-game survey!</strong></p><a" + (jade.attr("href", '' + (postgameSurveyLink) + '', true, false)) + " target=\"_blank\" class=\"btn btn-primary survey\">Click here to open the survey</a></div></div>");
}
}
buf.push("<div class=\"row profile-divider resume-content\"></div><div class=\"row\"><div class=\"col-xs-12 col-sm-3 resume-headings\"><h3>vision</h3></div><div class=\"col-xs-12 col-sm-8 resume-text\"><p>" + (jade.escape(null == (jade.interp = profile.vision) ? "" : jade.interp)) + "</p></div></div><div class=\"row\"><div class=\"col-xs-12 col-sm-3 resume-headings\"><h3>education</h3></div><div class=\"col-xs-12 col-sm-8 resume-text\"><ul>");
// iterate profile.education
;(function(){
  var $$obj = profile.education;
  if ('number' == typeof $$obj.length) {

    for (var $index = 0, $$l = $$obj.length; $index < $$l; $index++) {
      var entry = $$obj[$index];

buf.push("<li>" + (jade.escape((jade.interp = entry.school) == null ? '' : jade.interp)) + "");
if ( entry.major)
{
buf.push(", " + (jade.escape((jade.interp = entry.major) == null ? '' : jade.interp)) + "");
}
if ( entry.year)
{
buf.push(", " + (jade.escape((jade.interp = entry.year) == null ? '' : jade.interp)) + "");
}
buf.push("</li>");
    }

  } else {
    var $$l = 0;
    for (var $index in $$obj) {
      $$l++;      var entry = $$obj[$index];

buf.push("<li>" + (jade.escape((jade.interp = entry.school) == null ? '' : jade.interp)) + "");
if ( entry.major)
{
buf.push(", " + (jade.escape((jade.interp = entry.major) == null ? '' : jade.interp)) + "");
}
if ( entry.year)
{
buf.push(", " + (jade.escape((jade.interp = entry.year) == null ? '' : jade.interp)) + "");
}
buf.push("</li>");
    }

  }
}).call(this);

buf.push("</ul></div></div><div class=\"row\"><div class=\"col-xs-12 col-sm-3 resume-headings\"><h3>background</h3></div><div class=\"col-xs-12 col-sm-8 resume-text\"><p>" + (jade.escape(null == (jade.interp = profile.background) ? "" : jade.interp)) + "</p></div></div><div class=\"row\"><div class=\"col-xs-12 col-sm-3 resume-headings\"><h3>experience</h3></div><div class=\"col-xs-12 col-sm-8 resume-text\"><ul>");
// iterate profile.experience
;(function(){
  var $$obj = profile.experience;
  if ('number' == typeof $$obj.length) {

    for (var $index = 0, $$l = $$obj.length; $index < $$l; $index++) {
      var entry = $$obj[$index];

if ( entry.organization)
{
buf.push("<li><strong>");
if ( entry.role)
{
buf.push("" + (jade.escape((jade.interp = entry.role) == null ? '' : jade.interp)) + ",&nbsp;");
}
buf.push("" + (jade.escape((jade.interp = entry.organization) == null ? '' : jade.interp)) + "</strong>");
if ( entry.summary)
{
buf.push("&nbsp;&mdash;\n" + (jade.escape((jade.interp = entry.summary) == null ? '' : jade.interp)) + "");
}
buf.push("</li>");
}
    }

  } else {
    var $$l = 0;
    for (var $index in $$obj) {
      $$l++;      var entry = $$obj[$index];

if ( entry.organization)
{
buf.push("<li><strong>");
if ( entry.role)
{
buf.push("" + (jade.escape((jade.interp = entry.role) == null ? '' : jade.interp)) + ",&nbsp;");
}
buf.push("" + (jade.escape((jade.interp = entry.organization) == null ? '' : jade.interp)) + "</strong>");
if ( entry.summary)
{
buf.push("&nbsp;&mdash;\n" + (jade.escape((jade.interp = entry.summary) == null ? '' : jade.interp)) + "");
}
buf.push("</li>");
}
    }

  }
}).call(this);

buf.push("</ul></div></div><div class=\"row\"><div class=\"col-xs-12 col-sm-3 resume-headings\"><h3>skills</h3></div><div class=\"col-xs-12 col-sm-8 resume-text\"><ul>");
// iterate profile.skills
;(function(){
  var $$obj = profile.skills;
  if ('number' == typeof $$obj.length) {

    for (var $index = 0, $$l = $$obj.length; $index < $$l; $index++) {
      var skill = $$obj[$index];

buf.push("<li>" + (jade.escape(null == (jade.interp = skill) ? "" : jade.interp)) + "</li>");
    }

  } else {
    var $$l = 0;
    for (var $index in $$obj) {
      $$l++;      var skill = $$obj[$index];

buf.push("<li>" + (jade.escape(null == (jade.interp = skill) ? "" : jade.interp)) + "</li>");
    }

  }
}).call(this);

buf.push("</ul><p><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/profile/seal.png', true, false)) + " width=\"60\" height=\"45\"/>Civic Seed seal of approval</p></div></div>");
var resumeFeedbackFiltered = []
if ( resume[0])
{
buf.push("<div class=\"row profile-divider resume-content-two\"></div><div class=\"row resume-row-two\"><div class=\"col-sm-10 col-sm-offset-1 motivations\"><h2>Motivations</h2><p" + (jade.attr("data-email", email, true, false)) + ">" + (jade.escape((jade.interp = resume[0]) == null ? '' : jade.interp)) + "</p>");
jade_mixins["filteredPeerFeedback"](0, resumeFeedback);
buf.push("</div></div>");
}
if ( resume[1])
{
buf.push("<div class=\"row resume-row-two\"><div class=\"col-sm-10 col-sm-offset-1 background\"><h2>Background and skills</h2><p" + (jade.attr("data-email", email, true, false)) + ">" + (jade.escape((jade.interp = resume[1]) == null ? '' : jade.interp)) + "</p>");
jade_mixins["filteredPeerFeedback"](1, resumeFeedback);
buf.push("</div></div>");
}
if ( resume[2])
{
buf.push("<div class=\"row resume-row-two\"><div class=\"col-sm-10 col-sm-offset-1 goals\"><h2>Personal goals</h2><p" + (jade.attr("data-email", email, true, false)) + ">" + (jade.escape((jade.interp = resume[2]) == null ? '' : jade.interp)) + "</p>");
jade_mixins["filteredPeerFeedback"](2, resumeFeedback);
buf.push("</div></div>");
}
if ( resume[3])
{
buf.push("<div class=\"row resume-row-two\"><div class=\"col-sm-10 col-sm-offset-1 objectives\"><h2>Civic objectives</h2><p" + (jade.attr("data-email", email, true, false)) + ">" + (jade.escape((jade.interp = resume[3]) == null ? '' : jade.interp)) + "</p>");
jade_mixins["filteredPeerFeedback"](3, resumeFeedback);
buf.push("</div></div>");
}
if ( colorMap)
{
buf.push("<div class=\"row resume-row-two\"><div class=\"col-sm-10 col-sm-offset-1 color-map\"><img" + (jade.attr("src", '' + (colorMap) + '', true, false)) + "/></div></div>");
}
if ( thisBelongsToCurrentUser)
{
buf.push("<div class=\"row share no-print\"><div class=\"col-sm-10 col-sm-offset-1\"><div class=\"share-box\"><h2>Share your civic resume!</h2><div" + (jade.attr("data-public", profilePublic, true, false)) + " class=\"profile-toggle\"><div class=\"public-lock\"><div" + (jade.attr("style", profilePublic ? 'display: block;' : 'display: none;', true, false)) + " class=\"profile-public\"><div class=\"profile-toggle-icon\"><i title=\"make profile public\" data-placement=\"top\" class=\"fa fa-unlock-alt\"></i></div><div class=\"profile-toggle-text\">Congratulations, your profile is public!</div></div><div" + (jade.attr("style", !profilePublic ? 'display: block;' : 'display: none;', true, false)) + " class=\"profile-private\"><div class=\"profile-toggle-icon\"><i title=\"make profile private\" data-placement=\"top\" class=\"fa fa-lock\"></i></div><div class=\"profile-toggle-text\">Your profile is private. Click here to make it public.</div></div></div></div><p>Use the link below to share your Civic Seed profile with your friends,\ncolleagues and potential employers.\n</p><form id=\"share-link-form\"><div id=\"copy-share-link-group\" class=\"input-group\"><span class=\"input-group-addon\">http://</span><input id=\"copy-share-link-input\" type=\"text\" readonly=\"readonly\" class=\"share-link form-control\"/><span id=\"customize-share-link-button\" class=\"input-group-addon share-link-button change-share-link-button\">Customize</span></div><div id=\"customize-share-link-group\" class=\"input-group\"><span id=\"share-link-prefix\" class=\"input-group-addon\">http://</span><input id=\"customize-share-link-input\" type=\"text\" maxlength=\"32\" class=\"share-link form-control\"/><span id=\"save-share-link-button\" class=\"input-group-addon share-link-button save-share-link-button\">Save</span></div><div id=\"share-link-message\" class=\"share-link-message\"></div></form><h4>Here is your Civic Seed seal of approval badge.</h4><div class=\"seal-container\"><div class=\"seal-image\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/profile/seal.png', true, false)) + " width=\"180\" height=\"135\" alt=\"Civic Seed Seal of Approval\"/></div><div class=\"seal-code\"><h5>Embed this on your website!</h5><textarea><a href=\"http://civicseed.org/profiles/" + (jade.escape((jade.interp = sessionStorage.profileLink) == null ? '' : jade.interp)) + "\" title=\"" + (jade.escape((jade.interp = firstName) == null ? '' : jade.interp)) + " has earned the Civic Seed Seal of Approval!\"><img src=\"" + (jade.escape((jade.interp = CivicSeed.CLOUD_PATH) == null ? '' : jade.interp)) + "/img/profile/seal.png\" width=\"200\" height=\"150\" alt=\"Civic Seed Seal of Approval\"></a></textarea></div></div></div></div></div>");
}
buf.push("<div class=\"row footer\"><div class=\"col-sm-12\"><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/profile/tufts-logo.png', true, false)) + " width=\"320\" height=\"60\"/></div></div>");
}
else
{
buf.push("<div class=\"row profile-divider\"><div class=\"col-sm-12\">");
if ( thisBelongsToCurrentUser)
{
if ( active)
{
buf.push("<h3>Your civic resume is not ready yet. Play the game to complete it!</h3>");
}
else
{
buf.push("<h3>The game is currently inactive.</h3>");
}
}
else
{
buf.push("<h3>This civic resume has not yet been completed.</h3>");
}
buf.push("</div></div>");
if ( thisBelongsToCurrentUser && active)
{
buf.push("<div class=\"row\"><div class=\"col-sm-12 text-center\"><a href=\"/game\" class=\"btn btn-info btn-lg play-game\">Enter the game</a></div></div><div class=\"row\"><div class=\"col-sm-12 text-center\"><div class=\"resume-sample\"><h4 class=\"color-darkorange\">Sample civic resume:</h4><img" + (jade.attr("src", '' + (CivicSeed.CLOUD_PATH) + '/img/profile/resume-sample.png', true, false)) + " width=\"340\" height=\"880\"/></div></div></div>");
}
}
}
buf.push("</div></div>");;return buf.join("");
});
</script>
    <link rel="stylesheet" type="text/css" media="print" href="/css/print.css">
  </head>
  <body>
    <div id="container" class="container"></div>
  </body>
</html>