var currow = 1; var curchar = 1; var can_enter = false; $(document).ready(function(){ function getCurrentChar(row) { var col = ''; var index; $('#word_table tr:nth-child('+row+')').each(function(){ $('td',this).each(function() { index= $(this).index(); if( ( ! $(this).hasClass('green') ) &! ( $(this).hasClass('yellow') ) &! ( $(this).hasClass('black') ) && (col==='') ) { col = index; } }); }); var c = $('#word_table tr:nth-child('+row+') td:nth-child(4)').attr('class'); if(typeof c != 'undefined') { //console.log('TIME FOR CHANGE'); can_enter = true; } return col; } $('.letter').click(function(){ var cchar =getCurrentChar(currow); if(cchar==='') return; if(cchar > 6) return; var letter_key = $('.key_txt',this); var letter = letter_key.html(); var color = 'black'; if( (letter_key).parent().hasClass('green') ) color = 'green'; else if( (letter_key).parent().hasClass('yellow')) color = 'yellow'; cchar += 1; var cell = $('#word_table tr:nth-child('+currow+') td:nth-child('+cchar+')'); cell.html(letter); cell.addClass(color); //console.log(cchar); }); $('.enter').click(function() { if(!can_enter) return false; can_enter=false; currow++; //console.log('CURROW '+currow); collectData(); }); $('.delete').click(function(e) { can_enter=false; var curchar = getCurrentChar(currow) ; if(curchar==='') { curchar=5; can_enter = false; } if( curchar==0 ) { if(currow>1) { currow--; curchar = 5; } else return false; } var c = $('#word_table tr:nth-child('+currow+') td:nth-child('+curchar+')'); c.removeAttr( 'class'); c.html(''); //console.log(curchar); }); $('.reload').click(function(){ var tds = $('#word_table td'); tds.removeAttr( 'class'); tds.html(''); $('#results').html(''); currow = 1; can_enter = false; }); $('.help').click(function(e) { $('#overlay').show(); e.stopPropagation(); }); $('body').click(function() { $('#overlay').hide(); }); $(document).keydown(function(e) { e.preventDefault(); e.stopImmediatePropagation(); if (e.which == 13) $('.enter').first().click(); else if (e.which == 8) $('.delete').first().click(); }); }); function ajax(vals) { var act= vals['action']; $.ajax({ url : './ajax.php', type : 'POST', data : vals, dataType:'json', success : function(data) { switch(act) { case 'filter_words': filterWordsCB(data);break; } }, error : function(request,error) { console.log(JSON.stringify(request)); }, complete : function(req) { //console.log(vals); } }); } function filterWordsCB(data) { console.log(data); $('#results').html(data['results_formatted']); } function collectData() { var data = {}; var green = {}; var yellow = {}; var black = {}; $('#word_table tr').each(function(){ //var max_yellow_row = {}; //var max_green_row = {}; var max_row = {}; $('td',this).each(function(){ var char = $(this).html(); var index = $(this).index(); if($(this).hasClass('green') || $(this).hasClass('yellow') || $(this).hasClass('black') ) { if($(this).hasClass('green') ) { var exist_g_index = (typeof green[char] != 'undefined') ? green[char] : []; var max = (typeof max_row[char] != 'undefined') ? max_row[char] : 0; max++; max_row[char] = max; if ( exist_g_index.indexOf(index) < 0) exist_g_index.push(index); green[char] = exist_g_index; } else if($(this).hasClass('yellow') ) { var exist_y_index = (typeof yellow[char] != 'undefined') ? yellow[char] : []; var max = (typeof max_row[char] != 'undefined') ? max_row[char] : 0; max++; max_row[char] = max; if ( exist_y_index.indexOf(index) < 0) exist_y_index.push(index); yellow[char] = exist_y_index; } else if($(this).hasClass('black') ) { black[char] = 1; } } }); var max_rows = (typeof data['max_rows'] != 'undefined') ? data['max_rows'] : []; if(Object.keys(max_row).length>0) { max_rows.push( max_row ); data['max_rows'] = max_rows; } }); data['green'] = green; data['yellow'] = yellow; var blackKeys = Object.keys(black); for(i=0;i< blackKeys.length;i++) { var letter = blackKeys[i]; black[letter] = 1; } data['black'] = black; ajax( {'action': 'filter_words' , 'data': data} ); }