/**
 * wSlide 0.1 - http://www.webinventif.fr/wslide-plugin/
 * 
 * Rendez vos sites glissant !
 *
 * Copyright (c) 2008 Julien Chauvin (webinventif.fr)
 * Licensed under the Creative Commons License:
 * http://creativecommons.org/licenses/by/3.0/
 *
 * Date: 2008-01-27
 */
(function($){
    $.fn.wslide = function(h){
        h = jQuery.extend({
            width: 150,
			height: 150,
			pos: 1,
			col: 1,
			effect: 'swing',
			fade: false,
			horiz: false,
			autolink: true,
			duration: 1500
        }, h);
        function gogogo(g){
			// recuperation du nom du browser et de sa version
			var browserName=$.browser.name;
			var browserVersion=$.browser.version;
            g.each(function(i){
                var a = $(this);
				var uniqid = a.attr('id');
				if(uniqid == undefined){
					uniqid = 'wslide'+i;
				}
				$(this).wrap('<div class="wslide-wrap" id="'+uniqid+'-wrap"></div>');
				a = $('#'+uniqid+'-wrap');
				var b = a.find('div.slide div');
               	var effets = h.effect;
				if(jQuery.easing.easeInQuad == undefined && (effets!='swing' || effets!='normal')){
					effets = 'swing';
				}
				var typex = h.width;
				var typey = h.height;
				function resultante(prop){
					var tempcalc = prop;
					tempcalc = tempcalc.split('px');
					tempcalc = tempcalc[0];
					return Number(tempcalc);
				}
				var litypex = typex-(resultante(b.css('padding-left'))+resultante(b.css('padding-right')));
				var litypey = typey-(resultante(b.css('padding-top'))+resultante(b.css('padding-bottom')));
				var col = h.col;
				if(h.horiz){
					col =  Number(b.length+1);
				}
				var manip = '';
				var ligne = Math.ceil(Number(b.length)/col);
				var c = $('.wslide-wrap'); 
				c.css('float','left');
				
				var nbDivParent2 = $("div#parent2 div").size();
				var valeurPadding=0;
				// calcul de la valeur � ajouter concernant le padding (pour IE)
				for(var i=0;i<nbDivParent2;i++){
					valeurPadding+=i*28;
				}
				
				// ajustement de la hauteur du div parent2 en fonction du navigateur
				if(browserName=='msie') {
					var heightSlide=(Number(ligne*typey)+valeurPadding)+'px';
				}
				else {
					var heightSlide=Number(ligne*typey)+'px';
				}
				a.css('overflow','hidden').css('position','relative').css('text-align','left').css('height',typey+'px').css('width',typex+'px').css('padding-top','0px').css('padding-left','20px').css('padding-right','45px');/*.css('padding','0');*/
				a.find('div.slide').css('position','relative').css('margin-left','0').css('margin-top','0').css('margin-right','0').css('margin-bottom','0').css('padding','0').css('width',Number((col+0)*typex)+'px').css('height',heightSlide); /* Number(ligne*typey)+'px' */
				b.css('display','block').css('overflow','hidden').css('float','left').css('height',litypey+'px').css('width',litypex+'px');
				b.each(function (i) {
					var offset = a.offset();
					var thisoffset = $(this).offset();
					$(this).attr('id',uniqid+'-'+Number(i+1)).attr('rel', Number(thisoffset.left-offset.left)+':'+Number(thisoffset.top-offset.top));
					manip += ' <a href="#'+uniqid+'-'+Number(i+1)+'">'+Number(i+1)+'</a>';
				});
				
				$('#parent2-wrap').css('background-color','#FFFFFF').css('width','260px');
				
				if(browserName=='msie') {
					if(browserVersion=='7.0') {
						$('#parent2 div').css('margin-top','28px');
						$('#parent1 div').css('margin-top','45px').css('text-align','center');
						$('#parent2-wrap').css('height','425px');
						$('#parent1-wrap').css('height','411px');
					}
					else if(browserVersion=='8.0') {
						$('#parent2 div').css('margin-top','28px');
						$('#parent1 div').css('margin-top','45px').css('text-align','center');
						$('#parent2-wrap').css('height','378px');
						$('#parent1-wrap').css('height','378px');
					}
					else if(browserVersion=='6.0') {
						$('#parent2-wrap').css('width','300px');
						$('#parent2-wrap').css('height','425px');
						$('#parent1-wrap').css('height','417px');
						$('#parent2 div').css('margin-top','28px');
						$('#parent1 div').css('margin-top','80px').css('text-align','center');
					}
				}
				else {
					/* Styles pour la colonne de gauche (images) */
					$('#parent1-wrap').css('margin-top','0px').css('width','260px').css('z-index','2').css('text-align','center');
					$('#parent2-wrap').css('width','245px');
					$('.slide').css('width','265px')
					var nb = $('div#parent1').size();
					for(var count=1;count<=nb;count++){
						$('div#parent1-'+count).css('padding-top','80px');
					}
					
					/* Styles pour la colonne de droite (texte) */
					var nb2= $('div#parent2').size();
					for(var count=1;count<=nb2;count++){
						$('div#parent2-'+count).css('padding-top','28px');
					}
				}
				
				if(typeof h.autolink == 'boolean'){
					if(h.autolink){
						a.after('<div class="wslide-menu" id="'+uniqid+'-menu">'+manip+'</div>');
					}
				}else if (typeof h.autolink == 'string'){
					if($('#'+h.autolink).length){
						$('#'+h.autolink).html(manip);
					}else{
						a.after('<div id="#'+h.autolink+'">'+manip+'</div>');
					}
				}
				var start = '#'+uniqid+'-';
				var stoccurent = "";
				$('a[href*="'+start+'"]').click(function () { 
						$('a[href*="'+stoccurent+'"]').removeClass("wactive");
						$(this).addClass("wactive");
						var tri = $(this).attr('href');
						tri=tri.split('#');
						tri='#'+tri[1];
						stoccurent = tri;
						var decal = $(tri).attr('rel');
						decal = decal.split(':');
						var decal2 = decal[1];
						decal2 = -decal2;
						decal = decal[0];
						decal = -decal;
						var cb = $("div.wslide-wrap").size();
						if(h.fade){
 							for(var count=0;count<=cb;count++){
								$('#parent'+count+'-wrap').find('div.slide').animate({ opacity: 0 }, h.duration/2, effets, function(){$(this).css('top',decal2+'px').css('left',decal+'px');$(this).animate({ opacity: 1 }, h.duration/2, effets)} );
							}
						}else{
 							for(var count=0;count<=cb;count++){
								if(browserName=='msie') {
									$('#parent'+count+'-wrap').find('div.slide').animate({ top: (decal2-((-1)*28))+'px' }, h.duration, effets );
								}
								else {
									$('#parent'+count+'-wrap').find('div.slide').animate({ top: decal2+'px' }, h.duration, effets ); // 2*28 : pour que le div reste align� selon les padding donn�s || -decal pour garder une marge positive � gauche
								}
							}
						}
						return false;
				});
				if(h.pos <= 0){
					h.pos = 1;
				}
				$('a[href$="'+start+h.pos+'"]').addClass("wactive");
				var tri = $('a[href*="'+start+'"]:eq('+Number(h.pos-1)+')').attr('href');
				if(tri != "undefined" && tri != undefined){
					tri=tri.split('#');
					tri='#'+tri[1];
					stoccurent = tri;
					var decal = $(tri).attr('rel');
					decal = decal.split(':');
					var decal2 = decal[1];
					decal2 = -decal2;
					decal = decal[0];
					decal = -decal;
					//a.find('div.slide').css('top',decal2+'px').css('left',decal+'px');			
				}

            })
        }
        gogogo(this);
		return this;
    }
})(jQuery);