
var jproduits = {
	classSwitcher: function (selector) {	
		$(document).ready(function() {
			var b = {
				'a.galerie': {del: 'listeM'},
				'a.liste': {add: 'listeM'}
			};
		
			var targ = $(selector);
				
			for (i in b) {
				targ.find(i).bind('click', i, function(event) {
					targ.find('.on').removeClass('on');
					$(this).addClass('on');
					if (b[event.data].del)
						targ.removeClass(b[event.data].del);
					if (b[event.data].add)
						targ.addClass(b[event.data].add);
					return false;
				});
			}
		});
	},
	
	pagination: function (table, selector, nbp) {

		var main = null;		// Le conteneur principale de l'ensemble des éléments appartenant à l'instance du script.
		var page = 1;			// La page à afficher
		var tb = table;
		
	
		var init = function() {
			main = $(selector);
			main.find('select').change(onSelect);
			main = main.find(' > div').eq(1);

			var count = 0;
			for (i in table) {
				count = count + 1;
				table[i].nom = table[i].nom.toLowerCase();
				table[i].marque = table[i].marque.toLowerCase();
			}
			if (count > nbp) {
				main.find('.bugIe6').removeClass('bugIe6');
			}					
			sort(1);
			makePages();			
			draw();
		}
		
		var onSelect = function() {
			sort(this.selectedIndex);
			draw();
		}
		
		var sort = function(field) {
			switch (field) {
				case 1:
					table.sort(function(a,b) {return (a.prix - b.prix);});
					break;
				case 2:
					table.sort(function(a,b) {return (b.prix - a.prix);});
					break;
				case 3:
					table.sort(function(a,b) {
						a = a.marque;
						b = b.marque;
					
						var c = a.length;
						if (b.length > c)
							c = b.length;
								
						for (var i = 0; i < c; i++) {
							if (a.charAt(i) > b.charAt(i))
								return 1;
							else if (a.charAt(i) < b.charAt(i))
								return -1;
						}
						return 0;
					});
					break;
				default :
					table.sort(function(a,b) {
						a = a.nom;
						b = b.nom;
					
						var c = a.length;
						if (b.length > c)
							c = b.length;
								
						for (var i = 0; i < c; i++) {
							if (a.charAt(i) > b.charAt(i))
								return 1;
							else if (a.charAt(i) < b.charAt(i))
								return -1;
						}
						return 0;
					});
					break;
			}
		}

		var draw = function() {
			var p =  main.find('> div.produitM').removeClass('bugIe6').parent();
			for (var i = (nbp * (page - 1)); i < (nbp * page); i++) {
				if (!table[i])
					break;
				p.find('#prod-'+table[i].id).appendTo(p).addClass('bugIe6');
			}
		}
		
		var makePages = function() {
			var p = main.parent().find('> div.listePages').empty();
			nbr = Math.ceil((table.length - 1) / nbp);
			if (nbr > 1) {
				var ul = $('<ul></ul>').appendTo(p);				
				var node = $('<li class="precedent"><a href="#">&laquo; <span>Pr&eacute;c&egrave;dente</span></a></li>').appendTo(ul);	
				node.click(function() {
					if (page > 1) {
						removePageFocus();
						page = page - 1;
						draw();
						addPageFocus();
					}
					$('html, body').animate({
						scrollTop: 0,
						scrollLeft: 0
					}, "normal");
					return false;
				});

				
				node = $('<li><strong>1</strong></li>').appendTo(ul);
				node.click(onPageClick);

				for (i = 2; i <= nbr; i++) {
					node = $('<li><a href="#">'+i+'</a></li>').appendTo(ul);
					node.click(onPageClick);
				}
				
				node = $('<li class="suivant"><a href="#"><span>Suivant</span> &raquo;</a></li>').appendTo(ul);
				node.click(function() {
					if (page < nbr) {
						removePageFocus();
						page = page + 1;
						draw();
						addPageFocus();
					}
					$('html, body').animate({
						scrollTop: 0,
						scrollLeft: 0
					}, "normal");
					return false;
				});
			}
		}
		
		var onPageClick = function() {
			removePageFocus();
			page = parseInt($(this).text());
			draw();
			addPageFocus();
			$('html, body').animate({
				scrollTop: 0,
				scrollLeft: 0
			}, "normal");
			return false;
		}
		
		var removePageFocus = function() {
			node = $('<li><a href="#">'+page+'</a></li>').click(onPageClick);
			$('div.listePages').find('li:eq('+(page)+')').replaceWith(node);
		}
		
		var addPageFocus = function() {
			node = $('<li><strong>'+page+'</strong></li>').click(onPageClick);
			$('div.listePages').find('li:eq('+page+')').replaceWith(node);
		}

		$(document).ready(init);
	}
}

