(function(){"use strict";var n=angular.module("nbViewer",["ngCookies"])})();Array.prototype.contains=function(n){for(var t=this.length;t--;)if(this[t]==n)return!0;return!1};Array.prototype.Shuffle=function(n){for(var i,r,t=n.length;t;i=parseInt(Math.random()*t),r=n[--t],n[t]=n[i],n[i]=r);return n},function(){"use strict";var i=function(){return{restrict:"E",scope:!0,transclude:!0,templateUrl:"/scripts/ang/vocab/nblookup.html",controller:["$scope","$filter","$attrs","nbLookupService",n]}},n=function(n,t,i,r){n.showHelp=!0;i.showHelp=="false"&&(n.showHelp=!1);n.ref=r.getRef();n.refOption=n.ref[r.getRefOption()];n.usg=r.getUsg();n.usgOption=n.usg[r.getUsgOption()];n.lng=r.getLng();n.lngOption=n.lng[r.getLngOption()];n.option={selected:r.getVocabOption()};n.setVocabOption=function(t){n.option.selected=t;r.setVocabOption(t)};n.setRef=function(){r.setRefOption(n.ref.indexOf(n.refOption))};n.setUsg=function(){r.setUsgOption(n.usg.indexOf(n.usgOption))};n.setLng=function(){r.setLngOption(n.lng.indexOf(n.lngOption))}},t=angular.module("nbViewer");t.directive("nbLookup",i);t.controller("nbLookupCtrl",["$scope","$filter","$attrs","nbLookupService",n])}(),function(){"use strict";var i=function(){return{restrict:"E",scope:!0,template:'<div id="dataDisplay"><\/div>',controller:["$scope","$filter","$attrs","$compile","nbLookupService",n]}},n=function(n,t,i,r,u){var w,l,b,rt,nt,tt,s,f,h,a,d,it,ut,c,g,v,e,o;if(n.keepSpaces=!1,i.keepSpaces=="true"&&(n.keepSpaces=!0),n.prepWords=function(t,i){var r,u,o,f,e;if(t===undefined)return"";if(r="",i==!0&&(r=' style = "padding-left:3px;padding-right:3px" '),t=t.replace("\\",""),n.keepSpaces==!0)return"<button "+r+' type="button" class="btn btn-link" ng-click="lookup(\''+t.replace(/'/g,"\\'")+"')\">"+t+"<\/button>";for(u="",o=t.split(/[, ]+/),f=0;f<o.length;f++)e=o[f].trim(),e.length>0&&(u=u+"<button "+r+' type="button" class="btn btn-link" ng-click="lookup(\''+e.replace(/'/g,"\\'")+"')\">"+e+"<\/button>");return u},typeof splitstrwords=="undefined"){var p="",s=strwords.split(";"),f='<table class="table table-hover table-striped"><tr><td>';for(e=1;e<=s.length;e++)w=s[e-1],l=String(w).substring(0,1),p.toLowerCase()!=l.toLowerCase()&&(p=l,f=f+"<\/td><\/tr><tr><td><b>"+l.toUpperCase()+"<\/b> "),f=f+n.prepWords(w);f=f+"<\/td><\/tr><\/table>";o=r(f)(n);$("#dataDisplay").append(o)}else if(splitstrwords=="eslreader"){if(document.getElementById("txtout")==null)return;for(k=document.getElementById("txtout").innerHTML,k=k.replace(/`/gi," "),b="",c=k.split(" "),e=0;e<c.length;e++)c[e]!=" "&&c[e]!=""&&(rt=c[e].replace(/\"/gi,"").replace(/\'/gi,""),c[e]="<span style='cursor:pointer' ng-click='lookup(\""+rt+"\")'>"+c[e]+"<\/span>",b=b+c[e]+" ");document.getElementById("txtout").innerHTML=b;o=r(b)(n);$("#dataDisplay").append(o)}else if(splitstrwords=="numbers"){for(s=strwords.split(";"),f='<table class="table table-hover table-striped">',f=f+"<tr><th>Cardinal Numbers<\/th><th>Ordinal Numbers<\/th><\/tr>",e=0;e<49;e+=2)nt=s[e].split("|"),tt=s[e+49].split("|"),f=f+"<tr><td>"+nt[0]+""+n.prepWords(nt[1])+"<\/td>",f=f+"<td>"+tt[0]+""+n.prepWords(tt[1])+"<\/td><\/tr>";f=f+"<\/table>";o=r(f)(n);$("#dataDisplay").append(o)}else if(splitstrwords=="dict")f='<div class="input-group"><input type="text" class="form-control" id="txt" maxlength="100">',f=f+'<span class="input-group-btn"><button class="btn btn-default" type="button" ng-click="lookup(\'~\')">Go!<\/button>',f=f+"<\/div>",o=r(f)(n),$("#dataDisplay").append(o);else if(splitstrwords=="definitions"){var p="",ft=strwords.replace(/.}/g,";").replace(/{/g,"|"),s=ft.split(";"),f='<table class="table table-hover table-striped">';for(e=1;e<=s.length;e++){var h=s[e-1].split("|"),w=s[e-1],l=String(w).substring(0,1);p.toLowerCase()!=l.toLowerCase()?(p=l,f=f+"<tr><th>"+l.toUpperCase()+"<\/th>",f=f+"<td>"+n.prepWords(h[0])+"<\/td>",f=f+'<td style="vertical-align:middle">'+h[1]+"<\/td>"):(f=f+"<tr><td><\/td><td>"+n.prepWords(h[0])+"<\/td>",f=f+'<td style="vertical-align:middle">'+h[1]+"<\/td>");f=f+"<\/tr>"}f=f+"<\/table>";o=r(f)(n);$("#dataDisplay").append(o)}else if(splitstrwords==1){for(s=strwords.split(";"),f='<table class="table table-hover table-striped"><tr><td>',e=0;e<=s.length-1;e++)h=s[e].split("|"),h.length>1&&(f=f+"<\/td><\/tr><tr><td><b>"+h[1].toUpperCase()+"<\/b> "),f=f+n.prepWords(h[0]);f=f+"<\/td><\/tr><\/table>";o=r(f)(n);$("#dataDisplay").append(o)}else if(splitstrwords==2){var k=document.getElementById("voc").innerHTML,y=k.split(/\<br\>|\<BR\>/gi),f='<table class="table table-hover table-striped">';for(a=0;a<y.length;a++)if(d="",y[a].split("|").length==2&&(d=y[a].split("|")[1],y[a]=y[a].split("|")[0]),it=y[a].replace(/\"/gi,"").replace(/\'/gi,"").replace(/^\s+|\s+$/g,"").replace(/\s/gi,"+"),it!=""){for(ut='<a target="_new" href="http://www.google.com/search?q='+it+'"><span class="glyphicon glyphicon-new-window" aria-hidden="true"><\/span><\/a>',f=f+"<tr><td>",c=y[a].split(" "),g=0;g<c.length;g++)f=f+n.prepWords(c[g].replace(/'/g,"\\'"),!0);d!=""&&(f=f+"<i> - "+d+"<\/i>");f=f+"<\/td><td>"+ut+"<\/td><\/tr>"}f=f+"<\/table>";o=r(f)(n);$("#dataDisplay").append(o)}else if(splitstrwords.length>1&&(v=splitstrwords.split("|"),v.length==2||v.length==3)){var p="",s=strwords.split(";"),f='<table class="table table-hover table-striped table-condensed">';for(f=f+"<tr><td><\/td><th>"+v[0]+"<\/th><th>"+v[1]+"<\/th>",v.length==3&&(f=f+"<th>"+v[2]+"<\/th>"),f=f+"<\/tr>",e=1;e<=s.length;e++){var h=s[e-1].split("|"),w=s[e-1],l=String(w).substring(0,1);p.toLowerCase()!=l.toLowerCase()?(p=l,f=f+"<tr><th>"+l.toUpperCase()+"<\/th>",f=f+"<td>"+n.prepWords(h[0])+"<\/td>",f=f+"<td>"+n.prepWords(h[1])+"<\/td>",v.length==3&&(f=f+"<th>"+n.prepWords(h[2])+"<\/th>")):(f=f+"<tr><td><\/td><td>"+n.prepWords(h[0])+"<\/td>",f=f+"<td>"+n.prepWords(h[1])+"<\/td>",v.length==3&&(f=f+"<th>"+n.prepWords(h[2])+"<\/th>"));f=f+"<\/tr>"}f=f+"<\/table>";o=r(f)(n);$("#dataDisplay").append(o)}n.lookup=function(n){(n=="~"&&document.getElementById("txt")!=null&&(n=document.getElementById("txt").value),n!="")&&(n=n.replace(/\?/gi,""),n=n.replace(/\!/gi,""),n=n.replace(/\,/gi,""),n=n.replace(/\./gi,""),n=n.replace(/\:/gi,""),n=n.replace(/\;/gi,""),n=n.replace(/\)/gi,""),n=n.replace(/\(/gi,""),n=n.replace(/\_/gi,""),n=n.replace(/\]/gi,""),n=n.replace(/\[/gi,""),n=n.replace(/\"/gi,""),n=n.replace(/\//gi,""),u.lookup(n))}},t=angular.module("nbViewer");t.directive("nbLookupw",i);t.controller("nbLookupwCtrl",["$scope","$filter","$attrs","$compile","nbLookupService",n])}(),function(){"use strict";var n=function(n,t){var l=1,a=0,v=0,y=25,r=[],e,i;r.push({target:"http://dictionary.reference.com/search?q=XXX",name:"Dictionary"});r.push({target:"http://www.finedictionary.com/p/search.html?query=XXX",name:"FineDictionary"});r.push({target:"http://www.m-w.com/cgi-bin/dictionary?va=XXX",name:"Merriam-Webster"});r.push({target:"http://oxforddictionaries.com/definition/XXX",name:"Oxford"});r.push({target:"http://www.thefreedictionary.com/XXX",name:"FreeDictionary"});r.push({target:"http://en.wiktionary.org/wiki/XXX",name:"Wiktionary"});r.push({target:"http://thesaurus.com/browse/XXX",name:"Thesaurus"});r.push({target:"http://www.yourdictionary.com/XXX",name:"YourDictionary"});r.push({target:"http://www.answers.com/topic/XXX",name:"Answers"});r.push({target:"http://www.google.com/search?q=XXX",name:"Google"});r.push({target:"http://search.msn.com/results.aspx?q=XXX",name:"MSN Bing"});r.push({target:"http://en.wikipedia.org/wiki/XXX",name:"Wikipedia"});e=[];i=[];i.push({target:"https://translate.google.com/#en/ar/XXX",name:"Arabic"});i.push({target:"http://www.bengalinux.org/cgi-bin/abhidhan/index.pl?en_word=XXX",name:"Bengali"});i.push({target:"https://translate.google.com/#en/cs/XXX",name:"Czech"});i.push({target:"http://www.iciba.com/XXX/",name:"Chinese I"});i.push({target:"https://translate.google.com/#en/zh-CN/XXX",name:"Chinese II"});i.push({target:"https://translate.google.com/#en/zh-TW/XXX",name:"Chinese III"});i.push({target:"https://translate.google.com/#en/tl/XXX",name:"Filipino"});i.push({target:"https://translate.google.com/#en/fi/XXX",name:"Finnish"});i.push({target:"https://translate.google.com/#en/fr/XXX",name:"French I"});i.push({target:"http://www.wordreference.com/enfr/XXX",name:"French II"});i.push({target:"http://dict.tu-chemnitz.de/dings.cgi?lang=en&query=XXX",name:"German I"});i.push({target:"http://www.dict.cc/?s=XXX&btngo=Go%21",name:"German II"});i.push({target:"https://translate.google.com/#en/hi/XXX",name:"Hindi"});i.push({target:"https://translate.google.com/#en/iw/XXX",name:"Hebrew"});i.push({target:"http://szotar.sztaki.hu/dict_search.php?L=ENG&W=XXX",name:"Hungarian"});i.push({target:"https://translate.google.com/#en/id/XXX",name:"Indonesian"});i.push({target:"http://it.wordreference.com/it/translation.asp?enit=XXX&v=b",name:"Italian"});i.push({target:"https://translate.google.com/#en/ja/XXX",name:"Japanese"});i.push({target:"https://translate.google.com/#en/ko/XXX",name:"Korean"});i.push({target:"https://translate.google.com/#en|ms|XXX",name:"Malay"});i.push({target:"http://www.poltran.com/odp.php4?q=1&direction=&word=XXX",name:"Polish"});i.push({target:"https://translate.google.com/#en/pt/XXX",name:"Portuguese I"});i.push({target:"http://dictionary.reverso.net/english-portuguese/XXX",name:"Portuguese II"});i.push({target:"http://dictionary.reverso.net/english-russian/XXX",name:"Russian"});i.push({target:"https://translate.google.com/#en/ru/XXX",name:"Russian II"});i.push({target:"https://translate.google.com/#en/es/XXX",name:"Spanish I"});i.push({target:"http://www.wordreference.com/es/translation.asp?tranword=XXX&v=b",name:"Spanish II"});i.push({target:"https://translate.google.com/#en/th/XXX",name:"Thai"});i.push({target:"http://www.ectaco.co.uk/main.jsp?do=e-services-dictionaries-word_translate1&direction=1&status=translate&lang1=23&lang2=tr&source=XXX",name:"Turkish"});i.push({target:"http://www.lingvozone.com/main.jsp?action=translation&do=dictionary&language_id_from=23&language_id_to=41&word=XXX",name:"Ukrainian"});i.push({target:"https://translate.google.com/#en/ur/XXX",name:"Urdu"});var u=function(n,i){var r=t.get(n);return r===undefined?i:r},f=function(n,i){t.put(n,i)},p=function(n,t){try{var i=new SpeechSynthesisUtterance;i.text=n;i.lang="en-US";i.onend=function(){t&&t()};i.onerror=function(n){t&&t(n)};speechSynthesis.speak(i)}catch(r){alert("Your browser does not support speech synthesis. Please upgrade your browser to the latest Google Chrome.")}},w=function(t){n.open(t,t,"width=900,height=600,scrollbars=yes")},o=function(){return u("vocabOption",l)},b=function(n){f("vocabOption",n)},k=function(){return r},s=function(){return u("refOption",a)},d=function(n){f("refOption",n)},g=function(){return e},h=function(){return u("usgOption",v)},nt=function(n){f("usgOption",n)},tt=function(){return i},c=function(){return u("lngOption",y)},it=function(n){f("lngOption",n)},rt=function(n){var t,u;if(n=n.replace(".","").replace(",","").replace(";","").replace("!","").replace("?","").replace("\\",""),t=o(),t==0){p(n,null);return}t==1?u=r[s()].target:t==2?u=e[h()].target:t==3&&(u=i[c()].target);w(u.replace("XXX",n))};return{getVocabOption:o,setVocabOption:b,getRef:k,getRefOption:s,setRefOption:d,getUsg:g,getUsgOption:h,setUsgOption:nt,getLng:tt,getLngOption:c,setLngOption:it,lookup:rt}},t=angular.module("nbViewer");t.factory("nbLookupService",["$window","$cookies",n])}(),function(){"use strict";var i=function(){return{restrict:"E",templateUrl:"/scripts/ang/quiz/directives/nbidentify.html",controller:["$scope","$filter","$attrs","$timeout",n]}},n=function(n,t,i,r){n.localStatus=0;n.localNextQuestion=function(){n.setAnswer(n.localStatus);n.localStatus=0;n.getQuestion()};n.localCheckWord=function(t,i){if(n.localStatus==0)if(t%2==0)n.localStatus=-1,r(n.localNextQuestion,n.timeBetweenQuestions+1e3);else{i.s=!0;for(var u=1;u<n.question.length;u++)if(u%2==1&&n.question[u].s==!1)return;n.localStatus=1;r(n.localNextQuestion,n.timeBetweenQuestions)}}},t=angular.module("nbViewer");t.directive("nbIdentify",i);t.controller("nbIdentifyCtrl",["$scope","$filter","$attrs","$timeout",n])}(),function(){"use strict";var i=function(){return{restrict:"E",templateUrl:"/scripts/ang/quiz/directives/nblistin.html",controller:["$scope","$filter","$attrs","$timeout",n]}},n=function(n,t,i,r){n.localStatus=0;n.localNextQuestion=function(){n.setAnswer(n.localStatus);n.localStatus=0;n.getQuestion()};n.localCheck=function(n,t){return t.trim().toLowerCase()==n.q.split(",")[0].trim().toLowerCase()};n.localCheckWord=function(t,i,u){if(n.localStatus==0){n.localCheck(i,u)?i.s=!0:(n.localStatus=-1,r(n.localNextQuestion,n.timeBetweenQuestions+1e3));for(var f=1;f<n.question.length;f++)if(f%2==1&&n.question[f].s==!1)return;n.localStatus=1;r(n.localNextQuestion,n.timeBetweenQuestions)}};n.getUnique=function(n){var i=n.split(","),t=[];return $.each(i,function(n,i){$.inArray(i,t)===-1&&t.push($.trim(i))}),t.sort().join(", ")}},t=angular.module("nbViewer");t.directive("nbListIn",i);t.controller("nbListInCtrl",["$scope","$filter","$attrs","$timeout",n])}(),function(){"use strict";var i=function(){return{restrict:"E",templateUrl:"/scripts/ang/quiz/directives/nblistOut.html",controller:["$scope","$filter","$attrs","$timeout",n]}},n=function(n,t,i,r){n.localStatus=0;n.localNextQuestion=function(){n.setAnswer(n.localStatus);n.localStatus=0;n.getQuestion()};n.localCheck=function(t){return t.trim().toLowerCase()==n.question[1].q.split(",")[1].trim().toLowerCase()};n.localCheckWord=function(t,i){n.localStatus==0&&(n.localCheck(i)?(n.localStatus=1,r(n.localNextQuestion,n.timeBetweenQuestions)):(n.localStatus=-1,r(n.localNextQuestion,n.timeBetweenQuestions+1e3)))};n.localGetFirst=function(n){return n.split(",")[0]}},t=angular.module("nbViewer");t.directive("nbListOut",i);t.controller("nbListOutCtrl",["$scope","$filter","$attrs","$timeout",n])}(),function(){"use strict";var i=function(){return{restrict:"E",templateUrl:"/scripts/ang/quiz/directives/nbmatch.html",controller:["$scope","$filter","$attrs","$timeout",n]}},n=function(n,t,i,r){n.localStatus=0;n.localNextQuestion=function(){n.setAnswer(n.localStatus);n.localStatus=0;n.getQuestion()};n.localCheck=function(t){return t.trim().toLowerCase()==n.question[1].ar[0].trim().toLowerCase()};n.localCheckWord=function(t,i){n.localStatus==0&&(n.localCheck(i)?(n.localStatus=1,r(n.localNextQuestion,n.timeBetweenQuestions)):(n.localStatus=-1,r(n.localNextQuestion,n.timeBetweenQuestions+1e3)))}},t=angular.module("nbViewer");t.directive("nbMatch",i);t.controller("nbMatchCtrl",["$scope","$filter","$attrs","$timeout",n])}(),function(){"use strict";var i=function(){return{restrict:"E",scope:!0,transclude:!0,templateUrl:"/scripts/ang/quiz/directives/nbquiz.html",controller:["$scope","$filter","$attrs","nbService",n]}},n=function(n,t,i,r){function e(){var t=$(".nbbar-success");t.width(n.q_runPers+"%");t.text(n.q_runPers+"%");n.q_run<0?t.removeClass("progress-bar-success").addClass("progress-bar-danger"):t.removeClass("progress-bar-danger").addClass("progress-bar-success")}var u,f,o;n.file=i.quiz;n.answersAsList=!1;i.answersaslist=="true"&&(n.answersAsList=!0);n.status="loading";n.q_timesToAnswer=1;n.timeBetweenQuestions=500;n.showErrors=7;u=function(t){n.errorMessage=t.data.message};f=function(t){n.quiz=t.data;i.quizname&&(n.quiz.name=i.quizname);i.quizdirections&&(n.quiz.directions=i.quizdirections);t.status==!1?n.errorMessage=t.message:n.initiate()};r.getQuiz(n.file).then(f,u);n.initiate=function(){n.q_run=0;n.q_errors=0;n.q_runPers=0;n.q_total=0;n.q_questions=[];n.q_remainingQuestions=[];n.status="start";e();$.each(n.quiz.jData,function(t,i){n.q_questions.push({q:i.q,e:0,r:0})});n.q_total=n.q_questions.length*n.q_timesToAnswer;n.getQuestion()};n.getQuestion=function(){var r,i;if(n.q_remainingQuestions=t("filter")(n.q_questions,{r:n.q_timesToAnswer},function(n,t){return n<t?!0:!1}),n.q_run>0&&n.q_runPers>=100){n.q_errorQuestions=t("filter")(n.q_questions,{e:0},function(n,t){return n>t?!0:!1});n.status="done";return}if(n.q_remainingQuestions.length==0){n.q_errorQuestions=t("filter")(n.q_questions,{e:0},function(n,t){return n>t?!0:!1});n.status="done";return}if(n.q_run<0&&n.q_runPers>=100){n.status="fail";return}for(n.q_remainingQuestions=n.q_remainingQuestions.Shuffle(n.q_remainingQuestions),r=n.q_remainingQuestions[0].q.split("|"),n.question=[],i=0;i<r.length;i++)n.question.push({q:r[i],s:!1,ar:[]});n.quiz.type==4&&o(n.question)};n.setAnswer=function(t){t==-1&&n.q_remainingQuestions[0].e++;n.q_remainingQuestions[0].r=n.q_remainingQuestions[0].r+parseInt(t);n.q_run=0;n.q_errors=0;$.each(n.q_questions,function(t){n.q_run=n.q_run+n.q_questions[t].r;n.q_errors=n.q_errors+n.q_questions[t].e});n.q_runPers=Math.ceil(Math.abs(100/n.q_questions.length/n.q_timesToAnswer*n.q_run));e()};o=function(t){var i=JSON.parse(JSON.stringify(n.quiz.jData)),r;for(i=i.Shuffle(i),t[1].ar.push(t[1].q),r=0;r<i.length-1;r++){if(t[1].ar.length>3)break;t[1].ar.contains(i[r].q.split("|")[1])||t[1].ar.push(i[r].q.split("|")[1])}}},t=angular.module("nbViewer");t.directive("nbQuiz",i);t.controller("nbQuizCtrl",["$scope","$filter","$attrs","nbService",n])}(),function(){"use strict";var n=function(n,t){var i="",u=t.host(),r;return u=="localhost"&&(i="http://localhost/nbesldesk"),r=function(t){return n.get(i+"/api/esl/quiz/"+t).then(function(n){return n.data})},{getQuiz:r}},t=angular.module("nbViewer");t.factory("nbService",["$http","$location",n])}()