(function($){ 
jQuery.fn.carrusel = function(settings){
	
		 settings = jQuery.extend({
					anchoCarrusel:151,
					anchoFrame: 150,
					velocidad: 1000,
					verTitulares: true
				}, settings);
 
    this.each( function(){
					
	var contenedor = jQuery(this);	

		(settings.verTitulares) ? altoFrame = 136 : altoFrame = 108;
		var numFramesTotal = contenedor.find('.frame-carrusel').length;
		var anchoFrame = settings.anchoFrame;

		//calcular el ancho real de cada frame implica conocer unos "extras" y eveluar para IE
			function paddingORmarginORBorder (obj){
				var posF = obj.indexOf("px");
				var valor = parseInt(obj.slice(0, posF));
				if (isNaN(valor) == true){ valor = 0; return valor; } else { return valor; };
			};
		
		var margenIzqFrame = contenedor.find('.frame-carrusel').css('marginLeft');
		var margenDchoFrame = contenedor.find('.frame-carrusel').css('marginRight');
		var paddingIzqFrame = contenedor.find('.frame-carrusel').css('paddingLeft');
		var paddingDchoFrame = contenedor.find('.frame-carrusel').css('paddingRight');
		var borderIzqFrame = contenedor.find('.frame-carrusel').css('borderLeftWidth');
		var borderDchoFrame = contenedor.find('.frame-carrusel').css('borderRightWidth');

		
		
		
		var posibleAnchoMargenes = paddingORmarginORBorder(margenIzqFrame) + paddingORmarginORBorder(margenDchoFrame);
		var posibleAnchoPaddings = paddingORmarginORBorder(paddingIzqFrame) + paddingORmarginORBorder(paddingDchoFrame);
		var posibleAnchoBordes = paddingORmarginORBorder(borderIzqFrame) + paddingORmarginORBorder(borderDchoFrame);
			
		var posiblesAnchosExtra = posibleAnchoMargenes + posibleAnchoPaddings + posibleAnchoBordes;
		

		
		contenedor.find('.screen-carrusel').css({height:altoFrame});
		
		contenedor.find('.frame-carrusel').css({width:anchoFrame, height:altoFrame});
		var anchoTotalFrame = anchoFrame + posiblesAnchosExtra;


		
		contenedor.css({width:settings.anchoCarrusel});					
		var anchoContenedor = contenedor.find('.screen-carrusel').width();

			
		var anchoContentFrames = anchoTotalFrame*numFramesTotal;
		contenedor.find('.content-frames-carrusel').css({width:anchoContentFrames});

		
		
		var numFramesxPagina = anchoContenedor/anchoTotalFrame;
		var numTotPaginas = Math.ceil(numFramesTotal/numFramesxPagina);
		
		
		var ini = 1;
		var fin = numTotPaginas;
		
		function shake (ini, fin) {
			contenedor.find('.content-frames-carrusel').stop();
			contenedor.find('.paginador-carrusel').html(ini + "/" + fin);
			calcMove = -1*((ini-1)*anchoContenedor);
			contenedor.find('.content-frames-carrusel').animate({'marginLeft': calcMove}, settings.velocidad);
		
			};
		
		shake (ini, fin);
		
		
		contenedor.find('.left-carrusel').click(function(){
				ini--;
				shake(ini,fin);
				if ( ini <= 0 ){ ini = fin; shake(ini,fin); };
			});
		
		contenedor.find('.right-carrusel').click(function(){
				ini++;
				shake(ini,fin);
				if ( ini > fin ){ ini = 1; shake(ini,fin); };
			});

        
        contenedor.find('.tipo0 a.enlacePhoto').prepend('<div class="tipoVideo"></div>');
        contenedor.find('.tipo1 a.enlacePhoto').prepend('<div class="tipoGaleria"></div>');
        if ( contenedor.find('.paginador-carrusel').text() == "1/1" ){ $(this).find('.controles-carrusel').css({'visibility':'hidden'}) }
        

    }); // cierre de: this.each( function(){...
}; // cierre del inicio: jQuery.fn.carrusel
})(jQuery);
