
function SpellingBee(){var _this=this;var soundManager=new SoundManager();var currentWord=null;var answered={};var future=[];var loadingNext=false;this.rescheduleWordsAfter=2;this.rescheduleWords=true;this.future=future;var score={confidence:0,ability:-10,correct:0,words:0,guesses:0,currentStreak:0,longestStreak:0,skips:0,rank:'?'}
this.score=score;this.getCurrentWord=function(){return currentWord.word;}
var noMoreWords=false;this.next=function(autoPlay){if(loadingNext)return;Event.fire(_this,'loadingNext');score.words++;currentWord=null;if(future.length>0&&(future[0].playNext<=score.words||noMoreWords)){this.setNextWord(future.shift(),autoPlay);}else if(!noMoreWords){loadingNext=true;this.loadNextWord(autoPlay);}else{Event.fire(_this,'complete');}}
this.setNextWord=function(wordData,autoPlay){loadingNext=false;if(wordData!=null){currentWord=wordData;define(currentWord.word);if(autoPlay)this.play();Event.fire(this,'next');}else{noMoreWords=true;this.next(autoPlay);}}
this.loadNextWord=function(autoPlay){alert('abstract method');}
this.play=function(){if(currentWord!=null&&soundManager!=null){soundManager.playWord(currentWord.word);}}
this.isAlive=function(){return(currentWord!=null&&!currentWord.dead);}
this.isCorrect=function(){return(currentWord!=null&&currentWord.correct);}
this.guess=function(word){if(currentWord!=null&&!currentWord.dead){score.guesses++;currentWord.guessCount++;var correct=(currentWord.word.toLowerCase()==word.trim().toLowerCase());if(!correct&&currentWord.alt){var alts=currentWord.alt;for(var i=0;i<alts.length;i++){if(word.toLowerCase()==alts[i]){correct=true;break;}}}
if(correct){currentWord.correct=true;currentWord.dead=true;if(currentWord.guessCount==1){currentWord.u=1;score.correct++;score.currentStreak++;score.longestStreak=Math.max(score.longestStreak,score.currentStreak);}}else{currentWord.correct=false;score.longestStreak=Math.max(score.longestStreak,score.currentStreak);score.currentStreak=0;if(currentWord.guessCount==1){currentWord.u=0;if(this.rescheduleWords&&score.correct>this.rescheduleWordsAfter){scheduleFuture(currentWord);}}}
if(currentWord.guessCount==1&&!currentWord.played){answered[currentWord.word]=currentWord;}
var evt=new Event(this,'guess');evt.currentWord=currentWord;evt.guess=word;evt.guessCount=currentWord.guessCount;evt.fire();return currentWord.correct;}
return false;}
function scheduleFuture(cword){var idx=(future.length==0)?score.words:future[future.length-1].playNext;future.push({'played':true,'playNext':idx+(parseInt(Math.random()*5)+5),'word':cword.word,'diff':cword.diff,'disc':cword.disc,'alt':cword.alt,'guessCount':0});}
this.skip=function(){score.skips++;currentWord.dead=true;var evt=new Event(this,'skip');evt.currentWord=currentWord;evt.fire();}
this.getAnswered=function(){return answered;}}
WordlistBee.extend(SpellingBee);function WordlistBee(id){WordlistBee.superclass.constructor.call(this);this.rescheduleWordsAfter=-1;Element.setText($('gscore'),'---');var _this=this;var list=new Wordlist();var loaded=false;var wordPtr=0;var totalWords=0;var totalCorrect=0;$('roundProgress').style.bottom='20px';Event.addListener(list,'error',function(e){alert('There was an error loading the spelling bee:'+e.error);});this.loadNextWord=function(autoPlay){if(!loaded){list.load(id,false);Event.addListener(list,'load',function(){listLoad();_this.loadNextWord(autoPlay);});}else{if(wordPtr<list.getSize()){var nextWord={};nextWord.word=list.getWord(wordPtr).word;nextWord.guessCount=0;_this.setNextWord(nextWord,autoPlay);wordPtr++;}else{_this.setNextWord(null,autoPlay);}}}
function listLoad(){loaded=true;list.shuffle();Element.setText($('beeTitle'),list.getTitle());var af=$('listauthor');af.innerHTML='';remaining=list.getSize();if(list.getProfile()!=null){af.appendChild(document.createTextNode("by: "));af.appendChild(new ProfileLink(list.getProfile()));}}
Event.addListener(this,'guess',function(e){if(e.currentWord.guessCount==1&&!e.currentWord.played){totalWords++;if(e.currentWord.correct)totalCorrect++;bee.score.gscore=parseInt((totalCorrect/totalWords)*100)+"%";Element.setText($('gscore'),bee.score.gscore);}});Event.addListener(this,'next',updateRemaining);Event.addListener(this,'skip',updateRemaining);function updateRemaining(){var remaining=list.getSize()-wordPtr;var rem=remaining+_this.future.length+((remaining==0&&_this.isAlive())?1:0);Element.setText($('roundProgress'),rem+((rem==1)?" word left":" words left"));}
var dialog=new Dialog();dialog.hideOnBlockerClick=false;dialog.template=new Template('/bee/congrats.html');Event.addListener(dialog.template,'load',function(){Element.setText($('complete-title'),list.getTitle());for(var i in _this.score){var ele=$('complete-score-'+i);if(ele)Element.setText(ele,_this.score[i]);}});Event.addListener(this,'complete',function(e){updateRemaining();dialog.show();});}
TournamentBee.extend(SpellingBee);function TournamentBee(){TournamentBee.superclass.constructor.call(this);var _this=this;var unsaved=0;var score=this.score;var roundCounter=new RoundCounter(this);Event.addListener(window,'unload',saveResults);Event.addListener(this,'guess',function(e){if(e.currentWord.guessCount==1&&!e.currentWord.played){estimateAbility();unsaved++;if(unsaved>4)saveResults();}});this.loadNextWord=function(autoPlay){var answered=this.getAnswered();var nextWord=null;var req=new JSONRequest("/bee/load.json",{'ability':score.ability,'newPlayer':(score.words==1)},function(data){for(var i=0;i<data.length;i++){if(!answered[data[i].word]){nextWord=data[i];break;}}
if(nextWord==null){if(data.length==0){alert('there was an error fetching more words... please start your game again.');return;}
req.send();return;}
nextWord.guessCount=0;_this.setNextWord(nextWord,autoPlay);},error);req.send();}
function saveResults(){if(unsaved>0){var data={'results':[],'ability':score.ability,'streak':score.longestStreak};var answered=_this.getAnswered();for(var word in answered){var item=answered[word];if(item.id&&!item.saved){data.results.push({'u':item.u,'id':item.id,'d':item.diff});item.saved=true;}}
data.results=JSON.toJSON(data.results);unsaved=0;(new JSONRequest("/bee/save.json",data)).send();}}
function estimateAbility(){if(score.correct==0){score.ability=Math.max(-10,score.ability-.2);}else if(score.words==1||score.words==score.correct){var P=((10-score.ability)*0.25)+score.ability;score.ability=Math.max(-10,Math.min(10,P));}else{var theta=score.ability;for(var i=0;i<10;i++){var sumAUP=0;var sumA2PQ=0;var answered=_this.getAnswered();for(var word in answered){var item=answered[word];if(item.playNext)continue;var P=1/(1+Math.exp(-item.disc*(theta-item.diff)));var Q=1-P;var aup=item.disc*(item.u-P);var a2pq=item.disc*item.disc*P*Q;sumAUP+=item.disc*(item.u-P);sumA2PQ+=item.disc*item.disc*P*Q;}
var deltaTheta=sumAUP/sumA2PQ;theta+=deltaTheta;if(Math.abs(deltaTheta)<.01)break;}
if(!isNaN(theta)){score.confidence=1/Math.sqrt(sumA2PQ);score.ability=Math.max(-10,Math.min(10,theta));}else{alert("error calculating score");}}
score.gscore=200+(Math.round(((score.ability+10)/20)*60)*10);}
function error(){alert('there was an error loading this spelling bee');_this.setNextWord(null);}
function RoundCounter(bee){var step=0;var _this=this;var roundNumber=0;var dots=[];var dotDiv=$('dots');for(var i=0;i<5;i++){dotDiv.appendChild(dots[i]=Element.construct(['div']));}
dots[0].className='on';Event.addListener(bee,'guess',function(evt){if(evt.guessCount==1)_this.advance(bee.isCorrect());});Event.addListener(bee,'next',function(){var wn=(bee.score.words-1)%dots.length;dots[wn].className='on';if(wn==0)_this.nextRound();});function nextRound(){step=0;roundNumber++;$('roundNumber').innerHTML="Round "+roundNumber+":";$('roundProgress').innerHTML="5 words left";for(var i=0;i<dots.length;i++)dots[i].className='';dots[0].className='on';}
function advance(correct){dots[step].className=correct?'right':'wrong';step=step+1;if(step==dots.length){$('roundProgress').innerHTML="Round Complete!";if(bee.score.gscore){scoreAnimator.setScore(bee.score.gscore);if(scoreBoard)scoreBoard.load();}}else{var remaining=(dots.length-step);Element.setText($('roundProgress'),remaining+((remaining==1)?' word left':' words left'));}}
this.advance=advance;this.nextRound=nextRound;}
var scoreAnimator=new ScoreAnimator();function ScoreAnimator(){var currentScore='0'
var count=0;this.setScore=function(newScore){currentScore=''+newScore;count=10;randomscore();}
function randomscore(){if(count>0){Element.setText($('gscore'),''+parseInt(Math.random()*10)+parseInt(Math.random()*10)+parseInt(Math.random()*10));count--;setTimeout(randomscore,100);}else{Element.setText($('gscore'),currentScore);}}}}
function getDistance(s1,s2){var a_size=s1.length+1;var b_size=s2.length+1;var matrix=new Array(a_size);for(var i=0;i<a_size;i++){matrix[i]=new Array(b_size);for(var j=0;j<b_size;j++)matrix[i][j]=0;}
for(var i=1;i!=a_size;++i)
matrix[i][0]=matrix[i-1][0]+getDistance.costs.insert;for(var j=1;j!=b_size;++j)
matrix[0][j]=matrix[0][j-1]+getDistance.costs.remove;var word=new Array(a_size);for(var i=0;i<a_size-1;i++)word[i+1]=s1.charAt(i);word[0]=' ';var similar=new Array(b_size);for(var i=0;i<b_size-1;i++)similar[i+1]=s2.charAt(i);similar[0]=' ';for(var i=1;i!=a_size;++i){var sourceChar=word[i];for(var j=1;j!=b_size;++j){var otherChar=similar[j];if(sourceChar==otherChar){matrix[i][j]=matrix[i-1][j-1];continue;}
var costOfSubst=getDistance.costs.substitute+matrix[i-1][j-1];var costOfSwap=32767;var isSwap=(i!=1)&&(j!=1)&&sourceChar==similar[j-1]&&word[i-1]==otherChar;if(isSwap)
costOfSwap=getDistance.costs.swap+matrix[i-2][j-2];var costOfDelete=getDistance.costs.remove+matrix[i][j-1];var costOfInsertion=getDistance.costs.insert+matrix[i-1][j];var costOfCaseChange=32767;if(sourceChar.toLowerCase()==otherChar.toLowerCase())
costOfCaseChange=getDistance.costs.ccase+matrix[i-1][j-1];matrix[i][j]=Math.min(costOfSubst,costOfSwap,costOfDelete,costOfInsertion,costOfCaseChange);}}
return matrix[a_size-1][b_size-1];}
getDistance.costs={'remove':1,'insert':1,'substitute':1,'swap':1,'ccase':0};function audioStart(){$('equalizer').src='/images/bee/eq-on.gif';}
function audioStop(){$('equalizer').src='/images/bee/eq-off.gif';}
var posMapping={n:'noun',v:'verb',a:'adjective',r:'adverb'};function define(word){var replaceReg=new RegExp(word,"i");for(var POS in posMapping){$(posMapping[POS]+'s').style.display='none';Element.removeChildren($(posMapping[POS]+'Defs'));}
var req=new JSONRequest("/browse/definition.json",{'word':word},function(senses){for(var i=0;i<senses.length;i++){var sense=senses[i];var POS=sense.POS;var defEle=Element.construct(['li',{'class':'definition'},replaceword(sense.definition,word)]);defEle.original=sense.definition;$(posMapping[POS]+'Defs').appendChild(defEle);$(posMapping[POS]+'s').style.display='block';}});req.send();}
function revealOriginals(){var defs=Element.getElementsByClassName('definition','li',$('definitions'));for(var i=0;i<defs.length;i++){Element.setText(defs[i],defs[i].original);}}
function replaceword(definition,word){var len=word.length;var preLen=0,sufLen=0;switch(len){case 1:case 2:case 3:case 4:break;case 5:case 6:preLen=2;sufLen=2;break;case 7:preLen=2;sufLen=3;break;default:preLen=3;sufLen=parseInt((len*.5)+.5);}
var re="("+word+")";for(var i=1;i<sufLen;i++){re+="|("+word.substring(0,word.length-(i+1))+")";}
for(var i=1;i<preLen;i++){re+="|("+word.substring(i,word.length)+")";}
return definition.replace(new RegExp(re,"gim"),'_______');}
DOM.whenReady(function(){var beeDiv=$('beeDiv');var eqon=new Image();eqon.src='/images/bee/eq-on.gif';var wordMap=new WordMap('mapRoot','vtsSearchMap');wordMap.style='mini';var disable=function(evt){if(evt&&evt.preventDefault)evt.preventDefault();return false;};$('definitions').onselectstart=disable;$('definitions').onmousedown=disable;Event.addListener(wordMap,'click',function(e){if(e.area&&e.area.word)VisualThesaurus.instance.search(e.area.word,e.area.lang);else if(e.area.sid)VisualThesaurus.instance.searchMeaning('SENSE:'+e.area.sid,true);});wordMap.cursorForArea=function(area){if(area.sid||area.word)return'pointer';else return'default';}
wordMap.toolTipForArea=function(area){if(area.sid){var sense=wordMap.dataForArea(area);return posMapping[sense.pos]+': '+sense.definition;}else if(area.word){return area.word;}else if(area.from&&area.to){var from=title(area.from);var to=title(area.to);var type=WordMap.edgeTypes[area.type];return from+' '+type.name+" "+to;}}
var title=function(id,results){if(id.sid){var sense=wordMap.result.senses[id.sid];var word=sense.words[0];if(sense.pos=='v'){if(word.indexOf(' ')!=-1){var words=word.split(' ');words[0]=LangTools.toGerund(words[0]);word=words.join(' ');}else{word=LangTools.toGerund(word);}}
return word;}else if(id.word){return id.word;}}
var guessField=$('guessField');Event.addListener(guessField,'keypress',function(e){var code=(e.keyCode)?e.keyCode:e.which;if(code=='13')submitGuess();});if(Browser.Gecko){var prevValue="";Event.addListener(guessField,'input',function(e){if(guessField.value.length-prevValue.length>1){guessField.value=prevValue;return cheater(e);}else{prevValue=guessField.value;}});}else{Event.addListener(guessField,'paste',cheater);}
function cheater(e){alert("hey, we said no cheating!");if(e&&e.preventDefault)e.preventDefault();return false;}
var bee=null;if(window.wlid){bee=new WordlistBee(window.wlid);}else{bee=new TournamentBee();}
window.bee=bee;Event.addListener(bee,'loadingNext',function(){beeDiv.className='loading';setSurrenderEnabled(false);setNextEnabled(false);Element.removeChildren(guesses);$('correctSpelling').innerHTML='';wordMap.clear();$('loadingNext').style.display='block';guessField.value='';});Event.addListener(bee,'next',function(){beeDiv.className='playing';updateScore();$('loadingNext').style.display='none';guessField.focus();});Event.addListener(bee,'complete',function(){beeDiv.className='complete';$('loadingNext').style.display='none';});Event.addListener(bee,'skip',function(){beeDiv.className='surrendered';updateScore();wordMap.setWord(bee.getCurrentWord(),'en');Element.setText($('correctSpelling'),"The correct spelling is: "+bee.getCurrentWord());setSurrenderEnabled(false);setNextEnabled(true);revealOriginals();});Event.addListener(bee,'guess',function(evt){var isCorrect=bee.isCorrect();var hint=Element.construct(['span',{'class':'hint'}]);guesses.appendChild(Element.construct(['li',{'class':isCorrect?'correct':'wrong'},[['span',{'class':'guess'},evt.guess],' ',hint]]));if(isCorrect){beeDiv.className='correct';setSurrenderEnabled(false);setNextEnabled(true);wordMap.setWord(bee.getCurrentWord(),'en');revealOriginals();}else{beeDiv.className='incorrect';if(evt.guessCount>1){var dist=getDistance(bee.getCurrentWord(),evt.guess);Element.setText(hint," (hint: you are "+dist+" "+((dist>1)?'letters':'letter')+" off)");}
if(evt.guessCount==3){setSurrenderEnabled(true);}}
updateScore();});var guesses=$('guesses');var showSurrender=new Animation('surrenderButton',{opacity:{from:.5,to:1}},.5,Animation.EaseIn);var hideSurrender=new Animation('surrenderButton',{opacity:{from:1,to:.5}},.5,Animation.EaseIn);var showNext=new Animation('nextButton',{opacity:{from:.5,to:1}},.5,Animation.EaseIn);var hideNext=new Animation('nextButton',{opacity:{from:1,to:.5}},.5,Animation.EaseIn);Event.addListener(showNext,'stop',function(){showNext.element.focus();});$('playWord').onclick=function(){bee.play();if(bee.isAlive())guessField.focus();return false;}
$('guessButton').onclick=submitGuess;$('nextButton').onclick=function(){if(this.enabled){setSurrenderEnabled(false);setNextEnabled(false);$('loadingNext').style.display='block';bee.next(true);}
return false;}
$('surrenderButton').onclick=function(){if(this.enabled){bee.skip();}
return false;}
function submitGuess(){var word=guessField.value;if(!word.length)bee.play();else bee.guess(word);return false;}
function updateScore(){for(var i in bee.score){var elm=$('score-'+i);if(elm)elm.innerHTML=''+bee.score[i];}}
function setNextEnabled(b){var nextButton=$('nextButton');if(!b&&nextButton.enabled){hideNext.start();nextButton.enabled=false;}else if(b){showNext.start();nextButton.enabled=true;}}
function setSurrenderEnabled(b){var surrenderButton=$('surrenderButton');if(!b&&surrenderButton.enabled){hideSurrender.start();surrenderButton.enabled=false;}else if(b){showSurrender.start();surrenderButton.enabled=true;}}
Event.addListener(window,'beforeunload',function(evt){if(bee&&bee.isAlive()&&bee.score.words>1){evt.preventDefault();return"Leaving this page will end your current game.";}});bee.next();problemReporter=new ProblemReporter();$('reportProblemButton').onclick=function(){problemReporter.show()};});function ProfileLink(profile){return Element.construct(['span',{'class':'profileLink'},(!profile)?'Anonymous':[['a',{'target':'_top','href':'/profiles/'+profile.uid},[profile.nickname]],' ',location(profile),badges(profile)]]);function badges(profile){var ret=Element.construct(['span',{'class':'badges'},[]]);if(profile.contributorId==null&&!profile.moderator){if(profile.topCommenter){ret.appendChild(Element.construct(['a',{'class':'badge wordlister','title':'Top 10 Commenter','target':'_top','href':'/profiles/#commenters'},[['img',{'class':'badge','src':'/images/profiles/tc-badge-sm.gif'}]]]));}
if(profile.topWordlister){ret.appendChild(Element.construct(['a',{'class':'badge wordlister','title':'Top 10 Word lister','target':'_top','href':'/profiles/#wordlisters'},[['img',{'class':'badge','src':'/images/profiles/tw-badge-sm.gif'}]]]));}
if(profile.topSpeller){ret.appendChild(Element.construct(['a',{'class':'badge speller','title':'Top 10 Speller','target':'_top','href':'/bee'},[['img',{'class':'badge','src':'/images/profiles/bee-badge-sm.gif'}]]]));}}
if(profile.contributorId!=null){ret.appendChild(Element.construct(['a',{'class':'badge contributor','title':'Visual Thesaurus Contributor','target':'_top','href':'/cm/contributors/'+profile.contributorId},[['img',{'class':'badge','src':'/images/profiles/ctb-badge-sm.gif'}]]]));}
if(profile.moderator){ret.appendChild(Element.construct(['a',{'class':'badge moderator','title':'Visual Thesaurus Moderator','href':'javascript:void(0);'+profile.contributorId},[['img',{'class':'badge','src':'/images/profiles/mod-badge-sm.gif'}]]]));}
return ret;}
function location(profile){if(profile.showlocation){var txt='';if(profile.country=='USA'){txt=profile.city?(profile.city+", "+profile.state):profile.state;}else{txt=profile.city?(profile.city+", "+profile.country):profile.country;}
return Element.construct(['span',{'class':'location'},"("+txt+")"]);}else{return'';}}}
function Template(url,ele){this.url=url;this.element=ele;this.loaded=false;}
Template.prototype.load=function(onloadHandler){var _this=this;var req=new XMLHttpRequest();req.onreadystatechange=function(){if(req.readyState==4){if(req.status==200){_this.applyStyles(req.responseText);_this.applyScripts(req.responseText);_this.element.innerHTML=req.responseText;_this.loaded=true;if(typeof onloadHandler=='function')onloadHandler();Event.fire(_this,'load');}else{Event.fire(_this,'error');}}}
req.open('GET',this.url+"?bid="+window.__bid,true);req.send('');}
Template.prototype.applyStyles=function(rawHTML){if(!Browser.IE)return;var styleFragRegex='<style[^>]*>([\u0001-\uFFFF]*?)</style>';var matchAll=new RegExp(styleFragRegex,'img');var matchOne=new RegExp(styleFragRegex,'im');var styles=(rawHTML.match(matchAll)||[]).map(function(m){return(m.match(matchOne)||['',''])[1];});var headEl=document.getElementsByTagName('head')[0];for(var i=0;i<styles.length;i++){var newStyleEl=document.createElement('style');newStyleEl.type="text/css";if(Browser.IE){newStyleEl.styleSheet.cssText=styles[i];}else{newStyleEl.appendChild(document.createTextNode(styles[i]));}
headEl.appendChild(newStyleEl);}};Template.prototype.applyScripts=function(rawHTML){var styleFragRegex='<script[^>]*>([\u0001-\uFFFF]*?)</'+'script>';var matchAll=new RegExp(styleFragRegex,'img');var matchOne=new RegExp(styleFragRegex,'im');var scripts=(rawHTML.match(matchAll)||[]).map(function(m){return(m.match(matchOne)||['',''])[1];});for(var i=0;i<scripts.length;i++){eval(scripts[i]);}};function Dialog(ele){var _this=this;var elements={};this.template=null;this.element=ele;this.elements=elements;this.hideOnBlockerClick=true;this.show=function(){Event.fire(_this,'showing');if(elements.root==null){build();if(this.template!=null&&!this.template.loaded){this.template.element=elements.content;this.template.load(shown);return;}}
shown();}
this.hide=function(){Event.fire(_this,'hiding');elements.root.style.display='none';Event.removeListener(window,'resize',resized);Event.fire(_this,'hidden');}
function shown(){elements.root.style.display='block';resized();Event.addListener(window,'resize',resized);Event.fire(_this,'shown');}
function resized(){elements.root.style.width=document.body.scrollWidth;elements.root.style.height=document.body.scrollHeight;elements.blocker.style.width=elements.root.style.width;elements.blocker.style.height=elements.root.style.height;elements.wrapper.style.top=(document.body.clientHeight-elements.wrapper.clientHeight)/2;elements.wrapper.style.left=(document.body.clientWidth-elements.wrapper.clientWidth)/2;}
function build(){elements.blocker=Element.construct(['div',{'class':'dialog-blocker'}]);elements.content=Element.construct(['div',{'class':'dialog-content'}]);elements.wrapper=Element.construct(['div',{'class':'dialog-wrapper'},[elements.content]]);elements.root=Element.construct(['div',{'class':'dialog'},[elements.blocker,elements.wrapper]]);document.body.appendChild(elements.root);Event.addListener(elements.blocker,'click',function(){if(_this.hideOnBlockerClick)_this.hide();});if(_this.element&&element.nodeName)elements.content.appendChild(_this.element);}}
function ProblemReporter(){var dialog=new Dialog();dialog.template=new Template('/bee/problem.html');Event.addListener(dialog.template,'load',loaded);this.show=function(){dialog.show();}
function loaded(){var reportForm=$('reportForm');reportForm.word.value=bee.getCurrentWord();reportForm.validator=new Validator(reportForm);Event.addListener(reportForm,'submit',function(e){if(this.validator.validate()){var req=new JSONRequest("/bee/problem",{'environment':navigator.userAgent,'word':reportForm.word.value,'reason':reportForm.reason.value,'description':reportForm.description.value},function(){alert('thanks for letting us know!');dialog.hide();});req.send();}
if(e.preventDefault)e.preventDefault();return false;});$('cancelReport').onclick=function(){reportForm.validator.reset();dialog.hide();return false;}}}
function SoundManager(){SoundManager.instance=this;var applet=null;var tries=0;this.playWord=function(word){if(applet!=null&&SoundManager.appletLoaded){try{applet.playWord(word);}catch(e){}}
if(!SoundManager.appletLoaded&&tries<10){tries++;setTimeout(function(){SoundManager.instance.playWord(word);},1000);}}
var d=document.createElement('div');document.body.appendChild(d);var params='<param name="mayscript" value="true"/><param name="onload" value="SoundManager.loaded()" /><param name="onstart" value="audioStart()" /><param name="onstop" value="audioStop()" />';d.innerHTML='<applet name="soundManager" id="soundManager" code="thinkmap.vt.audioapplet.AudioApplet"  archive="/bee/audioapplet.jar?bid='+__bid+'" width="1" height="1"  mayscript="true" scriptable="true">'+params+'</applet>';applet=d.firstChild;}
SoundManager.loaded=function(){SoundManager.appletLoaded=true;}