var __done_search=null;function __prep_slots(a){var b=$("input",$("#allslots"));if(b.size()>a)b.slice(a).remove();else{var c=a-b.size(),d=0;for(c=a-b.size();d<c;d++)$("#allslots").append($('<input name="s" size="1" maxlength="1"/>').attr("autocomplete","off").bind("keyup",on_slot_key).bind("change",on_slot_change))}}
function on_length_key(a){if(this.value.search(/[^\d]/)>-1){this.value="";$("#allslots input").size()&&__wrap__prep_slots(0)}else if(a.which==39||a.which==38)if(this.value){this.value=parseInt(this.value)+1;__wrap__prep_slots(parseInt(this.value))}else{this.value="1";__wrap__prep_slots(1)}else if(a.which==37||a.which==40)if(this.value)if(parseInt(this.value)-1<1)__wrap__prep_slots(1);else{this.value=parseInt(this.value)-1;__wrap__prep_slots(parseInt(this.value))}else{this.value="1";__wrap__prep_slots(1)}else{__done_search&&
__prep_slots(0);__wrap__prep_slots(parseInt(this.value));__done_search=false}}function on_length_change(){var a=this.value;a&&a.search(/[^\d]/)==-1&&parseInt(a)!=$("#allslots input").size()&&__wrap__prep_slots(parseInt(a))}function __wrap__prep_slots(a){if(a<1)alert("Must be bigger than zero");else a>40?alert("Too big"):__prep_slots(a)}function on_slot_key(a){if(a.which==39)__goto_next_slot(this);else if(a.which==37)__goto_prev_slot(this);else this.value=this.value.toUpperCase()}
function on_slot_change(){if(this.value)if(this.value.match(/\d/))this.value=""}function __goto_next_slot(a){var b=false;$("#allslots input").each(function(){if(b){this.focus();this.select();b=false}else if(this==a)b=true})}function __goto_prev_slot(a){var b=null;$("input",$("#allslots")).each(function(){if(this==a&&b){b.focus();b.select()}b=this})}
function __before_ajaxSubmit(){var a=parseInt($("#id_length").val());if(isNaN(a)){$("#allslots input").size()?$("#id_length").val($("#allslots input").size()):$("#id_length").addClass("error").bind("focus",function(){$(this).removeClass("error")});return false}var b=false;$("#allslots input").each(function(){if($(this).val())b=true});if(!b){$("#error__no_s").show();setTimeout(function(){$("#error__no_s").fadeOut(500)},3E3);return false}$("#for-example:visible").hide();$("#loading:hidden").show();
return true}var _original_document_title=null;function __update_document_title(a){if(_original_document_title)document.title=a+" - "+$.trim(document.title.split("-")[1]);else{_original_document_title=document.title;document.title=a+" - "+$.trim(document.title.split("-")[0])}}
function __process_submission(a){$("div.error:visible").hide();__update_document_title(a.match_text);a.word_count>=1&&$("#matches").text(a.match_text);if(a.alternatives_truncated){$("#clues").show();$("#notletters").show()}else{$("input","#clues").val("");$("#clues").hide()}$("#alternatives div.sugg").remove();var b;a.word_count?$.each(a.words,function(c,d){b=$('<div class="sugg"></div>');e=d.word;c=0;for(var f=e.length;c<f;c++)a.match_points[c]?b.append($('<span class="match letter"></span>').text(e.charAt(c))):
b.append($('<span class="letter"></span>').text(e.charAt(c)));d.by_clue&&b.append($('<span class="by_clue"></span>').text("~ "+d.by_clue));d.definition&&b.append($('<em class="definition"></em>').text(d.definition));$("#alternatives").append(b)}):$("#matches").text(a.match_text);$("#loading:visible").hide();$("#clear-search").show();__done_search=true}function __error_ajaxSubmit(a,b){$("#error__ajax").show();$("#error__ajax .response").text(b)}
function run_example(a,b){$("#id_length").val(a);__prep_slots(a);$.each(b,function(c,d){$("input","#allslots")[c].value=d});$("#for-example").hide(500);setTimeout(function(){$("form#solutions").ajaxSubmit(submit_options)},500)}
function __check_notletters(a){function b(d){var f=[];$.each(d,function(h,g){$.inArray(g,f)==-1&&f.push(g)});return f}a=a.toUpperCase();a=a.replace(/[\d\W]+/g,"");var c=b(a.match(/\w/g));$("#allslots input").each(function(){var d=$(this).val();if(d&&$.inArray(d,c)>-1)c=$.grep(c,function(f){return f!=d})});if(c.length)return c.join(", ")+", ";return""}var submit_options={url:"/los/json/",type:"GET",dataType:"json",error:__error_ajaxSubmit,beforeSubmit:__before_ajaxSubmit,success:__process_submission};
$(function(){if($("#id_length").val())if($("#id_length").val().search(/[^\d]/)>-1)this.value="";else __wrap__prep_slots(parseInt($("#id_length").val()));$("#id_length").bind("keyup",on_length_key).bind("change",on_length_change);$("#id_length").val()||$("#id_length")[0].focus();$("form#solutions").ajaxForm(submit_options);$('input[name="clues"]',"#solutions").bind("keyup",function(){if($(this).attr("size")<=12&&$(this).val().indexOf(",")>-1){$(this).attr("size",parseInt($(this).attr("size"))*2);$(this).unbind("keyup")}});
$('input[name="notletters"]',"#notletters").bind("keyup",function(a){a.keyCode>15&&$(this).val(__check_notletters($(this).val()))})});
