/*********************************
 * PostData jQuery plugin
 * 
 * 
 *********************************/
 
 /*********************************
 * 
 * Permet la récupération du parmaètre de configuration de la méthode
 * 
 *********************************/
function getConfArgs(args, defaultConf)
{
  if( args.length >= 1 ) {
    return arguments[0];
  }
  return defaultConf;
}

/*********************************
 * Window
 * 
 * Simple fenêtre, centrée, adaptée à la fenêtre globale
 *********************************/
jQuery.fn.PDWindow = function () {
  var conf = getConfArgs(arguments, {});
  
  $(this).each (function () {
    var obj = $(this);
    
    var win = obj.attr('style', 'z-index: 10000; position: absolute;')
      .wrap("<div class='window' style='position: absolute; width: 100%; height: 100%; top: 0px; left: 0px;'></div>")
      .parent();
      
    win.prepend("<div class='modal' style='position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 9000;'></div>")
      ;
      
    $(window).resize(function () {
      var pwin = win.parent();
      var layerWidth = pwin.width();
      var overflowValue = pwin.css('overflow');
      pwin.css('overflow', 'hidden');
      
      var left = pwin.width() / 2 - obj.width() / 2;
      var top = $(window).height() / 2 - obj.height() / 2;
      if (top < 0)
        top = 0;
      var layerHeight = pwin.height();
      if ($(window).height() > layerHeight)
        layerHeight = $(window).height();
      
      obj.css('left', left)
        .css('top', top)
        .parent()
        .css('width', layerWidth)
        .css('height', layerHeight);
        
      
      pwin.css('overflow', overflowValue);
    });
    
    obj.find(".pdwin-close").click(
      function () {
        win.fadeOut();
      }
    );
    $(window).resize();
  });  
  return $(this);  
}

/*********************************
 * BackgroundImage
 * 
 * Image de fond adaptée
 *********************************/
var pdRatio = 0;
var pdSize = 0;
var pdDefautRatio = 0;

jQuery.fn.PDBackgroundImage = function () {
  var conf = getConfArgs(arguments, {});
  
  $(this).each (function () {
    var domElt = $(this);
    $(window).resize(
        function ()
        {
          pdDefautRatio = domElt.height() / domElt.width();
          if ($(window).height() > ($(window).width() * pdDefautRatio))
          {
            pdRatio = $(window).height() / domElt.height();
            pdSize = domElt.width();
            domElt.attr("height", $(window).height());
            domElt.attr("width", pdSize * pdRatio);
          }
          else
          {
            pdRatio = $(window).width() / domElt.width();
            pdSize = domElt.height();
            domElt.attr("width", $(window).width());
            domElt.attr("height", pdSize * pdRatio);
          }
        }
      );
  });
  return $(this); 
}

/*********************************
 * Pager
 * 
 * 
 *********************************/
jQuery.fn.PDPager = function(options) {
  jQuery(this).each(function(){
    var settings = jQuery.extend({
      selectedClass: 'pager-menu-item-selected'
    }, options);
    var domElt = jQuery(this);
    var domMenu = domElt.children().first();
    var domPages = domMenu.next().children("li");
    domMenu.children("li").click(
      function (e, obj) {
        domPages.hide();
        var index = domMenu.children().removeClass(settings.selectedClass).index($(this));
        jQuery(this).addClass(settings.selectedClass);
        var page = domPages.get(index);
        jQuery(page).show();
      }
    );
    
    jQuery(domMenu).children().first().click();
  });
  return $(this); 
}

/*********************************
 * Hummm
 * 
 * 
 *********************************/
var eltLinear = 0;
function setLinearBorder(domElement, size, opacityEnd, color, padding)
{
  eltLinear++;
  var opacity = opacityEnd - ((opacityEnd/size) + 0.01);
  var height = $(domElement).height();
  var width = $(domElement).width()+$(domElement).css('padding');
  
  $(domElement).prepend("<div id='linearBorder"+eltLinear+"'/>");
  $("#linearBorder"+eltLinear).wrap("<div id='linearBorderCont"+eltLinear+"' style='position: absolute;  width: 0; height: 0; padding: "+padding+"px; left: -"+padding+"px; top: -"+padding+"px;'/>");
  var elt = $("#linearBorder"+eltLinear); 
  var vposition = 0;
  var vpadding = 0;
  height+=padding;
  //width+=padding;
  for (var i = 1; i <= size; i++)
  {
    vposition = i+padding;
    $(elt).wrap('<div style="position: relative; height: '+height+'px; width: '+width+'px; top: -'+vposition+'px; left: -'+vposition+'px; padding: '+vposition+'px; z-index: -'+vposition+'; background: '+color+'; opacity: '+opacity+';" />');
  }
}

