/* =========================================================
// jquery.multimedia-portfolio.js
// Author: OpenStudio (Arnault PACHOT)
// Mail: apachot@openstudio.fr
// Web: http://www.openstudio.fr
// Copyright (c) 2007-2010 OpenStudio
// licence : GPL
========================================================= */
(function($) {

$.fn.multimedia_portfolio = function(options) {
	this.each(function(){ 	
		var mousewheelposition = 0;
		$(this).wrap("<div class='portfolio-container'></div>");
		$('.portfolio-container').prepend("<div class='portfolio-bg-left'>&nbsp;</div><div class='portfolio-bg-right'>&nbsp;</div>").append("<div class='masque-left'>&nbsp;</div><div class='masque-right'>&nbsp;</div><div class='portfolio-bg-bottom-left'>&nbsp;</div><div class='portfolio-bg-bottom-right'>&nbsp;</div>");
		var portfolio = $(this);
		var settings = { width: 700, baseDir: '.'
		};
		if(options) $.extend(settings, options);
		if (settings.width < 600) settings.width = 600;
		if (settings.width > 1400) settings.width = 1400;
		
		var def_element_width = parseInt(settings.width/5);
		var portfolio_height = parseInt(settings.width/5 + 50);
		var elements = $(this).children().not('.portfolio-loading-bar');
		var ratio_largeur = ((elements.length*def_element_width - settings.width) / (elements.length*def_element_width));
		$(".portfolio-container").css("width", settings.width+'px').css("height", portfolio_height+'px');
		for ( var i = 0; i < elements.length; i++ ) {
				$(elements[i]).css('width', def_element_width+'px');
				$(elements[i]).find('img').not('.portfolio-mp3, .portfolio-loading-bar').each(function(){
				    $(this).addClass('img-type');
				});
				var currenthref;
				if ((currenthref= $(elements[i]).children().filter("a").attr('href'))!= null) {
					if (currenthref.toLowerCase().indexOf('.flv') > 0){
						var currentwidth = $(elements[i]).find('img').attr('width'); if (currentwidth==null) currentwidth='320';
						var currentheight = $(elements[i]).find('img').attr('height'); if (currentheight==null) currentheight='240';
						var ratio = currentheight/portfolio_height;
						currentwidth = parseInt((currentwidth/ratio)*0.6);
						currentheight = parseInt((currentheight/ratio)*0.6);
						var currentstartimage = $(elements[i]).find('img').attr('src'); if (currentstartimage==null) currentstartimage='';
						var currenttitle = $(elements[i]).find('a').attr('title'); if (currenttitle==null) currenttitle='';
						$(elements[i]).empty().flash({swf: settings.baseDir+"/player_flv_maxi.swf", flashvars: {flv: currenthref, autoload: '0', showfullscreen: '1', bgcolor1: 'black', bgcolor2: 'black', startimage: currentstartimage}, scale: 'showall', width: currentwidth, height: currentheight, allowfullscreen: 'true'});
						$(elements[i]).find('object').addClass('flv-type').attr('title', currenttitle);
						
					} else if (currenthref.toLowerCase().indexOf('youtube') > 0) {
						var videoref=currenthref.substr(currenthref.lastIndexOf('v=')+2);
						var currentwidth = $(elements[i]).find('img').attr('width'); if (currentwidth==null) currentwidth='320';
						var currentheight = $(elements[i]).find('img').attr('height'); if (currentheight==null) currentheight='240';
						var ratio = currentheight/portfolio_height;
						currentwidth = parseInt((currentwidth/ratio)*0.6);
						currentheight = parseInt((currentheight/ratio)*0.6);
						var currentstartimage = $(elements[i]).find('img').attr('src'); if (currentstartimage==null) currentstartimage='';
						var currenttitle = $(elements[i]).find('a').attr('title'); if (currenttitle==null) currenttitle='';
						$(elements[i]).empty().flash({swf: 'http://www.youtube.com/v/'+videoref+'&amp;fs=1&amp;rel=0', width: currentwidth, height: currentheight, allowfullscreen: true});
						$(elements[i]).find('object').addClass('flv-type').attr('title', currenttitle);;
						
				      
					} else if (currenthref.toLowerCase().indexOf('.mp3') > 0) {
						var currentwidth = $(elements[i]).find('img').attr('width'); if (currentwidth==null) currentwidth='320';
						var currentheight = $(elements[i]).find('img').attr('height'); if (currentheight==null) currentheight='240';
						var ratio = currentheight/portfolio_height;
						currentwidth = parseInt((currentwidth/ratio)*0.6);
						currentheight = parseInt((currentheight/ratio)*0.6);
						var currentstartimage = $(elements[i]).find('img').attr('src'); if (currentstartimage==null) currentstartimage='';
						var currenttitle = $(elements[i]).find('a').attr('title'); if (currenttitle==null) currenttitle='';
						$(elements[i]).empty().flash({swf: settings.baseDir+"/player_mp3.swf?mp3="+currenthref, mp3: currenthref, width: 150, height: 40, wmode: 'transparent'});
						$(elements[i]).prepend("<img class='img-type' src='"+currentstartimage+"' width='"+currentwidth+"' height='"+currentheight+"' title='"+currenttitle+"'/></span>").find('object').addClass('mp3-type').attr('title', currenttitle).wrap("<span class='portfolio-mp3-container'></span>");
					}
				}			
				var currenttitle;
				if ((currenttitle = $(elements[i]).find('a, object').attr("title")) != null) {
					$(elements[i]).append("<div class='portfolio-title' style='font-size: "+((settings.width)/900)+"em;'>"+currenttitle+"</div>");
				}
				
				$(elements[i]).find('.img-type, .flv-type').each(function(){
					var oldwidth, oldheight; 
					if(((oldwidth = parseInt($(this).attr("width")))>0)&&((oldheight = parseInt($(this).attr("height")))>0)) {
						var ratio = oldheight/portfolio_height;
						$(this).attr("width", parseInt((oldwidth/ratio)*0.6));
						$(this).attr("height", parseInt((oldheight/ratio)*0.6));
						$(this).wrap("<div class='portfolio-object-border' style='width:"+parseInt(oldwidth/ratio)*0.6+"px;'></div>");
					} else {
						$(this).attr("width", "auto");
						$(this).attr("height", parseInt(portfolio_height*0.6));
						$(this).wrap("<div class='portfolio-object-border'></div>");
					}
				});
		};
		
		$(".portfolio-container").append("<div class='slider-container' style='left: 66px; width:"+parseInt(settings.width-137)+"px'></div>");
		$(".slider-container").append("<div class='ui-slider-1'></div>");
		$(".ui-slider-1").css('width', '100%').append("<div class='ui-slider-handle'></div>");
		$(".ui-slider-1").slider({steps: elements.length*3, start: 0, slide: function(e,ui) {
			      mousewheelposition = (elements.length * ui.value /100);
			      caroussel_portfolio_vue(mousewheelposition, portfolio, elements, settings.width, ratio_largeur);
		}});
		$(".portfolio-container").mousewheel(function(event, delta) {
						if (delta > 0) { mousewheelposition+=.3; if(mousewheelposition>elements.length) mousewheelposition = elements.length;
						} else if (delta < 0) { mousewheelposition-=.3; if(mousewheelposition<0) mousewheelposition = 0;
						}
						caroussel_portfolio_vue(mousewheelposition, portfolio, elements, settings.width, ratio_largeur);
						$('.ui-slider-handle').css('left', parseInt((mousewheelposition/elements.length)*100)+'%');
						return false;
		});
		
		$("a.fancybox").fancybox({'onStart' : function() {$('.flv-type').css('visibility','hidden');}, 'onClosed': function(){caroussel_portfolio_vue(mousewheelposition, portfolio, elements, settings.width, ratio_largeur);}});
		
	});
};

function caroussel_portfolio_vue(current, portfolio, elements, settingswidth, ratio_largeur) {
	 
	var decalage = parseInt(settingswidth/3*current*ratio_largeur);
	for ( var i = 0; i < elements.length; i++ ) {
		$(elements[i]).find('.flv-type, .mp3-type').each(function() {
			if ( (((i*settingswidth/3)-parseInt(decalage)) < 0) || (((i*settingswidth/3)-parseInt(decalage)) > (settingswidth-settingswidth/3 + 26)) ) {
				$(this).css('visibility','hidden');
			} else {
				$(this).css('visibility','visible');}
		});
	}
	
	portfolio.css('left',(-decalage)+'px');
};
})(jQuery);



