

(function($) {

$.fn.acronym = function(settings) {

   // valeurs par défaut et réglages
    settings = jQuery.extend({
      idCherche: "editAccro",
      idTemps: "labTemps",
      cssMatch:{backgroundColor: "#ccc",fontWeight: "bold",color: "rgb(255,0,0)"},
      cssDontMatch:{backgroundColor: "#fff",fontWeight: "",color: "rgb(0,0,0)"}
    }, settings);

   //on stocke tous les éléments en entrée
   if (this.length){
	var tabEntry=this;
   }	

   //on ajoute à tous les éléments un attribut "name" égal au contenu texte de l'élément
   this.each(function() {
   	//jQuery(this).attr({ name: jQuery(this).text(), id: jQuery(this).text() });
	jQuery(this).attr({ id: jQuery(this).text() });
   });
   //on lie à l'élément d'id "settings.idCherche" la fonction "jQuery.acronymSearchUp"
   $('#'+settings.idCherche).bind('keyup', function(e) {
   	$('#'+settings.idTemps).text("");
   	if (e.which == 13) {
   		jQuery.acronymSearchUp(settings.idCherche);
   	}
   });
   
   jQuery.acronymSearchUp=function(idObj) {
	var fragmenText=$('input[@name='+idObj+']').val().toUpperCase();
	var s;
	var debut=new Date();
	for (i=0;i<tabEntry.length;i++) {
		s=jQuery(tabEntry[i]).text().toUpperCase();
		//if (s.indexOf(fragmenText)>=0) {
		if (s.indexOf(fragmenText)==0) {
			jQuery.acronymShow(jQuery(tabEntry[i]));
			if (fragmenText==s) {
				jQuery.acronymMatch(jQuery(tabEntry[i]));
			} else {
				jQuery.acronymDontMatch(jQuery(tabEntry[i]));
			}
		} else {
			jQuery.acronymHide(jQuery(tabEntry[i]));
		}
	}
	var fin=new Date();
	$('#'+settings.idTemps).text("Duree de la recherche "+(fin-debut)+" ms");
   };
   
   jQuery.acronymShow=function(idObj) {
	var p=idObj.parent();
	p.show();
   };

   jQuery.acronymHide=function(idObj) {
	var p=idObj.parent();
	//p.hide(300);
	p.hide();
   };
   jQuery.acronymMatch=function(idObj) {
	var p=idObj.parent();
	p.css(settings.cssMatch);
   };
   jQuery.acronymDontMatch=function(idObj) {
	var p=idObj.parent();
	p.css(settings.cssDontMatch);
   };   
   jQuery.acronymSearch=function() {
   	jQuery.acronymSearchUp(settings.idCherche);
   };

}

})(jQuery);

