// brb: 20171220
// This is global
var CHAP_NUM = Number($("#manuscript").attr("data-chapter-number"));
//safe_log("CHAP_NUM = " + CHAP_NUM);
function roundToTwo(num) {
return +(Math.round(num + "e+2") + "e-2");
}
// this also checks if they are <= 10000
// also rounds all numbers down to 2 decimal places
// 20180719 - brb: We need to increase the numeric limit to 100000 since
// some minerals can be greater than 10000
function allInputsGreaterThan0(sec, round) {
//console.log("allInputsGreaterThan0");
//console.log("round = " + round);
var return_value = true;
sec.jq.find("input[type=number]").each(function(index, element) {
//var value = Number($(element).val());
var $this = $(element);
var value = $this.val();
//safe_log("value: " + value);
if (value == "") {
return_value = false;
}
// for chapter 6 (physical activity) we allow the value 0
if (CHAP_NUM == 6) {
if (value < 0 || value > 100000) {
return_value = false;
}
}
// if class on parent
is 'allow_zero' allow the value 0
else if ($this.parent('td').hasClass('allow_zero')) {
if (value < 0 || value > 100000) {
return_value = false;
}
}
else {
if (value <= 0 || value > 100000) {
return_value = false;
}
}
if (round === true) {
if (/\.\d\d\d/.test(value) || /e\-/.test(value)) {
$(element).val(roundToTwo(value))
}
}
});
// brb: we also need to check any non-number inputs
sec.jq.find("input[type=text]").each(function(index, element) {
var value = $(element).val();
if (!/\S/.test(value)) {
return_value = false;
}
});
//console.log("returning " + return_value);
return return_value;
}
(function() {
'use strict';
var globals = typeof window === 'undefined' ? global : window;
if (typeof globals.require === 'function') return;
var modules = {};
var cache = {};
var aliases = {};
var has = ({}).hasOwnProperty;
var endsWith = function(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
};
var _cmp = 'components/';
var unalias = function(alias, loaderPath) {
var start = 0;
if (loaderPath) {
if (loaderPath.indexOf(_cmp) === 0) {
start = _cmp.length;
}
if (loaderPath.indexOf('/', start) > 0) {
loaderPath = loaderPath.substring(start, loaderPath.indexOf('/', start));
}
}
var result = aliases[alias + '/index.js'] || aliases[loaderPath + '/deps/' + alias + '/index.js'];
if (result) {
return _cmp + result.substring(0, result.length - '.js'.length);
}
return alias;
};
var _reg = /^\.\.?(\/|$)/;
var expand = function(root, name) {
var results = [], part;
var parts = (_reg.test(name) ? root + '/' + name : name).split('/');
for (var i = 0, length = parts.length; i < length; i++) {
part = parts[i];
if (part === '..') {
results.pop();
} else if (part !== '.' && part !== '') {
results.push(part);
}
}
return results.join('/');
};
var dirname = function(path) {
return path.split('/').slice(0, -1).join('/');
};
var localRequire = function(path) {
return function expanded(name) {
var absolute = expand(dirname(path), name);
return globals.require(absolute, path);
};
};
var initModule = function(name, definition) {
var module = {id: name, exports: {}};
cache[name] = module;
definition(module.exports, localRequire(name), module);
return module.exports;
};
var require = function(name, loaderPath) {
var path = expand(name, '.');
if (loaderPath == null) loaderPath = '/';
path = unalias(name, loaderPath);
if (has.call(cache, path)) return cache[path].exports;
if (has.call(modules, path)) return initModule(path, modules[path]);
var dirIndex = expand(path, './index');
if (has.call(cache, dirIndex)) return cache[dirIndex].exports;
if (has.call(modules, dirIndex)) return initModule(dirIndex, modules[dirIndex]);
throw new Error('Cannot find module "' + name + '" from '+ '"' + loaderPath + '"');
};
require.alias = function(from, to) {
aliases[to] = from;
};
require.register = require.define = function(bundle, fn) {
if (typeof bundle === 'object') {
for (var key in bundle) {
if (has.call(bundle, key)) {
modules[key] = bundle[key];
}
}
} else {
modules[bundle] = fn;
}
};
require.list = function() {
var result = [];
for (var item in modules) {
if (has.call(modules, item)) {
result.push(item);
}
}
return result;
};
require.brunch = true;
require._cache = cache;
globals.require = require;
})();
/**
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
;(function(window, document) {
/*jshint evil:true */
/** version */
var version = '3.7.2';
/** Preset options */
var options = window.html5 || {};
/** Used to skip problem elements */
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
/** Not all elements can be cloned in IE **/
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
/** Detect whether the browser supports default html5 styles */
var supportsHtml5Styles;
/** Name of the expando, to work with multiple documents or to re-shiv one document */
var expando = '_html5shiv';
/** The id for the the documents expando */
var expanID = 0;
/** Cached data for each document */
var expandoData = {};
/** Detect whether the browser supports unknown elements */
var supportsUnknownElements;
(function() {
try {
var a = document.createElement('a');
a.innerHTML = '';
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
supportsHtml5Styles = ('hidden' in a);
supportsUnknownElements = a.childNodes.length == 1 || (function() {
// assign a false positive if unable to shiv
(document.createElement)('a');
var frag = document.createDocumentFragment();
return (
typeof frag.cloneNode == 'undefined' ||
typeof frag.createDocumentFragment == 'undefined' ||
typeof frag.createElement == 'undefined'
);
}());
} catch(e) {
// assign a false positive if detection fails => unable to shiv
supportsHtml5Styles = true;
supportsUnknownElements = true;
}
}());
/*--------------------------------------------------------------------------*/
/**
* Creates a style sheet with the given CSS text and adds it to the document.
* @private
* @param {Document} ownerDocument The document.
* @param {String} cssText The CSS text.
* @returns {StyleSheet} The style element.
*/
function addStyleSheet(ownerDocument, cssText) {
var p = ownerDocument.createElement('p'),
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
p.innerHTML = 'x';
return parent.insertBefore(p.lastChild, parent.firstChild);
}
/**
* Returns the value of `html5.elements` as an array.
* @private
* @returns {Array} An array of shived element node names.
*/
function getElements() {
var elements = html5.elements;
return typeof elements == 'string' ? elements.split(' ') : elements;
}
/**
* Extends the built-in list of html5 elements
* @memberOf html5
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
* @param {Document} ownerDocument The context document.
*/
function addElements(newElements, ownerDocument) {
var elements = html5.elements;
if(typeof elements != 'string'){
elements = elements.join(' ');
}
if(typeof newElements != 'string'){
newElements = newElements.join(' ');
}
html5.elements = elements +' '+ newElements;
shivDocument(ownerDocument);
}
/**
* Returns the data associated to the given document
* @private
* @param {Document} ownerDocument The document.
* @returns {Object} An object of data.
*/
function getExpandoData(ownerDocument) {
var data = expandoData[ownerDocument[expando]];
if (!data) {
data = {};
expanID++;
ownerDocument[expando] = expanID;
expandoData[expanID] = data;
}
return data;
}
/**
* returns a shived element for the given nodeName and document
* @memberOf html5
* @param {String} nodeName name of the element
* @param {Document} ownerDocument The context document.
* @returns {Object} The shived element.
*/
function createElement(nodeName, ownerDocument, data){
if (!ownerDocument) {
ownerDocument = document;
}
if(supportsUnknownElements){
return ownerDocument.createElement(nodeName);
}
if (!data) {
data = getExpandoData(ownerDocument);
}
var node;
if (data.cache[nodeName]) {
node = data.cache[nodeName].cloneNode();
} else if (saveClones.test(nodeName)) {
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
} else {
node = data.createElem(nodeName);
}
// Avoid adding some elements to fragments in IE < 9 because
// * Attributes like `name` or `type` cannot be set/changed once an element
// is inserted into a document/fragment
// * Link elements with `src` attributes that are inaccessible, as with
// a 403 response, will cause the tab/window to crash
// * Script elements appended to fragments will execute when their `src`
// or `text` property is set
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
}
/**
* returns a shived DocumentFragment for the given document
* @memberOf html5
* @param {Document} ownerDocument The context document.
* @returns {Object} The shived DocumentFragment.
*/
function createDocumentFragment(ownerDocument, data){
if (!ownerDocument) {
ownerDocument = document;
}
if(supportsUnknownElements){
return ownerDocument.createDocumentFragment();
}
data = data || getExpandoData(ownerDocument);
var clone = data.frag.cloneNode(),
i = 0,
elems = getElements(),
l = elems.length;
for(;ia?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
});
require.register("javascripts/main", function(exports, require, module) {
var $ = require('javascripts/jquery-1.11.2.min');
var _ = require('javascripts/underscore-min');
var questionMaps = require('javascripts/questionMap');
(function($){
// order is an array of numbers which specify the order the
// questions should be shuffled in
$.fn.shuffle = function(order) {
//safe_log("fn.shuffle");
//safe_log(order);
var allElems = this.get();
//safe_log(allElems);
var shuffled = [];
// if we only have two answer options then we are dealing with
// Yes/No or Under/'On/Over' and these should not be randomly
// shuffled but always returned in the same order
if (allElems.length == 2) {
var first_answer = $(allElems[0]).find('td').eq(2).text();
//safe_log("first answer = " + first_answer);
if (first_answer == "Yes" || first_answer == "Under") {
shuffled.push($(allElems[0]).clone(true)[0]);
shuffled.push($(allElems[1]).clone(true)[0]);
}
else {
shuffled.push($(allElems[1]).clone(true)[0]);
shuffled.push($(allElems[0]).clone(true)[0]);
}
}
else {
shuffled = $.map(allElems, function(el, index){
var shuffledEl = $(allElems[order[index]]).clone(true)[0];
//safe_log("shuffledEl:");
//safe_log(shuffledEl);
return shuffledEl;
});
}
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
//safe_log(shuffled);
//safe_log($(shuffled));
return $(shuffled);
};
})($);
window.setTimeout(function(){
$('body').show();
}, 250);
var btnTemplateMarkup = '
' +
' ' +
' ' +
'
';
var btnTemplate = _.template(btnTemplateMarkup);
window.gridData = [];
var inputTables, readonlyTables;
var currentInputCell;
var currentSection = 0;
var answerShuffleOrder = [];
var questionsRemaining;
var tutorialQuestionHolder1;
var tutorialQuestionHolder2;
var tutorialQuestionHolder3;
var tutorialQuestionHolder4;
var tutorialQuestionHolder5;
var tutorialQuestionHolder6;
var tutorialQuestionHolder7;
var serialize = function(key, data){
if (player.ARGA_running){
Set_ARGA_Data(key, data);
Save_ARGA_Data();
} else {
localStorage.setItem(key, data);
}
}
var deserialize = function(key){
if (player.ARGA_running){
var data = Get_ARGA_Data(key);
if (data === ''){
data = null;
}
return JSON.parse(data);
} else {
//return JSON.parse(localStorage.getItem(key));
return "";
}
}
var initSuperTracker = function(){
var initializeInputTables = function(){
var cells = $('#digfir_section_1 [data-attr*="input-grid"] tr:gt(0)').find('td:gt(0)');
var foodCells = $('#digfir_section_1 div[data-type="table"][data-attr*="food-grid"] td');
var textCells = $('#digfir_section_1 td:contains("[text]")');
var recordData = function(el){
//safe_log("recordData:");
//safe_log(el);
var tableIndex = $('div[data-attr*="input-grid"] table').index($(el).closest('table'));
var rowIndex = $(el).closest('table').find('tr:gt(0)').index($(el).closest('tr'));
var cellIndex = $(el).closest('tr').find('td:gt(0)').index($(el).closest('td'));
// brb: For Vitamins, we need to adjust the cellIndex by -1 in the
// first table to make up for the extra column (Solubility)
if (CHAP_NUM == 3 && tableIndex == 0) {
cellIndex--;
}
//safe_log("table: " + tableIndex + ", row: " + rowIndex + ", cell: " + cellIndex);
currentInputCell = gridData[tableIndex][rowIndex][cellIndex];
var enteredData = $(el).val();
if (enteredData){
currentInputCell.number = enteredData;
}
}
var onBlurCell = function(e){
//console.log("onBlurCell");
//console.log(e);
var $this = $(this);
var value = $this.val();
if ($this.attr('type') === 'number') {
//console.log(value);
// we can't allow zero values for certain fields and must change 0 to 0.01
if (/\d/.test(value) && value == 0) {
// we don't need to do this for chapter 6 (physical activity)
// we don't need to do this if the cell has class "allow_zero"
if (CHAP_NUM == 6 || $this.parent('td').hasClass('allow_zero')) {
// do nothing, the value can remain as zero
}
else {
// set zero value to 0.01 because we are dividing by this value and
// can't divide by zero
$this.val("0.01");
}
if (allInputsGreaterThan0(player.get_current_section(), true)) {
checkForGridComplete();
}
}
}
recordData(this);
updateReadOnlyGrids();
updateQuestionAnswers();
};
var checkForGridComplete = function(){
//safe_log("checkForGridComplete()");
if (isGridComplete()){
$('#step_button').removeClass('disabled');
// Save grid data
serialize(argaKey, JSON.stringify(gridData));
// brb: If grid has been completed then shuffle questions
// now that we know the correct answers
// Shuffle questions
//safe_log("Shuffle questions");
// brb: shuffle YES/NO answers again since we now know which
// answers are correct now
/*
_.each($('[data-type="question"]'), function(question, index){
var answers = $(question).find('.query_mc_choice_table');
if (answers.length == 2) {
answers.shuffle(answerShuffleOrder[index]);
answers = $(question).find('.query_mc_choice_table');
_.each(answers, function(answer, index){
$(answer).find('td').eq(1).text(String.fromCharCode('A'.charCodeAt(0) + index));
});
}
});
updateQuestionAnswers();
*/
} // end if
} // end checkForGridComplete()
var onChangeCell = function(e) {
//safe_log("onChangeCell");
var $this = $(this);
if ($this.attr('type') === 'number') {
var value = $this.val();
//safe_log(value);
// we don't need to do this for chapter 6 (physical activity)
// we don't need to do this for any field with class 'allow_zero'
if (CHAP_NUM == 6 || $this.parent('td').hasClass('allow_zero')) {
// do nothing, we can allow a zero value
}
else {
// we can't allow a zero value so change it to 0.01
if (/\d/.test(value) && value == 0) {
//console.log("setting value to 0.01");
$this.val("0.01");
}
}
// prevent number from starting with 0
if (/^0\d/.test(value)) {
value = value.replace(/^0/, "");
$this.val(value);
}
//safe_log(value);
recordData(this);
if (allInputsGreaterThan0(player.get_current_section(), true)) {
checkForGridComplete();
}
else {
//console.log("not all inputs > 0");
$('#step_button').addClass('disabled');
}
}
}
var onKeyDownCell = function(e){
//console.log("onKeyDownCell");
// Only allow numbers or decimals or arrow keys
var keyCode = e.keyCode || e.charCode;
if ((keyCode < 48 || keyCode > 57) && keyCode != 46 && keyCode > 30 && keyCode != 190 && keyCode != 40 && keyCode != 38 && keyCode != 37 && keyCode != 39){
//console.log("discarding key code " + keyCode);
e.preventDefault();
return;
}
//console.log(keyCode);
//console.log($(this).val());
if ($(this).attr('type') === 'number') {
var value = $(this).val();
if (keyCode == 190 && /\./.test(value)) {
//console.log("discarding key code " + keyCode);
e.preventDefault();
return;
}
//console.log("onKeyDownCell: setting previous value to " + value);
$(this).attr('data-prev_val', value);
}
}
var onKeyUpCell = function(e){
var $this = $(this);
if ($this.attr('type') === 'number'){
// Only allow numbers or decimals
var keyCode = e.keyCode || e.charCode;
if ((keyCode < 48 || keyCode > 57) && keyCode != 46 && keyCode > 30){
e.preventDefault();
return;
}
//console.log("onKeyUpCell: " + keyCode);
//console.log($(this).val());
//console.log(e.type);
// Only allow 0-10000
var newValue = $this.val();
//console.log("newValue = " + newValue);
if (newValue < 0 || newValue > 10000){
e.preventDefault();
//console.log("not all inputs > 0 || < 10001");
$('#step_button').addClass('disabled');
return;
}
// prevent number from starting with 0
if (/^0\d/.test(newValue)) {
newValue = newValue.replace(/^0/, "");
$this.val(newValue);
}
/*
if (String($(this).val()).replace('.', '').length > 4 || $(this).val() > 9999){
if (keyCode >= 48 && keyCode <= 57){
e.preventDefault();
return;
}
}
if (keyCode === 46 && $(this).val().indexOf('.') !== -1){
e.preventDefault();
return;
}
*/
}
// only allow two digits of precision past decimal
// always allow back space
/*
console.log("new value = " + newValue);
if (/\.\d{3,}/.test(newValue) && keyCode !== 8) {
//potentialNewValue = roundToTwo(potentialNewValue);
//$(this).val(potentialNewValue);
e.preventDefault();
return;
}
*/
recordData(this);
// brb: check if all inputs on page have value > 0
if (allInputsGreaterThan0(player.get_current_section(), true)) {
checkForGridComplete();
}
else {
//console.log("not all inputs > 0");
$('#step_button').addClass('disabled');
}
}
_.each(cells, function(cell, index){
//safe_log("cell:");
//safe_log(cell);
if (!($(cell).hasClass('no_input'))) {
var lower_limit = 1;
if ($(cell).hasClass('allow_zero') || CHAP_NUM == 6) {
lower_limit = 0;
}
var input = $('')
.on('blur', onBlurCell)
.on('keydown', onKeyDownCell)
//.on('keyup keypress change', onKeyUpCell);
.on('change', onChangeCell)
.on('keyup', onKeyUpCell);
$(cell).empty().append(input);
}
});
// brb: populate hidden table fields for Physical Activity
if (CHAP_NUM == 6) {
var $id_B1 = $('[data-block_type="id_B1"]').find('input');
$id_B1.val("1");
recordData($id_B1.get(0));
var $id_B2 = $('[data-block_type="id_B2"]').find('input');
$id_B2.val("1");
recordData($id_B2.get(0));
}
// brb: populate hidden table fields for Food Groups
if (CHAP_NUM == 4) {
var $id_F1 = $('.id_f1').find('input');
$id_F1.val("1");
recordData($id_F1.get(0));
var $id_F2 = $('.id_f2').find('input');
$id_F2.val("1");
recordData($id_F2.get(0));
var $id_H1 = $('.id_h1').find('input');
$id_H1.val("1");
recordData($id_H1.get(0));
var $id_H2 = $('.id_h2').find('input');
$id_H2.val("1");
recordData($id_H2.get(0));
}
// brb: populate hidden table fields for Carbs
if (CHAP_NUM == 1) {
var $id_A3 = $('.id_a3').find('input');
$id_A3.val("1");
recordData($id_A3.get(0));
var $id_A5 = $('.id_a5').find('input');
$id_A5.val("1");
recordData($id_A5.get(0));
var $id_A6 = $('.id_a6').find('input');
$id_A6.val("1");
recordData($id_A6.get(0));
}
// lipids
if (CHAP_NUM == 2) {
var $id_A1 = $('.id_a1').find('input');
$id_A1.val("1");
recordData($id_A1.get(0));
var $id_A2 = $('.id_a2').find('input');
$id_A2.val("1");
recordData($id_A2.get(0));
var $id_D1 = $('.id_d1').find('input');
$id_D1.val("1");
recordData($id_D1.get(0));
var $id_D2 = $('.id_d2').find('input');
$id_D2.val("1");
recordData($id_D2.get(0));
var $id_E2 = $('.id_e2').find('input');
$id_E2.val("1");
recordData($id_E2.get(0));
var $id_G1 = $('.id_g1').find('input');
$id_G1.val("1");
recordData($id_G1.get(0));
var $id_G2 = $('.id_g2').find('input');
$id_G2.val("1");
recordData($id_G2.get(0));
var $id_G3 = $('.id_g3').find('input');
$id_G3.val("1");
recordData($id_G3.get(0));
var $id_H1 = $('.id_h1').find('input');
$id_H1.val("1");
recordData($id_H1.get(0));
var $id_H2 = $('.id_h2').find('input');
$id_H2.val("1");
recordData($id_H2.get(0));
var $id_H3 = $('.id_h3').find('input');
$id_H3.val("1");
recordData($id_H3.get(0));
var $id_I1 = $('.id_i1').find('input');
$id_I1.val("1");
recordData($id_I1.get(0));
var $id_I2 = $('.id_i2').find('input');
$id_I2.val("1");
recordData($id_I2.get(0));
var $id_I3 = $('.id_i3').find('input');
$id_I3.val("1");
recordData($id_I3.get(0));
var $id_J1 = $('.id_j1').find('input');
$id_J1.val("1");
recordData($id_J1.get(0));
var $id_J2 = $('.id_j2').find('input');
$id_J2.val("1");
recordData($id_J2.get(0));
var $id_J3 = $('.id_j3').find('input');
$id_J3.val("1");
recordData($id_J3.get(0));
}
//anytime [text] appears
_.each(textCells, function(cell, index){
var input = $('')
.on('blur', onBlurCell)
.on('keyup keypress change', onKeyUpCell)
$(cell).empty().append(input);
});
// lipids
if (CHAP_NUM == 2) {
var $id_food1 = $('.id_food1').find('input');
$id_food1.val("food 1");
recordData($id_food1.get(0));
var $id_food2 = $('.id_food2').find('input');
$id_food2.val("food 2");
recordData($id_food2.get(0));
var $id_food3 = $('.id_food3').find('input');
$id_food3.val("food 3");
recordData($id_food3.get(0));
}
// if($('#manuscript').attr('data-chapter-number') === '2'){
// $('div[data-attr*="grid-6"]').find('tr td:nth-child(2)').each(function(index, cell){
// $(cell).find('input').on('keyup', function(){
// var cloneCell = $('div[data-attr*="grid-7"]').find('tr td:nth-child(2)')
// .eq(index).find('input');
// cloneCell.val($(this).val());
// cloneCell.trigger('blur');
// })
// })
// $('div[data-attr*="grid-7"]').find('tr td:nth-child(2)').each(function(index, cell){
// $(cell).find('input').on('keyup', function(){
// var cloneCell = $('div[data-attr*="grid-6"]').find('tr td:nth-child(2)')
// .eq(index).find('input');
// cloneCell.val($(this).val());
// cloneCell.trigger('blur');
// })
// })
// }
// brb: populate grid if data was already entered
if (gridDataExists){
for (var i=0; i 0){
var questionBox = $('').append($('.tutorialQuestion#question'+idNum));
//assigns questionBox html to a variable
if(idNum == '1'){
tutorialQuestionHolder1 = questionBox;
}
if(idNum == '2'){
tutorialQuestionHolder2 = questionBox;
}
if(idNum == '3'){
tutorialQuestionHolder3 = questionBox;
}
if(idNum == '4'){
tutorialQuestionHolder4 = questionBox;
}
if(idNum == '5'){
tutorialQuestionHolder5 = questionBox;
}
if(idNum == '6'){
tutorialQuestionHolder6 = questionBox;
}
if(idNum == '7'){
tutorialQuestionHolder7 = questionBox;
}
}
}
//Insert Hints
if($('.hint#hint'+idNum).length > 0){
var hintBox = $('').append(
$('Hint')
).append(
$('.hint#hint'+idNum)
);
$(el).after(hintBox);
hintBox.on('click', function(){
$(this).toggleClass('open');
if($(this).hasClass('open')){
var height = $(this).find('.hint').height() + $(this).height() + 20;
$(this).css('height', height+'px');
}
else{
$(this).css('height', '');
}
});
}
//safe_log("query_text: " + $(el).html());
// brb: erase the warnings about answers not being in the same
// positon since we have fixed that
var query_html = $(el).html();
query_html = query_html.replace(/
Be careful!<\/strong> The answers .*? are not always in the same position as they were for the previous question\./, "");
//safe_log(query_html);
$(el).html(query_html);
});
// Add some markup for instruction text on each question
//_.each($('[data-type="question"] .question_action_div'), function(el, index){
_.each($('[data-block_type="question_sequence_one_at_a_time"] [data-type="question"] .question_action_div'), function(el, index){
//replaces question number (ie "1") with "Question" (data-type=number)
//adds tutorial data when needed
var temp = index+1;
if($('#manuscript').attr('data-chapter-number') === '9'){
if(temp === 1){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Create an account');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder1);
}
if(temp === 2){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Track your food');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder2);
}
if(temp === 3){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Save a recipe');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder3);
}
if(temp === 4){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Create your foods');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder4);
}
if(temp === 5){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('View your reports');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder5);
}
if(temp === 6){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Track your physical activity');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder6);
}
if(temp === 7){
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('View your physical activity report');
$(el).closest('[data-type="question"]').find('h3').after(tutorialQuestionHolder7);
}
}
else{
$(el).closest('[data-type="question"]').find('[data-type="number"]').html('Question ' + temp);
}
var feedbackDiv = $('').addClass('select_correct');
if($(el).closest('[data-type="question"]').find('.query_essay_ta').length){
feedbackDiv.append($('').addClass('question_feedback_part').text('Enter your answer. (minimum 5 characters)'));
}
else if($(el).closest('[data-type="question"]').find('.query_mc_choice_table').length){
feedbackDiv.append($('').addClass('question_feedback_part').text('Select the correct answer.'));
}
else{
feedbackDiv.append($('').addClass('question_feedback_part').text('Answer the question above'));
}
// brb: only add if the question does not have class 'answered'
if (!$(el).parent().hasClass('answered')) {
$(el).prepend(feedbackDiv);
feedbackDiv.show();
}
});
// brb: for Tutorial, we need to fix the question numbers
/*
if (CHAP_NUM == 10) {
$('[data-type="question"]').each(function() {
var $this = $(this);
var $num_span = $this.find('[data-type="number"]');
if ($num_span.length == 0) { return; }
var number = parseInt($this.attr('data-question_index'));
if (number == undefined) { return; }
$number.text("Question " + number);
});
}
*/
// $('.query_essay_ta').on('keyup', function(){
// if ($(this).val().trim().length > 4){
// $(this).closest('[data-type="question"]').find('.question_submit_button').show();
// } else {
// $(this).closest('[data-type="question"]').find('.question_submit_button').hide();
// }
// });
$('.query_essay_ta').on('change', function(){
$(this).val($(this).val().replace(//g, '>'));
$(this).val($(this).val().replace(/&/g, '&'));
$(this).val($(this).val().replace(/"/g, '"'));
});
// Set up submit answer callbacks
//.question_submit_button').on('click', function(e){
$('[data-block_type="question_sequence_one_at_a_time"] .question_submit_button').on('click', function(e){
var questionIndex = $('[data-type="question"]').index($(this).closest('[data-type="question"]'));
if (CHAP_NUM != 10) {
//Reshuffle answers
$(this).closest('[data-type="question"]').find('.query_mc_choice_table').shuffle(answerShuffleOrder[questionIndex]);
answers = $(this).closest('[data-type="question"]').find('.query_mc_choice_table');
_.each(answers, function(answer, index){
$(answer).find('td').eq(1).text(String.fromCharCode('A'.charCodeAt(0) + index));
});
updateQuestionAnswers();
}
$(this).closest('[data-type="question"]').find('.select_correct').remove();
//Update progress bar cell
if(!($('#manuscript').attr('data-chapter-number') === '8')){
//anytime we aren't in chapter 8
$('.progress-wrapper .cell').not('.complete').eq(0).addClass('complete');
$(this).off('click');
}
else if(($('#manuscript').attr('data-chapter-number') === '8') && ((questionIndex%5===0) && (questionIndex!=0)) || (questionIndex===$('[data-type="question"]').length-1)){
//if chapter 8, AND the question number cause the bar to proceed as planned (without being the first entry) OR if the questions are finished
$('.progress-wrapper .cell').not('.complete').eq(0).addClass('complete');
$(this).off('click');
}
else{
//this case only occurs in chapter 8
$(this).off('click');
}
//Set question as correct or incorrect
$(this).closest('[data-type="question"]').find('.query_mc_correct_choice').closest('.query_mc_choice_table').addClass('correct');
$(this).closest('[data-type="question"]').find('.query_mc_incorrect_user_choice').closest('.query_mc_choice_table').addClass('incorrect');
$(this).closest('[data-type="question"]').find('.query_mc_choice_table').not('.correct').not('.incorrect').addClass('disabled');
if (CHAP_NUM != 10) {
if(($('#manuscript').attr('data-chapter-number') === '8') && (questionIndex%5===0)){
questionsRemaining -= 1;
}
else{
questionsRemaining -= 1;
}
if (questionsRemaining === 0){
// Automatically push submit on all following questions as they are hidden and meant to be skipped
$(this).closest('[data-type="question"]').nextAll('[data-type="question"]').find('.question_submit_button').click();
$(this).hide();
}
}
// Skip points summary screen on tutorial
if ($('#manuscript').attr('data-chapter-number') === '9'){
if ($('#closing_material_button_0').length){
$('#closing_material_button_0').on('click', function(){
$('#step_button').trigger('click');
})
}
}
if (CHAP_NUM != 10) {
serializeProgress();
}
});
$('.question_submit_button').hide();
$('.query_essay_ta').closest('[data-type="question"]').find('.question_submit_button').show();
// Shuffle questions
//safe_log("Shuffle questions");
if (CHAP_NUM != 10) {
_.each($('[data-type="question"]'), function(question, index){
var answers = $(question).find('.query_mc_choice_table');
var order = [];
for (var i=0; i 0){
cell.find('input').val(cellData.number);
var query = player.activity.queries[firstFillInTheBlankIndex + tableQuestionIndex];
query.answers[0] = cellData.number;
query.correct_answer = cellData.number;
tableQuestionIndex += 1;
} else {
cell.text(cellData.number);
}
}
}
}
};
var updateQuestionAnswers = function(){
if (CHAP_NUM == 10) { return; }
for (var i=0; ianswerKey.cap){
answer = answerKey.cap;
}
//safe_log("answer for " + j + " = " + answer);
// brb: The following code is for checking for duplicate answers,
// which are defined as an answer within 1 of a previous answer.
// The first answer is always the correct answer
if (j==0) {
q_answers.push(answer);
}
// for the 'wrong' answers, we need to check for duplicates and adjust
// if there are any
else if (!isNaN(answer)) {
//safe_log("checking for dups");
var dup = true;
while (dup) {
dup = false;
// go through all generated answers so far and make sure there are
// no 'duplicates' (difference less than 1)
for (var x=0; x 0){
argaText += ", ";
}
var dataKey = answerKey.formulaData[j];
argaText += dataKey[0] + ':';
var tableDataKey = dataKey[1].split(':');
argaText += gridData[tableDataKey[0]][tableDataKey[1]][tableDataKey[2]].number;
}
argaText += ']';
}
query.query_text_for_ARGA = argaText;
}
}
};
var answerFromKey = function(answerKey){
var expansionPattern = /\{(.*)\}/;
if (expansionPattern.test(answerKey)){
var equation = answerKey.match(expansionPattern)[1];
var components = equation.split(' ');
for (var i=0; i
').addClass('progress-wrapper');
$('h1.section-title').eq(0).after(progressBarEl);
/*
if(($('#manuscript').attr('data-chapter-number') === '2') || ($('#manuscript').attr('data-chapter-number') === '5')){
var numQuestions = $('[data-type="question"]').length; //-1 for specialCaseQuestion
}
// brb: we aren't using chapter 8
else if(($('#manuscript').attr('data-chapter-number') === '8')){
var numQuestions = ($('[data-type="question"]').length/5); // /5 to count every 5 questions
}
*/
// brb: tutorial doesn't have input grid
if (CHAP_NUM == 10) {
var numQuestions = $('[data-type="question"]').length;
}
else{
var numQuestions = $('[data-type="question"]').length+1; //+1 for grid
}
var cellWidth = progressBarEl.width()/numQuestions-1; //-1 incase you're calculating the numQuestions and the value has a decimal
for(var i=0;i').addClass('cell').css('width',cellWidth+'px');
progressBarEl.append(cell);
}
$('.progress-wrapper .cell').eq(0).addClass('complete');
player.updateProgressBar();
};
var isGridComplete = function(){
//safe_log("isGridComplete()");
//safe_log(gridData);
for(var i=0;i 0){
return false;
}
// brb: make sure all number inputs have a value > 0
if (section === 2 && !allInputsGreaterThan0(player.get_current_section())) {
return false;
}
if(section === 2 && !isGridComplete()){
return false;
}
if (($('#manuscript').attr('data-chapter-number') === '9' && section == 2) || section == 3){
var chapterNumber = $('#manuscript').attr('data-chapter-number');
var imageURL = '/asset/slide_activity_default/eoa-'+chapterNumber+'.png';
$('.eoa-bg').css('background-image','url("' + imageURL + '")');
} else{
$('body').css('background-image', '');
}
}
$('body').removeClass('section-' + currentSection);
currentSection = section;
player.show_section(currentSection);
$('body').addClass('section-' + currentSection);
if (CHAP_NUM != 10) {
if (section === 1 && !isGridComplete()){
$('#step_button').addClass('disabled');
inputTables.find('input[type="number"]').eq(0).focus();
}
}
player.updateProgressBar();
}
var instructionSetup = function(){
if ($('#manuscript').attr('data-chapter-number') === '8'){
var fg1Instructions = $('').text('Use the Food Groups & Calories Report to find your data and enter it into the two grids below using only numerical values and decimal points.');
var fg2Instructions = $('').text('Use the Nutrients Report to find your data and enter it into the grids below.');
var fg3Instructions = $('').text('To calculate the percent of the target that you ate, divide your Average Eaten value by the Target value and multiply by 100.');
var fg4Instructions = $('').text('To calculate the percent of the target that you ate, divide your Average Eaten value by the Target value and multiply by 100.');
var fg5Instructions = $('').text('Use the Physical Activity Report to fill in your information in the two grids below. If a pink border appears around your entry, you have entered text that cannot be submitted, such as letters or special characters.');
$('[data-attr*="grid-1"]').eq(0).before(fg1Instructions);
$('[data-attr*="grid-3"]').eq(0).before(fg2Instructions);
$('[data-attr*="grid-6"]').eq(0).before(fg3Instructions);
$('[data-attr*="grid-7"]').eq(0).before(fg4Instructions);
$('[data-attr*="grid-8"]').eq(0).before(fg5Instructions);
}
if ($('#manuscript').attr('data-chapter-number') === '7'){
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the Bar Graph report to find your data and enter it into the grid below using only numerical values and decimal points (if needed).');
var fg2Instructions = $('').text('Enter your weight in pounds in the table below. This will be used to calculate your personal dietary reference intake for protein.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
$('[data-attr*="grid-2"]').eq(0).before(fg2Instructions);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '6'){
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the Activity Summary report to fill in your information in the two grids below.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '5'){
//var fgInstructions = $('').text('Use the Bar Graph report to find your data and enter it into the grid below using only numerical values and decimal points. To calculate the percent of the target that you ate, divide your Average Eaten value by the Target value and multiply by 100.');
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the Bar Graph report to find your data and enter it into the grid below using only numerical values and decimal points.');
var fg2Instructions = $('').text('Fill in the grid below using your knowledge of minerals. Refer to chapters 13 and 14 in your textbook for help.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
$('[data-attr*="grid-2"]').eq(0).before(fg2Instructions);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '4'){
//var fgInstructions = $('').text('Use the Food Groups & Calories Report to find your data and enter it into the two grids below using only numerical values and decimal points.');
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the MyPlate report to find your data and enter it into the grid below using only numerical values and decimal points.');
var fgInstructions2 = $('').text('Use the Calorie Assessment report to find your data and enter into the grid below using only numerical values and decimal points.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
$('[data-attr*="grid-2"]').eq(0).before(fgInstructions2);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '3'){
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the Bar Graph report to find your data and enter the numeric amounts into the grid below. ');
var fg2Instructions = $('').text('Fill in the grid below using your knowledge of vitamins. Refer to chapters 10 and 11 in your textbook for help.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
$('[data-attr*="grid-2"]').eq(0).before(fg2Instructions);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '2'){
// brb: moved this to XML
/*
var fgInstructions = $('').text('Use the Bar Graph report to find your data and enter it into the three grids below using only numerical values and decimal points (if needed).');
var fg2Instructions = $('').text('Use the Calories Assessment report to find your data and enter it into the grid below using only numerical values and decimal points (if needed).');
var fg2aInstructions = $('').text('Use the Calories Assessment report to find your data and enter it into the grid below using only numerical values and decimal points (if needed).');
var fg3Instructions = $('').text('Use the Spreadsheet report. Select one day to view the report for and find three foods you consumed that had the highest Fat(g) total. Use the report to fill out the grid below.');
$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
$('[data-attr*="grid-3"]').eq(0).before(fg2aInstructions);
$('[data-attr*="grid-5"]').eq(0).before(fg2Instructions);
$('[data-attr*="grid-6"]').eq(0).before(fg3Instructions);
*/
}
else if ($('#manuscript').attr('data-chapter-number') === '1'){
// brb: moved this to XML
//var fgInstructions = $('').text('Use the Nutrients Report to enter your data into the first two tables below using only numerical values and decimal points (if needed). If a pink border appears around your entry, you have entered text that cannot be submitted, such as letters or special characters.');
//var fgInstructions = $('').text('Use the Calorie Assessment and Bar Graph reports to find your data and enter it into the grid below.');
//var fg2Instructions = $('').text('Use the Food Groups & Calories Report to enter your data into the table below using only numerical values and decimal points (if needed). If a pink border appears around your entry, you have entered text that cannot be submitted, such as letters or special characters.');
//var fg1aInstructions = $('').text('Use the Bar Graph report to find your data and enter it into the grid below.');
//var fg2Instructions = $('').text('Use the MyPlate report to find your data and enter it into the grid below.');
//$('[data-attr*="grid-1"]').eq(0).before(fgInstructions);
//$('[data-attr*="grid-2"]').eq(0).before(fg1aInstructions);
//$('[data-attr*="grid-3"]').eq(0).before(fg2Instructions);
}
else{
var fgInstructions = $('').text('--MAIN.JS NEEDS TO BE EDITED TO MAKE TEXT APPEAR HERE: TO HIDE THIS USE display:none; in css on div class "instructions"--');
var fg2Instructions = $('').text('----');
}
}
var setupNavigation = function(){
//safe_log("setupNavigation, CHAP_NUM = " + CHAP_NUM);
var navEl = $('').attr('id','navigation');
$('div.progress-wrapper').eq(0).after(navEl);
//remove menu if chapter 9 (tutorial)
//if ($('#manuscript').attr('data-chapter-number') != '9'){
var navSub = $('').attr('id','nav').addClass('dropdown');
//}
var menuWrap = $('