/**
 * 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:'easeInCirc',
            fade:false,
            horiz:false,
            autolink:true,
            duration:1500,
            selected_class:''
        },h);
        function gogogo(g){
            g.each(function(i){
                var a=$(this);
                var e=a.attr('id');
                if(e==undefined){
                    e='wslide'+i
                }
                $(this).wrap('<div class="wslide-wrap" id="'+e+'-wrap"></div>');
                a=$('#'+e+'-wrap');
//                var b=a.find('ul li');
                var b=a.find('div.f div.p');
                var f=h.effect;
                if(jQuery.easing.easeInQuad==undefined&&(f!='swing'||f!='normal')){
                    f='swing'
                }
                var g=h.width;
                var j=h.height;
                function resultante(a){
                    var b=a;
                    b=b.split('px');
                    b=b[0];
                    return Number(b)
                }
                var k=g-(resultante(b.css('padding-left'))+resultante(b.css('padding-right')));
                var l=j-(resultante(b.css('padding-top'))+resultante(b.css('padding-bottom')));
                var m=h.col;
                if(h.horiz){
                    m=Number(b.length+1)
                }
                var n='';
                var o=Math.ceil(Number(b.length)/m);
                a.css('overflow','hidden').css('position','relative').css('text-align','left').css('height',j+'px').css('width',g+'px').css('margin','0').css('padding','0');
//                a.find('ul').css('position','absolute').css('margin','0').css('padding','0').css('width',Number((m+0)*g)+'px').css('height',Number(o*j)+'px');
                a.find('div.f').css('position','absolute').css('margin','0').css('padding','0').css('width',Number((m+0)*g)+'px').css('height',Number(o*j)+'px');
                b.css('display','block').css('overflow','hidden').css('float','left').css('height',l+'px').css('width',k+'px');
                b.each(function(i){
                    var b=a.offset();
                    var c=$(this).offset();
                    $(this).attr('id',e+'-'+Number(i+1)).attr('rel',Number(c.left-b.left)+':'+Number(c.top-b.top));
                    n+=' <a href="#'+e+'-'+Number(i+1)+'">'+Number(i+1)+'</a>'
                });
                if(typeof h.autolink=='boolean'){
                    if(h.autolink){
                        a.after('<div class="wslide-menu" id="'+e+'-menu">'+n+'</div>')
                    }
                }else if(typeof h.autolink=='string'){
                    if($('#'+h.autolink).length){
                        $('#'+h.autolink).html(n)
                    }else{
                        a.after('<div id="#'+h.autolink+'">'+n+'</div>')
                    }
                }
                var p='#'+e+'-';
                var q="";
                $('a[href*="'+p+'"]').click(function(){
                    $('a[href*="'+q+'"]').removeClass(h.selected_class);
                    $(this).addClass(h.selected_class);
                    var b=$(this).attr('href');
                    b=b.split('#');
                    b='#'+b[1];
                    q=b;
                    var c=$(b).attr('rel');
                    c=c.split(':');
                    var d=c[1];
                    d=-d;
                    c=c[0];
                    c=-c;
                    if(h.fade){
//                        a.find('ul').animate({
                        a.find('div.f').animate({
                            opacity:0
                        },h.duration/2,f,function(){
                            $(this).css('top',d+'px').css('left',c+'px');
                            $(this).animate({
                                opacity:1
                            },h.duration/2,f)
                        })
                    }else{
//                        a.find('ul').animate({
                        a.find('div.f').animate({
                            top:d+'px',
                            left:c+'px'
                        },h.duration,f)
                    }
                    return false
                });
                if(h.pos<=0){
                    h.pos=1
                }
                $('a[href$="'+p+h.pos+'"]').addClass("wactive");
                var r=$('a[href*="'+p+'"]:eq('+Number(h.pos-1)+')').attr('href');
                r=r.split('#');
                r='#'+r[1];
                q=r;
                var s=$(r).attr('rel');
                s=s.split(':');
                var t=s[1];
                t=-t;
                s=s[0];
                s=-s;
                a.find('div.f').css('top',t+'px').css('left',s+'px')
            })
        }
        gogogo(this);
        return this
    }
})(jQuery);
