if(window.global_debug===undefined){window.global_debug=false}if(window.data===undefined){window.data={}}if(window.constants===undefined){window.constants={}}
if(window.translations===undefined){var translations={};}
translations['sidebar']={"(added to list) by (user)":"by","Add a comment":"Add a comment","Are you sure you want to decline this invitation?":"Are you sure you want to decline this invitation?","Are you sure you want to remove this alert?":"Are you sure you want to remove this alert?","Are you sure you want to remove this list?":"Are you sure you want to remove this list?","Are you sure you want to remove this user from your friends?":"Are you sure you want to remove this user from your friends?","button, Hidden":"Hidden<br>&nbsp;","button, Make invisible":"Make<br>invisible","button, Make publically editable":"Make publically<br>editable","button, Make visible":"Make<br>visible","button, Publically editable":"Publically<br>editable","button, Publish":"Publish<br>&nbsp;","button, Published":"Published<br>&nbsp;","button, Un-publish":"Un-<br>publish","button, Unpublished":"Unpublished<br>&nbsp;","Calculate the lowest price":"Calculate the lowest price","Change image":"Change image","Change visibility":"Change visibility","Click to add a list description":"Click to add a list description","Compare the products in the list":"Compare the products in the list","comments":"comments","Decline":"Decline","Decrease quantity":"Decrease quantity","Delete the list":"Delete the list","Edit comment":"Edit comment","Everyone can contribute to the list":"Everyone can contribute to the list","Expand":"Expand","empty_editable_default_text":"Click to write...","Friend list name":"Friend list name","Hidden list":"Hidden list","Hide":"Hide","History list name":"History list name","Increase quantity":"Increase quantity","Invitation list name":"Invitation list name","Invite additional editors":"Invite<br>additional<br>editors","items":"items","items selected":"items selected","Minimize":"Minimize","My list":"My list","My lists":"My lists","New list (list name suggestion)":"New list","No current list":"No current list","Open":"Open","Open in fullscreen":"Open in fullscreen","People will be able to see it only if they know the URL":"People will be able to see it only if they know the URL","Public list":"Public list","Publically editable list":"Publically editable list","Published list":"Published list","publically editable":"publically editable","published":"published","Quantity":"Quantity","Remove filter":"Remove filter","Remove from list":"Remove from list","Remove list":"Remove list","role, adder":"Contributor","role, editor":"Author","role, owner":"Owner","Share the list":"Share the list","Shared list":"Shared list","Sort order was saved":"Sort order was saved","The invitation has been sent":"The invitation has been sent","The list has got (x comments)":"The list has got","The list has no description":"The list has no description","The list has not yet got any":"The list hasn't yet got any","The list is empty":"The list is empty","The list is visible all across the site":"The list is visible all across the site","The list was created ":"The list was created ","The list was published ":"The list was published ","This feature will be coming soon":"This feature will be coming soon","This is you list panel...":"<h2 style=\"margin-top:5px;\">This is your list panel<\/h2><p>You can create lists of things you like, own, want to know more about, compare or recommend! To get started, drag something here!<\/p>","To invite, drag friends from here to the editor box of the list!":"To invite, drag friends from here to the editor box of the list!","To save lists permanently you need to be logged in.":"<p><span class=\"fet\">Note:<\/span> To save lists permanently you need to <a href=\"javascript:;\" onclick=\"open_login()\">log in<\/a><\/p>","Total price":"Total price","Unnamed list":"Unnamed list","Unpublished list":"Unpublished<br>list","Watch list name":"Watch list name","What is this?":"What is this?","What would you like to call your new list?":"What would you like to call your new list?","You can drag products, stores, etc to this list":"You can drag products, stores, and even filters from categories, to this list, which you can save, compare or share with friends.","You can only drop users here":"You can only drop users here","You cannot drop stuff here":"You cannot drop stuff here","You cannot put something in this list":"You cannot put something in this list","You ned to select a list first":"You ned to select a list first","You need to be logged in to create lists":"You need to be logged in to create lists","You need to be logged in to invite people to a list":"You need to be logged in to invite people to a list"};
var LISTTYPE_USER=1;var LISTTYPE_FAV=2;var LISTTYPE_SEARCH=3;var LISTTYPE_TEMP=4;var ITEM_TYPE_NONE=null;var ITEM_TYPE_PRODUCT="prod";var ITEM_TYPE_BOOK="book";var ITEM_TYPE_SEARCH="search";var ITEM_TYPE_STORE="store";var ITEM_TYPE_CATEGORY="cat";var ITEM_TYPE_BRAND="brand"
var ITEM_TYPE_USER="user";var ITEM_TYPE_EXPERT="expert";var ITEM_TYPE_CUSTOM="custom";var ITEM_TYPE_LIST="list";var ITEM_TYPE_LIST_INVITATION="invite";var SORT_TYPES=['custom','alpha','category_alpha','price','price_trend','rank','date_added','quantity'];var EMPTY_EDITABLE_DEFAULT_TEXT=translate_string('empty_editable_default_text','sidebar','Klicka för att skriva...');var DEFAULT_ITEMS_PER_PAGE=50;var LIST_ROLE_NAMES={'owner':translate_string('role, owner','sidebar'),
'editor':translate_string('role, editor','sidebar'),
'adder':translate_string('role, adder','sidebar')
};var pjListModel=Class.extend({init:function(params){console.log('pjListModel init');if(!params){console.log('Warning: missing params for pjListModel');params={};}
this.user_id=parseInt(params.user_id)||0;this.user_name=params.user_id||'[unknown user]';this.views={};this.lists={};this.list_order=[];this.current_sort_array=[];this.ajax_server_url='/ajax/server.php';this.ajax_class='C_Sidebar';this.sync_timer=false;this.is_loading=false;this.is_syncing=false;this.has_templist=false;this.SYNC_DELAY=3000;this.navigationManager=new pjListNavigationManager({model:this});this.setListsData(params.lists||{},params.list_order);if(!('History' in this.lists))this.setListData({list_id:'History',item_id:'History',item_type:ITEM_TYPE_LIST,name:translate_string('History list name','sidebar','Senast besökta')});if(!('Watch' in this.lists))this.setListData({list_id:'Watch',item_id:'Watch',item_type:ITEM_TYPE_LIST,name:translate_string('Watch list name','sidebar','Mina bevakningar')});if(!('Friend' in this.lists))this.setListData({list_id:'Friend',item_id:'Friend',item_type:ITEM_TYPE_LIST,name:translate_string('Friend list name','sidebar','Mina vänner')});if(!('Invitation' in this.lists))this.setListData({list_id:'Invitation',item_id:'Invitation',item_type:ITEM_TYPE_LIST,name:translate_string('Invitation list name','sidebar','Mina inbjudningar')});var _this=this;$(window).bind("beforeunload",function(e){_this.sync_to_server(false,true);});},
setListsData:function(listsdata,list_order){if(0 in listsdata){delete listsdata[0];}
for(var list_id in listsdata){this.setListData(listsdata[list_id]);}
if(list_order){this.list_order=list_order.split(',');}else{this.list_order=[];}
},
setListData:function(list){if(this.lists[list.list_id]&&this.items_by_id){console.log('data exists for '+list.list_id);var elist=this.lists[list.list_id];for(var i=0;i<list.items.length;i++){var converted_item={};if(list.item_keys){for(var j=0;j<list.item_keys.length;j++){converted_item[list.item_keys[j]]=list.items[i][j];}
}else{converted_item=list.items[i];}
if(converted_item['quantity']===null){converted_item['quantity']=undefined;}
if(converted_item['quantity']!==undefined){converted_item['quantity']=parseInt(converted_item['quantity']);}
elist.items_by_id[converted_item.listitem_id+'']=converted_item;elist.items_by_ident[converted_item.item_type+'_'+converted_item.item_id]=converted_item;}
}else{this._convertListData(list);this.lists[list.list_id]=list;}
},
_convertListData:function(list){if(list.items){var create_sort_array=false;if(list.sort_info){if(!list.sorts){list.items_per_page=list.sort_info.items_per_page;list.current_sort=list.sort_info.current_sort;if(!arr_contains(SORT_TYPES,list.current_sort))list.current_sort='custom';list.sorts={};for(var k in list.sort_info.sorts){if(list.sort_info.sorts[k]){list.sorts[k]=list.sort_info.sorts[k].split(',');}else{list.sorts[k]=[];}
}
if(list.sorts[list.current_sort]){list.current_sort_array=list.sorts[list.current_sort];}else{list.current_sort_array=[];create_sort_array=true;}
}
}else{list.current_sort_array=[];create_sort_array=true;list.items_per_page=50;list.current_sort='custom';}
if(!list.items_by_id)list.items_by_id={};if(!list.items_by_ident)list.items_by_ident={};for(var i=0;i<list.items.length;i++){var converted_item={};if(list.item_keys){for(var j=0;j<list.item_keys.length;j++){converted_item[list.item_keys[j]]=list.items[i][j];}
}else{converted_item=list.items[i];}
if(converted_item['quantity']===null){converted_item['quantity']=undefined;}
if(converted_item['quantity']!==undefined){converted_item['quantity']=parseInt(converted_item['quantity']);}
list.items_by_id[converted_item.listitem_id+'']=converted_item;list.items_by_ident[converted_item.item_type+'_'+converted_item.item_id]=converted_item;if(create_sort_array){if(converted_item.listitem_id)list.current_sort_array.push(converted_item.listitem_id);else list.current_sort_array.push(converted_item.item_type+'_'+converted_item.item_id);}
}
if(!list.item_count)list.item_count=list.current_sort_array.length;}
if(!list.item_count)list.item_count=0;if(!list.items_by_id)list.items_by_id={};if(!list.items_by_ident)list.items_by_ident={};if(!list.current_sort_array)list.current_sort_array=[];if(!list.sorts){list.sorts={};for(var i=0;i<SORT_TYPES.length;i++){list.sorts[SORT_TYPES[i]]=[];}
}
if(!list.item_count)list.item_count=0;if(!list.last_sync){list.last_sync=[];if(list.current_sort_array.length > 0)list.last_sync[1]=new Date();}
list.item_id=list.list_id;list.item_type=ITEM_TYPE_LIST;if(!list.name){switch(list.list_id){case 'History':list.name=translate_string('History list name','sidebar','Senast besökta');break;case 'Watch':list.name=translate_string('Watch list name','sidebar','Mina bevakningar');break;case 'Friend':list.name=translate_string('Friend list name','sidebar','Mina vänner');break;case 'Invitation':list.name=translate_string('Invitation list name','sidebar','Mina inbjudningar');break;}
}
},
attachView:function(view){view.model=this;view.navigationManager=this.navigationManager;this.views[view.id]=view;dbg('attached view '+view.id);},
detachView:function(id){var view=this.views[id];if(view){view.destruct();delete(this.views[id]);dbg('detached view '+id);}
},
getRowID:function(data){if(!data.list_id)data.list_id=0;if(data.listitem_id)return data.list_id+'_'+data.listitem_id;else return data.list_id+'_'+data.item_type+'_'+data.item_id;},
getItem:function(list_id,item_type,item_id,clone){var list=this.lists[list_id];if(!list)return false;if(item_type==ITEM_TYPE_LIST&&list_id==item_id){return list;}
var itemdata=list.items_by_ident[item_type+'_'+item_id];if(!itemdata)return false;if(clone){var cloned_data={};for(var k in itemdata){cloned_data[k]=itemdata[k];}
return cloned_data;}
return itemdata;},
getItemFromItemID:function(list_id,itemID,clone){var a=itemID.split('_');return this.getItem(list_id,a[0],a[1],clone);},
getItemFromRowID:function(rowID,clone){var a=rowID.split('_');if(a[2])return this.getItem(a[0],a[1],a[2],clone);else return this.getItemFromListItemID(a[0],a[1],clone);},
getItemFromListItemID:function(list_id,listitem_id,clone){var list=this.lists[list_id];if(!list)return false;var itemdata=list.items_by_id[listitem_id+''];if(!itemdata)return false;if(clone){var cloned_data={};for(var k in itemdata){cloned_data[k]=itemdata[k];}
return cloned_data;}
return itemdata;},
moveItem:function(item_data,dest_list_id,to_position){console.log('moveItem',item_data,dest_list_id,to_position);var item_data_complete=this.getItem(item_data.list_id,item_data.item_type,item_data.item_id,true);var source_list_id=item_data.list_id;if(item_data.list_id==dest_list_id)return;var ret=this.addItem(item_data_complete,dest_list_id,to_position);this.removeItem(item_data);return ret;},
removeItem:function(item_data){var it=this.getItem(item_data.list_id,item_data.item_type,item_data.item_id);if(it===false){dbg('Can not find item :'+item_data.item_type+'_'+item_data.item_id+' in list '+item_data.list_id);return;}
var list_id=it.list_id;console.log('removeItem',item_data,list_id);var list=this.lists[list_id];this._removeItemFromSortArray(list.current_sort_array,it);for(var i=0;i<SORT_TYPES.length;i++){this._removeItemFromSortArray(list.sorts[SORT_TYPES[i]],it);}
delete(list.items_by_ident[item_data.item_type+'_'+item_data.item_id]);delete(list.items_by_id[item_data.listitem_id]);if(!list.removed_items)list.removed_items=[];list.removed_items.push(array_filter_by_keys(it,['item_type','item_id','listitem_id','list_id']));list.item_count--;list.dirty=true;this.trigger_sync();},
addItem:function(item_data,list_id,to_position,recalcListStats){console.log('addItem',item_data,list_id,to_position,recalcListStats);var list=this.lists[list_id];if(!list.items)this._convertListData(list);var existing_item=this.getItem(list_id,item_data.item_type,item_data.item_id);if(existing_item){existing_item.quantity++;existing_item.dirty=true;}else{item_data.list_id=list_id;if(item_data.quantity===undefined)item_data.quantity=1;item_data.dirty=true;item_data.listitem_id=false;list.items_by_ident[item_data.item_type+'_'+item_data.item_id]=item_data;if(!to_position){list.current_sort_array.push(item_data.item_type+'_'+item_data.item_id);for(var i=0;i<SORT_TYPES.length;i++){list.sorts[SORT_TYPES[i]].push(item_data.item_type+'_'+item_data.item_id);}
}else{var pos=to_position;if(pos===false){dbg('Can not find position of item :'+before_item_id+' '+before_item_type);return;}
list.current_sort_array.splice(pos,0,item_data.item_type+'_'+item_data.item_id);for(var i=0;i<SORT_TYPES.length;i++){list.sorts[SORT_TYPES[i]].push(item_data.item_type+'_'+item_data.item_id);}
}
list.item_count++;}
list.dirty=true;if(this.itemHasBeenRemoved(list.list_id,item_data.item_type,item_data.item_id)){var pos=false;for(var i=0;i<list.removed_items.length;i++){var d=list.removed_items[i];if(item_data.item_type==d.item_type&&
item_data.item_id==d.item_id)pos=i;}
if(pos)list.removed_items.splice(pos,1);}
if(recalcListStats)this.recalcListStats(list);this.trigger_sync();if(existing_item){return false;}else{return true;}
},
itemHasBeenRemoved:function(list_id,item_type,item_id){var list=this.lists[list_id];if(!list.removed_items)return false;for(var i=0;i<list.removed_items.length;i++){var d=list.removed_items[i];if(item_type==d.item_type&&
item_id==d.item_id)return d;}
},
_removeItemFromSortArray:function(arr,it){if(!arr)return;var pos=false;for(pos=0;pos<arr.length;pos++){var sid=arr[pos];if(sid==it.listitem_id||sid==it.item_type+'_'+it.item_id)break;}
if(pos===false){dbg('Can not find position of item :'+it.item_id+' '+it.item_type);return;}
arr.splice(pos,1);},
createList:function(values,only_clientside,callback){var _this=this;if(only_clientside){if(this.has_templist){var data=_this.lists[0];if(callback)callback(data);}else{var defaultValues={active:0,
collaborative:0,
created:(new Date()).getTime(),
creator_id:this.user_id,
creator_name:this.user_name,
item_count:0,
item_order:ITEM_SORT_CUSTOM,
item_type:ITEM_TYPE_LIST,
items:{},
current_sort_array:[],
list_comment:'',
name:'<<0000-0000>>',
role:'owner',
user_id:this.user_id,
visibility:'semi-private'
};var list={};for(var k in defaultValues){list[k]=(k in values ? values[k]:defaultValues[k]);}
_this.setListData(data);_this.list_order.unshift(data.list_id);if(callback)callback(list);}
}else{var params={'class':_this.ajax_class,
'method':'create_list',
'list_info':{}
};for(var k in values){params.list_info[k]=values[k];}
$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:10000,
dataType:'json',
success:function(results){if(!results.error){var data=results.message;data.last_sync=[0,new Date()];_this.setListData(data);_this.list_order.unshift(data.list_id);_this.redrawViews(true);if(callback)callback(data);}else{dbg(results.message);}
}
});}
},
removeList:function(list_id,callback){var _this=this;console.log('removeList',list_id);var list=this.lists[list_id];var params={'class':_this.ajax_class,
'method':'remove_list',
'list_id':list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:10000,
dataType:'json',
success:function(results){if(!results.error){var data=results.message;var pos=false;for(pos=0;pos<_this.list_order.length;pos++){var lid=_this.list_order[pos];if(lid==list_id)break;}
if(pos===false){dbg('Can not find position of list :'+list_id);return;}
_this.list_order.splice(pos,1);delete(_this.lists[list_id]);if(callback)callback(data);}else{dbg(results.message);}
}
});},
refreshList:function(list_id,page,mode,set_active,callback){var _this=this;mode=page||1;mode=mode||'standard';if(!list_id){console.log('refreshList: missing list_id');if(callback)callback();return;}
if(_this.lists[list_id].last_sync[page]){_this.redrawViews(true);if(set_active){var params={'class':_this.ajax_class,
'method':'set_active_list',
'list_id':list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){if(callback)callback();}else{dbg(results.message);if(callback)callback();}
}
});}else{if(callback)callback();}
return;}else{var params={'class':_this.ajax_class,
'method':'get_list_data_from_id',
'list_id':list_id,
'page':page
};if(mode=='extended')params.method='get_extended_list_data_from_id';$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:10000,
dataType:'json',
success:function(results){if(!results.error){_this.lists[list_id].last_sync[page]=new Date();_this._update_list_data(list_id,results.message);_this.redrawViews(true);if(callback)callback();}else{dbg(results.message);if(callback)callback();}
}
});}
},
setSortOrder:function(list_id,order){var list=this.lists[list_id];if(list.sorts[order]){list.current_sort=order;list.current_sort_array=list.sorts[order];list.dirty=true;this.trigger_sync();this.redrawViews(true);return true;}else{console.log('Missing sort array for '+order);return false;}
},
setCurrentSortOrderAsCustom:function(list_id){var list=this.lists[list_id];var order=list.current_sort;if(list.sorts[order]){list.current_sort='custom';list.dirty=true;this.trigger_sync();this.redrawViews();return true;}else{console.log('Missing sort array for '+order);return false;}
},
_update_list_data:function(new_id,new_data){console.log('_update_list_data',new_id);var _this=this;var list=this.lists[new_id];if(this.isSpecialList(list)){this._convertListData(new_data);this.lists[list.list_id]=new_data;}else{if(!list.items)this._convertListData(list);for(var k in new_data){switch(k){case 'item_keys':break;case 'items':
var converted_items={};var temp_sort_array=[];for(var i=0;i<new_data.items.length;i++){var converted_item={};if(new_data.item_keys){for(var j=0;j<new_data.item_keys.length;j++){converted_item[new_data.item_keys[j]]=new_data.items[i][j];}
}else{converted_item=new_data.items[i];}
if(converted_item['quantity']===null){converted_item['quantity']=undefined;}
if(converted_item['quantity']!==undefined){converted_item['quantity']=parseInt(converted_item['quantity']);}
var local_item=list.items_by_ident[converted_item.item_type+'_'+converted_item.item_id];if(local_item){continue;}
if(this.itemHasBeenRemoved(list.list_id,converted_item.item_type,converted_item.item_id)){continue;}
list.items_by_id[converted_item.listitem_id+'']=converted_item;list.items_by_ident[converted_item.item_type+'_'+converted_item.item_id]=converted_item;}
if(list.current_sort_array.length==0){if(new_data.sort_info){list.items_per_page=new_data.sort_info.items_per_page;list.current_sort=new_data.sort_info.current_sort;if(!arr_contains(SORT_TYPES,list.current_sort))list.current_sort='custom';list.sorts={};for(var k in new_data.sort_info.sorts){if(new_data.sort_info.sorts[k]){list.sorts[k]=new_data.sort_info.sorts[k].split(',');}else{list.sorts[k]=[];}
}
if(list.sorts[list.current_sort]){temp_sort_array=list.sorts[list.current_sort];}else{dbg('sort array missing:'+list.current_sort);}
}else{dbg('sort array missing');}
list.current_sort_array=temp_sort_array;}
if(!this.isSpecialList(list)){for(var k in list.items_by_ident){var d=list.items_by_ident[k];if(!d.listitem_id){console.log('1 locally added item detected');list.current_sort_array.push(d.item_type+'_'+d.item_id);}
}
}
list.item_count=list.current_sort_array.length;if(new_data.sort_info){list.items_per_page=new_data.sort_info.items_per_page;}else{list.items_per_page=50;}
break;default:
list[k]=new_data[k];}
}
}
},
updateListData:function(list_id,new_data){console.log('updateListData',list_id,new_data);var _this=this;var list=this.lists[list_id];for(var k in new_data){list[k]=new_data[k];}
list.dirty=true;this.redrawViews(false,false,true);this.trigger_sync();},
updateItemData:function(row_id,new_data){console.log('updateItemData',row_id,new_data);var _this=this;var list_item=this.getItemFromRowID(row_id);var list=this.lists[list_item.list_id];for(var k in new_data){list_item[k]=new_data[k];}
list_item.dirty=true;list.dirty=true;this.recalcListStats(list);this.trigger_sync();},
recalcListStats:function(list){var total_sum=0;var item_count=0;for(var k in list.items_by_ident){var it=list.items_by_ident[k];if(it.price > 0&&it.quantity > 0){total_sum+=it.price*it.quantity;item_count++;}
}
list.total_sum=total_sum;this.redrawViews(false,false,true);},
trigger_sync:function(){var _this=this;if(!this.sync_timer)this.sync_timer=setTimeout(function(){_this.sync_to_server()},_this.SYNC_DELAY);},
sync_to_server:function(callback,waitforajax){var _this=this;waitforajax=waitforajax||false;_this.sync_timer=false;if(_this.is_syncing){_this.trigger_sync();return;}
console.log('sync_to_server');_this.is_syncing=true;var data_to_send=[];var removed_items_before_sync={};for(var k in this.lists){var list=this.lists[k];if(list.dirty){data_to_send.push(_this._make_sync_params(list));removed_items_before_sync[list.list_id+'']=obj_clone(list.removed_items);}
}
if(data_to_send.length > 0){var params={};params['class']=_this.ajax_class;params.method='save_lists';params.data=data_to_send;$.ajax({url:_this.ajax_server_url,
data:obj2qstring(obj_clone(params)),
type:'POST',
timeout:10000,
dataType:'json',
async:!waitforajax,
success:function(results){if(!results.error){for(i=0;i<results.message.length;i++){var savedlist=results.message[i];var list=_this.lists[savedlist.list_id];list.dirty=false;if(savedlist.saved.added){for(pos=0;pos<savedlist.saved.added.length;pos++){var savedit=savedlist.saved.added[pos];var it=_this.getItem(list.list_id,savedit[0],savedit[1]);if(!it)continue;if(!it.listitem_id){it.listitem_id=savedit[2];list.items_by_id[it.listitem_id+'']=it;console.log('set listitem_id '+it.listitem_id+' on ',it);}
}
}
if(list.removed_items){var _to_keep=[];for(var i=0;i<list.removed_items.length;i++){var it=list.removed_items[i];if(!it.listitem_id)_to_keep.push(it);else{var found=false;for(var i=0;i<removed_items_before_sync[list.list_id].length;i++){var rit=removed_items_before_sync[list.list_id][i];if(it.listitem_id=rit.listitem_id)found=true;}
if(!found)_to_keep.push(it);}
}
list.removed_items=_to_keep;console.log('list.removed_items',list.removed_items);}
}
_this.is_syncing=false;if(callback)callback();}else{dbg(results.message);_this.is_syncing=false;if(callback)callback();}
},
error:function(jqxhr,status){dbg(status);_this.is_syncing=false;if(callback)callback();}
});}else{dbg('Nothing to sync');_this.is_syncing=false;}
},
_make_sync_params:function(list){if(list.dirty){var dirty_items=[];var added_items=[];var rem_items=[];if(this.hasAddPermissions(list)){for(var k in list.items_by_ident){var it=list.items_by_ident[k];if(!it.listitem_id)added_items.push(it);else if(it.dirty)dirty_items.push(it);}
}
if(list.removed_items){for(var i=0;i<list.removed_items.length;i++){var it=list.removed_items[i];if(it.listitem_id)rem_items.push(it.listitem_id);}
}
var keys_to_send=['name','visibility','collaborative','list_comment','comment_text'];var params={list_id:list.list_id,
list_info:array_filter_by_keys(list,keys_to_send),
items_to_add:added_items,
item_ids_to_delete:rem_items,
items_to_change:dirty_items
}
if(!this.isSpecialList(list)&&!list.is_filtered){if(list.current_sort=='custom'){params.ordered_item_idents=this._make_ordered_item_idents(list);}
params.current_sort=list.current_sort;}
return params;}else{return{};}
},
_make_ordered_item_idents:function(list){var ordered_item_idents=[];for(var pos=0;pos<list.current_sort_array.length;pos++){var sid=list.current_sort_array[pos]+'';if(sid.indexOf('_')>0){ordered_item_idents.push(sid);}else{var it=list.items_by_id[sid];if(!it){console.log('current_sort_array: missing item for ',sid);}else{ordered_item_idents.push(it.item_type+'_'+it.item_id);}
}
}
return ordered_item_idents;},
save_list_order:function(callback,waitforajax){var _this=this;waitforajax=waitforajax||false;console.log('save_list_order');var params={};params['class']=_this.ajax_class;params.method='save_list_order';params.ordered_list_ids=_this.list_order;$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'POST',
timeout:10000,
dataType:'json',
async:!waitforajax,
success:function(results){if(!results.error){_this.dirty=false;if(callback)callback();}else{dbg(results.message);if(callback)callback();}
},
error:function(jqxhr,status){dbg(status);if(callback)callback();}
});},
_save_list:function(list_id,callback){var _this=this;var list=_this.lists[list_id];if(list.dirty){var params=_this._make_sync_params(list);params['class']=_this.ajax_class;params.method='save_list';$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'POST',
timeout:10000,
dataType:'json',
success:function(results){if(!results.error){list.dirty=false;}else{dbg(results.message);callback();}
}
});}
},
_get_item_data_from_server:function(item_id,item_type,callback){var _this=this;var params={'class':_this.ajax_class,
'method':'get_item_data_from_item_id',
item_id:item_id,
item_type:item_type
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){callback(results.message);}else{dbg(results.message);}
}
});},
isSpecialList:function(data){return(data.list_id=='History'
||data.list_id=='Watch'
||data.list_id=='Friend'
||data.list_id=='Invitation'
);},
hasEditPermissions:function(data){return((data.role=='owner'||data.role=='editor'||data.role=='special')
&&data.list_id!='History'
&&data.list_id!='Friend'
&&data.list_id!='Invitation'
&&data.list_id!='MyLists'
);},
hasAddPermissions:function(data){return((data.role=='owner'||data.role=='editor'||data.role=='adder'||data.role=='special')
&&data.list_id!='History'
&&data.list_id!='Friend'
&&data.list_id!='Invitation'
&&data.list_id!='MyLists'
);},
redrawViews:function(redrawContent,redrawLists,quickOnly){console.log('redrawViews:',redrawContent,redrawLists,quickOnly);for(var v in this.views){this.views[v].redraw(redrawContent,redrawLists,quickOnly);}
},
notifyViews:function(eventType){for(var v in this.views){this.views[v].redraw(redrawContent,redrawLists);}
},
inviteUserToList:function(user_id,list_id,callback){var _this=this;var params={'class':'C_List',
'method':'invite',
users:[{id:user_id,role:'editor'}],
list_id:list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){if(callback)callback(results.message);}else{dbg(results.message);}
}
});},
acceptInvitation:function(list_id,callback){var _this=this;var params={'class':'C_List',
'method':'invitation_accept',
list_id:list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){if(callback)callback(results.message);}else{dbg(results.message);}
}
});},
declineInvitation:function(list_id,callback){var _this=this;var params={'class':'C_List',
'method':'invitation_decline',
list_id:list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){if(callback)callback(results.message);}else{dbg(results.message);}
}
});},
subscribeToList:function(list_id,callback){var _this=this;var params={'class':'C_List',
'method':'subscribe',
'list_id':list_id
};$.ajax({url:_this.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){if(callback)callback(results.message);}else{dbg(results.message);}
}
});}
});var pjSidebar=Class.extend({init:function(params){console.log('pjSidebar init',params);if(!params)console.log('Warning: missing params for pjSidebar');this.navigationManager=null;this.user_id=parseInt(params.user_id)||0;this.user_name=params.user_id||'[unknown user]';this.current_list=params.current_list||'mylists';this.previous_list=0;this.layout_mode='minimized';this.layout_mode_on_load='minimized';this.viewMode=params.viewMode||'mixed';this.lists_expanded=false;this.isDragging=false;this.dragOverRowID=false;this.wasHiddenBeforeDrag=false;this._initSettings(params);this.model=params.model;this.model.attachView(this);this._initElements(params);this.redraw(true);this._initEvents(params);this._update_notification_bar();},
_initSettings:function(params){this.id='pj_sidebar';this.layout_mode=params.layout_mode||'minimized';this.layout_mode_on_load=this.layout_mode;console.log(this.layout_mode);this.mainDivID='pj_sidebar';this.elmPrefix='sidebar';this.useScrollbar=true;},
_initElements:function(params){this.placeholder=$('#'+this.mainDivID+'_placeholder');this.container=$('#'+this.mainDivID);this.currentlistheader=this.container.find('#'+this.elmPrefix+'-currentlistheader');this.currentlistinfo=this.container.find('#'+this.elmPrefix+'-currentlistinfo');this.currentlistcontentheader=this.container.find('#'+this.elmPrefix+'-currentcontentheader');this.currentlistview=this.container.find('#'+this.elmPrefix+'-currentlistview');this.listsview=this.container.find('#'+this.elmPrefix+'-listsview');this.listcontainer=this.container.find('#'+this.elmPrefix+'-listcontainer');if(this.container.size()==0)console.warn('can\'t find #'+this.mainDivID+'');if(this.currentlistheader.size()==0)console.warn('can\'t find #'+this.elmPrefix+'-currentlistheader');if(this.currentlistview.size()==0)console.warn('can\'t find #'+this.elmPrefix+'-currentlistview');if(this.listcontainer.size()==0)console.warn('can\'t find #'+this.elmPrefix+'-listcontainer');this.container.addClass('sidebar-'+this.layout_mode);this.container.addClass('sidebar-'+this.viewMode);},
_initEvents:function(params){var _this=this;$(window).resize(function(){_this.refreshLayout();});_this.refreshLayout();$(window).unload(function(){});if(_this.useScrollbar){this.container.find('.sidebar-listview').jScrollPane({showArrows:false,
arrowScrollOnHover:true,
verticalGutter:0
}
).bind('jsp-scroll-y',function(event,scrollPositionY,isAtTop,isAtBottom){var scrolledY=$(this).data('jsp').getPercentScrolledY();var curlist=_this.getCurrentList();if(curlist.item_count > curlist.items_per_page){var nbrofpages=curlist.item_count/curlist.items_per_page;var visiblepart=_this.container.height()/_this.container.find('.sidebar-listsortable').height();var page=Math.floor(nbrofpages*(scrolledY+(1-scrolledY)*visiblepart))+1;if(!_this.model.is_loading&&!curlist.last_sync[page]){console.log('loading page',page);_this.model.is_loading=true;_this.model.refreshList(curlist.list_id,page,(_this.layout_mode=='maximized' ? 'extended':'standard'),false,function(){_this.model.is_loading=false;});}
}
});}
if(this.id=='listviewpage'){$(window).scroll(function(event){var scrolledY=($(window).scrollTop()+300)/($(document).height()-$(window).height());var curlist=_this.getCurrentList();if(curlist.item_count > curlist.items_per_page){var nbrofpages=curlist.item_count/curlist.items_per_page;var page=Math.floor(nbrofpages*scrolledY)+1;if(!_this.model.is_loading&&!curlist.last_sync[page]){console.log('loading page',page);_this.model.is_loading=true;_this.model.refreshList(curlist.list_id,page,(_this.layout_mode=='maximized' ? 'extended':'standard'),false,function(){_this.model.is_loading=false;});}
}
});}
var last_selected='';this.container.find('.sidebar-listrow').live('click',function(e){var p=e.target;while(p&&p!=this){if($(p).is('a')||$(p).is('input')||$(p).is('select')||$(p).is('.noclick')||$(p).is('.inlineclickedit')||$(p).is('.linkbutton')||($(p).is('.linkbutton_dark')&&!$(p).is('.sidebar-btn-open_item'))){console.log('cancel click, target is ',p);if($(p).is('.noclick')||$(p).is('input')){e.stopImmediatePropagation();return false;}
return true;}
try{p=p.parentNode;}catch(e){p=false;}
}
if(e.ctrlKey||_this.layout_mode=='maximized'){if($(this).is(':not(.sidebar-listrow-selected)')){$(this).addClass('sidebar-listrow-selected');if(_this.currentlistview.find('.sidebar-listrow-selected').size()> 1){_this.currentlistview.find('.sidebar-listrow').draggable('enable');}
}else{$(this).removeClass('sidebar-listrow-selected');if(_this.currentlistview.find('.sidebar-listrow-selected').size()< 2){_this.currentlistview.find('.sidebar-listrow').draggable('disable');}
}
}else{var row_id=_this.getRowIDfromElm($(this));var d=_this.model.getItemFromRowID(row_id);if(!d.item_id){console.log('Missing item_id:',d);}
var params={'name':d.name};switch(d.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
if(d.list_id=='Watch')params.extra_str='add_alert=1';_this.hidePopup();_this.navigationManager.load_page_content(d.item_type,d.item_id,params);break;case ITEM_TYPE_LIST:
case ITEM_TYPE_LIST_INVITATION:
_this.hidePopup();var curlist=_this.getCurrentList();if(_this.lists_expanded||!_this.model.isSpecialList(curlist)){_this.setWorkingList(d.item_id);}else{_this.navigationManager.load_page_content(d.item_type,d.item_id,params);}
break;case ITEM_TYPE_CUSTOM:
if(d.misc_data_1)window.open(d.misc_data_1);break;}
}
});this._update_notification_bar=function(){var padding=(this.layout_mode=="minimized" ? 76:this.layout_mode=="expanded" ? 260:20);$(".user_notification").attr("style","padding-left:"+padding+"px;");}
this.popup_focus_timer=0;this.popup_blur_timer=0;this.pinned_popup=false;this.container.find('.sidebar-listrow').live('mouseenter',function(e){clearTimeout(_this.popup_focus_timer);var elm=$(this);if(!_this.isDragging){_this.showHoverTools(elm);var orderfixtimer=setTimeout(function(){var row_id=_this.getRowIDfromElm(elm);var d=_this.model.getItemFromRowID(row_id);var top_pos=elm.offset().top;var left_pos=50;switch(_this.layout_mode){case 'minimized':
break;case 'expanded':
break;case 'maximized':
break;}
},20);}else{if(elm.is('.sidebar-listrow-'+ITEM_TYPE_LIST)){_this.dragOverRowID=_this.getRowIDfromElm(elm);}
}
});this.container.find('.sidebar-listrow').live('mouseleave',function(e){var elm=$(this);if(!_this.isDragging){clearTimeout(_this.popup_focus_timer);clearTimeout(_this.popup_blur_timer);_this.hideHoverTools(elm);_this.popup_blur_timer=setTimeout(function(){_this.hidePopup();},100);}else{if(elm.is('.sidebar-listrow-'+ITEM_TYPE_LIST)){}
}
});$('#'+this.elmPrefix+'-listpopup').live('mouseenter',function(e){clearTimeout(_this.popup_blur_timer);});$('#'+this.elmPrefix+'-listpopup').live('mouseleave',function(e){clearTimeout(_this.popup_focus_timer);clearTimeout(_this.popup_blur_timer);if(!_this.pinned_popup){_this.popup_blur_timer=setTimeout(function(){_this.hidePopup();},300);}
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-lists').droppable({scope:'sidebar',
drop:function(e,ui){alert(translate_string('You cannot drop stuff here','sidebar','Du kan inte släppa produkter här. Dra till en lista istället.'))
},
over:function(e,ui){if(!_this.lists_expanded){_this.show_lists();}
},
activeClass:'sidebar-bottom-menu-btn-droptarget',
hoverClass:'sidebar-bottom-menu-btn-dragover'
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-new_list').droppable({scope:'sidebar',
drop:function(e,ui){if(_this.user_id){var item_data=ui.helper.data();var name=window.prompt(translate_string('What would you like to call your new list?','sidebar','Vad vill du kalla den nya listan?'),translate_string('New list (list name suggestion)','sidebar','Ny lista'));if(name!==null){_this.model.createList({name:name},false,function(data){var dest_list_id=data.list_id;console.log('Dropped item',item_data,' on NEW list vith id '+dest_list_id);_this.handleItemDropOnList(ui,item_data,dest_list_id,false,function(){_this.setWorkingList(dest_list_id);});});}
}else{user_msg(translate_string('You need to be logged in to create lists','sidebar','Du måste vara inloggad för att kunna skapa nya listor.'));}
},
over:function(e,ui){},
activeClass:'sidebar-bottom-menu-btn-droptarget',
hoverClass:'sidebar-bottom-menu-btn-dragover'
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-new_list').live('click',function(e){if(_this.user_id){var name=window.prompt(translate_string('What would you like to call your new list?','sidebar','Vad vill du kalla den nya listan?'),translate_string('New list (list name suggestion)','sidebar','Ny lista'));if(name!==null){_this.model.createList({name:name},false,function(data){var dest_list_id=data.list_id;console.log('Created new list vith id '+dest_list_id);_this.setWorkingList(dest_list_id);});}
}else{open_login();}
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-hist').live('click',function(e){_this.setWorkingList('History');});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-pricealert').live('click',function(e){if(_this.user_id){_this.setWorkingList('Watch');}else{open_login();}
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-friends').live('click',function(e){if(_this.user_id){_this.setWorkingList('Friend');}else{open_login();}
});this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-invitations').live('click',function(e){if(_this.user_id){_this.setWorkingList('Invitation');}else{open_login();}
});this.container.find('.sidebar-btn-change-image').live('click',function(e){alert(translate_string('This feature will be coming soon','sidebar','Denna funktion kommer snart!'));});this.container.find('.sidebar-btn-private').live('click',function(e){var list=_this.getCurrentList();_this.model.updateListData(list.list_id,{'visibility':'private'});_this.redrawInfoBox(_this.currentlistinfo,list);});this.container.find('.sidebar-btn-semiprivate').live('click',function(e){var list=_this.getCurrentList();_this.model.updateListData(list.list_id,{'visibility':'semi-private'});_this.redrawInfoBox(_this.currentlistinfo,list);});this.container.find('.sidebar-btn-public').live('click',function(e){var list=_this.getCurrentList();_this.model.updateListData(list.list_id,{'visibility':'public'});_this.redrawInfoBox(_this.currentlistinfo,list);});this.container.find('.sidebar-btn-public-extended').live('click',function(e){var list=_this.getCurrentList();_this.model.updateListData(list.list_id,{'visibility':'public-extended'});_this.redrawInfoBox(_this.currentlistinfo,list);});this.container.find('.sidebar-btn-invite').live('click',function(e){if(_this.user_id){var list=_this.getCurrentList();_this.model.views['pj_sidebar'].expand();_this.model.views['pj_sidebar'].setWorkingList('Friend');_this.showHintPopup(translate_string('To invite, drag friends from here to the editor box of the list!','sidebar','Dra vänner härifrån till listans författarruta, för att bjuda in dem!'),150,250);}else{user_msg(translate_string('You need to be logged in to invite people to a list','sidebar','Du måste vara inloggad för att kunna bjuda in folk till en lista'));}
});this.container.find('.sidebar-btn-save_custom_sort').live('click',function(e){var list=_this.getCurrentList();var success=_this.model.setCurrentSortOrderAsCustom(list.list_id);if(success)alert(translate_string('Sort order was saved','sidebar','Sorteringsordningen sparades'));});_this.currentlistview.find('.sidebar-listrow').draggable({revertDuration:10,
tolerance:'pointer',
distance:5,
appendTo:'body',
scroll:false,
scope:'sidebar',
zIndex:3000,
start:function(e,ui){ui.helper.addClass('sidebar-listrow-selected');var data_array=[];_this.currentlistview.find('.sidebar-listrow-selected').each(function(index,elm){var data=$(elm).data();data.elmid=$(elm).attr('id');data_array.push(data);});ui.helper.data({'multi':data_array});},
stop:function(e,ui){_this.currentlistview.find('.sidebar-listrow-selected').css({top:0,left:0});},
drag:function(e,ui){_this.currentlistview.find('.sidebar-listrow-selected').css({top:ui.position.top,
left:ui.position.left
});}
});_this.currentlistview.find('.sidebar-listrow').draggable('disable');var _dropped_item_data;var _position_of_new_item;var _flashtimer;var _sortable=this.container.find('#'+this.elmPrefix+'-currentlistview .sidebar-listsortable').sortable({tolerance:'pointer',
distance:5,
helper:function(event,el){var data=el.data();data.elmid=el.attr('id');var helper=$('<div style="width:85px; height:85px; background:transparent;"><div style="width:85px; height:85px;position:absolute;left:-20px;top:-20px;">'+_this._getHTMLforItemImage(data,80)+'</div></div>')
.data(data);return helper;},
appendTo:'body',
scroll:false,
scope:'sidebar',
items:".sidebar-listrow",
placeholder:'sidebar-listrow-sortable-placeholder',
cursorAt:{bottom:40,right:40},
zIndex:3000,
revert:false,
sort:function(){$(this).removeClass("ui-state-default");},
start:function(event,ui){_this.isDragging=true;var _vis=0;_flashtimer=window.setInterval(function(){if(_this.lists_expanded){_vis=(_vis+1)%20;ui.helper.css({display:(_vis>0 ?'block':'none'),
opacity:(_vis<10 ? _vis*0.07:(20-_vis)*0.07)});}
},20);},
stop:function(event,ui){_this.isDragging=false;window.clearInterval(_flashtimer);},
update:function(e,ui){if(!_this.lists_expanded){var order=_sortable.sortable("toArray");var new_sort_array=[];for(var i=0;i<order.length;i++){if(!order[i]){_position_of_new_item=i;}else{var row_id=order[i].substring(7+_this.elmPrefix.length);console.info('row_id:',row_id);var d=_this.model.getItemFromRowID(row_id);new_sort_array.push(d.item_type+'_'+d.item_id);}
}
var list=_this.getCurrentList();if(list)list.current_sort_array=new_sort_array;console.info('sortable update:',new_sort_array);list.dirty=true;_this.model.trigger_sync();}
},
beforeStop:function(event,ui){console.info('sortable.beforeStop',_this.dragOverRowID,event,ui);if(!_this.lists_expanded){var item_data=ui.helper.data();var dest_list_id=_this.current_list;if(item_data.list_id){}else{console.log('beforeStop: Dropped item',item_data,' on CURRENT list with id '+dest_list_id);_this.model._get_item_data_from_server(item_data.item_id,item_data.item_type,function(more_data){_this.model.addItem(more_data,dest_list_id,_position_of_new_item,true);});}
}else{if(_this.dragOverRowID){var row_id=_this.getRowIDfromElm(ui.item);var item_data=_this.model.getItemFromRowID(row_id);if(item_data.list_id){var dest_list_id=_this.dragOverRowID.split('_')[0];console.log('Dropped item',item_data,' on list vith id '+dest_list_id);_this.model.moveItem(item_data,dest_list_id);}else{console.log('sortable.beforeStop: missing list_id ',item_data);}
}else{console.log('missing dragOverRowID');}
}
},
receive:function(event,ui){console.info('sortable.receive',ui);}
}).disableSelection();var _lists_sortable=this.container.find('#'+this.elmPrefix+'-listsview .sidebar-listsortable').sortable({tolerance:'pointer',
distance:5,
helper:function(event,el){var data=el.data();var helper=$('<div style="width:85px; height:85px; background:transparent;"><div style="width:85px; height:85px;position:absolute;left:-20px;top:-20px;">'+_this._getHTMLforItemImage(data,80)+'</div></div>')
.data(data);return helper;},
appendTo:'body',
scroll:false,
scope:'sidebar-lists',
items:".sidebar-listrow",
placeholder:'sidebar-listrow-sortable-placeholder',
cursorAt:{bottom:40,right:40},
zIndex:3000,
revert:false,
start:function(event,ui){_this.isDragging=true;},
stop:function(event,ui){_this.isDragging=false;},
update:function(e,ui){if(_this.lists_expanded){var order=_lists_sortable.sortable("toArray");var new_sort_array=[];for(var i=0;i<order.length;i++){var row_id=order[i].substring(7+_this.elmPrefix.length);;var d=_this.model.getItemFromRowID(row_id);new_sort_array.push(d.item_id);}
_this.model.list_order=new_sort_array;console.info('listsview: sortable update:',new_sort_array);_this.model.dirty=true;_this.model.save_list_order();}
}
}).disableSelection();this.currentlistview.droppable({activeClass:'sidebar-listview-droptarget',
hoverClass:'sidebar-listview-dragover',
scope:'sidebar',
accept:':not(#'+this.elmPrefix+'-currentlistview .sidebar-listrow)',
drop:function(event,ui){console.log(_this.elmPrefix+'-currentlistview.droppable',ui);if(!_this.lists_expanded){$(this).parent().find('.sidebar-drop-hint').remove();var item_data=ui.helper.data();var dest_list_id=_this.current_list;console.log('Dropped item ',item_data.item_id,' on CURRENT list '+dest_list_id);_this.handleItemDropOnList(ui,item_data,dest_list_id,true,function(){});}else{console.log('Dropped item on listsview');var item_data=ui.helper.data();var name='';if(_this.user_id){name=window.prompt(translate_string('What would you like to call your new list?','sidebar','Vad vill du kalla den nya listan?'),translate_string('New list (list name suggestion)','sidebar','Ny lista'));}
if(name!==null||!this.user_id){_this.model.createList({name:name},false,function(data){var dest_list_id=data.list_id;console.log('Dropped item',item_data,' on NEW list vith id '+dest_list_id);_this.handleItemDropOnList(ui,item_data,dest_list_id,false,function(){_this.setWorkingList(dest_list_id);});});}
}
}
});var scrollTimeout=false;var scrollv=0;this.container.find('#'+this.elmPrefix+'-currentlistview').mousemove(function(e){if(_this.isDragging){var $list=_this.currentlistview;if($list.size()){var distanceBottom=$list.offset().top+$list.height()-e.pageY;var distanceTop=e.pageY-$list.offset().top;if((distanceBottom > 0&&distanceBottom < 40)||(distanceTop > 0&&distanceTop < 40)){if(distanceBottom < 40){scrollv=parseInt((40-distanceBottom)/2+1);}else if(distanceTop < 40){scrollv=-parseInt((40-distanceTop)/2+1);}
var doScroll=function(){if(_this.isDragging){if(_this.useScrollbar&&_this.currentlistview.data('jsp'))_this.currentlistview.data('jsp').scrollByY(scrollv,false);var $listsortable=_this.currentlistview.find('.sidebar-listsortable');if($listsortable.size())$listsortable.sortable('refreshPositions');scrollTimeout=setTimeout(doScroll,100);}
};if(!scrollTimeout)doScroll();}else{scrollTimeout=false;scrollv=0;}
}else{scrollTimeout=false;scrollv=0;}
}
});if(this.id=='pj_sidebar'){$('.drg-sidebar:not(.ui-draggable)').liveDraggable({distance:5,
scope:'sidebar',
helper:function(event){var data;var datadrg=$(this).attr('data-drg');if(!datadrg){var id=false;var type=ITEM_TYPE_NONE;if($(this).attr('href').search(/produkt/)>-1){type=ITEM_TYPE_PRODUCT;id=$(this).attr('href').match(/[&?][ope]=([0-9]+)/)[1];}
else if($(this).attr('href').search(/butiksinfo/)>-1){type=ITEM_TYPE_STORE;id=$(this).attr('href').match(/[&?]f[a-z]*=([0-9]+)/)[1];}
else if($(this).attr('href').search(/bok/)>-1){type=ITEM_TYPE_BOOK;id=$(this).attr('href').match(/[&?][ope]=([0-9]+)/)[1];}
if(!id){dbg('Missing id');return false;}
data={item_type:type,item_id:id};console.log(data);}else{var a=datadrg.split('-');data={item_type:a[0],item_id:a[1]};}
var data_array=[];var helper_html='';var bild=$('#'+data.item_type+'_sel_'+data.item_id);if(bild.size()){if(bild.hasClass('i14checkbox_on')){var n=0;$('.i14checkbox_on').each(function(index,elm){var item_id2=$(elm).attr('id').split('_')[2];if(item_id2){var data2={item_type:data.item_type,item_id:item_id2};data_array.push(data2);n++;if(n<5){helper_html+='<div style="width:85px; height:85px;position:absolute;left:-'+(n*15)+'px;top:-'+(n*15)+'px;z-index:'+(3005-n)+';opacity:0.9">'+_this._getHTMLforItemImage(data2,80)+'</div>';}
}
});}
}
if(data_array.length){helper_html='<div style="width:85px; height:85px;">'+helper_html+'</div>';var helper=$(helper_html).data({'multi':data_array});return helper;}
var helper=$('<div style="width:85px; height:85px;">'+_this._getHTMLforItemImage(data,80)+'</div>')
.data(data);return helper;},
appendTo:'body',
scroll:false,
addClasses:false,
cursorAt:{bottom:40,right:40},
zIndex:3000,
revert:'100',
start:function(event,ui){_this.isDragging=true;if(_this.layout_mode=='hidden'){_this.wasHiddenBeforeDrag=true;_this.minimize();}
},
stop:function(event,ui){_this.isDragging=false;if(_this.wasHiddenBeforeDrag){_this.wasHiddenBeforeDrag=false;_this.hide();}
}
});$('#pj_sidebar_border').click(function(event){if(_this.layout_mode=='minimized'){_this.expand();}else if(_this.layout_mode=='hidden'){_this.expand();}else{_this.minimize();}
});}
if(this.id=='listviewpage'){this.container.find('.sidebar-box-subscribers').liveDroppable({scope:'sidebar',
drop:function(e,ui){var item_data=ui.helper.data();switch(item_data.item_type){case ITEM_TYPE_USER:
var dest_list_id=_this.current_list;console.log('Dropped user ',item_data.item_id,' on current list '+dest_list_id);_this.model.inviteUserToList(item_data.item_id,dest_list_id,function(){alert(translate_string('The invitation has been sent','sidebar','Inbjudningen har skickats'));});break;default:
alert(translate_string('You can only drop users here','sidebar','Du kan bara släppa användare här.'))
break;}
},
activeClass:'ui-state-highlight',
hoverClass:'ui-state-highlight'
});}
this.container.find('.sidebar-btn-hide').live('click',function(event){_this.hide();});this.container.find('.sidebar-btn-minimize').live('click',function(event){_this.minimize();});this.container.find('.sidebar-btn-expand').live('click',function(event){_this.expand();});this.container.find('.sidebar-btn-lists').live('click',function(event){if(_this.user_id){if(_this.lists_expanded){}else{_this.show_lists();}
}else{var first_list=_this.getFirstNormalList();if(first_list){_this.setWorkingList(first_list.list_id);}else{_this.show_lists();}
}
});this.container.find('.sidebar-btn-hidelists').live('click',function(event){_this.hide_lists();});this.container.find('.sidebar-btn-settings').live('click',function(event){_this.show_settings();});this.container.find('.sidebar-btn-share').live('click',function(event){_this.show_share_menu();});this.container.find('.inlineclickedit').live('click',function(event){var elm=$(this);var field=elm.children('.editable');if(field.size()==0){var text=elm.text();var width=elm.width()-40;var height=elm.height()+8;var defaulttext=elm.attr('defaulttext');if(!defaulttext)defaulttext=EMPTY_EDITABLE_DEFAULT_TEXT;if(text==defaulttext)text='';var saveEditField=function(){var new_text=elm.children('.editable').val();var editfield=elm.attr('editfield');elm.fadeTo(200,0,function(){if(new_text!=text){console.log(editfield+': '+new_text);var p=editfield.split('.');var type=p[0];var fieldname=p[1];var setdata={};setdata[fieldname]=new_text;switch(type){case 'list':
var list_id=_this.current_list;_this.model.updateListData(list_id,setdata);break;case 'listitem':
var row_id=_this.getRowIDfromElm(elm.parents('.sidebar-listrow'));_this.model.updateItemData(row_id,setdata);break;}
}
if(new_text==''){new_text='<span class="svag">'+defaulttext+'</span>';}else{new_text=new_text.replace(/\n/g,'<br>');}
elm.html(new_text);elm.fadeTo(400,1,function(){});});};var cancelEditField=function(){elm.fadeTo(200,0,function(){if(text=='')text='<span class="svag">'+defaulttext+'</span>';elm.html(text);elm.fadeTo(400,1,function(){});});};elm.fadeTo(200,0,function(){elm.html('');var edittag='<input type="text" class="editable">';if(height > 30)edittag='<textarea class="editable">';var tb=$(edittag).css({width:width+'px',height:height+'px'}).val(text).blur(function(event){cancelEditField();}).keydown(function(e){switch(e.keyCode){case 13:
if(height < 50){e.preventDefault();saveEditField();}
break;case 27:
e.preventDefault();cancelEditField();break;}
}).appendTo(elm);$('<a title="'+translate_string('Save','global')+'" class="linkbutton btn_green iconbutton sidebar-btn-edit"><img class="i14w i14w_edit" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>').click(function(event){saveEditField();}).appendTo(elm);$('<a title="'+translate_string('Cancel','global')+'" class="linkbutton btn_red iconbutton sidebar-btn-edit"><img class="i14w i14w_close" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>').click(function(event){cancelEditField();}).appendTo(elm);elm.fadeTo(400,1,function(){tb.focus().select();});});}
});$('#'+this.elmPrefix+'-listpopup .sidebar-btn-edit').live('click',function(event){var popup=$('#'+_this.elmPrefix+'-listpopup');var data=popup.data();var row_id=_this.model.getRowID(data);switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_USER:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
var type='';var setdata={};popup.find(':input').each(function(i,elm){var text=$(elm).val();var editfield=$(elm).attr('editfield');console.log(editfield+': '+text);var p=editfield.split('.');type=p[0];if(type=='listitem'){var fieldname=p[1];setdata[fieldname]=text;}
});_this.model.updateItemData(row_id,setdata);_this.pinned_popup=false;_this.hidePopup();_this.model.redrawViews();break;case ITEM_TYPE_LIST:
_this.model.redrawViews();_this.closePopup();break;}
});this.container.find('.sidebar-btn-plus').live('click',function(event){var row=$(this).parents('.sidebar-listrow');var data=row.data();var row_id=_this.getRowIDfromElm(row);switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
var item_data=_this.model.getItemFromRowID(row_id);var value=parseInt(item_data.quantity||0);if($(this).is('.sidebar-btn-plus')){value++;}
if($(this).is('.sidebar-btn-minus')){if(value > 0)value--;}
var fieldname='quantity';var setdata={};setdata[fieldname]=value;_this.model.updateItemData(row_id,setdata);_this.model.redrawViews();break;default:
break;}
});this.container.find('.sidebar-btn-minus').live('click',function(event){var row=$(this).parents('.sidebar-listrow');var data=row.data();var row_id=_this.getRowIDfromElm(row);switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
var item_data=_this.model.getItemFromRowID(row_id);var value=parseInt(item_data.quantity||0);if($(this).is('.sidebar-btn-plus')){value++;}
if($(this).is('.sidebar-btn-minus')){if(value > 0)value--;}
var fieldname='quantity';var setdata={};setdata[fieldname]=value;_this.model.updateItemData(row_id,setdata);_this.model.redrawViews();break;default:
break;}
});this.container.find('.sidebar-btn-delete').live('click',function(event){var row=$(this).parents('.sidebar-listrow');var data;var isFullPageView=false;if(row.size()){data=row.data();}else{data=_this.getCurrentList();if(this.id=='listviewpage')isFullPageView=true;}
switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
var question='';switch(data.list_id){case 'Watch':question=translate_string('Are you sure you want to remove this alert?','sidebar','Är du säker på att du vill ta bort bevakningen?');break;case 'Friend':question=translate_string('Are you sure you want to remove this user from your friends?','sidebar','Är du säker på att du vill sluta vara vän med denna användare?');break;case 'Invite':question=translate_string('Are you sure you want to decline this invitation?','sidebar','Är du säker på att du vill tacka nej till denna inbjudan?');break;}
var ok=true;if(question){ok=confirm(question);}
if(ok){_this.model.removeItem(data);_this.model.redrawViews();}
break;case ITEM_TYPE_LIST:
if(confirm(translate_string('Are you sure you want to remove this list?','sidebar','Är du säker på att du vill ta bort listan?'))){_this.model.removeList(data.list_id,function(rdata){if(this.current_list!='MyLists'){if(rdata.list_id){_this.setWorkingList(rdata.list_id,true);}else{_this.setWorkingList('MyLists',true);}
_this.redraw(false,true);if(isFullPageView)window.location.reload();}
});}
break;}
});$('#'+this.elmPrefix+'-listpopup .sidebar-btn-delete').live('click',function(event){var popup=$('#'+_this.elmPrefix+'-listpopup');var data=popup.data();switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
_this.model.removeItem(data);_this.model.redrawViews();break;case ITEM_TYPE_LIST:
_this.model.removeList(data.list_id);_this.model.redrawViews(true,true);break;}
});this.container.find('.sidebar-btn-note').live('click',function(event){clearTimeout(_this.popup_focus_timer);var elm=$(this).parents('.sidebar-listrow');var row_id=_this.getRowIDfromElm(elm);var d=_this.model.getItemFromRowID(row_id);var top_pos=elm.offset().top;var left_pos=50;switch(_this.layout_mode){case 'minimized':
left_pos=50;break;case 'expanded':
left_pos=230;break;}
switch(_this.layout_mode){case 'minimized':
case 'expanded':
clearTimeout(_this.popup_blur_timer);_this.pinned_popup=true;_this.showPopup(d,top_pos,left_pos);break;case 'maximized':
break;}
});this.container.find('.sidebar-btn-maximize').live('click',function(event){_this.maximize('mixed');});this.container.find('.sidebar-btn-listview').live('click',function(event){_this.maximize('mixed');});this.container.find('.sidebar-btn-pictures').live('click',function(event){_this.maximize('pictures');});this.container.find('.sidebar-btn-compare').live('click',function(event){var selectedItems=_this.getselectedItems();_this.maximize('compare',selectedItems);});this.container.find('.sidebar-btn-optimize').live('click',function(event){var selectedItems=_this.getselectedItems();_this.maximize('optimize',selectedItems);});this.container.find('.sidebar-btn-menu-more').live('click',function(event){var btnc=_this.container.find('.sidebar-menu-buttons-container');if(btnc.css('margin-left')=='-230px'){btnc.animate({'margin-left':'0px'},300,function(){});$(this).find('img').addClass('i14w_arrow_r').removeClass('i14w_arrow_l');}else{btnc.animate({'margin-left':'-230px'},300,function(){});$(this).find('img').addClass('i14w_arrow_l').removeClass('i14w_arrow_r');}
});if(this.current_list=='MyLists'){this.show_lists(true);}else{var curlist=_this.getCurrentList();_this._setListViewDragDrop(true,_this.model.hasAddPermissions(curlist));}
this.container.addTouch();},
_makeItemsDraggable:function(){var _this=this;this.currentlistview.find('.sidebar-listrow').draggable({tolerance:'pointer',
distance:5,
helper:function(event){var data=$(this).data();var helper=$('<div style="width:85px; height:85px; background:transparent;"><div style="width:85px; height:85px;position:absolute;left:-20px;top:-20px;">'+_this._getHTMLforItemImage(data,80)+'</div></div>')
.data(data);return helper;},
appendTo:'body',
scroll:false,
scope:'sidebar',
cursorAt:{bottom:40,right:40},
zIndex:3000,
revert:true,
start:function(event,ui){_this.isDragging=true;var _vis=0;_flashtimer=window.setInterval(function(){if(_this.lists_expanded){_vis=(_vis+1)%20;ui.helper.css({display:(_vis>0 ?'block':'none'),
opacity:(_vis<10 ? _vis*0.07:(20-_vis)*0.07)});}
},20);if(_this.layout_mode=='hidden'){_this.wasHiddenBeforeDrag=true;_this.minimize();}
},
stop:function(event,ui){_this.isDragging=false;window.clearInterval(_flashtimer);if(_this.wasHiddenBeforeDrag){_this.wasHiddenBeforeDrag=false;_this.hide();}
}
});},
_makeListsDroppable:function(){var _this=this;this.listsview.droppable({activeClass:'sidebar-listview-droptarget',
hoverClass:'sidebar-listview-dragover',
scope:'sidebar',
accept:':not(#'+this.elmPrefix+'-listsview .sidebar-listrow)',
drop:function(event,ui){var item_data=ui.helper.data();var name='';if(_this.user_id){name=window.prompt(translate_string('What would you like to call your new list?','sidebar','Vad vill du kalla den nya listan?'),translate_string('New list (list name suggestion)','sidebar','Ny lista'));}
if(name!==null||!this.user_id){_this.model.createList({name:name},false,function(data){var dest_list_id=data.list_id;console.log('Dropped item',item_data,' on NEW list vith id '+dest_list_id);_this.handleItemDropOnList(ui,item_data,dest_list_id,false,function(){_this.setWorkingList(dest_list_id);});});}
}
});this.listsview.find('.sidebar-listrow-'+ITEM_TYPE_LIST+'').droppable({scope:'sidebar',
greedy:true,
drop:function(e,ui){console.log('.sidebar-listrow-LIST-droppable');if(_this.lists_expanded){var item_data=ui.helper.data();var dest_list_id=$(this).data('list_id');console.log('Dropped item '+item_data+' on list vith id '+dest_list_id);_this.handleItemDropOnList(ui,item_data,dest_list_id,false,function(){_this.redraw(false,true);});}
},
over:function(e,ui){},
activeClass:'sidebar-listrow-droptarget',
hoverClass:'sidebar-listrow-dragover'
});},
_disableListsDroppable:function(){var _this=this;this.listsview.find('.sidebar-listrow-'+ITEM_TYPE_LIST+'').droppable('destroy');this.listsview.droppable('destroy');},
_setListViewDragDrop:function(enable,allowEdit){var _this=this;console.log('_setListViewDragDrop',enable,allowEdit);if(enable){_this.listsview.sortable('disable');if(allowEdit){_this.container.find('#'+_this.elmPrefix+'-currentlistview .sidebar-listsortable').sortable('enable');_this.currentlistview.droppable('enable');}else{_this.currentlistview.droppable('disable');_this.container.find('#'+_this.elmPrefix+'-currentlistview .sidebar-listsortable').sortable('disable');_this._makeItemsDraggable();}
}else{_this.container.find('#'+_this.elmPrefix+'-currentlistview .sidebar-listsortable').sortable('disable');_this.currentlistview.find('.sidebar-listrow').draggable('disable');_this.currentlistview.droppable('disable');_this.listsview.sortable('enable');}
},
destruct:function(params){this.container.find('.sidebar-listrow').die();$('#'+this.elmPrefix+'-listpopup').die();this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-lists').droppable('destroy');this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-new_list').droppable('destroy').die();this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-new_list').die();this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-hist').die();this.container.find('#'+this.elmPrefix+'-bottom-menu .sidebar-btn-pricealert').die();this.container.find('.sidebar-btn-change-image').die();this.container.find('.sidebar-btn-invite').die();this.container.find('.sidebar-btn-private').die();this.container.find('.sidebar-btn-semiprivate').die();this.container.find('.sidebar-btn-public').die();this.currentlistview.find('.sidebar-listsortable').sortable('destroy').droppable('destroy');this.listsview.find('.sidebar-listrow-'+ITEM_TYPE_LIST).droppable('destroy');this.listsview.droppable('destroy');this.currentlistview.droppable('destroy');this.currentlistview.unbind('mousemove');this.currentlistview.find('.sidebar-listrow').draggable('destroy');this.container.find('.sidebar-btn-minimize').die();this.container.find('.sidebar-btn-expand').die();this.container.find('.sidebar-btn-lists').die();this.container.find('.sidebar-btn-hidelists').die();this.container.find('.sidebar-btn-hist').die();this.container.find('.sidebar-btn-settings').die();this.container.find('.sidebar-btn-edit').die();this.container.find('.sidebar-btn-share').die();this.container.find('.inlineclickedit').die();$('#'+this.elmPrefix+'-listpopup .sidebar-btn-edit').die();$('#'+this.elmPrefix+'-listpopup .sidebar-btn-delete').die();this.container.find('.sidebar-btn-plus').die();this.container.find('.sidebar-btn-minus').die();this.container.find('.sidebar-btn-note').die();this.container.find('.sidebar-btn-delete').die();this.container.find('.sidebar-btn-maximize').die();this.container.find('.sidebar-btn-listview').die();this.container.find('.sidebar-btn-pictures').die();this.container.find('.sidebar-btn-optimize').die();this.container.find('.sidebar-btn-compare').die();this.container.find('.sidebar-btn-pictures').die();delete(this.placeholder);delete(this.container);delete(this.currentlistheader);delete(this.currentlistinfo);delete(this.currentlistcontentheader);delete(this.currentlistview);delete(this.listsview);delete(this.listcontainer);delete(this.navigationManager);delete(this.model);},
getRowIDfromElm:function(elm,use_data){if(use_data){var data=elm.data();return this.model.getRowID(data);}else{return elm.attr('id').substring(7+this.elmPrefix.length);}
},
getItemfromElm:function(elm){var row_id=elm.attr('id').substring(7+this.elmPrefix.length);return this.model.getItemFromRowID(row_id);},
getselectedItems:function(elm){var _this=this;var items=[];var curlist=this.getCurrentList();if(curlist.is_filtered)return curlist.filter_items;this.currentlistview.find('.sidebar-listrow-selected').each(function(index,elm){var data=_this.getItemfromElm($(elm));if(data.listitem_id)items.push(data.listitem_id);});return items;},
handleItemDropOnList:function(ui,items_data,dest_list_id,createHTML,callback){var _this=this;var items=[];if('multi' in items_data){items=items_data.multi;}else{items=[items_data];}
for(var i=0;i<items.length;i++){var item_data=items[i];if(item_data.list_id){var more_data=_this.model.getItem(item_data.list_id,item_data.item_type,item_data.item_id,true);var itemWasAdded=_this.model.moveItem(more_data,dest_list_id);more_data.list_id=dest_list_id;if(createHTML&&itemWasAdded){e=_this.createRow(more_data);e.appendTo(_this.currentlistview.find('.sidebar-listsortable'));}
if(item_data.elmid){$('#'+item_data.elmid).remove();}
if(i==items.length){if(createHTML){_this.model.redrawViews();if(_this.useScrollbar&&_this.currentlistview.data('jsp')){setTimeout(function(){_this.currentlistview.data('jsp').scrollToPercentY(100,true);},50);}
if(callback)callback();}else{if(callback)callback();}
}
}else{console.log('From page');_this.model._get_item_data_from_server(item_data.item_id,item_data.item_type,function(more_data){var itemWasAdded=_this.model.addItem(more_data,dest_list_id,0,true);more_data.list_id=dest_list_id;if(createHTML&&itemWasAdded){e=_this.createRow(more_data);e.appendTo(_this.currentlistview.find('.sidebar-listsortable'));}
if(i==items.length){if(createHTML){_this.model.redrawViews();if(_this.useScrollbar&&_this.currentlistview.data('jsp')){setTimeout(function(){_this.currentlistview.data('jsp').scrollToPercentY(100,true);},50);}
if(callback)callback();}else{if(callback)callback();}
}
});}
}
},
addItemsToCurrentList:function(items_data,callback){var _this=this;var dest_list_id=_this.current_list;_this.expand();if(dest_list_id>0){}else{if(dest_list_id=='MyLists'){user_msg(translate_string('You ned to select a list first','sidebar','Du måste välja en lista först'));}else{user_msg(translate_string('You cannot put something in this list','sidebar','Du kan inte lägga något i denna lista'));}
return;}
var items=[];if('multi' in items_data){items=items_data.multi;}else{items=[items_data];}
for(var i=0;i<items.length;i++){var item_data=items[i];_this.model._get_item_data_from_server(item_data.item_id,item_data.item_type,function(more_data){var itemWasAdded=_this.model.addItem(more_data,dest_list_id,0,i==items.length-1);more_data.list_id=dest_list_id;if(itemWasAdded){more_data.item_count=1;e=_this.createRow(more_data);e.appendTo(_this.currentlistview.find('.sidebar-listsortable'));}
if(i==items.length){_this.model.redrawViews();if(_this.useScrollbar&&_this.currentlistview.data('jsp')){setTimeout(function(){_this.currentlistview.data('jsp').scrollToPercentY(100,true);},50);}
if(callback)callback();}else{if(callback)callback();}
});}
},
setWorkingListToPrevious:function(){this.setWorkingList(this.previous_list);},
setWorkingList:function(new_id,stay_in_listsview){console.log('setWorkingList:',new_id);if(!new_id){console.log('setWorkingList: missing list_id');return;}
if(!(new_id in this.model.lists)){console.log('setWorkingList: unknown list id: ',new_id);return;}
var _this=this;_this.previous_list=_this.current_list;_this.current_list=new_id;if(_this.lists_expanded&&!stay_in_listsview){_this.lists_expanded=false;_this._disableListsDroppable();_this.listsview.animate({opacity:0
},300,function(){_this.listsview.css({display:'none'});_this._refreshWorkingList(true,function(){_this.currentlistview.css({display:'block'});_this.currentlistview.animate({opacity:1
},300,function(){var curlist=_this.getCurrentList();_this._setListViewDragDrop(true,_this.model.hasAddPermissions(curlist));console.log('setWorkingList finished');});});});}else{_this.currentlistview.animate({opacity:0
},300,function(){_this._refreshWorkingList(true,function(){_this.currentlistview.animate({opacity:1
},300,function(){setTimeout(function(){var curlist=_this.getCurrentList();_this._setListViewDragDrop(true,_this.model.hasAddPermissions(curlist));console.log('setWorkingList finished - !lists_expanded');},100);});});});}
},
_refreshWorkingList:function(set_active,callback){this.model.refreshList(this.current_list,1,(this.layout_mode=='maximized' ? 'extended':'standard'),set_active,callback);},
getCurrentList:function(){var list=this.model.lists[this.current_list];if(list){return list;}else{if(this.current_list=='MyLists'){return{list_id:'MyLists',
name:translate_string('My lists','sidebar','Mina listor'),
items_by_id:{},
items_by_ident:{},
current_sort_array:[],
role:'special'
};}else{console.log('Unable to get current list',this.current_list);return false;}
}
},
getFirstNormalList:function(){var list=this.getCurrentList();if(list){if(!this.model.isSpecialList(list)){return list;}
}
if(this.model.list_order.length){var list_id=this.model.list_order[0];list=this.model.lists[list_id];if(list){return list;}
}
return false;},
show_lists:function(fast,callback){console.log('show_lists');var _this=this;_this.lists_expanded=true;_this.current_list='MyLists';var speed=300;if(fast)speed=0;_this.currentlistview.animate({opacity:0
},speed,function(){_this.currentlistview.css({display:'none'});_this.listsview.css({display:'block'});_this.redraw();_this.listsview.animate({opacity:1
},speed,function(){_this._setListViewDragDrop(false);_this._makeListsDroppable();if(!fast){var params={'class':_this.model.ajax_class,
'method':'set_active_list',
'list_id':'MyLists'
};$.ajax({url:_this.model.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:5000,
dataType:'json',
success:function(results){if(!results.error){_this.expand();if(callback)callback();}else{dbg(results.message);if(callback)callback();}
}
});}
});});},
hide_lists:function(){console.log('hide_lists');var _this=this;_this.lists_expanded=false;_this._disableListsDroppable();_this.listsview.animate({opacity:0
},300,function(){_this.listsview.css({display:'none'});_this.redraw();_this.currentlistview.css({display:'block'});_this.currentlistview.animate({opacity:1
},300,function(){var curlist=_this.getCurrentList();_this._setListViewDragDrop(true,_this.model.hasAddPermissions(curlist));});});},
show_loading_mask:function(show){if(show){this.listcontainer.mask(translate_string('Loading','global','Laddar')+'...',100);}else{this.listcontainer.unmask();}
},
minimize:function(noevent){var _this=this;if(_this.layout_mode=='minimized'){return;}
_this.container.animate({width:'66'
},300,'easeOutExpo',function(){_this.placeholder.css({width:'66'
});$('#banner160_600').css({left:'1066px'
});$(window).scrollLeft(0);$('body').trigger('pj-layoutchange',[]);_this.layout_mode='minimized';_this.container.removeClass('sidebar-maximized');_this.container.removeClass('sidebar-expanded');_this.container.removeClass('sidebar-hidden');_this.container.addClass('sidebar-minimized');_this.redraw();_this.updateLayoutMode();_this._update_notification_bar();});},
hide:function(noevent){var _this=this;if(_this.layout_mode=='hidden'){return;}
_this.container.animate({width:'10'
},300,'easeOutExpo',function(){_this.placeholder.css({width:'10'
});$('#banner160_600').css({left:'1010px'
});$(window).scrollLeft(0);$('body').trigger('pj-layoutchange',[]);_this.layout_mode='hidden';_this.container.removeClass('sidebar-maximized');_this.container.removeClass('sidebar-expanded');_this.container.removeClass('sidebar-minimized');_this.container.addClass('sidebar-hidden');_this.redraw();_this.updateLayoutMode();_this._update_notification_bar();});},
expand:function(noevent){var _this=this;if(_this.layout_mode=='expanded'){return;}
$('#banner160_600').css({left:'1250px'
});_this.placeholder.css({width:'250'
});$('body').trigger('pj-layoutchange',[]);_this.container.animate({width:'250'
},300,'easeOutExpo',function(){_this.layout_mode='expanded';_this.container.removeClass('sidebar-maximized');_this.container.removeClass('sidebar-minimized');_this.container.removeClass('sidebar-hidden');_this.container.addClass('sidebar-expanded');_this.redraw();_this.updateLayoutMode();_this._update_notification_bar();});},
updateLayoutMode:function(){var _this=this;var params={'class':'User_Settings',
'method':'set',
sidebar_layout_mode:_this.layout_mode
}
$.ajax({url:_this.model.ajax_server_url,
data:obj2qstring(params),
type:'GET',
timeout:2000,
dataType:'json',
async:false,
success:function(results){if(!results.error){}else{dbg(results.message);}
}
});},
setViewMode:function(mode,noevent){console.log('setViewMode');var _this=this;_this.viewMode=mode;_this.container.removeClass('sidebar-list');_this.container.removeClass('sidebar-mixed');_this.container.removeClass('sidebar-pictures');_this.container.removeClass('sidebar-compare');_this.container.addClass('sidebar-'+mode);_this.redraw();},
maximize:function(viewMode,selectedItems){var _this=this;if(_this.current_list=='Watch'){window.location=translate_string('url, my alerts','global','/minsida.php?do=bevakningar');return;}
if(_this.current_list=='History'){alert(translate_string('This feature will be coming soon','sidebar','Denna funktion kommer snart!'));return;}
if(_this.current_list=='Invitation'){alert(translate_string('This feature will be coming soon','sidebar','Denna funktion kommer snart!'));return;}
if(_this.current_list=='Friend'){window.location=translate_string('url, my friends','global','/minsida.php?do=friends');return;}
if(_this.current_list=='MyLists'){window.location=translate_string('url, my lists','global','/minsida.php');return;}
switch(_this.layout_mode){case 'minimized':
case 'expanded':
_this.navigationManager.load_page_content(ITEM_TYPE_LIST,_this.current_list,{viewMode:viewMode,selectedItems:selectedItems},function(){});break;case 'maximized':
_this.navigationManager.load_page_content(ITEM_TYPE_LIST,_this.current_list,{viewMode:viewMode,selectedItems:selectedItems},function(){});break;}
},
getElmFromItemData:function(data){var elm=$('#row__'+this.elmPrefix+'__'+data.list_id+'_'+data.item_type+'_'+data.item_id);if(!elm.size()){elm=$('#row__'+this.elmPrefix+'__'+data.list_id+'_'+data.listitem_id);}
return elm;},
redraw:function(redraw_content,redraw_lists,quickOnly){var _this=this;var curlist=(this.current_list ? this.model.lists[this.current_list]:false);if(!curlist){if(this.current_list=='MyLists'){curlist={list_id:'MyLists',
name:translate_string('My lists','sidebar','Mina listor'),
items_by_id:{},
items_by_ident:{},
current_sort_array:[],
role:'special'
};}else{dbg('redraw: no current list found');curlist={list_id:0,
name:translate_string('No current list','sidebar','Ingen lista vald'),
items_by_id:{},
items_by_ident:{},
current_sort_array:[],
role:'none'
};}
};var options={isCurrent:true};this.redrawHeader(this.currentlistheader,curlist,options);this.redrawInfoBox(this.currentlistinfo,curlist,options);if(this.user_id||module_active('sidebar_session_lists')){this.redrawContentHeader(this.currentlistcontentheader,curlist,options);if(!quickOnly){switch(this.viewMode){case 'list':
case 'mixed':
case 'pictures':
if(redraw_content)this.currentlistview.find('.sidebar-listsortable').html('');for(var i=0;i<curlist.current_sort_array.length;i++){var sid=curlist.current_sort_array[i]+'';var data={};if(sid.indexOf('_')>0)data=curlist.items_by_ident[sid];else data=curlist.items_by_id[sid];if(!data){var a=sid.split('_');if(a[1])data={list_id:curlist.list_id,item_type:a[0],item_id:a[1]};else data={list_id:curlist.list_id,listitem_id:sid};}
var elm=this.getElmFromItemData(data);if(elm.size()){this.redrawRow(elm,data,curlist);}else{elm=this.createRow(data,curlist);elm.appendTo(this.currentlistview.find('.sidebar-listsortable'));}
}
if(curlist.removed_items){for(var i=0;i<curlist.removed_items.length;i++){var item_data=curlist.removed_items[i];console.log('redraw: found removed item:',item_data);var elm=this.getElmFromItemData(item_data);if(elm.size()){elm.remove();}
}
}
if(is_empty(curlist.items_by_ident)){var elm=this.currentlistview.find('.sidebar-drop-hint');if(!elm.size()){elm=this.createDropHint(curlist);elm.appendTo(this.currentlistview.find('.sidebar-listsortable'));}
}
}
}
}else{var elm=this.currentlistview.find('.sidebar-help-box');if(!elm.size()){elm=this.createHelpBox();elm.insertAfter(this.currentlistview.find('.sidebar-listsortable'));}else{this.redrawHelpBox(elm);}
}
if(_this.useScrollbar&&_this.currentlistview.data('jsp')){setTimeout(function(){_this.currentlistview.data('jsp').reinitialise();},10);}
if(!quickOnly){if(redraw_lists)this.listsview.find('.sidebar-listsortable').html('');var listcount=0;for(var i=0;i<this.model.list_order.length;i++){var list_id=this.model.list_order[i]+'';var data=this.model.lists[list_id];if(!data){console.log('Cant find list with id ',list_id);continue;}
if(this.model.isSpecialList(data))continue;listcount++;var elm=$('#row__'+this.elmPrefix+'__'+this.model.getRowID(data));if(elm.size()){this.redrawRow(elm,data);}else{elm=this.createRow(data);elm.appendTo(this.listsview.find('.sidebar-listsortable'));}
}
if(listcount==0){var elm=this.listsview.find('.sidebar-help-box');if(!elm.size()){elm=this.createHelpBox();elm.insertAfter(this.listsview.find('.sidebar-listsortable'));}else{this.redrawHelpBox(elm);}
}
if(_this.useScrollbar&&_this.listsview.data('jsp')){setTimeout(function(){_this.listsview.data('jsp').reinitialise();},10);}
}
},
comboboxOptions:{width:180,
imageBasePath:'/g/',
comboboxBtnImage:'sp.gif',
values:['custom','alpha','category_alpha','price','price_trend','rank','date_added','quantity'],
labels:['<img class="i14w i14w_edit" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, own','global','Egen sorteringsordning'),
'<img class="i14w i14w_alpha" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, alpha','global','Alfabetisk ordning'),
'<img class="i14w i14w_kat" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, category','global','Kategoriordning'),
'<img class="i14w i14w_price" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, price','global','Prisordning'),
'<img class="i14w i14w_price_trend" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, price trend','global','Pristrendordning'),
'<img class="i14w i14w_rank" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, rank','global','Rankordning'),
'<img class="i14w i14w_time" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, date added','global','Tilläggningsordning'),
'<img class="i14w i14w_plus" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('sort order, quantity','global','Antalordning')],
labelNull:''
},
refreshLayout:function(){if(this.layout_mode!='maximized'){var listsheight=0;var wh=$(window).height();var menu_height=parseInt(this.container.find('#'+this.elmPrefix+'-bottom-menu').outerHeight());var header_height=parseInt(this.container.find('#'+this.elmPrefix+'-currentlistheader').outerHeight());var available_height=parseInt(wh-menu_height-header_height);var container_height=parseInt(wh-menu_height);console.log('available_height',available_height);this.listcontainer.outerHeight(container_height);this.currentlistview.outerHeight(available_height);this.listsview.outerHeight(available_height);if(this.useScrollbar){if(this.currentlistview.data('jsp'))this.currentlistview.data('jsp').reinitialise();if(this.listsview.data('jsp'))this.listsview.data('jsp').reinitialise();}
}else{console.log('refreshLayout - maximized');}
},
redrawHeader:function(elm,data,options){var _this=this;elm.html(this._getHTMLforHeader(data,options));if(options.selected&&!elm.hasClass('sidebar-listheader-selected'))elm.switchClass('','sidebar-listheader-selected',200,function(){});if(!options.selected&&elm.hasClass('sidebar-listheader-selected'))elm.switchClass('sidebar-listheader-selected','',200,function(){});var op=this.comboboxOptions;op.value=data.current_sort;op.disabled=!_this.model.hasAddPermissions(data);op.onChange=function(val){_this.model.setSortOrder(data.list_id,val);}
elm.find('#'+this.id+'-sort').pjCombobox(op).disableSelection();},
createRow:function(data,listdata){var elm=$('<div>',{'id':'row__'+this.elmPrefix+'__'+this.model.getRowID(data),
'class':'sidebar-listrow sidebar-listrow-'+data.item_type
}).data({item_type:data.item_type,item_id:data.item_id,list_id:data.list_id,item_image:data.item_image}).html(this._getHTMLforRow(data,listdata));return elm;},
redrawRow:function(row,data,listdata){row.data({item_type:data.item_type,item_id:data.item_id,list_id:data.list_id,item_image:data.item_image}).html(this._getHTMLforRow(data,listdata));},
createDropHint:function(data){var elm=$('<div>',{'class':'sidebar-drop-hint'
}).html(this._getHTMLforDropHint(data));return elm;},
createHelpBox:function(data){var elm=$('<div>',{'class':'sidebar-help-box infobox infotext'
}).html(this._getHTMLforHelpBox(data));return elm;},
redrawHelpBox:function(elm,data,options){if(elm.size()){elm.html(this._getHTMLforHelpBox(data,options));}
},
redrawInfoBox:function(elm,data,options){if(elm.size()){elm.html(this._getHTMLforInfoBox(data,options));}
},
redrawContentHeader:function(elm,data,options){var _this=this;if(elm.size()){elm.html(this._getHTMLforContentHeader(data,options));var op=this.comboboxOptions;op.value=data.current_sort;op.disabled=!_this.model.hasAddPermissions(data);op.onChange=function(val){_this.model.setSortOrder(data.list_id,val);}
elm.find('#'+this.id+'-sort').pjCombobox(op).disableSelection();}
},
showPopup:function(data,top_pos,left_pos){var _this=this;if(!data)return;var elm=$('#'+this.elmPrefix+'-listpopup');left_pos=left_pos||0;left_pos+=$(window).scrollLeft();top_pos-=30;if(!elm.size()){elm=$('<div>',{'id':this.elmPrefix+'-listpopup'
}).css({position:'absolute','z-index':1000,left:left_pos+'px',top:top_pos+'px'}).html(this._getHTMLforPopup(data));elm.appendTo($('body'));}
elm.stop(true).html(this._getHTMLforPopup(data)).css('top',top_pos+'px').css('left',(left_pos+20)+'px').css('display','block');elm.animate({opacity:1,left:left_pos+'px'},300,'easeInOutBack',function(){elm.find('textarea').focus().select().focus(function(e){var elm=$(this);var text=elm.val();var defaulttext=elm.attr('defaulttext');if(!defaulttext)defaulttext=EMPTY_EDITABLE_DEFAULT_TEXT;if(text==defaulttext)elm.val('');elm.select();}).keydown(function(e){switch(e.keyCode){case 13:
e.preventDefault();elm.find('.sidebar-btn-edit').click();break;case 27:
e.preventDefault();_this.hidePopup();break;}
});});elm.data({item_type:data.item_type,item_id:data.item_id,list_id:data.list_id});},
showHintPopup:function(text,top_pos,left_pos){var _this=this;if(!text)return;var elm=$('#'+this.elmPrefix+'-hintpopup');left_pos=left_pos||0;left_pos+=$(window).scrollLeft();top_pos+=$(window).scrollTop();if(elm.size()){elm.stop(true).html(this._getHTMLforHintPopup(text)).css('top',top_pos+'px').css('left',(left_pos+20)+'px').css('display','block');elm.animate({opacity:1,left:left_pos+'px'},300,'easeInOutBack',function(){});}else{elm=$('<div>',{'id':this.elmPrefix+'-hintpopup'
}).css({position:'absolute','z-index':1000,left:left_pos+'px',top:top_pos+'px'}).html(this._getHTMLforHintPopup(text));elm.appendTo($('body'));elm.animate({opacity:1,left:left_pos+'px'},300,'easeInOutBack',function(){});}
elm.click(function(e){elm.remove();});},
hidePopup:function(){var elm=$('#'+this.elmPrefix+'-listpopup');elm.stop(true).animate({opacity:0},500,function(){elm.css('display','none');});},
showHoverTools:function(row_elm){var _this=this;clearTimeout(_this.popup_focus_timer);var curlist=this.getCurrentList();if(this.model.hasAddPermissions(curlist)||curlist.list_id=='MyLists'||curlist.list_id=='History'){var row_id=this.getRowIDfromElm(row_elm);var data=this.model.getItemFromRowID(row_id);if(!data)return;var elm=row_elm.find('.sidebar-hover-tools');if(elm.size()){_this.popup_focus_timer=setTimeout(function(){elm.stop(true).html(_this._getHTMLforHoverTools(data)).css('visibility','visible');elm.animate({opacity:1},300,'easeInOutBack',function(){});},(_this.layout_mode=='minimized'?1200:100));}
}
},
hideHoverTools:function(row_elm){var curlist=this.getCurrentList();var row_id=this.getRowIDfromElm(row_elm);var elm=row_elm.find('.sidebar-hover-tools');elm.stop(true).animate({opacity:0},500,function(){elm.css('visibility','visible').html('');});},
_getHTMLforHeader:function(data,options){options=options||{};var icon='list';switch(data.list_id){case 'Like':icon='star';break;case 'search':icon='search';break;case 'History':icon='time';break;case 'Watch':icon='pricealert';break;case 'Invitation':icon='news';break;case 'Friend':icon='friends';break;default:icon='list';break;}
var name=(data.name=='<<0000-0000>>' ? '['+translate_string('Unnamed list','sidebar','Namnlös lista')+']':data.name);if(!this.model.isSpecialList(data)&&!this.user_id)name=translate_string('My list','sidebar','Min lista');var html='';if(data){switch(this.layout_mode){case 'minimized':
html+='<div>';html+='<span title="'+translate_string('Hide','sidebar','Göm')+'" class="linkbutton_dark iconbutton sidebar-btn-hide" style="margin:0 0 0 -4px;"><img class="i14w i14w_close" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Expand','sidebar','Expandera')+' '+name+'" class="linkbutton_dark iconbutton sidebar-btn-expand" style="margin:0;"><img class="i14w i14w_show_sidebar" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</div>';html+='<div style="padding-top:2px;text-align:right;">';html+='<span title="'+translate_string('Open in fullscreen','sidebar','Öppna i fullskärm')+'" class="linkbutton_dark iconbutton sidebar-btn-maximize" style="margin:0;"><img class="i14w i14w_maximize" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</div>';break;case 'expanded':
html+='<div>';html+='<div style="float:right;text-align:right;width:56px;">'
html+='<span title="'+translate_string('Hide','sidebar','Göm')+'" class="linkbutton_dark iconbutton sidebar-btn-hide"><img class="i14w i14w_close" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Minimize','sidebar','Minimera')+'" class="linkbutton_dark iconbutton sidebar-btn-minimize"><img class="i14w i14w_hide_sidebar" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</div>';html+='<img class="i14w i14w_'+icon+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" style="vertical-align:3px;"><span class="sidebar-listheader-text '+(this.model.hasEditPermissions(data)&&!this.model.isSpecialList(data)?' inlineclickedit':'')+'" editfield="list.name" style="display:inline-block;padding-left:3px;width:150px;height:20px;white-space:nowrap;overflow:hidden;">'+editable_text(name)+'</span>';html+='<div style="clear:both"></div>';html+='</div>';html+='<div style="padding-top:4px;">';html+='<div style="float:right;text-align:right;width:80px;">';html+='<span class="buttongroup">';html+='<span title="'+translate_string('Compare the products in the list','sidebar','Jämför produkterna i listan')+'" class="linkbutton_dark iconbutton sidebar-btn-compare"><img class="i14w i14w_compare" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Calculate the lowest price','sidebar','Prisoptimera produkterna i listan')+'" class="linkbutton_dark iconbutton sidebar-btn-optimize"><img class="i14w i14w_prisjakt" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Open in fullscreen','sidebar','Öppna i fullskärm')+'" class="linkbutton_dark iconbutton sidebar-btn-maximize"><img class="i14w i14w_maximize" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</span>';html+='</div>';if(this.model.hasAddPermissions(data)){switch(data.visibility){case 'private':html+=' <img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Hidden list','sidebar','Osynlig lista')+'">';break;case 'semi-private':html+='';break;case 'public':html+=' <img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Published list','sidebar','Publicerad lista')+'">';break;case 'public-extended':html+=' <img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Publically editable list','sidebar','Kollektiv lista')+'">';break;}
if(data.collaborative==='1')html+=' <img class="i14w i14w_add_user" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Shared list','sidebar','Gemensam lista')+'">';if(!this.model.isSpecialList(data)){html+=' <span class="nbr_of">'+(data.item_count?data.item_count:0)+'</span>';if(data.total_sum)html+=' <span style="font-weight:normal">'+currency(data.total_sum)+'</span>';}
}
html+='</div>';html+='<div style="padding-top:12px;">';if(this.model.hasAddPermissions(data)&&!this.model.isSpecialList(data)){html+='<span class="combobox" id="'+this.id+'-sort"></span>';}
html+='</div>';break;case 'maximized':
html+='<div>';html+='<img class="i14w i14w_'+icon+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> <span class="sidebar-listheader-text'+(this.model.hasEditPermissions(data)?' inlineclickedit':'')+'" editfield="list.name" style="width:400px;">'+editable_text(name)+'</span>';html+='<div style="clear:both"></div>';html+='</div>';html+='<div style="padding-top:3px;">';html+='<div style="float:right; text-align:right;margin-top:-21px;">';if(0){html+='<span title="Ange som favorit" class="linkbutton_dark iconbutton sidebar-btn-star"><img class="i14w i14w_star" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="Dela" class="linkbutton_dark iconbutton sidebar-btn-share"><img class="i14w i14w_share" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';if(this.model.hasEditPermissions(data)){html+='<a title="Ta bort listan" class="linkbutton_dark iconbutton btn_red sidebar-btn-delete"><img class="i14w i14w_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>';}
}
html+='</div>';html+='</div>';break;}
}else{switch(this.layout_mode){case 'minimized':
html+='<span title="'+translate_string('Expand','sidebar','Expandera')+'" class="linkbutton_dark iconbutton sidebar-btn-expand"><img class="i14w i14w_show_sidebar" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';break;case 'expanded':
html+='<div>'
html+='<div style="float:right;">'
html+='<span title="'+translate_string('Minimize','sidebar','Minimera')+'" class="linkbutton_dark iconbutton sidebar-btn-minimize"><img class="i14w i14w_hide_sidebar" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</div>';html+='<img class="i14w i14w_list" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">Min lista';html+='<div style="clear:both"></div>';html+='</div>';html+='<div style="padding-top:0px;">';html+='<div style="float:right; text-align:right;">'
html+='</div>';html+='</div>';break;case 'maximized':
break;}
}
return html;},
_getHTMLforHelpBox:function(data,options){options=options||{};var html='';switch(this.layout_mode){case 'minimized':
if(this.user_id||module_active('sidebar_session_lists')){html+='<div onclick="sidebar.expand()" class="center" style="cursor:pointer">';html+='<img src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" class="i48 i48info" alt=""><p>'+translate_string('What is this?','sidebar','Vad är detta?')+'</p>';}else{html+='<div class="vertical-text" style="height:400px;width:400px;white-space:normal" onclick="sidebar.expand()">';html+='<h3>Du behöver vara inloggad för att använda din listpanel</h3><p>Då kan du skapa listor över produkter du gillar, äger, vill veta mer om, rekommdendera - ja, vad du vill! Dessa kan du sedan spara, jämföra, eller dela med andra.</p>';}
html+='</div>';break;case 'expanded':
if(this.user_id||module_active('sidebar_session_lists')){html+='<div onclick="sidebar.minimize()">';html+='<div style="padding: 0px; float: left; width: 50px;"><img src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" class="i48 i48info" alt=""></div><div style="float:left; width:160px;">'+translate_string('This is you list panel...','sidebar',
'<h2 style="margin-top:5px;">Detta är din listpanel</h2><p>Du kan skapa listor över produkter du gillar, äger, vill veta mer om, rekommdendera - ja, vad du vill! Dessa kan du sedan spara, jämföra, eller dela med andra. För att sätta igång, dra något hit!</p>');if(this.user_id){}else{html+=translate_string('To save lists permanently you need to be logged in.','sidebar',
'<p><span class="fet">OBS:</span> för att spara listor permanent, behöver du <a href="javascript:;" onclick="open_login()">logga in</a></p>');}
html+='</div><div style="clear: both;"></div>';}else{html+='<div onclick="open_login()">';html+='<h3>Du behöver vara inloggad för att använda din listpanel</h3><p>Då kan du skapa listor över produkter du gillar, äger, vill veta mer om, rekommdendera - ja, vad du vill! Dessa kan du sedan spara, jämföra, eller dela med andra.</p>';}
html+='</div>';break;}
return html;},
_getHTMLforDropHint:function(data,options){options=options||{};var html='';switch(this.layout_mode){case 'minimized':
html+='<div class="vertical-text" style="height:250px;width:250px;white-space:normal" onclick="open_login()">';break;case 'expanded':
html+='<div onclick="open_login()">';break;}
html+='<h3>'+translate_string('The list is empty','sidebar',
'Listan är tom')+'</h3>';if(this.model.hasAddPermissions(data)){html+='<p>'+translate_string('You can drag products, stores, etc to this list','sidebar',
'Du kan dra hit produkter, butiker, <br>och även filteringar i kategorier, som du sedan kan<br>spara, jämföra, eller dela med andra.')+'</p>';}
html+='</div>';return html;},
_getHTMLforInfoBox:function(data,options){options=options||{};var html='';html+='<div style="width:100px; height:100px;" class="image-hover-tools-trigger fl text-center"><div class="image-hover-tools"><a class="linkbutton_dark btn_large sidebar-btn-change-image"><img class="i14w i14w_image" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('Change image','sidebar',
'Byt<br>bild')+'</a></div>';html+=this._getHTMLforItemImage(data,80);html+='</div>';html+='<div style="width:280px;" class="fr">';html+='<div class="dark_box sidebar-box-subscribers">';html+='<div style="width:250px;height:120px;overflow:auto;">';if(data.users){for(var i=0;i<data.users.length;i++){var user=data.users[i];html+='<div class="fl text-center" style="width:65px;height:100px;overflow:hidden;"><a href="/minsida.php?a='+escape(user.name)+'" class="bildlink"><img src="/bilder/user_avatar.php?name='+escape(user.name)+'&amp;max=65" alt="avatar">';html+='<div class="fet">'+user.name+'</div>';html+='<div class="text_mindre" style="padding-top: 2px;">'+LIST_ROLE_NAMES[user.role]+'</div></a></div>';}
html+='<div style="width:110px;" class="fl text-center">';html+='<a class="linkbutton btn_large sidebar-btn-invite"><img class="i14w i14w_add_user" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('Invite additional editors','sidebar',
'Bjud in<br>fler <br>författare.')+'</a>';html+='</div>';html+='<div class="cl"></div>';}
html+='</div>';if(data.role=='editor'||!data.published){html+='<div class="text_mindre" style="padding-top: 2px;">'+translate_string('The list was created ','sidebar',
'Listan skapades för')+' '+prettyDate(data.created)+'</div>';}
if(data.published){html+='<div class="text_mindre" style="padding-top: 2px;">'+translate_string('The list was published ','sidebar',
'Listan publicerades för')+' '+prettyDate(data.published)+'</div>';}
html+='</div>';html+='</div>';html+='<div style="width:340px;" class="fr">';if(this.model.hasAddPermissions(data)&&this.user_id){html+='<div class="dark_box">';html+='<div><span class="buttongroup">';switch(data.visibility){case 'private':
html+='<div style="padding-bottom:10px;"><img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> <span class="text_rod fet">'+translate_string('Hidden list','sidebar','Osynlig lista')+'.</span> '+'</div>';if(this.model.hasEditPermissions(data)){html+='<div><span class="linkbutton btn_large btn_red_pressed sidebar-btn-private"><img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Hidden','sidebar','Osynlig<br>&nbsp;')+'</span>';html+='<a class="linkbutton btn_large btn_yellow sidebar-btn-semiprivate"><img class="i14w i14w_public" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make visible','sidebar','Gör<br>synlig')+'</a>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public"><img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Publish','sidebar','Publicera<br>&nbsp;')+'</a>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public-extended"><img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make publically editable','sidebar','Gör<br>kollektiv')+'</a></div>';}
break;case 'semi-private':
html+='<div style="padding-bottom:10px;"><img class="i14w i14w_public" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> <span class="text_gul fet">'+translate_string('Unpublished list','sidebar','Opublicerad lista')+'.</span> '+translate_string('People will be able to see it only if they know the URL','sidebar')+'</div>';if(this.model.hasEditPermissions(data)){html+='<div><a class="linkbutton btn_large btn_red sidebar-btn-private"><img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make invisible','sidebar','Gör<br>osynlig')+'</a>';html+='<span class="linkbutton btn_large btn_yellow_pressed sidebar-btn-semiprivate"><img class="i14w i14w_public" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Unpublished','sidebar','Opublicerad<br>&nbsp;')+'</span>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public"><img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Publish','sidebar','Publicera<br>&nbsp;')+'</a>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public-extended"><img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make publically editable','sidebar','Gör<br>kollektiv')+'</a></div>';}
break;case 'public':
html+='<div style="padding-bottom:10px;"><img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> <span class="text_gron fet">'+translate_string('Published list','sidebar','Publicerad lista')+'.</span> '+translate_string('The list is visible all across the site','sidebar')+'</div>';if(this.model.hasEditPermissions(data)){html+='<div><a class="linkbutton btn_large btn_red sidebar-btn-private"><img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make invisible','sidebar','Gör<br>osynlig')+'</a>';html+='<a class="linkbutton btn_large btn_yellow sidebar-btn-semiprivate"><img class="i14w i14w_public" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Un-publish','sidebar','Av-<br>publicera')+'</a>';html+='<span class="linkbutton btn_large btn_green_pressed sidebar-btn-public"><img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Published','sidebar','Publicerad<br>&nbsp;')+'</span>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public-extended"><img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make publically editable','sidebar','Gör<br>kollektiv')+'</a></div>';}
break;case 'public-extended':
html+='<div style="padding-bottom:10px;"><img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> <span class="text_gron fet">'+translate_string('Publically editable list','sidebar','Kollektiv lista')+'.</span> '+translate_string('Everyone can contribute to the list','sidebar')+'</div>';if(this.model.hasEditPermissions(data)){html+='<div><a class="linkbutton btn_large btn_red sidebar-btn-private"><img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Make invisible','sidebar','Gör<br>osynlig')+'</a>';html+='<a class="linkbutton btn_large btn_yellow sidebar-btn-semiprivate"><img class="i14w i14w_public" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Un-publish','sidebar','Av-<br>publicera')+'</a>';html+='<a class="linkbutton btn_large btn_green sidebar-btn-public"><img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Publish','sidebar','Publicera<br>&nbsp;')+'</a>';html+='<span class="linkbutton btn_large btn_green_pressed sidebar-btn-public-extended"><img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"><br>'+translate_string('button, Publically editable','sidebar','Kollektiv<br>&nbsp;')+'</span></div>';}
break;}
html+='</span></div>';html+='</div>';}
html+='</div>';html+='<div style="margin:10px;">';html+='<span class="'+(this.model.hasEditPermissions(data)?' inlineclickedit':'')+'" editfield="list.list_comment" defaulttext="'+translate_string('Click to add a list description','sidebar','Klicka för att lägga till en beskrivning av listan')+'" style="height:90px;width:230px;">';html+=editable_text(data.list_comment,(this.model.hasEditPermissions(data)?translate_string('Click to add a list description','sidebar','Klicka för att lägga till en beskrivning av listan'):translate_string('The list has no description','sidebar','Listan saknar beskrivning')));html+='</span>';html+='</div>';html+='<div>';if(data.comments_count){html+=''+translate_string('The list has got (x comments)','sidebar','Listan har fått')+' <a href="#comments">'+data.comments_count+' '+translate_string('comments','sidebar','kommentarer')+'.</a>';}else{if(data.visibility=='public'||data.visibility=='public-extended'){html+='<span class="svag">'+translate_string('The list has not yet got any','sidebar','Listan har ännu inte fått några')+' <a href="#comments">'+translate_string('comments','sidebar','kommentarer')+'</a>.</span>';}else{}
}
html+='</div>';html+='<div class="cl"></div>';return html;},
_getHTMLforContentHeader:function(data,options){options=options||{};var html='';html+='<div class="fr" style="padding-top:3px;text-align:right;padding-right:155px;">';if(0){html+='<a class="linkbutton btn_red sidebar-btn-delete" style="margin-right:40px;"><img class="i14w i14w_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+translate_string('Delete the list','sidebar','Ta bort listan')+'</a>';}
html+='<span class="fet">'+data.item_count+' '+translate_string('items','sidebar','rader')+'.</span>';if(data.is_filtered){data.viewMode=this.viewMode;html+=' <span class="highlight-box">'+data.items.length+' '+translate_string('items selected','sidebar','rader valda')+'. <a href="'+this._getURLforItem(data)+'" title="'+translate_string('Remove filter','sidebar','Ta bort filtret')+'" class="linkbutton btn_red iconbutton" style="padding:2px;"><img class="i14w i14w_close" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a></span>';}
if(data.total_sum)html+=' &nbsp; '+translate_string('Total price','sidebar','Prissumma')+': <span class="pris text_big fet">'+currency(data.total_sum)+'</span>';html+='</div>';html+='<div style="padding-top:3px;">';html+=translate_string('Show as','global','Visa som')+': <span class="buttongroup">';html+='<span title="'+translate_string('Show as list','global','Visa i listläge')+'" class="linkbutton iconbutton sidebar-btn-maximize'+(this.viewMode=='mixed'?' link_active':'')+'"><img class="i14b i14w_view_as_list" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Show as images','global','Visa i bildläge')+'" class="linkbutton iconbutton sidebar-btn-pictures'+(this.viewMode=='pictures'?' link_active':'')+'"><img class="i14b i14w_view_as_images" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Show as product comparison','global','Visa som produktjämförelse')+'" class="linkbutton iconbutton sidebar-btn-compare'+(this.viewMode=='compare'?' link_active':'')+'"><img class="i14b i14w_compare" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Calculate lowest price','global','Visa prisoptimering')+'" class="linkbutton iconbutton sidebar-btn-optimize'+(this.viewMode=='optimize'?' link_active':'')+'"><img class="i14b i14w_prisjakt" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</span>';html+='<span style="display:inline-block;margin-left:20px;">';html+='<span class="combobox" id="'+this.id+'-sort"></span>';html+='</span>';html+='<span style="display:inline-block;margin-left:12px;">';html+='<span title="'+translate_string('Save as custom sort','global','Spara som egen sortering')+'" class="linkbutton iconbutton sidebar-btn-save_custom_sort"><img class="i14w i14w_edit" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</span>';html+='</div>';return html;},
_getHTMLforToolbar:function(data,options){var html='';html+='<div style="float:right">'
html+='<span title="'+translate_string('Share the list','sidebar','Dela listan')+'" class="linkbutton iconbutton sidebar-btn-share"><img class="i14 i14_share" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<span title="'+translate_string('Delete the list','sidebar','Ta bort listan')+'" class="linkbutton iconbutton sidebar-btn-deletelist"><img class="i14 i14_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='</div>';return html;},
_getHTMLforRow:function(data,listdata){if(!data.item_type)return '';listdata=listdata||{};var html='';var name=(data.name=='<<0000-0000>>' ? '['+translate_string('Unnamed list','sidebar','Namnlös lista')+']':data.name);var cat=this._getHTMLforItemCategory(data);switch(this.layout_mode){case 'minimized':
html+='<div class="sidebar-row-inner'+(data.quantity==0||data.visibility=='private' ? ' sidebar-row-invisible':'')+'">';html+='<div style="width:55px; float:left;"><div class="sidebar-hover-tools"></div>'+this._getHTMLforItemImage(data)+'</div>';html+='</div>';break;case 'expanded':
html+='<div class="sidebar-row-inner'+(data.quantity==0||data.visibility=='private' ? ' sidebar-row-invisible':'')+'">';html+='<div style="width:55px; float:left;"><div class="sidebar-hover-tools"></div>'+this._getHTMLforItemImage(data)+'</div>';if(data.item_type!=ITEM_TYPE_LIST){html+='<a style="display:block; width:165px; float:left;" href="'+this._getURLforItem(data)+'">';}else{html+='<div style="width:165px; float:left;">';}
html+='<div style="float:right;width:22px;text-align:right;">';if(data.grade>0)html+='<div class="text_gul text_liten" style="line-height:10px;" title="'+translate_string('Weighted grade','global','Viktat medelbetyg')+': '+data.grade+' av 10">'+Math.round(data.grade)+'<img class="stars9s s9_'+Math.round(data.grade)+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></div>';if(data.my_grade)html+='<div class="text_bla text_liten" style="line-height:10px;" title="'+translate_string('Your grade','global','Ditt betyg')+': '+data.my_grade+' av 10">'+Math.round(data.my_grade)+'<img class="stars9sb s9_'+Math.round(data.my_grade)+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></div>';html+='</div>';html+='<div class="text_name" style="margin:4px 0 1px 0;height:23px;">';html+='<div style="float:right;width:20px;">'+(data.comment_text ? '<img class="i14y i14w_note sidebar-btn-note noclick" alt="" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">':'')+'</div>';html+=name;html+='</div>';if(data.item_type!=ITEM_TYPE_LIST){html+='<div class="text_pris" style="float:right;width:'+(data.price ? 70:60)+'px;">'+(data.quantity!==undefined&&data.quantity!==null&&data.quantity!=1?'<span class="nbr_of">'+data.quantity+'</span>&times;&nbsp;':'');if(data.price > 0){html+='<span class="pris">'+currency(data.price)+'</span>';}
html+='</div>';}
if(data.item_type==ITEM_TYPE_LIST){html+='<div style="float:right;width:'+(data.price ? 70:60)+'px;text-align:right;">';switch(data.visibility){case 'private':html+=' <img class="i14w i14w_private" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Hidden list','sidebar','Osynlig lista')+'">';break;case 'semi-private':html+='';break;case 'public':html+=' <img class="i14w i14w_global" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Published list','sidebar','Publicerad lista')+'">';break;case 'public-extended':html+=' <img class="i14w i14w_friends" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Public list','sidebar','Kollektiv lista')+'">';break;}
if(data.creator_id==this.user_id&&data.collaborative==='1')html+=' <img class="i14w i14w_add_user" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif" title="'+translate_string('Shared list','sidebar','Gemensam lista')+'">';html+='<span class="nbr_of">'+(data.item_count?data.item_count:0)+'</span>';html+='</div>';}
html+='<span style="display:inline-block;width:'+(data.price ? 90:100)+'px;height:14px;white-space:nowrap;overflow:hidden">'+cat+'</span>';if(data.item_type!=ITEM_TYPE_LIST){html+='</a>';}else{html+='</div>';}
html+='<div style="clear:both"></div>';html+='</div>';break;case 'maximized':
html+='<div class="sidebar-row-inner'+(data.quantity==0||data.visibility=='private' ? ' sidebar-row-invisible':'')+'">';switch(this.viewMode){case 'mixed':
html+='<div class="row-controls" style="float:right;padding-left:5px;">';html+='</div>';html+='<div style="width:55px; float:left;"><div class="sidebar-hover-tools"></div>'+this._getHTMLforItemImage(data)+'</div>';html+='<div style="width:480px; float:left; padding-top:5px;">';html+='<div class="text_name text_big" style="white-space:nowrap;"><a href="'+this._getURLforItem(data)+'">'+name+'</a></div>';html+='<div style="white-space:nowrap;overflow:hidden;">'+cat
if(data.core_properties){html+=' - '+data.core_properties;}
html+='</div>';html+='</div>';html+='<div style="width:160px; float:left;padding:2px 10px 0 10px;"><span class="'+(this.model.hasAddPermissions(listdata)?' inlineclickedit':'')+'" editfield="listitem.comment_text" style="height:40px;width:150px;white-space:normal;">'+(this.model.hasAddPermissions(listdata)?editable_text(data.comment_text):data.comment_text||'')+'</span></div>';html+='<div class="text_pris text_big" style="width:110px;padding-top:5px;">'+(data.quantity!=1?'<span class="nbr_of">'+data.quantity+'</span>&times;&nbsp;':'')+(data.price > 0 ? '<span class="pris fet">'+currency(data.price)+'</span>':(data.item_type==ITEM_TYPE_PRODUCT ? '<span class="svag">'+translate_string('No prices','global','Inga priser')+'</span>':'&nbsp;'));html+='<div>';if(data.grade > 0){html+='<a title="'+data.grade_count+' omdömen" rel="nofollow" href="'+translate_string('url, product','global','/produkt.php')+'?o='+data.item_id+'"><img alt="'+Math.round(data.grade)+'/10" class="stars10 s10_'+Math.round(data.grade)+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>';}
html+='</div>';html+='</div>';if(data.rank){html+='<div style="width:60px; float:left;padding:10px 0 0 12px;" title="'+data.rank+''+translate_string('th most popular product in the category','global',':e populäraste produkten i kategorin')+'">'+this._getHTMLforRank(data.rank)+' '+this._getHTMLforRankTrend(data.rank_trend)+'</div>';}else{html+='<div style="width:60px; float:left;">&nbsp;</div>';}
html+='<div style="width:90px; float:left;padding:5px 0 0 10px;">'+prettyDate(data.added_to_list)+'<br>'+translate_string('(added to list) by (user)','sidebar','av')+' '+data.username+'</div>';html+='<div style="clear:both"></div>';break;case 'pictures':
html+='<div class="sidebar-hover-tools"></div>'+this._getHTMLforItemImage(data,140);html+='<div style="float: left; width: 155px;">';html+='<div style="height:14px;overflow:hidden;">'+name+'</div>';html+=''+(data.quantity!==undefined&&data.quantity!==null&&data.quantity!=1?'<span class="nbr_of">'+data.quantity+'</span>&times;&nbsp;':'')+(data.price > 0 ? '<span class="pris">'+currency(data.price)+'</span>':'')+'<br>';if(data.grade > 0){html+='<a title="'+data.grade_count+' omdömen" rel="nofollow" href="'+translate_string('url, product','global','/produkt.php')+'?o='+data.item_id+'"><img alt="'+Math.round(data.grade)+'/10" class="stars10 s10_'+Math.round(data.grade)+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>';}
html+='</div>';break;}
html+='</div>';break;}
return html;},
_getHTMLforRank:function(rank,isGlobal){var textclass='';var faktor=(isGlobal ? 100:1);switch(true){case rank/faktor <=3:
textclass=5;break;case rank/faktor < 10:
textclass=4;break;case rank/faktor <=30:
textclass=3;break;case rank/faktor < 100:
textclass=2;break;case rank/faktor <=300:
textclass=1;break;default:
textclass=0;break;}
switch(true){case rank < 1000:
break;case rank < 1000000:
rank=Math.round(rank/1000)+'K';break;default:
rank=Math.round(rank/1000000)+'M';break;}
return('<span class="t_rank'+textclass+'">'+rank+'</span>');},
_getHTMLforRankTrend:function(rank_trend){var icon;switch(true){case rank_trend > 75:
icon='u3';break;case rank_trend > 20:
icon='u2';break;case rank_trend > 2:
icon='u1';break;case rank_trend >=-1:
case 0:
icon='nc';break;case rank_trend >=-10:
icon='d1';break;case rank_trend >=-25:
icon='d2';break;case rank_trend <-25:
icon='d3';break;default:
icon=false;break;}
return(icon ? '<img class="i14 i14pop_'+icon+'" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">':'');},
_getHTMLforItemCategory:function(data){var cat='';switch(data.item_type){case ITEM_TYPE_PRODUCT:
cat=''+data.category_name+'';break;case ITEM_TYPE_BOOK:
cat=translate_string('Book','global','Bok');break;case ITEM_TYPE_SEARCH:
cat=translate_string('Search','global','Sökning');+' <img class="i14 i14prod" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">&times;'+data.item_count;break;case ITEM_TYPE_STORE:
cat=translate_string('Store','global','Butik');break;case ITEM_TYPE_BRAND:
cat=translate_string('Brand','global','Tillverkare');break;case ITEM_TYPE_CATEGORY:
cat=translate_string('Category','global','Kategori')+' <img class="i14 i14prod" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">&times;'+data.item_count;break;case ITEM_TYPE_EXPERT:
cat=translate_string('Raw search','global','Expertsökning');' <img class="i14 i14prod" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">&times;'+data.item_count;break;case ITEM_TYPE_CUSTOM:
cat=translate_string('Custom list item','global','Extern länk');' <img class="i14 i14link" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">&times;'+data.item_count;break;case ITEM_TYPE_USER:
cat=translate_string('User','global','Användare');break;case ITEM_TYPE_LIST:
cat=translate_string('List','global','Lista');if(data.creator_id!=this.user_id)cat+=' '+translate_string('(list created) by','global','av')+' <b>'+data.creator_name+'</b>';if(data.creator_id==this.user_id&&data.visibility=='public')cat+=' ('+translate_string('published','sidebar','publicerad')+')';if(data.creator_id==this.user_id&&data.visibility=='public-extended')cat+=' ('+translate_string('publically editable','sidebar','kollektiv')+')';break;case ITEM_TYPE_LIST_INVITATION:
cat=translate_string('List invitation','global','Listinbjudan');cat+=' '+translate_string('(inivitation) from (user)','global','från')+' '+data.creator_name;break;}
return cat;},
_getHTMLforItemImage:function(data,size){var html='';if(!size)size=35;switch(data.item_type){case ITEM_TYPE_PRODUCT:
html+='<div class="imgprod'+size+'"><img src="'+translate_string('url, product image','global')+'/standard/'+size+'/'+data.item_id+'.jpg" alt=""></div>';break;default:
html+='<div class="imgprod'+size+'"><img src="/bilder/list_item_image.php?t='+data.item_type+''+(data.item_image ? '&i='+data.item_image:'&id='+data.item_id)+'&s='+size+'" alt=""></div>';break;}
return html;},
_getURLforItem:function(data,option,extra_str){var paramsstr='';var stateurl='';option=option||{};switch(data.item_type){case ITEM_TYPE_PRODUCT:
if(option.isOpinion)paramsstr='o='+data.item_id;else paramsstr='p='+data.item_id;stateurl=translate_string('url, product','global','/produkt.php');break;case ITEM_TYPE_BOOK:
if(option.isOpinion)paramsstr='o='+data.item_id;else paramsstr='p='+data.item_id;stateurl=translate_string('url, book','global','/bok.php');break;case ITEM_TYPE_SEARCH:
paramsstr='k=s'+data.item_id;stateurl=translate_string('url, category','global','/kategori.php');break;case ITEM_TYPE_CATEGORY:
paramsstr='k='+data.item_id;stateurl=translate_string('url, category','global','/kategori.php');break;case ITEM_TYPE_STORE:
paramsstr='f='+data.item_id;stateurl=translate_string('url, store','global','/butiksinfo.php');break;case ITEM_TYPE_BRAND:
paramsstr='t='+data.item_id;stateurl=translate_string('url, brand','global','/tillverkare.php');break;case ITEM_TYPE_USER:
paramsstr='a='+escape(data.name);stateurl=translate_string('url, my page','global','/minsida.php');break;case ITEM_TYPE_EXPERT:
paramsstr='s='+data.item_id;stateurl=translate_string('url, raw search','global','/expert.php');break;case ITEM_TYPE_CUSTOM:
if(data['misc_data_1']){return data['misc_data_1'];}else{return '';}
break;case ITEM_TYPE_LIST:
case ITEM_TYPE_LIST_INVITATION:
paramsstr='l='+data.item_id;if(data.viewMode){var v='l';switch(data.viewMode){case 'list':v='l';break;case 'mixed':v='m';break;case 'pictures':v='b';break;case 'compare':v='c';break;case 'optimize':v='o';break;}
paramsstr+='&view='+v;}
stateurl=translate_string('url, list','global','/list.php');break;default:
dbg('_getURLforItem: Unknown item type: '+data.item_type);return;break;}
if(data.list_id=='Watch')paramsstr+='&add_alert=1';if(extra_str){paramsstr+='&'+extra_str;}
return stateurl+'?'+paramsstr;},
_getHTMLforHoverTools:function(data){var curlist=this.getCurrentList();var html='';switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
html+='';if(this.layout_mode!='minimized'&&data.item_type!=ITEM_TYPE_STORE&&data.item_type!=ITEM_TYPE_BRAND&&data.item_type!=ITEM_TYPE_USER
&&!this.model.isSpecialList(curlist)){html+='<span title="'+translate_string('Increase quantity','sidebar','Öka antal')+'" class="linkbutton_dark iconbutton sidebar-btn-plus"><img class="i14w i14w_plus" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}else if(this.layout_mode=='minimized'){html+='<a title="'+translate_string('Open','sidebar','Öppna')+'" class="linkbutton_dark iconbutton sidebar-btn-open_item" href="'+this._getURLforItem(data)+'"><img class="i14w i14w_maximize" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a>';}else{html+='<span class="iconbutton_placeholder"></span>';}
if(!this.model.isSpecialList(curlist)){if(this.layout_mode=='expanded'){html+='<span title="'+translate_string('Edit comment','sidebar','Redigera kommentar')+'" class="linkbutton_dark iconbutton sidebar-btn-note"><img class="i14w i14w_note" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}else if(this.layout_mode=='minimized'){html+='<span title="Visa info" class="linkbutton_dark iconbutton sidebar-btn-note"><img class="i14w i14w_info" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}
}
html+='<br>';if(this.layout_mode!='minimized'&&data.item_type!=ITEM_TYPE_STORE&&data.item_type!=ITEM_TYPE_BRAND&&data.item_type!=ITEM_TYPE_USER
&&!this.model.isSpecialList(curlist)){html+='<span title="'+translate_string('Decrease quantity','sidebar','Minska antal')+'" class="linkbutton_dark iconbutton sidebar-btn-minus"><img class="i14w i14w_minus" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}else{html+='<span class="iconbutton_placeholder"></span>';}
html+='<span title="'+translate_string('Remove from list','sidebar','Ta bort från listan')+'" class="linkbutton_dark iconbutton btn_red sidebar-btn-delete"><img class="i14w i14w_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';break;case ITEM_TYPE_LIST:
if(data.list_id!='Invite'){html+='<span class="iconbutton_placeholder"></span>';html+='<span title="'+translate_string('Open','sidebar','Öppna')+'" class="linkbutton_dark iconbutton sidebar-btn-open_item" href="'+this._getURLforItem(data)+'"><img class="i14w i14w_maximize" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';html+='<br>';html+='<span class="iconbutton_placeholder"></span>';html+='<span title="'+translate_string('Remove list','sidebar','Ta bort listan')+'" class="linkbutton_dark iconbutton btn_red sidebar-btn-delete"><img class="i14w i14w_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}else{html+='<span class="iconbutton_placeholder"></span>';html+='<br>';html+='<span class="iconbutton_placeholder"></span>';html+='<span title="'+translate_string('Decline','sidebar','Tacka nej')+'" class="linkbutton_dark iconbutton btn_red sidebar-btn-delete"><img class="i14w i14w_close" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></span>';}
break;}
return html;},
_getHTMLforPopup:function(data){var curlist=this.getCurrentList();var name=(data.name=='<<0000-0000>>' ? '['+translate_string('Unnamed list','sidebar','Namnlös lista')+']':data.name);var html='';html='<div class="balloon-l"><img src="'+constants.STATIC_SERVER_IMG+'/g/style/balloons/arr_l.png" class="balloon-arrow-l" style="margin-top: 40px;"><div class="fl balloon-inner" style="width:350px;height:120px;">';switch(this.layout_mode){case 'minimized':
switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
case ITEM_TYPE_LIST:
html+='<div style="width:210px; float:left;">';html+='<div class="text_name" style="height:37px;"><div style="float:right;width:20px;">'+(data.comment_text ? '<img class="i14 i14news" alt="" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif">':'')+'</div>'+name+'</div>';if(data.price > 0){html+='<div class="text_pris" style="float:right;width:70px;text-align:right;"><span class="pris fet">'+currency(data.price)+'</span></div>';}
html+='<div style="margin-bottom:5px;">'+this._getHTMLforItemCategory(data)+'</div>';html+='<div style="margin-top:10px;"><a title="'+translate_string('Remove from list','sidebar','Ta bort från listan')+'" class="linkbutton btn_red sidebar-btn-delete"><img class="i14w i14w_delete" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"> '+(data.item_type==ITEM_TYPE_LIST ? translate_string('Remove list','sidebar','Ta bort listan'):translate_string('Remove from list','sidebar','Ta bort från listan'))+'</a></div>';html+='</div>';html+='<div style="width:110px; float:left;">'+this._getHTMLforItemImage(data,80)+'</div>';break;}
html+='<div style="clear:both"></div>';break;case 'expanded':
switch(data.item_type){case ITEM_TYPE_PRODUCT:
case ITEM_TYPE_BOOK:
case ITEM_TYPE_SEARCH:
case ITEM_TYPE_STORE:
case ITEM_TYPE_CATEGORY:
case ITEM_TYPE_BRAND:
case ITEM_TYPE_USER:
case ITEM_TYPE_EXPERT:
case ITEM_TYPE_CUSTOM:
case ITEM_TYPE_LIST:
html+='<div style="width:220px; float:left;">';html+='<textarea style="width:210px;height:62px;" editfield="listitem.comment_text" defaulttext="'+translate_string('Add a comment','sidebar','Skriv en kommentar här')+'">'+(data.comment_text ? data.comment_text:''+translate_string('Add a comment','sidebar','Skriv en kommentar här')+'')+'</textarea>';if(data.item_type!=ITEM_TYPE_STORE
&&!this.model.isSpecialList(curlist)){html+='<div>'+translate_string('Quantity','sidebar','Antal')+': <input type="text" name="quantity" value="'+data.quantity+'" style="width:30px;" editfield="listitem.quantity"> '+translate_string('pcs.','global','st.')+'</div>';}
html+='</div>';html+='<div style="width:40px; float:left;padding-top:30px;"><a title="'+translate_string('Save','global')+'" class="linkbutton btn_green sidebar-btn-edit" style="min-width:25px;padding:5px;"><img class="i14w i14w_edit" src="'+constants.STATIC_SERVER_IMG+'/g/sp.gif"></a></div>';break;}
html+='<div style="clear:both"></div>';break;}
html+='</div></div>';return html;},
_getHTMLforHintPopup:function(text){var html='';html='<div class="balloon-l"><img src="'+constants.STATIC_SERVER_IMG+'/g/style/balloons/arr_l.png" class="balloon-arrow-l" style="margin-top: 40px;"><div class="fl balloon-inner" style="width:350px;height:120px;">';html+=text;html+='<div style="padding:15px;"><a class="linkbutton">OK</a></div>';html+='</div></div>';return html;}
});var pjListViewPage=pjSidebar.extend({init:function(params){console.log('pjListViewPage init',params);this._super(params);},
_initSettings:function(params){this.layout_mode='maximized';this.id='listviewpage';this.mainDivID='listviewpage';this.elmPrefix='listviewpage';this.useScrollbar=false;}
});var pjListNavigationManager=Class.extend({init:function(params){dbg('pjListNavigationManager init');this.model=params.model;this.useHistoryAPI=false;var _this=this;if(this.useHistoryAPI){$(window).bind('popstate',function(ev){var e=ev.originalEvent;dbg("popstate location: "+document.location+", state: "+JSON.stringify(e.state));if(!e.state){window.history.go(0);return;}
var item_type=e.state.item_type;var item_id=e.state.item_id;_this._load_page_content(item_type,item_id,{},function(e){dbg('loaded page from history state');});});}
},
load_page_content:function(item_type,item_id,params,callback){this._load_page_content(item_type,item_id,params,function(e){if(callback)callback();});},
_load_page_content:function(item_type,item_id,params,callback){params=params||{};var paramsstr='';var stateurl='';var do_ajax_load=this.useHistoryAPI;;switch(item_type){case ITEM_TYPE_PRODUCT:
paramsstr='p='+item_id;stateurl=translate_string('url, product','global','/produkt.php');break;case ITEM_TYPE_BOOK:
paramsstr='p='+item_id;stateurl=translate_string('url, book','global','/bok.php');break;case ITEM_TYPE_SEARCH:
paramsstr='k=s'+item_id;stateurl=translate_string('url, category','global','/kategori.php');break;case ITEM_TYPE_CATEGORY:
paramsstr='k='+item_id;stateurl=translate_string('url, category','global','/kategori.php');break;case ITEM_TYPE_STORE:
paramsstr='f='+item_id;stateurl=translate_string('url, store','global','/butiksinfo.php');break;case ITEM_TYPE_BRAND:
paramsstr='t='+item_id;stateurl=translate_string('url, brand','global','/tillverkare.php');break;case ITEM_TYPE_USER:
paramsstr='a='+escape(params.name);stateurl=translate_string('url, my page','global','/minsida.php');break;case ITEM_TYPE_EXPERT:
paramsstr='s='+item_id;stateurl=translate_string('url, raw search','global','/expert.php');break;case ITEM_TYPE_LIST:
case ITEM_TYPE_LIST_INVITATION:
paramsstr='l='+item_id;if(params.viewMode){var v='l';switch(params.viewMode){case 'list':v='l';break;case 'mixed':v='m';break;case 'pictures':v='b';break;case 'compare':v='c';break;case 'optimize':v='o';break;}
paramsstr+='&view='+v;}
if(params.selectedItems&&params.selectedItems.length){paramsstr+='&items='+params.selectedItems.join(',');}
stateurl=translate_string('url, list','global','/list.php');break;default:
dbg('load_page_content: Unknown item type: '+item_type);return;break;}
if(params.extra_str){paramsstr+='&'+params.extra_str;}
var _this=this;if(do_ajax_load){$('#banner160_600').html('');smooth_scroll_to('contentdiv');$.ajax({url:'/ajax/ajax_load_page.php',
data:'item_type='+item_type+'&'+paramsstr,
type:'GET',
timeout:10000,
dataType:'json',
success:function(results){_this.model.detachView('listviewpage');$('#contentdiv').html(results.html);if(item_type==ITEM_TYPE_LIST){if(params.viewMode){switch(params.viewMode){case 'list':
case 'mixed':
case 'pictures':
case 'compare':
case 'optimize':
default:
_this.model.refreshList(item_id,1,'extended',false,function(){var listViewPage=new pjListViewPage({model:_this.model,current_list:item_id,viewMode:params.viewMode,user_id:_this.model.user_id});});break;}
}
}
var stateObj={item_type:item_type,item_id:item_id};if(window.history.pushState)window.history.pushState(stateObj,'Lista',stateurl+'?'+paramsstr);if(callback)callback({paramsstr:paramsstr,stateurl:stateurl});},
error:function(XMLHttpRequest,textStatus,errorThrown){alert(textStatus);}
});}else{window.location=stateurl+'?'+paramsstr;}
}
});var sidebar=false;$(function(){if(window.data.sidebar){var listsdata=window.data.sidebar;listsdata.user_id=window.data.user_id;var listManager=new pjListModel(listsdata);sidebar=new pjSidebar({model:listManager,current_list:window.data.sidebar.current_list,layout_mode:window.data.sidebar.layout_mode,user_id:window.data.user_id});if(window.data.list_data&&window.data.list_data.items){listManager.setListData(window.data.list_data);if($('#listviewpage').size()> 0){var listViewPage=new pjListViewPage({model:listManager,current_list:window.data.list_data.list_id,viewMode:window.data.view_mode,user_id:window.data.user_id});}
}
}else{console.log('window.data.sidebar is missing');}
});function array_filter_by_keys(array,keys){var ret={};for(var i=0;i<keys.length;i++){var key=keys[i];if(array[key])ret[key]=array[key];}
return ret;}
function editable_text(text,default_text){if(!default_text)default_text=EMPTY_EDITABLE_DEFAULT_TEXT;if(!text){text='<span class="svag">'+default_text+'</span>';}else{text=text.replace(/\n/g,'<br>');}
return text;}
(function($){$.fn.liveDraggable=function(opts){if(typeof Touch==='object'){this.draggable(opts).addTouch();}else{this.live("mousemove",function(){$(this).draggable(opts);});}
};$.fn.liveDroppable=function(opts){if(typeof Touch==='object'){this.droppable(opts);}else{this.live("mousemove",function(){$(this).droppable(opts);});}
};}(jQuery));(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this);
