/*--------------------------------------------------------------------------
 *  YOJA-WEB.COM : module carousel
 *  Copyright (c) Jamal Chaqouri, Yohann Fontaine, of yoja team (http://www.yoja-web.com)
 *  module carousel is a yoja-web work.
 *  For details, see the yoja web site: http://www.yoja-web.com
 *--------------------------------------------------------------------------*/

YOJA.module.carousel = {
	
	constants : {
		CAROUSEL_CLASS_DEFAULT : "jMyCarousel",
		CAROUSEL_WIDTH_DEFAULT : "810px",
		CAROUSEL_DEFAULT_PARAM : "defaultCarousel",
		CAROUSEL_CLASS	: ".yojaCarousel"
	},
	
	parameters : {
		activeDefault : true
	},
	
	
	buildDefault : function() { 
	    var context = $j("div.category_item div.center, div#favoriteHighlight div.center"); 
		var carousel;
		if(context.length>0){
			var images = YOJA.util.cleanStyle($j("a:has(img)", context)).clone(false);
			carousel = $j("<div></div>");     
			images.appendTo(carousel); 
			YOJA.util.wrapUlList(images);
		}
		return carousel;
    },
	
	initDefault : function(){
		var carousel = YOJA.module.carousel.buildDefault();
		if(carousel){
			carousel.attr("id","yojaCarousel").addClass(YOJA.module.carousel.constants.CAROUSEL_CLASS_DEFAULT);
			
			if($j("div.user_content .top_content").length==1){
				$j("div.user_content .top_content").prepend(carousel);
			} else {
				$j("div.user_content").prepend(carousel);
			}
			
			
			carousel.jMyCarousel(YOJA.module.carousel.getParameters(carousel)).reflecter();
		}
	},
	
	
	init : function(){
		
		if(YOJA.module.carousel.parameters.activeDefault){
			YOJA.module.carousel.initDefault();
		}
		
		
		$j(YOJA.module.carousel.constants.CAROUSEL_CLASS).each(function(){
			var currentCarousel = $j(this);
			var params = YOJA.module.carousel.getParameters(currentCarousel);					
			if(currentCarousel.hasClass('myImages')){
				currentCarousel.jMyCarousel(params);
			} else {
				var cloneYojaCarousel = YOJA.module.carousel.buildDefault().clone();
				currentCarousel.append(cloneYojaCarousel);
				cloneYojaCarousel.jMyCarousel(params);
			}
			
			if(currentCarousel.hasClass('reflection')){
				currentCarousel.reflecter(); 
			}
		
	   });
	},

   getParameters : function (carousel){
	   var parameters = YOJA.module.carousel.parameters[carousel.attr("id")] || [];
	   parameters.visible = parameters.visible || YOJA.module.carousel.getVisibility(carousel);
	   parameters.speed = parameters.speed || 500;
	   return parameters; 
	} ,
	
	getVisibility : function (carousel){
	  var visibility = YOJA.module.carousel.constants.CAROUSEL_WIDTH_DEFAULT;
	  var widthCarousel = carousel.css("width");
	  if(widthCarousel && widthCarousel!='auto' && widthCarousel<visibility){
		  visibility=widthCarousel;
	  }
	  return visibility;
	}
}

/*******************************************************************************
 * Charger dynamiquement les dépendances puis exécution du module
 ******************************************************************************/
YUI(
		{
			loadOptional :(typeof jQuery == 'undefined'),
			modules : {
				jquery : {
					name :"jquery",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/jquery/jquery.js"
				},
				yoja : {
					name :"yoja",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/yoja/yoja.core.js",
					optional :[ "jquery" ]
				},
				jMyCarouselCSS : {
					name :"jMyCarouselCSS",
					type :"css",
					fullpath :"http://yoja-web.com/javascript/assets/plugins/jMyCarousel/jMyCarousel.css",
					optional :[ "jquery" ]
				},
				uimagnifier : {
					name :"uimagnifier",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/magnifier/ui.magnifier.js",
					optional :[ "jquery" ]
				},
				jMyCarousel : {
					name :"jMyCarousel",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/jMyCarousel/jMyCarousel.js",
					requires : ["jMyCarouselCSS"],
					optional :[ "jquery" ]
				},
				reflection : {
					name :"reflection",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/reflection/reflection.js"					
				},
				uireflection : {
					name :"uireflection",
					type :"js",
					fullpath :"http://yoja-web.com/javascript/build/plugins/reflection/ui.reflection.js",
					requires : [ "reflection" , "uimagnifier"],
					optional :[ "jquery" ]					
				}
				
			}
		}).use('yoja', 'jMyCarousel', 'uireflection', function(Y) {
			YOJA.module.carousel.init();
});












