11'use strict' ;
22
33function getTemplate ( isogram ) {
4- var template = _ . template ( "<script><br/> (function(<%=isogram[0]%>,<%=isogram[1]%>,<%=isogram[2]%>,<%=isogram[3]%>,<%=isogram[4]%>,<%=isogram[5]%>,<%=isogram[6]%>){<%=isogram[0]%>['GoogleAnalyticsObject']=<%=isogram[4]%>;<%=isogram[0]%>[<%=isogram[4]%>]=<%=isogram[0]%>[<%=isogram[4]%>]||function(){<br/> (<%=isogram[0]%>[<%=isogram[4]%>].q=<%=isogram[0]%>[<%=isogram[4]%>].q||[]).push(arguments)},<%=isogram[0]%>[r].l=1*new Date();<%=isogram[5]%>=<%=isogram[1]%>.createElement(<%=isogram[2]%>),<br/> <%=isogram[6]%>=<%=isogram[1]%>.getElementsByTagName(<%=isogram[2]%>)[0];<%=isogram[5]%>.async=1;<%=isogram[5]%>.src=<%=isogram[3]%>;<%=isogram[6]%>.parentNode.insertBefore(<%=isogram[5]%>,<%=isogram[6]%>)<br/> })(window,document,'script','//www.google-analytics.com/analytics.js','ga');<br/><br/> ga('create', 'UIDHERE', 'auto');<br/> ga('send', 'pageview');<br/></script>" ) ;
4+ var template = _ . template ( '<script><br/> (function(<span class="char-0"><%=isogram[0]%></span>,<span class="char-1"><%=isogram[1]%></span>,<span class="char-2"><%=isogram[2]%></span>,<span class="char-3"><%=isogram[3]%></span>,<span class="char-4"><%=isogram[4]%></span>,<span class="char-5"><%=isogram[5]%></span>,<span class="char-6"><%=isogram[6]%></span>){<span class="char-0"><%=isogram[0]%></span>['GoogleAnalyticsObject']=<span class="char-4"><%=isogram[4]%></span>;<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>]=<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>]||function(){<br/> (<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>].q=<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>].q||[]).push(arguments)},<span class="char-0"><%=isogram[0]%></span>[r].l=1*new Date();<span class="char-5"><%=isogram[5]%></span>=<span class="char-1"><%=isogram[1]%></span>.createElement(<span class="char-2"><%=isogram[2]%></span>),<br/> <span class="char-6"><%=isogram[6]%></span>=<span class="char-1"><%=isogram[1]%></span>.getElementsByTagName(<span class="char-2"><%=isogram[2]%></span>)[0];<span class="char-5"><%=isogram[5]%></span>.async=1;<span class="char-5"><%=isogram[5]%></span>.src=<span class="char-3"><%=isogram[3]%></span>;<span class="char-6"><%=isogram[6]%></span>.parentNode.insertBefore(<span class="char-5"><%=isogram[5]%></span>,<span class="char-6"><%=isogram[6]%></span>)<br/> })(window,document,'script','//www.google-analytics.com/analytics.js','ga');<br/><br/> ga('create', 'UIDHERE', 'auto');<br/> ga('send', 'pageview');<br/></script>' ) ;
55
66 return template ( { isogram : isogram } ) ;
77}
@@ -28,39 +28,31 @@ function isIsogram(word){
2828 return is ;
2929}
3030
31- function isValid ( input ) {
32- if ( input . val ( ) . length === 7 && isIsogram ( input . val ( ) ) ) {
33- return true ;
34- }
35- else {
36- return false ;
37- }
38- }
39-
40-
4131$ ( document ) . on ( 'ready' , function ( ) {
4232 var initChars = [ 'i' , 's' , 'o' , 'g' , 'r' , 'a' , 'm' ] ;
4333 var $input = $ ( '.isogram-input' ) ;
4434 var $output = $ ( '.output-bottom' ) ;
35+ var $warning = $ ( '.warning' ) ;
4536 $output . html ( getTemplate ( initChars ) ) ;
4637
47- $input . on ( 'input' , function ( ) {
38+ $input . on ( 'input' , function ( e ) {
4839 var currChars = $input . val ( ) . split ( '' ) ;
49- var currLength = currChars . length ;
40+ var currIndex = currChars . length - 1 ;
5041
51- if ( currLength < 7 ) {
52- currChars = currChars . concat ( initChars . slice ( currLength ) ) ;
42+ if ( $input . val ( ) . length > 7 ) {
43+ $warning . text ( 'Cannot be longer than 7 characters.' ) ;
44+ $input . prop ( 'disabled' , true ) ;
45+ }
46+ else if ( ! isIsogram ( $input . val ( ) ) ) {
47+ $input . attr ( 'maxlength' , currIndex + 1 ) ;
48+ $warning . text ( 'Cannot have repeat characters, not an isogram.' ) ;
49+ }
50+ else {
51+ $input . attr ( 'maxlength' , 7 ) ;
52+ $warning . text ( '' )
53+ $output . html ( getTemplate ( currChars ) ) ;
54+ $ ( '.output-bottom span.char-' + currIndex ) . addClass ( 'active' ) ;
5355 }
5456
55- $output . html ( getTemplate ( currChars ) ) ;
5657 } ) ;
57-
5858} ) ;
59-
60-
61-
62-
63-
64-
65-
66-
0 commit comments