/* flvbox - jQuery.small.flv.box - based on tinybox 0.4
 *
 * Copyright (c) 2007 Lisaraël (http://www.lisaserver.be) 
 * Licensed under the GPL (http://www.opensource.org/licenses/gpl-license.php) license.
 *
 * Version: 0.1-(tinybox-0.4-nec)
 *
 * Requires: jQuery 1.2+
 *
 * Compatibility: 
 *		WinXP: Firefox, Opera, MSIE 7
 *		MacOSX: Firefox, Safari, Opera
 *
 * WARNING : This is a "in-dev" version.
 * 
 */
 
 /*
 	UPDATE et UTILISATION
 	- Inclure le fichier jquery (flvbox)
 	- Inclure player.swf
 	- Inclure ceci:
								 	<script type="text/javascript">
											jQuery(document).ready(function() {
												jQuery("a[@rel=flvbox]").flvbox();
											});
									</script>
	-	Les liens ayant pour relation flvbox seront pris en compte:
										
										p.e:	<a href="CursBandeannonce.flv" rel="flvbox">launch box !</a>
 */
 
jQuery.fn.flvbox = function(settings) {
	settings = jQuery.extend({
		set: false,
		closeImg: "close.gif",
		loadingImg: "loading.gif",
		prevLabel: "&lt;- previous",
		nextLabel: "next -&gt;",
		closeLabel: "close",
		noTitleLabel: "Untitled Video",
		displayNav: false,
		pWidth: 400,
		pHeight: 350,
		pUrl: "http://www.cired2011.org/includes/jquery/flvbox/player.swf",
		vUrl: "http://www.cired2011.org/videos/"
	}, settings);
	settings.tinyboxCss = jQuery.extend({
		background: "white",
		position: "absolute",
		marginTop: 65,
		textAlign: "center",
		padding: 10,
		border: "3px solid #F2F2F2"
	}, settings.tinyboxCss);
	settings.closeButtonCss = jQuery.extend({
		position: "absolute",
		top: 0,
		right: 0,
		border: 0,
		paddingTop: 4	
	}, settings.closeButtonCss);
	settings.imgTitleCss = jQuery.extend({
		fontSize: "12px",
		marginTop: 5,
		marginBottom: 2,
		textAlign: "center", 
		padding: 0	
	}, settings.imgTitleCss);
	settings.paginationEltCss = jQuery.extend({
		marginLeft: 2,
		marginRight: 2,
		textDecoration: "none"
	}, settings.paginationEltCss);
	if( !jQuery("#tinybox").size() ) jQuery('<div id="tinybox"></div>').css(settings.tinyboxCss).appendTo("body").hide();
	settings.collection = new Array();
	this.each(function() {
		if( this.tagName == "A" && this.href != "" && this.href != "#" ) {
			settings.collection.push(this);
		}
	});
	settings.nbrImg = settings.collection.length;
	jQuery(settings.collection).click(function() {
		var maxImg = settings.nbrImg;
		jQuery("#actual_img").fadeOut("fast");
		jQuery("#tb_img_infos").fadeOut("fast");
		if( !settings.alreadyClicked ) {
			jQuery("#tinybox").css("width", "100px");
			jQuery("#tinybox").css("height", "100px");
			jQuery("#tinybox").css("left", (jQuery(window).width() - 50) / 2);
			jQuery("#tinybox").css("top", "20px");
			settings.alreadyClicked = true;
		}
		jQuery(document).scrollTop(0);
		jQuery("#tinybox").css(settings.tinyboxCss).fadeIn("fast");
		jQuery("#tinybox").fadeIn("fast");
		jQuery('<img id="tb_loader" src="'+settings.loadingImg+'" alt="chargement..." />').appendTo("#tinybox").css({position: "absolute", top: ((jQuery("#tinybox").height() - 16) / 2), left: ((jQuery("#tinybox").width() - 16) / 2)}).fadeIn("fast");
		var tb_img_infos = jQuery('<div id="tb_img_infos"></div>').css("position", "relative");
		jQuery('<a href="#" id="tb_close" title="'+settings.closeLabel+'">'+settings.closeLabel+'</a>').css(settings.closeButtonCss).appendTo( jQuery(tb_img_infos) );
		if( settings.displayNav ) {
			var tb_img_title = jQuery(this).attr("title") || settings.noTitleLabel;
			jQuery(tb_img_infos).append("<h4>"+tb_img_title+"</h4>");
			var tb_pagination = jQuery('<div id="tb_pagination"></div>');
			var actualPosition = jQuery(settings.collection).index( jQuery(this)[0] ) + 1;
			if( settings.set ) jQuery('<div><strong>'+settings.set+'</strong></div>').css(settings.paginationEltCss).appendTo( jQuery(tb_pagination) );
			if( actualPosition > 1 ) {
				var prev = jQuery(settings.collection).get( actualPosition-2 );
				jQuery('<a id="prev" href="#">'+settings.prevLabel+'</a> ').appendTo( jQuery(tb_pagination) ).css(settings.paginationEltCss).click(function() {
					jQuery(prev).triggerHandler("click");
				});
			}
			if( maxImg > 1 ) jQuery(' <strong>'+(actualPosition)+'/'+maxImg+'</strong> ').css(settings.paginationEltCss).appendTo( jQuery(tb_pagination) );
			if( actualPosition < maxImg ) {
				var next = jQuery(settings.collection).get( actualPosition );
				jQuery(' <a id="next" href="#">'+settings.nextLabel+'</a>').appendTo( jQuery(tb_pagination) ).css(settings.paginationEltCss).click(function() {
					jQuery(next).triggerHandler("click");
				});
			}
			jQuery(tb_img_infos).append( jQuery(tb_pagination) );
			settings.heightAdjust = 50;
		} else {
			jQuery("#tb_img_infos").css("padding", "5px 0 0");
			settings.heightAdjust = 15;
		}
		var vid_src = jQuery(this).attr("href");
		jQuery("#tb_loader").fadeOut("fast");
		jQuery("#tinybox").animate(
		    {
		    	top: 20,
		    	height: settings.pHeight + settings.heightAdjust
		    },
		    "normal"
		).animate(
		    {
		    	left: (jQuery(window).width() - settings.pWidth) / 2,
		    	width: settings.pWidth
		    },
		    "normal",
		    function() {
		    	jQuery("#tb_loader").fadeOut("fast");
		    	playerUrl = settings.pUrl;
		    	videoUrl = settings.vUrl;
					videoCode = '<object type="application/x-shockwave-flash" width="'+settings.pWidth+'" height="'+settings.pHeight+'" data="'+playerUrl+'"><param name="movie" value="'+playerUrl+'" /><param name="flashvars" value="file='+videoUrl+vid_src+'" /></object>';


		    	jQuery(this).empty().append(videoCode).append( jQuery(tb_img_infos) );
		    	jQuery("#tb_img_infos").children("h4").css(settings.imgTitleCss);
		    	jQuery("#tb_close").click(function() {
		    		jQuery("#tinybox").fadeOut("fast");
		    		jQuery("#flvboxP").remove();
		    	});
		    }
		);
		return false;
	});
};