/*
 * @Auteur=Daweed
 * @Date=28/07/2007
 * 
 * ####################################################
//LES FONCTIONS ADDEVENT POUR GERER LES EVENEMENTS EST DANS L'AUTRE FICHIER domEvent.js
 * ####################################################
 * 
 * les bases du composant Graphique. 
 * LE CUSTUM BUTTON
 * 
 * 
 *
 */
 
/*
 * ####################################################
 *					Custum_Button
 * ####################################################
*/

function Custum_Button(Classe,Img_MouseOut,Img_MouseOver,Img_onPress){	
	var Buttons			=	getElementsByClassName(Classe, "*", document)	
	this.Img_MouseOver 	=	Img_MouseOver;
	this.Img_MouseOut 	=	Img_MouseOut
	this.Img_onPress 	=	Img_onPress
	for(var i=0; i<Buttons.length ; i++){
		this.monButton		=	Buttons[i];
		this.init(this.monButton,this.Img_MouseOver);
		
	}

	
	
}


Custum_Button.prototype={

	
	
	//fonction qui se lance au lancement
	init : function(MonBouton,Img){
					
		//les parametres de l'image qui remplace le bouton	
		var imgButton			=	document.createElement("img")
		imgButton.Img_MouseOut	=	this.Img_MouseOut;
		imgButton.Img_MouseOver	=	this.Img_MouseOver;
		imgButton.Img_onPress	=	this.Img_onPress;	
			
		imgButton.setAttribute("alt",MonBouton.value)
		imgButton.setAttribute("src",imgButton.Img_MouseOut)  
              
		//on attache les elements sur la scene avant le bouton	
		var Parent	=	MonBouton.parentNode		
		Parent.insertBefore(imgButton,MonBouton)
			
		//on masque le input Button
		MonBouton.style.display = "none"			
		
		
		//on implementer le gestionnaire d'evenements sur l'image nouvellement crée
		addEvent(imgButton, "mouseover", this.set_onMouseOver,false)	
		addEvent(imgButton, "mouseout", this.set_onMouseOut,false)	
		
		//si c'est un bouton submit			
		if(MonBouton.getAttribute("type")=="submit"){
				
			//on recupere le nom du noeud parent qui contient 
			//un attribut action ( donc un formulaire )			
			while(MonBouton.parentNode.getAttribute("action")==null){
				MonBouton=MonBouton.parentNode
			}
			formTOsubmit=MonBouton.parentNode	
						
			imgButton.formTOsubmit=	formTOsubmit	
			
			addEvent(imgButton, "mousedown", this.set_onSubmit,false)
		}else
		if(MonBouton.getAttribute("type")=="button"){	
			//on attache l'action du bouton a notre objet			
			imgButton.onclick	=	MonBouton.onclick	
				
			addEvent(imgButton, "mousedown", this.set_onClick,false)
		}
	},
	
	
	//action sur le mouseout
	set_onMouseOut : function(){
		var theCaller=((this.style)?this:event.srcElement);
		theCaller.setAttribute("src",theCaller.Img_MouseOut)

	} ,
	
	//action sur le mouse over
	set_onMouseOver : function(){	
		var theCaller=((this.style)?this:event.srcElement);
		theCaller.setAttribute("src",theCaller.Img_MouseOver)
	} ,
	
	//action sur le onclick pour les input button
	set_onClick : function(){
		var theCaller=((this.style)?this:event.srcElement);
		theCaller.setAttribute("src",theCaller.Img_onPress)
				
	} ,
	
	//action sur le onsubmit sur les submit type
	set_onSubmit : function(){	
		var theCaller=((this.style)?this:event.srcElement);		
		theCaller.setAttribute("src",theCaller.Img_onPress)				
		this.formTOsubmit.submit();
		
			
	}
	
	
}



//////////////////////////////////////////////////////////////////

function configInit(){		
	var MC_Button	=	new Custum_Button("custumButton","img/bouton.png","img/bouton_over.png","img/bouton.png");	
}

addLoadEvent(configInit); 



