//Encapsulamos para no tener que escirbir la palabra jquery en cada monmento
( function($) {
//Agregamos el plugin al objeto jquery.fn para que me duncione de manera iterante en cada elemento
    $.fn.ifayudaCTX = function(opciones_user){

        // Ponemos la variable de opciones antes de la iteración (each) para ahorrar recursos
		//Las variables de opcines es para definir opciones por defecto o por el usuario
		//En este script las funciones por defecto están en la funcion $.fn.ifayudaCTX.opc_default ( mas abajo )
        opc = $.extend( $.fn.ifayudaCTX.opc_default, opciones_user );
		
        // Devuelvo la lista de objetos jQuery
		//Generamos una iteracion por si el metodo no se aplica en un elemento sino en varios
       return this.each( function(){
          elem = $(this);
		  //saca el texto de la ayuda
		  texto = "<span>"+elem.attr(opc.atributo)+"</span>";
		  //Saca la posicion del elemento actual
		  pos_elem= elem.offset();
		  
		  //saca el ancho y alto del elemento actual
		  ancho_elem=elem.outerWidth();
		  alto_elem=elem.outerHeight();
		  //z-index del elemento actual
		  zindex_elem=elem.css('z-index');
		  
		  /*
		  habilitar este codigo si la imagen aparece y desaparece. puede ser por el zindex
		  if(zindex_elem=='auto'){
			  elem.css({'z-index':'11'});
			  zindex=10;
			  //alert("3");
			  }else{
				  //alert("1-> "+zindex_elem);
				  zindex=zindex_elem-1;
				  //alert("2 "+zindex);
				  }*/
				  zindex=900;
		  
		    
		   //verifico que no exista el div y si  no existe entonces lo creo
		   
		   if($("#ifayudaCTX001").length <= 0){
		   //Creao div que contiene el menu contextual
			var div = document.createElement('div');
			div.id = 'ifayudaCTX001';
			$('body').append(div);
			
		   }
			//fijamos la verdadera posicion de la ayuda.
			//por defecto la pondremos arriba 5px; y en todo el centro
			var pos_real = $.fn.ifayudaCTX.pos_ayuda(opc.orientacion, opc.dist_x, opc.dist_y);
			
			$('#ifayudaCTX001').css({'z-index': zindex, width: opc.ancho_ayuda+"px", height: opc.alto_ayuda+"px", position: "absolute", top: pos_real[1], left: pos_real[0] }); 
			//cargamos la clase
			$('#ifayudaCTX001').removeClass();
			$('#ifayudaCTX001').addClass(opc.clase);
			$('#ifayudaCTX001').html(texto);
			
			
				
				
				
			$('#ifayudaCTX001').show();
				   
		   
	  
	   });

    };

    $.fn.ifayudaCTX.opc_default = {
        clase : 'ifayudaCTX',alto_ayuda : 74, ancho_ayuda : 164, dist_x : 0, dist_y : 0, orientacion : 1, atributo:'title'
    };
	
	//Funcion para calcular la ubicacion real del menu contextual
	// recibe orientacion, si 1= arriba, 2 = izquierda, 3= abajo, 4=derecho
	
	  $.fn.ifayudaCTX.pos_ayuda = function(orientacion,dist_x,dist_y){
	
		switch (orientacion){
			case 1:
			//lo alineamos con la esquina superior izquierda del elemento por arriba
			dist_x=pos_elem.left+((ancho_elem/2)-(opc.ancho_ayuda/2))+dist_x;
			dist_y=(pos_elem.top-opc.alto_ayuda)+dist_y;
			break;

			case 2:
			//lo alineamos con la esquina superior izquierda del elemento por fuera en x ( horizontalmente )
			dist_x=(pos_elem.left-opc.ancho_ayuda)+dist_x;
			dist_y=pos_elem.top+dist_y+(((alto_elem/2-opc.alto_ayuda/2)));
			break;

			case 3:
			//lo alineamos con la esquina inferior izquierda del elemento por abajo
			dist_x=pos_elem.left+((ancho_elem/2)-(opc.ancho_ayuda/2))+dist_x;
			dist_y=pos_elem.top+alto_elem+dist_y;
			break;
			
			case 4:
			//lo alineamos con la esquina superior izquierda del elemento por fuera en x ( horizontalmente )
			dist_x=(pos_elem.left+ancho_elem)+dist_x;
			dist_y=pos_elem.top+dist_y+(((alto_elem/2-opc.alto_ayuda/2)));
			break;

			
			
			}
		
        var posicion= new Array(2);
		
		posicion[0]= dist_x;
		posicion[1]= dist_y;

		
        return posicion;
    };

	

})(jQuery);