/*--------------------------------
Plugin 0.1
Developped by Joachim Cupani
16/03/2009
---------------------------------*/
jQuery.fn.pngfix3c= function(options) {
		// Paramètres par défaut
		var TabValElementDefault = new Array();
		TabValElementDefault[0] = "img";
		TabValElementDefault[1] = "input";
		TabValElementDefault[2] = "div";

		var settings = {
        	TabId: "",							 // Tableau d'id a ne pas prendre en compte
        	TabValElement: TabValElementDefault  // Tableau d'élements
        };
        if(options) {
        	jQuery.extend(settings, options);
        }

		// Donnees
		var TabIdErrone = settings.TabId;
		var TabValElement = settings.TabValElement;

		
		// a faire uniquement pour IE6
		if ($.browser.msie) {
			if(parseInt($.browser.version) == 6) {
				
				// non affectation aux enfants
				if (isArray(TabIdErrone))
				{
					for (i=0; i <= TabIdErrone.length; i++)
					{
						// si non vide
						if(TabIdErrone[i] != "")
						{
							noPngFix($("#" + TabIdErrone[i]));
						}
					}
				}
				
				
				// On boucle sur tout les éléments
				for (i=0; i <= TabValElement.length; i++)
				{
					// si non vide
					if(TabValElement[i] != "")
					{
						// Pour tout les éléments
						$(TabValElement[i]).each(function() {
							// par défaut on peut faire la modification												  
							wecan = true;
							
							if ($(this).hasClass("nopngfix"))
							{
								wecan = false;
							}else{								
								// Si TabIdErrone est non vide et est un tableau 
								if (isArray(TabIdErrone))
								{
									// si l'ID fait partit des id à ne pas prendre en compte
									if (in_array($(this).attr("id"), TabIdErrone) || in_array($(this).attr("class"), TabIdErrone))
									{
										wecan = false;
									}
								}
							}
							
							// Si on peut faire la modification
							if (wecan)
							{
								// récupère la class de l'élément
								sclass = $(this).attr("class");
								// ajout de la class pngFix
								sclass = sclass + " pngfix";
								//affectation de la class
								$(this).attr("class",sclass);
							}
						});
					}
				}
			}
		}
		
	//------------------------------------------------------------------------------------
	// Fonction qui renvoie vrai si un élément donné est trouvé dans un tableau donné
	//------------------------------------------------------------------------------------
	function in_array( what, where ){	
		var a=false;	
		for(var i=0;i<where.length;i++){	  
			if(what == where[i]){	    
				a=true;        
				break;	  
			}	
		}	
		return a;
	}
	
	//------------------------------------------------------------------------------------
	// Fonction qui renvoie vrai si un élément donné est un tableau  
	//------------------------------------------------------------------------------------	
	function isArray(obj) {
	   if (obj.constructor.toString().indexOf("Array") == -1)
	      return false;
	   else
	      return true;
	}
	
	//------------------------------------------------------------------------------------
	// Fonction qui permet d'affecter la non affectation aux noeauds enfants
	//------------------------------------------------------------------------------------	
	function noPngFix(object)
	{
		object.children().each(function() {
			$(this).addClass("nopngfix");
			noPngFix($(this));
		});
	}
	
};
