var cards;var TOTAL_CARDS;var discarded={};var front_to_back=true;var demo=false;var native_mode;var practice_mode=true;var codeBase="";var SYNCTIME=20000;var deck=[];function attachments(oa){var pa="/pictures/";if(native_mode){pa="../../Documents/attachments/";}
for(card_id in oa){for(var i=4;i<6;i++){var qa=oa[card_id][i];var ra="";if(qa&&qa.match(/jpg$/)){ra="<img src=\""+pa+qa+"\" class=\"centerimage\"/>";}
else if(qa&&qa.match(/mp3$/)){if(native_mode){ra="<a href=\"#\" onclick=\"$('attachment').innerHTML='"+qa+"';passMessage(''); return false\" class=\"centerimage\"/><img src=\"images/player.png\" width=\"280\" /></a>";}
else{ra="<embed target=\"myself\" type=\"audio/mpeg\" autoplay=\"false\" href=\""+pa+qa+"\" src=\""+pa+qa+"\" class=\"centerimage\"/></embed>";}}
oa[card_id][i-4]+=ra;}}}
function buildDeck(sa){for(card_id in sa){discarded[card_id]=true;_aa(card_id);}}
var simple_deck=[];var simple_counter=-1;function buildSimpleDeck(ta){simple_deck;for(card_id in ta){simple_deck.push(card_id);}
simple_deck=simple_deck.sort(sortNumber);}
function sortNumber(a,b){return a-b;}
DECAY_RATE=.3;MIN_TIME_TO_REPEAT=30*1000;function _ba(){if(simple_order){return _ca();}
else{return _da();}}
function _ca(){simple_counter++;if(simple_counter==simple_deck.length){simple_counter=0;}
return simple_deck[simple_counter];}
function _da(){for(var ua=0;ua<deck.length;ua++){if(!deck[ua]||deck[ua].length<1||(deck.length>ua+1&&Math.random()<DECAY_RATE*deck[ua].length/TOTAL_CARDS)){continue;}
var va=Math.floor(Math.random()*deck[ua].length);var wa=deck[ua][va];deck[ua].splice(va,1);discarded[wa]=true;if(deck[ua].length<1&&ua==deck.length-1){deck.splice(ua,1);}
return wa;}}
function _ea(xa){for(var ya=0;ya<deck.length;ya++){if(!deck[ya]||deck[ya].length<1||(deck.length>ya+1&&Math.random()<DECAY_RATE*deck[ya].length/TOTAL_CARDS)){continue;}
var za=Math.floor(Math.random()*deck[ya].length);var Aa=deck[ya][za];if(xa[Aa]){continue;}
return Aa;}}
function _fa(){var Ba=[];for(card_id in discarded){Ba.push(card_id);}
var Ca=Math.floor(Math.random()*Ba.length);var Da=Ba[Ca];return Da;}
function _ga(){var Ea=9999;for(card_id in cards){var Fa=cards[card_id];if(front_to_back){var Ga=Fa[2];}
else{var Ga=Fa[3];}
if(Ga<Ea){var Ea=Ga;}}
return Ea;}
function markReview(Ha){if(!Ha){return;}
var Ia=cards[Ha];Ia[6]=timestamp();if(front_to_back){Ia[2]=0;}
else{Ia[3]=0;}
if(!simple_order){setTimeout(_aa,MIN_TIME_TO_REPEAT,Ha);}
if(native_mode){_ha(Ha);}}
function markCorrect(Ja){if(!Ja){return;}
var Ka=cards[Ja];Ka[6]=timestamp();if(front_to_back){Ka[2]+=1;}
else{Ka[3]+=1;}
if(!simple_order){setTimeout(_aa,MIN_TIME_TO_REPEAT,Ja);}
if(native_mode){_ha(Ja);}}
function _aa(La){if(!discarded[La]){return;}
delete discarded[La];var Ma=cards[La];if(front_to_back){var Na=Ma[2];}
else{var Na=Ma[3];}
if(!deck[Na]){deck[Na]=[];}
deck[Na].push(La);}
function _ia(){var Oa="";for(card_id in cards){var Pa=cards[card_id];if(!Pa[6]){Pa[6]=1;}
Oa+=card_id+"="+Pa[2]+","+Pa[3]+","+Pa[6]+"&";}
loadXMLDoc(codeBase+'/cardset/syncPrgress/'+cardset_id,'POST',processReqChange,Oa);}
function _ja(Qa,Ra){}
function dumpDataHandler(Sa,Ta){$('card_content').innerHTML+="<br/>BBB";for(var i=0;i<Ta.rows.length;i++){var Ua=Ta.rows.item(i);$('card_front').innerHTML+="N"+Ua['front_level']+"-"+Ua['card_id']+"-"+Ua['deck_id'];}}
function syncDataHandler(Va,Wa){$('card_front_content').innerHTML='LOADING...';for(var i=0;i<Wa.rows.length;i++){var Xa=Wa.rows.item(i);if(!cards[Xa['card_id']]){continue;}
if(!cards[Xa['card_id']][6]){cards[Xa['card_id']][6]=1;}
if(Xa['last_updated']>cards[Xa['card_id']][6]){cards[Xa['card_id']][2]=Xa['front_level'];cards[Xa['card_id']][3]=Xa['back_level'];cards[Xa['card_id']][6]=Xa['last_updated'];}}
for(card_id in cards){_ha(card_id);}
_ka();}
function updatelevels(cs){for(card_id in cs){if(cs[card_id][6]>cards[card_id][6]){}}}
function _la(Ya){var Za=parseInt(cardset_id);getDB().transaction(function($a){$a.executeSql("SELECT card_id,last_updated,front_level,back_level from progress where deck_id=?;",[Za],syncDataHandler,errorHandler);});}
function _ma(){getDB().transaction(function(ab){ab.executeSql("SELECT name,value from settings;",[],_na,errorHandler);});}
function _na(bb,cb){for(var i=0;i<cb.rows.length;i++){var eb=cb.rows.item(i);var fb=eb['name'];var gb=eb['value'];try{if(fb=='front_magnification'){$('fmv_'+gb).selected=true;$('card_front').style.fontSize=gb+"%";}
else if(eb['name']=='back_magnification'){$('bmv_'+gb).selected=true;$('card_back').style.fontSize=gb+"%";}
else if(fb=='front_font'){var hb=gb.replace(/ /g,'_');$('ffv_'+hb).selected=true;$('card_front').style.fontFamily=gb;}
else if(fb=='back_font'){var hb=gb.replace(/ /g,'_');$('bfv_'+hb).selected=true;$('card_back').style.fontFamily=gb;}
else if(fb=='study_mode'){if(gb=='multiple'){show('multiple_content');hide('flashcard_area');hide('controls');hide('mf');show('mm');}
else{}}}
catch(e){}}}
var database;function getDB(){if(!database){database=openDatabase("craptaculous","1","yuck",4*1024*1024);createTables(database);}
return database;}
function _ha(ib){var jb="?"+ib+"?";var kb=cards[ib];var lb=parseInt(ib);var mb=parseInt(cardset_id);kb[6]=timestamp();getDB().transaction(function(nb){nb.executeSql('REPLACE INTO progress (deck_id , card_id , last_updated , front_level , back_level) VALUES (?,?,?,?,?);',[mb,lb,kb[6],kb[2],kb[3]],nullDataHandler,errorHandler);});}
function nullDataHandler(ob,pb){}
function createTables(db){db.transaction(function(qb){qb.executeSql('CREATE TABLE IF NOT EXISTS settings(name TEXT, value TEXT, PRIMARY KEY (name));',[],nullDataHandler,errorHandler);qb.executeSql('CREATE TABLE IF NOT EXISTS progress(deck_id INTEGER, card_id INTEGER, last_updated INTEGER, front_level INTEGER, back_level INTEGER, PRIMARY KEY (deck_id, card_id));',[],nullDataHandler,errorHandler);});}
function errorHandler(rb,sb){$('card_front_content').innerHTML+='Database Error: "'+sb.message+' ('+sb.code+')".  Please send a bug report to inquiries@10startups.com.';var tb=true;if(tb)return true;return false;}
var current_card_id;function showNextCard(ub){current_card_id=_ba();if(!current_card_id){current_card_id=_fa();if(!current_card_id){$('card_content').innerHTML="Error: No cards found.";return;}}
questionMode();var vb=cards[current_card_id];if(front_to_back){if(native_mode){$('card_front_content').innerHTML=vb[0];$('card_back_content').innerHTML=vb[1];$('card_back_content').className='hidden';$('card_front_content').className='';$('card_content').className='card';}
else{$('card_content').innerHTML=vb[0];}$('card_level').innerHTML=vb[2];}
else{if(native_mode){$('card_front_content').innerHTML=vb[0];$('card_back_content').innerHTML=vb[1];$('card_content').className='card flipped';$('card_back_content').className='';$('card_front_content').className='hidden';}
else{$('card_content').innerHTML=vb[1];}$('card_level').innerHTML=vb[3];}$('mastery_level').innerHTML=_ga();if(ub){setTimeout(fillMultipleChoice,ub);}
else{fillMultipleChoice();}}
var already_wrong=false;function fillMultipleChoice(){already_wrong=false;var wb=Math.floor(Math.random()*4)+1;var xb=cards[current_card_id];var yb=[];var zb=simple_deck.slice(0);for(var i=0;i<3;i++){var Ab=Math.floor(Math.random()*zb.length);var Bb=zb[Ab];if(Bb==current_card_id&&zb.length>1){zb.splice(Ab,1);Ab=Math.floor(Math.random()*zb.length);Bb=zb[Ab];}
yb.push(Bb);if(zb.length>1){zb.splice(Ab,1);}}
if(front_to_back){$('question').innerHTML=xb[0];$('question').style.fontSize=$('front_mag_input').value+"%";$('question').style.fontFamily=$('front_font_input').value;$('answers').style.fontSize=$('back_mag_input').value+"%";$('answers').style.fontFamily=$('back_font_input').value;}
else{$('question').innerHTML=xb[1];$('answers').style.fontSize=$('front_mag_input').value+"%";$('answers').style.fontFamily=$('front_font_input').value;$('question').style.fontSize=$('back_mag_input').value+"%";$('question').style.fontFamily=$('back_font_input').value;}
for(var i=1;i<5;i++){if(i==wb){if(front_to_back){$('ans_'+i).innerHTML=xb[1];}
else{$('ans_'+i).innerHTML=xb[0];}$('ans_'+i).onclick=function(Cb){showNextCard(500);$('smile_face').style.opacity=1;$('smile_face').style.top=(Cb.clientY-150)+'px';$('smile_face').style.zIndex=1000;setTimeout("$('smile_face').style.opacity=0;",500);setTimeout("$('smile_face').style.zIndex=0;",500);if(!already_wrong){markCorrect(current_card_id);}};continue;}
if(front_to_back){$('ans_'+i).innerHTML=cards[yb.pop()][1];}
else{$('ans_'+i).innerHTML=cards[yb.pop()][0];}$('ans_'+i).onclick=function(Db){$('sad_face').style.opacity=1;$('sad_face').style.zIndex=1000;$('sad_face').style.top=(Db.clientY-150)+'px';setTimeout("$('sad_face').style.opacity=0;",225);setTimeout("$('sad_face').style.zIndex=0;",400);already_wrong=true;$('mastery_level').innerHTML='0';$('card_level').innerHTML='0';markReview(current_card_id);};}}
function showAnswer(){if(front_to_back){if(native_mode){$('card_content').className='card flipped';$('card_back_content').className='';setTimeout("$('card_front_content').className='hidden';answerMode();",250);}
else{$('card_content').innerHTML=cards[current_card_id][1];answerMode();}}
else{if(native_mode){$('card_content').className='card';setTimeout("$('card_back_content').className='hidden';answerMode();",250);$('card_front_content').className='';}
else{$('card_content').innerHTML=cards[current_card_id][0];answerMode();}}}
function showQuestion(){if(front_to_back){if(native_mode){$('card_front_content').className='';$('card_content').className='card';setTimeout("$('card_back_content').className='hidden';",250);}
else{$('card_content').innerHTML=cards[current_card_id][1];}}
else{if(native_mode){$('card_content').className='card flipped';$('card_back_content').className='';setTimeout("$('card_front_content').className='hidden';",250);}
else{$('card_content').innerHTML=cards[current_card_id][0];}}
questionMode();}
function questionMode(){hide('next_button');hide('review_button');hide('question_button');show('answer_button');}
function answerMode(){show('next_button');show('question_button');show('review_button');hide('answer_button');}
var TOTAL_CARDS;function _ka(){TOTAL_CARDS=cards.length;attachments(cards);buildDeck(cards);buildSimpleDeck(cards);commonLoad();showNextCard();if(!demo){setInterval(_ia,SYNCTIME);}}
window.onload=function(){if(native_mode){var d=new Date();var Eb=gup('include_script')+"?"+d.getTime();var Fb=document.createElement('script');Fb.setAttribute('type','text/javascript');Fb.setAttribute('charset','utf-8');Fb.setAttribute('src',Eb);document.getElementsByTagName('head').item(0).appendChild(Fb);_ma();}
else{_ka();}};function loadcards(cs){cards=cs;_la(cards);}
function resetMasteryLevels(){for(card_id in cards){cards[card_id][2]=1;cards[card_id][3]=1;cards[card_id][6]=timestamp();if(native_mode){_ha(card_id);}
discarded={};deck=[];buildDeck(cards);}}
function frontBackMode(){front_to_back=true;discarded={};deck=[];buildDeck(cards);hide('f2b');show('b2f');simple_counter=-1;showNextCard();}
function backFrontMode(){front_to_back=false;discarded={};deck=[];buildDeck(cards);hide('b2f');show('f2b');simple_counter=-1;showNextCard();}
var simple_order=false;function orderModeSimple(){simple_order=true;simple_counter=-1;hide('deck_order_simple');show('deck_order_leitner');showNextCard();}
function orderModeLeitner(){simple_order=false;hide('deck_order_leitner');show('deck_order_simple');showNextCard();}
var study_mode='flash';function flashMode(){hide('multiple_content');show('flashcard_area');show('controls');show('card_content');hide('mm');show('mf');showNextCard();study_mode='multiple';if(native_mode){saveSetting('study_mode','flash');}}
function multipleMode(){hide('flashcard_area');hide('controls');hide('card_content');show('multiple_content');hide('mf');show('mm');study_mode='flash';showNextCard();if(native_mode){saveSetting('study_mode','multiple');}}
function setFrontMag(v){if(native_mode){$('card_front').style.fontSize=v+"%";}
else{$('card_front').style.fontSize=v+"%";}
updateMultipleFonts();saveSetting('front_magnification',v);}
function setBackMag(v){if(native_mode){$('card_back').style.fontSize=v+"%";}
else{$('card_front').style.fontSize=v+"%";}
updateMultipleFonts();saveSetting('back_magnification',v);}
function setFrontFont(v){if(native_mode){$('card_front').style.fontFamily=v;}
else{$('card_front').style.fontSize=v+"%";}
updateMultipleFonts();saveSetting('front_font',v);}
function setBackFont(v){if(native_mode){$('card_back').style.fontFamily=v;}
else{$('card_front').style.fontSize=v+"%";}
updateMultipleFonts();saveSetting('back_font',v);}
