/**
 * 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)
    {
      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('ul li');
        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);
        a.css('overflow', 'hidden').css('position', 'relative').css('text-align', 'left').css('height', typey + 'px').css('width', typex + 'px').css('margin', '0').css('padding', '0');
        a.find('ul').css('position', 'absolute').css('margin', '0').css('padding', '0').css('width', Number((col + 0) * typex) + 'px').css('height', 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>';
        });

        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;
          if (h.fade)
          {
            a.find('ul').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
          {
            a.find('ul').animate({ top: decal2 + 'px', left: decal + 'px' }, h.duration, effets);
          }
          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 != null) && (typeof (ObjInput) != "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('ul').css('top', decal2 + 'px').css('left', decal + 'px');
        }

      })
    }
    gogogo(this);
    return this;
  }
})(jQuery);

