var Saldo_ws_url = "http://spraakbanken.gu.se/ws/saldo-ws/"; //var Saldo_ff_url = Saldo_ws_url+"ff/json+remember_completions/"; var Saldo_lid_url = Saldo_ws_url+"lid/json"; function saldo_ws(fn,fmt,arg,cont_name) { jsonp(Saldo_ws_url+fn+"/"+fmt+(cont_name ? "+"+cont_name : "")+"/"+arg,""); } function saldo_json(fn,arg,cont_name) { saldo_ws(fn,"json",arg,cont_name); } function saldo_lid(arg,cont_name) { saldo_json("lid",arg,cont_name); } function saldo_lid_rnd(cont_name) { saldo_lid("rnd?"+Math.random(),cont_name); } var ordlista=[]; var current=""; function start_saldotest() { appendChildren(element("saldotest"), [button("Slumpa","random_word()"), button("Rensa","clear_all()"), button("⌫","delete_last()"), //button("Ordlista","show_ordlista()"), button("Visa tänkbara drag","show_moves()"), button("Gör ett drag","make_a_move()"), //button("Visa prefix","show_prefixes()"), div_id("surface"), div_id("words"), div_id("translations")]) var style0="min-height: 3ex; margin: 5px; padding: 5px;"; element("surface").setAttribute("style",style0+"border: 3px dashed #e0e0e0;"); element("words").setAttribute("style",style0+"border: 3px solid #e0e0e0;"); clear_all(); } function random_word() { saldo_lid_rnd("show_random"); } function show_random(lid) { var lex=lid.lex; reset_all(lex.substring(0,lex.indexOf('.'))); } function clear_all() { reset_all(""); } function reset_all(s) { current=s; element("surface").innerHTML=s; element("translations").innerHTML=""; get_completions(); } function delete_last() { var len=current.length; if(len>0) { current=current.substring(0,len-1); var s=element("surface"); s.innerHTML=current; element("translations").innerHTML=""; get_completions(); } } function with_completions(s,cont) { var c=ordlista[s]; if(c && c.a) cont(c); else { //if(c) alert("c already has fields"+field_names(c)); ordlista[s]={put: function(c) { ordlista[s]=c; cont(c); }}; var url=Saldo_ws_url+"ff/json+ordlista[\""+s+"\"].put/"+encodeURIComponent(s); jsonp(url,""); } } function get_completions() { with_completions(current,show_completions); } function word(s) { //var w=span_class("word",text(s)); //if(s==" ") w.innerHTML=" "; //w.setAttribute("onclick",'extend_current("'+s+'")'); //return w; return button(s,'extend_current("'+s+'")'); } function extend_current(s) { current+=s; element("words").innerHTML=""; element("surface").innerHTML=current; get_completions(); } function show_completions(saldo_ff) { var box=element("words"); box.innerHTML=""; //var c=saldo_ff.c.split(""); var c=filter(allowed,saldo_ff.c); sort(c); for(var i=0;i0 ? " "+s : ""; } function show_translations(a) { var tr=element("translations"); tr.innerHTML=""; //if(!a) alert("a undefined in show_translations"); if(count_wordforms(a)<1) { tr.appendChild(p(text(a.length<1 ? "Detta är inte en giltig ordform" : "Denna form förekommer bara i sammansättningar"))); element("surface").setAttribute("class","invalid"); } else { element("surface").setAttribute("class","valid"); for(var i=0;i0) { var p=s.substr(0,s.length-1); with_completions(p,function(c) { if(count_wordforms(c.a)>0) trans.innerHTML+="
"+p; show_prefixes_of(trans,p); }); } } function show_prefixes() { var trans=element("translations"); trans.innerHTML="Prefix av "+current+":"; show_prefixes_of(trans,current); } /* -------------------------------------------------------------------------- */ var spel={ antal_ord: 4, // antal närbesläktade ord att visa antal_korrekta_svar: 0, antal_felaktiga_svar: 0 }; function start_saldospel() { spel.hylla=div_id("hylla"); spel.status=div_id("status"); //element("saldospel").innerHTML=""; appendChildren(element("saldospel"), [spel.hylla,spel.status, p(text("")), button("Nya ord","spel0()"), text(" "), wrap("b",span_id("score"))]); spel.score=element("score"); show_score(); spel0(); } function spel0() { // Välj ord 1 saldo_lid_rnd("spel1"); } function spel1(lid) { // Slå upp md1 för ord 1 spel.lid=lid; saldo_json("md1",lid.lex,"spel2"); } function spel2(md1) { // Kontrollera att det finns minst 4 ord i md1 för ord1 if(md1.length