var zIndexCourant=10000;
var scrollToInfoBulle=false;


(function($){
	$.fn.validChamp = function(params){
		var leReturn=true;
		this.each(function(){
			for(var type in params){
			var leType=typeof params[type];
				if(leType=="string"){
					var leMessage=params[type];
				}else{
					var leMessage=params[type]['message'];
				}
				switch(type){
					case "email":
						if(!$(this).val().isEmail()){
							$(this).contextbull(leMessage);
							leReturn = leReturn && false;
						}
						break;
					case "length":
						if($(this).val().trim().length<params[type]['length']){
							$(this).contextbull(leMessage);
							leReturn = leReturn && false;
						}
						break;
					case "equals":
						if($(this).val()!=$(params[type]['field']).val()){
							$(this).contextbull(leMessage);
							leReturn = leReturn && false;
						}
						break;
					case "text":
					default:
					//default:
						if(!$(this).val().trim()){
							$(this).contextbull(leMessage);
							leReturn = leReturn && false;
						}
						break;
				}
				if(!leReturn)
					break;
				//leReturn = leReturn && true;
			}
		});
		return leReturn;
	}

	$.fn.contextbull = function(texte, positionnement){

		var params = {
						texte: 'Merci de compléter ce champ',
						positionnement: 'SE'
		};
		if(texte){
			params.texte=texte;
		}
		if(positionnement){
			params.positionnement=positionnement;
		}

		this.each(function(){
			if(!positionnement){
				var positionnement="SE";
			}
			switch(positionnement){
				case "O":
					var offsetX=-10;
					var offsetY=10
					break;
				default:
					var offsetX=10;
					var offsetY=10;
					break;
			}
			zIndexCourant=zIndexCourant-1;
			// On regarde si l'élément considéré a un id :
			if(!$(this).attr('id')){
				var leId="id_" + Math.floor(Math.random()*10000000000);
				$(this).attr('id',leId);
			}else{
				var leId=$(this).attr('id');
			}
			var idInfobulle="infob" + leId;
			if(!$("#" + idInfobulle).size()){
				var offset = $(this).offset();
				if(!texte){
					var texte = $(this).attr("alt");
				}
				var x = offset.left;
				var y = offset.top;
				$("body").append('<p class="infoBulle" rel="' + leId + '" id="' + idInfobulle + '" style="z-index:' + (zIndexCourant-1) + ';"><a name="hash' + idInfobulle + '"></a>' + params.texte + '<span class="fermer"><img src="/medias/general/bouton_fermer.gif"></span></p>');
				$("#" + idInfobulle).css("top",(y+offsetY));
				$("#" + idInfobulle).css("left",(x+offsetX));
				$("#" + idInfobulle).fadeIn("slow");
				$("#" + idInfobulle).click(function(){
					$(this).fadeOut("fast",function(){
						$("#" + $(this).attr('rel')).focus();
						$(this).remove();
					});
				});
				$(this).focus(function(){
					$(this).ote_contextbull();
					$(this).unbind('click');
					$(this).removeClass("enAttente");
				});
			}else{
				$("#" + idInfobulle).fadeOut("fast",function(){
					$(this).fadeIn("slow");
				});

			}
			if(!scrollToInfoBulle){
				$.scrollTo("#" + idInfobulle);
				scrollToInfoBulle=true;
			}
		});
		return this;
	}




	$.fn.ote_contextbull = function(){
		this.each(function(){
			var leId=$(this).attr('id');
			var idInfobulle="infob" + leId;
			$("#" + idInfobulle).remove();
		});
		return this;
	}
	$.fn.ote_contextbulls = function(){
		$("[id^='infob']").remove();
	}

})(jQuery);
