/* Il y a 5 transitions différentes possibles :
1 : transition photocopie
2 : transition fondu
3 : transition pellicule
4 : transition simple door
5 : transition double door
*/

var modha_extensionsValides = ["png", "jpg", "jpeg", "gif", "bmp", "tif", "tiff"];
var modha_position = 0;
var modha_ajaxloader = "img/ajaxloader.gif"; 

	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_animation
	//  fonction principale appellée a chaque fois
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_animation = function(largeur, hauteur, tableau, couleur, dureeTransition, dureeEntre2Effets, effet){

		var divPrincipale = jQuery(this);
		var divPrincipaleId = divPrincipale.attr("id");
		//divPrincipale.html(""); //on vide la div pour le cas où elle contiendrait du texte
		divPrincipale.html("<img src='"+modha_ajaxloader+"' alt='Merci de patienter' class='loader' />"); //
		parametres = [couleur, dureeTransition, dureeEntre2Effets, effet];
		parametres = jQuery(parametres).modha_verif_parametres();
		couleur = parametres[0];
		dureeTransition = parametres[1];
		dureeEntre2Effets = parametres[2];
		effet = parametres[3];
		
		// Ajout de CSS possible ci-dessous
		divPrincipale.attr("style", "position: relative; width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-color:"+couleur+"; background-repeat:no-repeat;");
		divPrincipale.append("<div id='modha_wrapper_imgs'></div><div id='modha_div_generique'></div>"); //on ajoute 2 div a l'interieur
		if(effet == 5){divPrincipale.append("<div id='modha_div_generique2'></div>");}
		
		jQuery("#modha_wrapper_imgs").attr("style", "width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-repeat:no-repeat; top:0px; left:0px; position:relative; z-index:2;");
		jQuery("#modha_div_generique").attr("style", "width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-color:"+couleur+"; background-repeat:no-repeat; top:-"+hauteur+"px; left:0px; position:relative; z-index:1;");
		if(effet == 5){jQuery("#modha_div_generique2").attr("style", "width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-color:"+couleur+"; background-repeat:no-repeat; top:-"+(hauteur*2)+"px; left:"+largeur+"px; position:relative; z-index:3; display:none;");
		jQuery("#modha_div_generique").attr("style", "width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-color:"+couleur+"; background-repeat:no-repeat; top:-"+hauteur+"px; left:"+(largeur * (-1))+"px; position:relative; z-index:1;");
		}


		valeur = jQuery(tableau).modha_chargement_img(largeur, hauteur, divPrincipale);
		
		//alert(divPrincipale.attr("id")+'.modha_choix_animation("'+divPrincipale.attr("id")+'", "'+largeur+'", "'+hauteur+'", "'+effet+'", "'+couleur+'", "'+dureeTransition+'")');
		
		//var temp = "jQuery('#"+divPrincipaleId+"').modha_choix_animation('"+divPrincipaleId+"', '"+largeur+"', '"+hauteur+"', '"+effet+"', '"+couleur+"', '"+dureeTransition+"', '"+dureeEntre2Effets+"')";
		setTimeout("jQuery('#"+divPrincipaleId+"').modha_choix_animation('"+divPrincipaleId+"', '"+largeur+"', '"+hauteur+"', '"+effet+"', '"+couleur+"', '"+dureeTransition+"', '"+dureeEntre2Effets+"')", dureeEntre2Effets);
};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_chargement_img
	//  fonction de pré-chargement des images
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_chargement_img = function(largeur, hauteur, divPrincipale){
	tableau = jQuery(this);
	for(var i=0;i<tableau.length;i++){
		var extension = tableau[i].split(".");
		var dernierElement = extension.length - 1;
		extension[dernierElement] = extension[dernierElement].toLowerCase();
		
		if(jQuery.inArray(extension[dernierElement], modha_extensionsValides) >= 0){
		
		//jQuery("#modha_wrapper_imgs").append("<div id='modha_masque_img_"+i+"'><img src='"+tableau[i]+"' style='float:left;' id='img"+i+"' /></div>");
		jQuery("#modha_wrapper_imgs").append("<div id='modha_masque_img_"+i+"'></div>");
		jQuery("#modha_masque_img_"+i).attr("style", "position: relative; width:"+largeur+"px; height:"+hauteur+"px; overflow:hidden; background-repeat:no-repeat; float:left;");

		jQuery("#modha_masque_img_"+i).modha_image(tableau[i], largeur, hauteur);//création des images
		
		
		
		if(i==0){jQuery("#modha_wrapper_imgs div:last").attr("class","modha_active");}//classe "modha_active" sur la premiere image
			 }
		 else{
			delete tableau[i];//supprime l'image du tableau si elle ne correspond pas aux extensions valides
		 }
	}
	
	/*jQuery("#modha_wrapper_imgs img").ready(function(){
		jQuery("#modha_wrapper_imgs img").each(function(i){// redimensionne les images pour qu'elles soient au mieux adaptées
			jQuery(this).modha_opeImg(largeur, hauteur);
		});
	});*/
	
	return true;
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_opeImg
	//  fonction qui traite les images (hauteur / largeur par rapport aux surfaces)
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_opeImg = function(largeur, hauteur){
	var img = jQuery(this);
	

	if(jQuery.browser.safari){
		jQuery(this).modha_opeImgSafari(largeur, hauteur);//fonction pour safari et chrome
	}
	else{
		img.modha_opeImgMsie(largeur, hauteur);//fonction pour IE et firefox
	}
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_opeImgSafari
	//  fonction qui traite les images (hauteur / largeur par rapport aux surfaces)
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_opeImgSafari = function(largeur, hauteur, idDiv){
	var image = jQuery(this);
	var valeurs = ['0', '0'];

	
	
	image.load(function() {
		
		var largeurI = 0;
		var hauteurI = 0;
		var ratioI = 0;
	
		jQuery(this).removeAttr("width");
		jQuery(this).removeAttr("height");
		
		var oImg = new Image();
			

		oImg.src = image.attr("src");
		
		largeurI = oImg.width;
		hauteurI = oImg.height;
		
		//alert(" largeurI : "+largeurI+" hauteurI : "+ hauteurI);
		ratioI = parseFloat(parseFloat(largeurI) / parseFloat(hauteurI));
		var laDiv = jQuery("#" + image.parent().attr("id"));
	
		var largeurD = largeur;
		var hauteurD = hauteur;
		var ratioD = parseFloat(parseFloat(largeurD) / parseFloat(hauteurD));
		//alert("largeurD : "+largeurD+" hauteurD : "+ hauteurD);
		//alert("image: "+jQuery(img).attr("src")+" | "+"div: "+jQuery(laDiv).attr("id")+" | "+"largeur: "+largeurI+" | "+"hauteur: "+hauteurI);
		
		var s = parseFloat(parseFloat(largeurD) * parseFloat(hauteurD));
		
		hauteurI2 = parseFloat(parseFloat(largeurD) / parseFloat(ratioI));
		sl = parseFloat(parseFloat(hauteurI2) * parseFloat(largeurD));
	
		largeurI2 = parseFloat(parseFloat(hauteurD) * parseFloat(ratioI));
		sh = parseFloat(parseFloat(hauteurD) * parseFloat(largeurI2));
			
		//alert("hauteurI2: "+hauteurI2" | "+"largeurD: "+largeurD+" | "+"ratioI: "+ratioI+" | "+"hauteur: "+hauteurI);
		//alert("sl : " + sl +" sh : " + sh + " s : " + s);
				
		if(ratioD >= 1){
			if(sl >= s){
				oImg.width = largeurD;
				oImg.height = Math.round(hauteurI2);
				}
			else{
				oImg.width = Math.round(largeurI2);
				oImg.height = hauteurD;
				}
		}
		else{ //(ratioD < 1)
			if(sh >= s){
				oImg.width = Math.round(largeurI2);
				oImg.height = hauteurD;
				}
			else{
				oImg.width = largeurD;
				oImg.height = Math.round(hauteurI2);
				}
		}
			jQuery("#"+idDiv+" img").remove();
			jQuery("#"+idDiv).append(oImg);
	});
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_opeImgMsie et mozilla
	//  fonction qui traite les images (hauteur / largeur par rapport aux surfaces)
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_opeImgMsie = function(largeur, hauteur){
	var img = jQuery(this);
	
	//alert(img.height());
	//alert(img.width());
	
	//img.removeAttr("width");
	//img.removeAttr("height");
	
	var oImg = new Image();
	oImg.src = img.attr("src");
	
	var largeurI = oImg.width;
	var hauteurI = oImg.height;
	
	
	//alert("largeurI : " + largeurI);

	//alert("nom : "+img.attr("src")+" largeurI : "+largeurI+" hauteurI : "+ hauteurI);
	
	ratioI = parseFloat(parseFloat(largeurI) / parseFloat(hauteurI));
	var laDiv = jQuery("#" + img.parent().attr("id"));
	var largeurD = largeur;
	var hauteurD = hauteur;
	var ratioD = parseFloat(parseFloat(largeurD) / parseFloat(hauteurD));

	
	//alert("image: "+jQuery(img).attr("src")+" | "+"div: "+jQuery(laDiv).attr("id")+" | "+"largeur: "+largeurI+" | "+"hauteur: "+hauteurI);
	
	var s = parseFloat(parseFloat(largeurD) * parseFloat(hauteurD));
	var sl = 0;
	var sh = 0;
	
	hauteurI2 = parseFloat(parseFloat(largeurD) / parseFloat(ratioI));
	sl = parseFloat(parseFloat(hauteurI2) * parseFloat(largeurD));

	largeurI2 = parseFloat(parseFloat(hauteurD) * parseFloat(ratioI));
	sh = parseFloat(parseFloat(hauteurD) * parseFloat(largeurI2));
	
	//alert("hauteurI2: "+hauteurI2" | "+"largeurD: "+largeurD+" | "+"ratioI: "+ratioI+" | "+"hauteur: "+hauteurI);
	//alert(sl +" / "+ s);
	var valeurs = ['0', '0'];
	
	if(ratioD >= 1){
		if(sl >= s){
			valeurs[0] = largeurD;
			valeurs[1] = Math.round(hauteurI2);
			}
		else{
			valeurs[0] = Math.round(largeurI2);
			valeurs[1] = hauteurD;
			}
	}
	else{ //(ratioD < 1)
		if(sh >= s){
			//utilisee dans notre cas
			//alert("largeur : " + largeurI2);
			valeurs[0] = Math.round(largeurI2);
			valeurs[1] = hauteurD;
			}
		else{
			//alert("hauteur : "+hauteurI2);
			valeurs[0] = largeurD;
			valeurs[1] = Math.round(hauteurI2);
			}
	}
	
	return valeurs;
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_choix_animation
	//  fonction qui va rediriger vers la fonction correspondant a l'animation demandée
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_choix_animation = function(divId, largeur, hauteur, effet, couleur, dureeTransition, dureeEntre2Effets){
	div = jQuery("#"+divId);
	
	idCurrent = jQuery("#modha_wrapper_imgs .modha_active").attr("id");
	idNext = jQuery("#modha_wrapper_imgs .modha_active").next().attr("id");
	
	if(!idNext){//s'il n'y a plus d'images, on revient a la premiere
	jQuery("#"+idCurrent).removeAttr("class");
	idNext = jQuery("#modha_wrapper_imgs div:first").attr("id");	
	jQuery("#"+idNext).attr("class","modha_active");/// mettre la classe affiche a la premiere image

	}
	else{
	jQuery("#"+idCurrent).removeAttr("class");
	jQuery("#"+idNext).attr("class","modha_active");/// mettre la classe affiche a l'image suivante
	}

	if(effet == 1){
		jQuery(div).modha_photocopie(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext);
	}
	else if(effet == 2){
		jQuery(div).modha_fondu(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext);
	}
	else if(effet == 3){
		jQuery(div).modha_pellicule(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext);
	}
	else if(effet == 4){
		jQuery(div).modha_simple_door(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext);
	}
	else if(effet == 5){
		jQuery(div).modha_double_door(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext);
	}
	else{
		alert("switch default");
	}
	setTimeout("jQuery('#"+divId+"').modha_choix_animation('"+divId+"', '"+largeur+"', '"+hauteur+"', '"+effet+"', '"+couleur+"', '"+dureeTransition+"', '"+dureeEntre2Effets+"');",dureeEntre2Effets);

	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_photocopie
	//  fonction photocopie
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_photocopie = function(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext){
		var chemin = jQuery("#"+idCurrent+" img").attr("src");
		jQuery("#modha_div_generique img").remove();
		//jQuery("#modha_div_generique").append("<img src='"+chemin+"' alt='image' />");
		jQuery("#modha_div_generique").modha_image(chemin, largeur, hauteur);
		//jQuery("#modha_div_generique img").modha_opeImg(largeur,hauteur);

		jQuery("#modha_wrapper_imgs div").hide();
		jQuery("#modha_wrapper_imgs .modha_active").show("slide", { direction: "left" }, dureeTransition);
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_fondu
	//  fonction fondu
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_fondu = function(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext){
		var chemin = jQuery("#"+idCurrent+" img").attr("src");
		jQuery("#modha_div_generique img").remove();
		//jQuery("#modha_div_generique").append("<img src='"+chemin+"' alt='image' />");
		jQuery("#modha_div_generique").modha_image(chemin, largeur, hauteur);
		//jQuery("#modha_div_generique img").modha_opeImg(largeur,hauteur);
		jQuery("#modha_wrapper_imgs div").hide();
		// dureeTransition
		jQuery("#modha_wrapper_imgs .modha_active").fadeIn(dureeTransition);
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_pellicule
	//  fonction pellicule
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_pellicule = function(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext){
		var largDiv1=0;
		//jQuery("#modha_wrapper_imgs div").css("width", "");
		//jQuery("#modha_wrapper_imgs").css("background-color","#FF0000");
		jQuery("#modha_div_generique").hide();
		//jQuery("#modha_wrapper_imgs div").css("width", largeur+"px");
		jQuery("#modha_wrapper_imgs div").each(function(i){//on donne a la div principale la largeur de la somme de toutes les div contenant les images
				largDiv1 = parseInt(parseInt(largDiv1)+parseInt(largeur));
			});
		jQuery("#modha_wrapper_imgs").css("width",largDiv1+"px");
		if(jQuery("#modha_wrapper_imgs div:first").attr("id") == idCurrent){//si c'est la premiere div
			jQuery("#modha_wrapper_imgs").animate({left: "0"}, dureeTransition);
			modha_position = 0;
		}
		else{
			modha_position = parseFloat(parseFloat(modha_position) - parseFloat(largeur));
			jQuery("#modha_wrapper_imgs").animate({left: modha_position}, dureeTransition);
		}
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_simple_door
	//  fonction simple door
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_simple_door = function(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext){
		jQuery("#modha_div_generique").css("z-index", "4");
		jQuery("#modha_div_generique").css("background-color", couleur);
		jQuery("#modha_div_generique").show("slide", { direction: "left" }, dureeTransition, function(i){
			jQuery("#modha_wrapper_imgs div").hide();
			jQuery("#modha_wrapper_imgs .modha_active").show("fast", function(i){
			jQuery("#modha_div_generique").hide("slide", { direction: "left" }, dureeTransition);
			});
		});
	};



	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_double_door
	//  fonction double door
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_double_door = function(largeur, hauteur, couleur, dureeTransition, dureeEntre2Effets, idCurrent, idNext){
		jQuery("#modha_div_generique").animate({left: (parseFloat(largeur) * (-1))}, 0);
		jQuery("#modha_div_generique2").animate({left: parseFloat(largeur)}, 0);
		
		
		jQuery("#modha_div_generique").css("z-index", "4");
		jQuery("#modha_div_generique").css("background", couleur);
		jQuery("#modha_div_generique2").css("background", couleur);
		jQuery("#modha_div_generique2").css("display", "block");
		
		
		
		jQuery("#modha_div_generique").animate({left: ((parseFloat(largeur) * (-1)) + (parseFloat(largeur) / 2) + 10 )}, dureeTransition);
		jQuery("#modha_div_generique2").animate({left: (parseFloat(largeur) - (parseFloat(largeur) / 2) - 10 )}, dureeTransition, function(i){
				jQuery("#modha_wrapper_imgs div").hide();
				jQuery("#modha_wrapper_imgs .modha_active").show();
			});
		
		jQuery("#modha_div_generique").animate({left: (parseFloat(largeur) * (-1))}, dureeTransition);
		jQuery("#modha_div_generique2").animate({left: largeur}, dureeTransition);
	};

	//////////////////////////////////////////////////////////////////////////////////////////
	//  FONCTION : modha_verif_parametres
	//  fonction qui vérifie et retourne les paramètres de la fonction principale
	//////////////////////////////////////////////////////////////////////////////////////////
jQuery.fn.modha_verif_parametres = function(i){
	tableau = jQuery(this);
	if (tableau[0] == "" || tableau[0] == null){ tableau[0] = "#FFFFFF";}
	else if (tableau[0].substring(0,1) != "#"){tableau[0] = "#"+tableau[0];}
	if(tableau[0].length > 7){tableau[0] = tableau[0].substring(0,7);}
	if (isNaN(tableau[1]) || tableau[1] == "" || tableau[1] == null){ tableau[1] = 2000;}
	else { if(tableau[1] < 0){tableau[1] = (tableau[1] * (-1));}else{tableau[1] = tableau[1];}}
	if (isNaN(tableau[2]) || tableau[2] == "" || tableau[2] == null){ tableau[2] = 6000;}
	else { if(tableau[2] < 0){tableau[2] = (tableau[2] * (-1));}else{tableau[2] = tableau[2];}}
	if (isNaN(tableau[3]) || tableau[3] == "" || tableau[3] == null){ tableau[3] = 2;}
	else { if(tableau[3] < 0){tableau[3] = (tableau[3] * (-1));}else{tableau[3] = tableau[3];}}
	return tableau;
	};

jQuery.fn.modha_fleches = function(){};//fonction qui met les fleches pour le changement d'image

jQuery.fn.modha_texte = function(){};//fonction qui ajoute le texte pour chaque image carrousel

jQuery.fn.modha_vignettes = function(){};//fonction qui ajoute les vignettes pour le carrousel


jQuery.fn.modha_header = function(largeur, hauteur, tableau, couleur, dureeArivee, duree, effet) {
	
	return $(this);      
};

jQuery.fn.modha_image = function(src, largeurDiv, hauteurDiv){
	  var i = new Image();
	  i.src = src;
	  // insert
	  jQuery(".loader").remove();
	  this.append(i);//insere l'image dans la div
	  var val = "";
	  var idDiv = this.attr("id");
	  
	  if(idDiv == "modha_div_generique"){
		  	jQuery("#modha_div_generique img").each(function(i){
				if(jQuery(this).attr("src") == src){
					image = jQuery(this);
					
					if(jQuery.browser.safari){
						jQuery(this).modha_opeImgSafari(largeurDiv, hauteurDiv, idDiv);
					}
					else{
						val = jQuery(this).modha_opeImgMsie(largeurDiv, hauteurDiv);
					}
				}
			});
	  }
	  else{
	  
		  jQuery("#modha_wrapper_imgs div img").each(function(i){
				if(jQuery(this).attr("src") == src){
				
					if(jQuery.browser.safari || jQuery.browser.mozilla){
						jQuery(this).modha_opeImgSafari(largeurDiv, hauteurDiv, idDiv);
					}
					else{
						val = jQuery(this).modha_opeImgMsie(largeurDiv, hauteurDiv);
					}
				}
			});

	  }
	  
	  if(jQuery.browser.safari == false){
				i.width = val[0];
				i.height = val[1];			  
	  }
	  
} 
