--- /dev/null
+/**
+item_picked et picker doivent seulement etre voisins
+
+<ul class='item_picked'>..</ul>
+...
+...
+<xx class='item_picker'>
+<div class='picker_bouton'>..</div>
+</xx>
+...
+**/
+jQuery(document).ready(function(){
+ var picked = jQuery('ul.item_picked');
+ if (picked.length) {
+ picked.find('>li').removeClass('last').find('li:last').addClass('last');
+ }
+});
+
+jQuery.fn.picker_toggle = function(){
+ var browser = jQuery(this).parents('.item_picker').find('.browser');
+ if (browser.is(':visible')){
+ if (jQuery.browser.msie)
+ browser.hide();
+ else
+ browser.slideUp();
+ jQuery('a.close',this).hide();
+ jQuery('a.edit',this).show();
+ }
+ else {
+ browser.show();
+ jQuery('a.close',this).show();
+ jQuery('a.edit',this).hide();
+ }
+}
+
+// stop animation du bloc cible pour faire patienter
+jQuery.fn.stopAnimeajax = function(end) {
+ this.children().css('opacity', 1.0);
+ this.find('.image_loading').html('');
+ return this; // don't break the chain
+}
+
+jQuery.fn.item_pick = function(id_item,name,title,type){
+ var picker = this.parents('.item_picker');
+ var picked = picker.siblings('ul.item_picked');
+ if (!picked.length) {
+ picker.before("<ul class='item_picked'></ul>");
+ picked = picker.siblings('ul.item_picked');
+ }
+ var select = picked.is('.select');
+ if (select)
+ picked.html('');
+ else
+ jQuery('li.on',picked).removeClass('on');
+ var sel=jQuery('input[value="'+id_item+'"]',picked);
+ if (sel.length==0){
+ picked.addClass('changing').animeajax();
+ // simulons de la latence pour l'oeil de l'utilisateur
+ setTimeout(function(){
+ jQuery('li:last',picked).removeClass('last');
+ picked.append('<li class="last on '+type+'">'
+ +'<input type="hidden" name="'+name+'[]" value="'+id_item+'"/>'
+ + title
+ +(select?"":" <a href='#' onclick='jQuery(this).item_unpick();return false;'>"
+ +"<img src='"+img_unpick+"' /></a>"
+ )
+ +'<span class="sep">, </span></li>').removeClass('changing').stopAnimeajax();
+ // masquer le selecteur apres un pick
+ picker.find('.picker_bouton').picker_toggle();
+ },300);
+ }
+ else
+ sel.parent().addClass('on');
+ return this; // don't break the chain
+}
+jQuery.fn.item_unpick = function(){
+ var picked = this.parents('ul.item_picked');
+ var me = this.parent();
+ jQuery(me).fadeOut('fast');
+ setTimeout(function(){
+ me.remove();
+ picked.find('>li').removeClass('last').find('li:last').addClass('last');
+ },400);
+}
\ No newline at end of file