(function($) {
	$(function(){
	// JavaScript Document
	
	// + Updates
	// + ------------------------------------------------------------
	// +
	// + 2009-04-24 => Modification appel ajout dans mes notes
	// + 2011-04-11 => Modification des fonctions mes_notes_build, mes_notes_add + ajout de l'appale à mes_notes_delete
	// +
	// + ------------------------------------------------------------
	
	function mes_notes_split () {
		var cookie_ary = Array();
		
		if ($.cookie('mesNotes') != null) {
			var sep1 = new RegExp("[|]+", "g");
			var sep2 = new RegExp("[;]+", "g");
			
			var cookie_ary = $.cookie('mesNotes').split(sep1);
			
			for (var i = 0; i < cookie_ary.length; i++) {
				cookie_ary[i] = cookie_ary[i].split(sep2);
			}
		}
		
		return cookie_ary;
	}
	
	function mes_notes_build () {
		var cookie_ary = mes_notes_split();
		var mes_notes_content = '';
		
		if (cookie_ary.length > 0) {
			mes_notes_content += '<ul>\n';
			mes_notes_content += '<li class="toolbar-sub-top"></li>\n';
			
			for (var i = 0; i < cookie_ary.length; i++) {
				mes_notes_content += '<li><a href="#" class="mes-notes-btn-del" title="' + i + '"></a><a href="' + cookie_ary[i][2] + '">' + cookie_ary[i][1].replace(/\\'/g, "'") + '</a></li>\n';
			}
			
			mes_notes_content += '</ul>\n';
		}
		
		$('#toolbar > ul > li.tool3 > ul').remove();
		$('#toolbar > ul > li.tool3').append(mes_notes_content);
		// No border-bottom on last li
		$('#toolbar > ul > li.tool3 > ul').find('li:last a').css ({ borderBottom: 'none' });
		
		// Added on 2011-04-12 : append number of notes
		$('#toolbar > ul > li.tool3 > span.toolbar-hover-btn > span.mes-notes-len').empty();
		$('#toolbar > ul > li.tool3 > span.toolbar-hover-btn > span.mes-notes-len').append('[ ' + cookie_ary.length + ' ]');
		
		// Added on 2011-04-11 : bind click on delete buttons
		$('.mes-notes-btn-del').click(function (ev) {
			ev.preventDefault();
			mes_notes_delete(this.title);
		});
	}
	
	
	function mes_notes_add (mes_notes_type, mes_notes_text) {
		var mes_notes_url = document.location.href;
		var cookie_value = '';
		var cookie_ary = mes_notes_split();
		var mes_notes_elt_exist = false;
		
		if (cookie_ary.length > 0) {
			for (var i = 0; i < cookie_ary.length; i++) {
				if (cookie_ary[i][0] == mes_notes_type && cookie_ary[i][1] == mes_notes_text && cookie_ary[i][2] == mes_notes_url) {
					alert('Déjà enregistré dans Mes notes');
					mes_notes_elt_exist = true;
					break;
				}
			}
			
			cookie_value = $.cookie('mesNotes') + '|'
		}
		
		if (!mes_notes_elt_exist) {
			cookie_value += mes_notes_type + ';' + mes_notes_text + ';' + mes_notes_url;
			$.cookie('mesNotes', cookie_value, { path: '/'});
			if ($('#toolbar > ul > li.tool3').length) { // Updted on 2009-04-24
				mes_notes_build();
			}
		}
		
		return false;
	}
	
	// Array Remove - By John Resig (MIT Licensed)
	Array.prototype.remove = function(from, to) {
	  var rest = this.slice((to || from) + 1 || this.length);
	  this.length = from < 0 ? this.length + from : from;
	  return this.push.apply(this, rest);
	}
	
	function mes_notes_delete (mes_notes_id) {
		var cookie_ary = mes_notes_split();
		var cookie_value = null;
		var tmp_ary = Array();
		
		cookie_ary.remove(mes_notes_id);
		
		if (cookie_ary.length) {
			for (var i = 0; i < cookie_ary.length; i++) {
				tmp_ary[i] = cookie_ary[i].join(";");
			}
			cookie_value = tmp_ary.join("|");
		}
		
		$.cookie('mesNotes', cookie_value, { path: '/'});
		mes_notes_build();
	}
	
	
			/* Document is ready
			---------------------------------------- */
			mes_notes_build();
			
			// Added on 2009-04-24
			// Updated on 2011-04-10
			$('.mes-notes-btn-add').click(function (ev) {
				ev.preventDefault();
				var mesNotesUrl = this.href;
				//var mesNotesType = mesNotesUrl.substring(mesNotesUrl.lastIndexOf('/')+1);
				var mesNotesType = $(this).attr('tabindex');
				var mesNotesText = this.title;
				
				mes_notes_add(mesNotesType,mesNotesText);
			});
		
	});
})(jQuery);
