queue=Array();list_id=0;editing=false;editing_name="";function empty_queue_of(class){for(el in queue){if(queue[el]['class']==class){$("#"+queue[el]['class']).remove();queue.splice(el,1);}}};function enqueue(dict,class){if(!queue.length){$("#working").show();}
empty_queue_of(class);queue.push(({'class':class,'dict':dict}))};function dequeue(){if(queue.length){element=queue.shift()['dict'];element['success']=update_info;element['type']='POST';element['dataType']='json';if(!element['data'])element['data']={'list_id':list_id};else element['data']['list_id']=list_id;element['contentType']='application/json';$.ajax(element);}
return true;};info={}
function urlify(text){return text;};function assign(li_info,candidates,ret){if(li_info['order']<info[candidates[0].id.slice(4)]['order']){$("#"+candidates[0].id).before(ret);}
else{candidate=candidates[0].id.slice(4);for(el=0;el<candidates.length;el++){var id=candidates[el].id.slice(4);if(li_info['order']>=info[id]['order']){candidate=id;}}
$("#item"+candidate).after(ret);}};function make_li(li_info){var ret="";if(li_info['status']=='active'){ret="<li id=\"item"+li_info['id']+"\" class=\"activeitem\"><input type=\"checkbox\" id=\"checkbox"+li_info['id']+"\" onclick=\"check_click("+li_info['id']+", 'check')\"> <a href=\"#\" class=\"icon handle hiddeable bluebg\">drag</a><a href='#' onclick=\"edit("+li_info['id']+")\" class=\"hiddeable icon greenbg\">edit</a><a href='#' onclick=\"delete_item("+li_info['id']+")\" class=\"hiddeable icon redbg\"> x </a><span class=\"text\">"+urlify(li_info['name'])+"</span></li>";candidates=$(".activeitem");if(candidates.length){assign(li_info,candidates,ret)}
else{$("#sortlist").append(ret)}}
else{ret="<li id=\"item"+li_info['id']+"\" class=\"doneitem\"><input type=\"checkbox\" id=\"checkbox"+li_info['id']+"\" checked onclick=\"check_click("+li_info['id']+", 'uncheck')\"><a href='#' onclick=\"edit("+li_info['id']+")\" class=\"hiddeable icon greenbg\">edit</a><a href='#' onclick=\"delete_item("+li_info['id']+")\" class=\"hiddeable icon redbg\"> x </a><span class=\"text\">"+urlify(li_info['name'])+"</span></li>";candidates=$(".doneitem");if(candidates.length){assign(li_info,candidates,ret);}
else{$("#donelist").append(ret)}}
if(hidden){$('.hiddeable').hide(0);}
return false;};function iseq(a,b){if(!a||!b){return false;}
return(a['id']==b['id']&&a['name']==b['name']&&a['order']==b['order']&&a['status']==b['status']);};function update_info(datos){elements=0;for(a in datos['items']){elements++;if(!iseq(info[a],datos['items'][a])){info[a]=datos['items'][a];$("#item"+a).remove();make_li(info[a]);}}
if(!elements){$("#noitems").remove();$("#sortlist").before("<p id='noitems'><i>No items in this list.</i></p>");$("#addnew").show(0);}
else{$("#noitems").remove();}
for(a in datos['deleted']){delete(info[a]);$("#item"+a).remove();}
if(datos['name_edited']){cancel_editname();$(".title")[0].innerHTML=datos['name_edited'].replace('<','<').replace('>','>');}
if(datos['errorlog']){$("#errorlog")[0].innerHTML=datos['errorlog'];$("#errorlog").show('slow');setTimeout(function(){$("#errorlog").hide('fast');},2000);}
if(datos['redirect']){this.location.href=datos['redirect'];}
if(!queue.length){$("#working").hide();}};function new_item(){enqueue({'url':'/op/newitem','data':{'name':$("#name")[0].value},},"new"+$("#name")[0].value);$("#name")[0].value="";};function delete_item(item_id){enqueue({'url':'/op/deleteitem','data':{'item_id':item_id},},"erase"+item_id);};function check_click(item_id,check){enqueue({'url':'/op/'+check,'data':{'item_id':item_id}},check+item_id);};hidden=true;function hide_elements(){hidden=true;$('.hiddeable').hide(0);$('#floater')[0].innerHTML="<a href='#' onclick='show_elements()'>Show options</a>";};function show_elements(){hidden=false;$('.hiddeable').show(0);$('#floater')[0].innerHTML="<a href='#' onclick='hide_elements()'>Hide options</a>";};function cancel_editing(){if(editing){cancel_edit(editing);}
if(editing_name){cancel_editname();}};function edit(item_id){cancel_editing();editing=item_id;$("#item"+item_id)[0].innerHTML="<input type='text' id='edit"+item_id+"' value=''> <a href='#' onclick='send_edit("+item_id+")' class='icon greenbg'>OK</a> <a href='#' onclick='cancel_edit("+item_id+")' class='icon redbg'>Cancel</a>";$("#edit"+item_id)[0].value=info[item_id]['name'];$(function(){$("#edit"+item_id).keydown(function(e){if((e.which&&e.which==13)||(e.keyCode&&e.keyCode==13)){send_edit(item_id);return false;}else if((e.which&&e.which==27)||(e.keyCode&&e.keyCode==27)){cancel_edit(item_id);return false;}else{return true;}});$("#edit"+item_id).focus();});};function cancel_edit(item_id){editing=false;$("#item"+item_id).remove();make_li(info[item_id]);};function send_edit(item_id){newname=$("#edit"+item_id)[0].value;cancel_edit(item_id);enqueue({'url':'/op/renameitem','data':{'item_id':item_id,'name':newname},},"edit"+item_id);};function cancel_editname(){$(".title")[0].innerHTML=editing_name.slice(1);$("#edit_name_par")[0].innerHTML="<a href='#' onclick='edit_name()'>Edit this list's title</a>";editing_name="";};function send_editname(){newname=$("#editname")[0].value;cancel_editing();enqueue({'url':'/renamelist','data':{'name':newname},},"editname");};function edit_name(){cancel_editing();name=$(".title")[0].innerHTML;$(".title")[0].innerHTML="<input type='text' id='editname' name='name' value='' style='font-size: 1em'> <a href='#' onclick='send_editname()' class='icon greenbg' style='font-size: 0.9em'>OK</a> <a href='#' onclick='cancel_editing()' class='icon redbg' style='font-size: 0.7em'>cancel</a></form>";$("#editname")[0].value=name;editing_name="#"+name;$("#editname").focus();$(function(){$("#editname").keydown(function(e){if((e.which&&e.which==13)||(e.keyCode&&e.keyCode==13)){send_editname();return false;}else if((e.which&&e.which==27)||(e.keyCode&&e.keyCode==27)){cancel_editname(name);return false;}else{return true;}});});}
