/*
(function($) {
  Drupal.behaviors.clairdelune_hooks = {
    attach: function (context, settings) {
    }
  }
});
      $('#loading').hide();
      
      // Check if we are on the home page or not
      var ajax_page = window.location.href.split('#');
      var pause = false;
      var last_ajax_page = '';
      if (ajax_page.length > 1) {
        ajax_page = ajax_page[1];
        if (ajax_page.length == 0) {
          ajax_page = 'accueil';
        }
      }
      else {
        ajax_page = 'accueil';
      }
      if (ajax_page != 'accueil' && ajax_page.length > 0){
        ajax_get_content('/'+ ajax_page);
      }
      else {
        //adapt_bodyclasses('/accueil');
        adapt_submenus('/accueil');
      }
      
      
      convert_links();
      
      //Process background
      var bg_index = 0;
      var images = [];
      for (var i=0; i<$('#background-images div').length; i++) {
        images.push($('#background-images #bg-'+ i).html());
      }
      $('#wrapper').append('<div id="background-image-wrapper"></div>');
      $('#wrapper, #header').css('overflow', 'hidden').css('width', $(window).width());
      //$('#main').css('overflow', 'auto');//.css('width', $(window).width());
      $('#background-image-wrapper').css('top', 0).css('left', 0).css('overflow', 'hidden').css('position', 'absolute').css('z-index', '-1').css('width', $(window).width()).css('height', $(window).height());
      
      //preload_backgrounds();
      add_jsscroll();
    }
  }

  // Helper functions
  var timer;
  $.fn.wait = function(time, type) {
      time = time || 5000;
      type = type || "fx";
      return this.queue(type, function() {
          var self = this;
          timer = setTimeout(function() {
              $(self).dequeue();
          }, time);
      });
  };
    
  $.fn.evenIfHidden = function( callback ) {
    return this.each( function() {
      var self = $(this);
      var styleBackups = [];
      var hiddenElements = self.parents().andSelf().filter(':hidden');

      if ( ! hiddenElements.length ) {
        callback( self );
        return true; //continue the loop
      }

      hiddenElements.each( function() {
        var style = $(this).attr('style');
        style = typeof style == 'undefined'? '': style;
        styleBackups.push( style );
        $(this).attr( 'style', style + ' display: block !important;' );
      });

      hiddenElements.eq(0).css( 'left', -10000 );
      callback(self);
      hiddenElements.each( function() {
        $(this).attr( 'style', styleBackups.shift() );
      });
    });
  };
  // End of Helper functions
    
    
    
  // Main ajax function to get content through all website
  function ajax_get_content(link){
    //Pause backgrounds slideshow if we are not on homepage
    if (link != '/accueil' && link != '#' && link != '/galeries'){
      pause = true;
      $('#background-image-wrapper').fadeOut(600);
    }
    else {
      if (pause) {
        pause = false;
        bg_index = 1;
        $('#background-image-wrapper').hide();
        $('#background-image-container-0').show();
        for (var i=1; i<=images.length; i++){
          $('#background-image-container-'+ i).hide();
        }
        $('body').css('background', 'transparent');
        $('#background-image-wrapper').fadeIn(600);
        change_background();
      }
    }
    
    $('#loading').fadeIn(600);
    //Load new page content
    $.ajax({
      url: link,
      type: "GET",
      dataType: "html",
      element: $('body'),
      success: function(data) {
        //Get body classes
        $("body").removeClass().addClass($('#bodyclasses', data).html());
        
        // Inject the new content into our div
        $('#wrapper_table').html($('#wrapper_table', data).html());
        $('#loading').fadeOut(200);
        
        // Reinitialize scripts and elements
        convert_links();
        adapt_submenus(link);
        add_jsscroll();
        
        // Call attachBehaviors to ensure that any behavious in the
        // injected content are fired.
        Drupal.attachBehaviors(context);
      },
      error: function(msg) {
        $('#loading').fadeOut(200);
        $("body").removeClass();
        $(".messages.error").remove();
        $('#admin_submit').parents('div.field-items').append('<div class="messages error">' + msg.responseText + '</div>');
        $(".messages.error").hide(0).show(1000);
        $('#admin_submit').parents('div.field-items').removeClass('editablefields_throbber');
      }
    });
      /*$('#loading').fadeIn(600);
      $.ajax({
        type: "GET",
        url: 'ajax_get_content'+ link, 
        data: $('#admin_mail_form').serialize(),
        element: $('#main-wrapper .content'),
        success: function(msg, status) {
          //alert('Contenu de la page '+ original_link +' recupere !');
          $('#loading').fadeOut(200);
          //if (msg.length > 0) {
            $('body').attr('id', link.substr(1, link.length - 1));
            $('#main-wrapper #content').html(msg);
            $('.scroll-pane').data('jsp').reinitialise();
            convert_links();
            adapt_bodyclasses(link);
            adapt_submenus(link);
          //}
        },
        error: function(msg) {
          //alert(Drupal.t("Error, unable to make update:") +"\n"+
          //msg.responseText);
            $('#loading').fadeOut(200);
            $('body').attr('id', '');
            $(".messages.error").remove();
            $('#admin_submit').parents('div.field-items').append('<div class="messages error">' + msg.responseText + '</div>');
            $(".messages.error").hide(0).show(1000);
            $('#admin_submit').parents('div.field-items').removeClass('editablefields_throbber');
            //Drupal.editablefields.load($(this).parents('div.field-items'));
        }
      });*/
/*  }
    
  // Get all navigation links and ajax-link tagged links, another verification is done further to avoid any admin link
  function convert_links(){
    $('#logo, #main-menu-links a, a.ajax-link').each(function(){
      // Convert links to anchors
      if (link_url = $(this).attr('href')) {
        var original_link = link_url;
        if (link_url.indexOf('admin', 0) == -1) {
          if (link_url.substr(0, 1) == '/' || link_url.substr(0, 1) == '#') {
            link_url = link_url.substr(1, link_url.length -1);
          }
          link_url = '#'+ link_url;
          $(this).attr('href', link_url);
        }
      }
      
      // Add an ajax behavior to the links to get the appropriate content
      if (link_url.indexOf('admin', 0) == -1) {
        if (original_link == '/' || original_link == '/node') {
          original_link = '/accueil';
        }
        $(this).bind('click', function(){
          ajax_get_content(original_link);
        });
      }
    });
  }
    
    //Change body classe according to the current loaded content
    /*
    $('body').removeClass('page-node- page-node-6 front');
    function adapt_bodyclasses(link){
      link = link.substr(1,link.length-1);
      link = link.replace('/', '-');
      $('body').removeClass(last_ajax_page);
      last_ajax_page = 'page-'+ link;
      $('body').addClass(last_ajax_page);
      if (link == 'accueil'){$('body').addClass('front');}
    }*/
  //Add js scroll
/*  function add_jsscroll(){
    $('#main').addClass('scroll-pane');
    $('.scroll-pane').each(function(){
      $(this).jScrollPane({	showArrows: false, animateScroll: true });
      var api = $(this).data('jsp');
      var throttleTimeout;
      $(window).bind('resize', function(){
          if ($.browser.msie) {
            // IE fires multiple resize events while you are dragging the browser window which
            // causes it to crash if you try to update the scrollpane on every one. So we need
            // to throttle it to fire a maximum of once every 50 milliseconds...
            if (!throttleTimeout) {
              throttleTimeout = setTimeout(
                function()
                {
                  $('#wrapper, #header').css('width', $(window).width());
                  /*$('#background-image-wrapper').css('width', $(window).width()).css('height', $(window).height());
                  for (var i=0; i<images.length; i++) {
                    set_background_dimensions(i);
                  }
                  set_background_dimensions(images.length);*/
/*                  api.reinitialise();
                  throttleTimeout = null;
                },
                50
              );
            }
          } else {
            $('#wrapper, #header').css('width', $(window).width());
            /*$('#background-image-wrapper').css('width', $(window).width()).css('height', $(window).height());
            for (var i=0; i<images.length; i++) {
              set_background_dimensions(i);
            }
            set_background_dimensions(images.length);*/
 /*           api.reinitialise();
          }
        }
      );
    });
  }
    
  //Create/remove a sub-menu on specific pages
  function adapt_submenus(link){
    link = link.substr(1,link.length-1);
    link = link.replace('/', '-');
    
    $('#a-propos-submenu, #galeries-submenu').remove();
    switch (link){
      case 'a-propos' :
        if($('#a-propos-submenu').length == 0){
          $('#main-wrapper').append('<div id="a-propos-submenu" class="submenu"></div>');
        }
        var nb = 0;
        $('.field-name-field-paragraphe-titre .field-item').each(function(){
          $('#a-propos-submenu').append('<div class="submenu-link" id="scroll-'+ nb +'" style="cursor:pointer;">'+ $(this).html() +'</div>');
          nb += 560;
        });
        $('.submenu-link').bind('click', function(){
          id = $(this).attr('id');
          $('.scroll-pane').data('jsp').scrollTo(id.substr(7, id.length-7), 0);
          //alert(id.substr(7, id.length-7));
        });
        break;
      case 'galeries' :
        if($('#galeries-submenu').length == 0){
          $('#main-wrapper').append('<div id="galeries-submenu" class="submenu"></div>');
        }
        var nb = 0;
        $('.gallery-title a').each(function(){
          $('#galeries-submenu').append('<div class="submenu-link" id="scroll-'+ nb +'" style="cursor:pointer;">'+ $(this).html() +'</div>');
          nb += 250;
        });
        $('.submenu-link').bind('click', function(){
          id = $(this).attr('id');
          $('.scroll-pane').data('jsp').scrollTo(id.substr(7, id.length-7), 0);
          //alert(id.substr(7, id.length-7));
        });
        break;
    }
  }
    
  // Process background images animation  
  function preload_backgrounds(){
     if ($('#background-images').length > 0){
      $('#background-images').append('<div id="background-preloader-container"><img src="" id="background-preloader"></div>');
      $('#background-preloader').attr('src', images[bg_index]).load(images[bg_index], function(){
        set_background(bg_index);
      });
    }
  }
    
  function set_background(bg_id){
    $('#background-image-wrapper').append('<div id="background-image-container-'+ bg_id +'" style="display:none;"><img id="background-image-'+ bg_id +'" src=""></div>');
    $('#background-image-'+ bg_id).attr('src', images[bg_id]);
    
    set_background_dimensions(bg_id);
    
    if (bg_id == 0 && !pause){
      $('body').css('background', 'transparent');
      $('#background-image-container-'+ bg_id).fadeIn(600).wait();
    }
    bg_index++;
    if (bg_index < images.length){
      preload_backgrounds();
    }
    else {
      $('#background-image-wrapper').append('<div id="background-image-container-'+ images.length +'" style="display:none;"><img id="background-image-'+ images.length +'" src=""></div>');
      $('#background-image-'+ images.length).attr('src', images[0]);
      set_background_dimensions(images.length);
      bg_index = 0;
      change_background();        
    }
  }
    
  function set_background_dimensions(bg_id){
    image = $('#background-image-'+ bg_id);
    image_width = 0;
    image_height = 0;
    
    image.evenIfHidden( function(element) {
      image_width += element.width();
      image_height += element.height();
    });
    
    ratio = image_width / image_height;
    w_height = $(window).height();
    w_width = $(window).width();
    i_width = w_height * ratio;
    i_height = w_width / ratio;      
    
    if (image_width > image_height){
      $('#background-image-'+ bg_id).css('top', (w_height-i_height)/2).css('left', 0).css('overflow', 'hidden').css('position', 'absolute');
      $('#background-image-'+ bg_id).attr('width', w_width).attr('height', i_height);
    }
    else {
      $('#background-image-'+ bg_id).css('top', 0).css('left', (w_width-i_width)/2).css('overflow', 'hidden').css('position', 'absolute');
      $('#background-image-'+ bg_id).attr('width', i_width).attr('height', w_height);
    }
  }
    
  function change_background() {
    if (!pause){
      bg_index++;
      if (bg_index > images.length) {
        bg_index = 1;
        $('#background-image-container-0').show();
        for (var i=1; i<=images.length; i++){
          $('#background-image-container-'+ i).hide();
        }
      }
      $('#background-image-container-'+ bg_index).wait(5000).fadeIn(2000, function(){
        $('#background-image-container-'+ (bg_index-1)).fadeOut(600);
        change_background();
      });
    }
  }
})(jQuery);*/;
(function($) {
  // Process background images animation  
  Drupal.behaviors.homepage_slideshow_preload_backgrounds = {
    attach: function (context, settings) {
      if (/*$('body').hasClass('front')*/$('#background-images div').length > 0){
        homepage_slideshow_init();
        homepage_slideshow_preload_images();
        
        var throttleTimeout;
        $(window).bind('resize', function(){
          if ($.browser.msie) {
            // IE fires multiple resize events while you are dragging the browser window which
            // causes it to crash if you try to update the background on every one. So we need
            // to throttle it to fire a maximum of once every 50 milliseconds...
            if (!throttleTimeout) {
              throttleTimeout = setTimeout(function(){
                $('#background-image-wrapper').css('width', $(window).width()).css('height', $(window).height());
                for (var i=0; i<$.homepage_slideshow_images.length; i++) {
                  homepage_slideshow_set_background_dimensions(i);
                }
                homepage_slideshow_set_background_dimensions($.homepage_slideshow_images.length);
                throttleTimeout = null;
              }, 50);
            }
          } else {
            $('#background-image-wrapper').css('width', $(window).width()).css('height', $(window).height());
            for (var i=0; i<$.homepage_slideshow_images.length; i++) {
              homepage_slideshow_set_background_dimensions(i);
            }
            homepage_slideshow_set_background_dimensions($.homepage_slideshow_images.length);
          }
        });
      }
    }
  }
  
  function homepage_slideshow_init(){
    $.homepage_slideshow_anim_index = 0;
    $.homepage_slideshow_images = [];
    $.homepage_slideshow_widths = [];
    $.homepage_slideshow_heights = [];
    $.homepage_slideshow_preloaded = [];
    $('#wrapper').append('<div id="background-image-wrapper"></div>');
    $('#background-image-wrapper').css({top:0, left:0, "z-index":-1, position: "absolute", height: ($(window).height()), width: ($(window).width())});
    $('#background-images div').each(function(){
      $.homepage_slideshow_images.push($(this).html());
    });
  }
  
  function homepage_slideshow_preload_images(){
    $('#background-images').append('<div id="background-preloader-container"><img src="" id="background-preloader"></div>');
    for(var i = 0; i<$.homepage_slideshow_images.length; i++){
      $('#background-image-wrapper').append('<div id="background-image-container-'+ i +'" style="display:none;"><img id="background-image-'+ i +'" src=""></div>');
      $('#background-image-'+ i).attr('src', $.homepage_slideshow_images[i]);
      $('#background-image-'+ i).load(function(){
        id = $(this).attr('id').substring($(this).attr('id').indexOf('-', $(this).attr('id').length-5)+1,$(this).attr('id').length);
        $.homepage_slideshow_widths[id] = this.width;
        $.homepage_slideshow_heights[id] = this.height;
        homepage_slideshow_set_background(id);
      });
    }
  }
  
  function homepage_slideshow_set_background(bg_id){
    $.homepage_slideshow_preloaded.push(bg_id);
    homepage_slideshow_set_background_dimensions(bg_id);
    
    if (bg_id == 0){
      $('body').css('background', 'transparent');
      $('#background-image-container-'+ bg_id).fadeIn(2000).wait();
    }
    if ($.homepage_slideshow_preloaded.length == $.homepage_slideshow_images.length && $.homepage_slideshow_images.length > 1){
      $('#background-image-wrapper').append('<div id="background-image-container-'+ $.homepage_slideshow_images.length +'" style="display:none;"><img id="background-image-'+ $.homepage_slideshow_images.length +'" src=""></div>');
      $('#background-image-'+ $.homepage_slideshow_images.length).attr('src', $.homepage_slideshow_images[0]);
      homepage_slideshow_set_background_dimensions($.homepage_slideshow_images.length);
      $('#background-image-wrapper').css('width', $(window).width()).css('height', $(window).height());
      homepage_slideshow_change_background();        
    }
  }
    
  function homepage_slideshow_set_background_dimensions(bg_id){
    image = $('#background-image-'+ bg_id);
    image_width = $.homepage_slideshow_widths[bg_id];
    image_height = $.homepage_slideshow_heights[bg_id];
    
    if (image_width == 0){
      image_width = 0;
      image_height = 0;
      
      image.evenIfHidden( function(element) {
        image_width += element.width();
        image_height += element.height();
      });
    }
    
    ratio = image_width / image_height;
    w_height = $(window).height();
    w_width = $(window).width();
    i_width = w_height * ratio;
    i_height = w_width / ratio;
    
    if (image_width > image_height){
      $('#background-image-container-'+ bg_id).css('top', (w_height-i_height)/2).css('left', 0).css('overflow', 'hidden').css('position', 'absolute');
      $('#background-image-'+ bg_id).attr('width', w_width).attr('height', i_height);
    }
    else {
      $('#background-image-container-'+ bg_id).css('top', 0).css('left', (w_width-i_width)/2).css('overflow', 'hidden').css('position', 'absolute');
      $('#background-image-'+ bg_id).attr('width', i_width).attr('height', w_height);
    }
  }
    
  function homepage_slideshow_change_background() {
    $.homepage_slideshow_anim_index++;
    if ($.homepage_slideshow_anim_index > $.homepage_slideshow_images.length) {
      $.homepage_slideshow_anim_index = 1;
      $('#background-image-container-0').fadeIn(2000);
      for (var i=1; i<=$.homepage_slideshow_images.length; i++){
        $('#background-image-container-'+ i).fadeOut(600);
      }
    }
    $('#background-image-container-'+ $.homepage_slideshow_anim_index).wait(5000).fadeIn(2000, function(){
      $('#background-image-container-'+ ($.homepage_slideshow_anim_index-1)).fadeOut(600);
      homepage_slideshow_change_background();
    });
  }
  
  // Helper functions
  var timer;
  $.fn.wait = function(time, type) {
      time = time || 5000;
      type = type || "fx";
      return this.queue(type, function() {
          var self = this;
          timer = setTimeout(function() {
              $(self).dequeue();
          }, time);
      });
  };
    
  $.fn.evenIfHidden = function( callback ) {
    return this.each( function() {
      var self = $(this);
      var styleBackups = [];
      var hiddenElements = self.parents().andSelf().filter(':hidden');

      if ( ! hiddenElements.length ) {
        callback( self );
        return true; //continue the loop
      }

      hiddenElements.each( function() {
        var style = $(this).attr('style');
        style = typeof style == 'undefined'? '': style;
        styleBackups.push( style );
        $(this).attr( 'style', style + ' display: block !important;' );
      });

      hiddenElements.eq(0).css( 'left', -10000 );
      callback(self);
      hiddenElements.each( function() {
        $(this).attr( 'style', styleBackups.shift() );
      });
    });
  };
  // End of Helper functions
})(jQuery);;
(function($) {
  Drupal.behaviors.apropos = {
    attach: function (context, settings) {
      if ($('body').hasClass('page-node-1') || $('body').hasClass('page-galeries') ){
        //Force content width for js scrolling
        /*
        var field_collection_width = $('.gallery-wrapper').length * 220;
        $('.global-wrapper').width((field_collection_width + ($(window).width() - 220))+'px');
        
        var field_collection_width = $('.field-collection-container').width();
        $('.field-collection-container').width((field_collection_width + ($(window).width() - 930))+'px');
        */
        
        $('.global-wrapper').width(($('.gallery-wrapper').length * 220)+'px');
        $('.field-collection-container').width($('.field-collection-container').width()+'px');
        
        //Set js scrolling
        $('#content').addClass('scroll-pane');
        $('#wrapper, #main-wrapper').css('width', $(window).width());
        $('.scroll-pane').each(function(){
          $(this).jScrollPane({	showArrows: false, animateScroll: true, animateDuration: 300, animateEase: "linear" });
          
          var api = $(this).data('jsp');
          var throttleTimeout;
          $(window).bind('resize', function(){
              if ($.browser.msie) {
                // IE fires multiple resize events while you are dragging the browser window which
                // causes it to crash if you try to update the scrollpane on every one. So we need
                // to throttle it to fire a maximum of once every 50 milliseconds...
                if (!throttleTimeout) {
                  throttleTimeout = setTimeout(
                    function()
                    {
                      $('#wrapper, #main-wrapper').css('width', $(window).width());
                      api.reinitialise();
                      throttleTimeout = null;
                    },
                    50
                  );
                }
              } else {
                $('#wrapper, #main-wrapper').css('width', $(window).width());
                api.reinitialise();
              }
            }
          );
        });
        
        //Global active link set on scroll and submenu visibility set on horizontal scroll presence
        var dragTimeout = setInterval(function(){
          var ecart = 0;
          if ($('#a-propos-submenu').length > 0){
            var ecart = 560;
            var max_items = $('.field-collection-view').length;
          }else if ($('#galeries-submenu').length > 0){
            var ecart = 220;
            var max_items = $('.gallery-wrapper').length;
          }
          
          var percent = 100 / max_items;
          var current_percent = (parseInt($('.jspHorizontalBar .jspDrag').css('left')) * 100) / ($(window).width() - $('.jspHorizontalBar .jspDrag').width());
          var current_active = parseInt(parseInt(current_percent / percent) * percent);
          if (current_percent == 100) { current_active = 100 - percent; }
          //alert(current_active);
          $('.submenu-link').removeClass('active');
          $('.scroll-'+current_active).addClass('active');

          /*
          var scroll = ($('.jspPane').css('left').substr(0, $('.jspPane').css('left').length-2) * -1) / ecart;
          $('.submenu-link').removeClass('active');
          $('#scroll-'+(parseInt(scroll)*ecart)).addClass('active');
          */
          if ($('.jspHorizontalBar').length > 0){
            $('.submenu').fadeIn(600, function(){
              $(this).css({ display: '', visibility: 'visible'});
            });
          }else{
            $('.submenu').fadeOut(600, function(){
              $(this).css({ display: '', visibility: 'hidden'});
            });
          }
        }, 10);
        
        //A propos submenu
        if($('body').hasClass('page-node-1') && $('#a-propos-submenu').length == 0){
          $('#main-wrapper').append('<div id="a-propos-submenu" class="submenu clearfix"></div>');
        
          var nb = 0;
          var nb_percent = 0;
          var percent = 100 / $('.field-collection-view').length;
          var percent2 = 100 / ($('.field-collection-view').length - 1);
          $('.field-name-field-paragraphe-titre .field-item').each(function(){
            if (nb == 0){ var activeclass = ' active'; }else{ var activeclass = ''; }
            $('#a-propos-submenu').append('<div class="submenu-link scroll-'+parseInt(percent * nb_percent)+' '+ activeclass +'" id="scroll-'+ parseInt(((percent2 * nb_percent) * ($('.field-collection-container').width() - $(window).width())) / 100) +'" style="cursor:pointer;">'+ $(this).html() +'</div>');
            nb += 560;
            nb_percent++;
          });
          $('.submenu-link').bind('click', function(){
            /*$('.submenu-link').removeClass('active');
            $(this).addClass('active');*/
            
            id = $(this).attr('id');
            $('.scroll-pane').data('jsp').scrollTo(id.substr(7, id.length-7), 0);
            return false;
          });
        }
        
        //Galeries submenu
        if($('body').hasClass('page-galeries') && $('#galeries-submenu').length == 0){
          $('#main-wrapper').append('<div id="galeries-submenu" class="submenu clearfix"></div>');
          
          var nb = 0;
          var nb_percent = 0;
          var percent = 100 / $('.gallery-wrapper').length;
          var percent2 = 100 / ($('.gallery-wrapper').length - 1);
          $('.gallery-title a').each(function(){
            if (nb == 0){ var activeclass = ' active'; }else{ var activeclass = ''; }
            $('#galeries-submenu').append('<div class="submenu-link scroll-'+parseInt(percent * nb_percent)+' '+ activeclass +'" id="scroll-'+ parseInt(((percent2 * nb_percent) * ($('.global-wrapper').width() - $(window).width())) / 100) +'" style="cursor:pointer;">'+ $(this).html() +'</div>');
            nb += 220;
            nb_percent++;
          });
          $('.submenu-link').bind('click', function(){
            id = $(this).attr('id');
            $('.scroll-pane').data('jsp').scrollTo(id.substr(7, id.length-7), 0);
            return false;
          });
        }
        
        
      }
    }
  }
})(jQuery);;
/*
 * jScrollPane - v2.0.0beta11 - 2011-07-04
 * http://jscrollpane.kelvinluck.com/
 *
 * Copyright (c) 2010 Kelvin Luck
 * Dual licensed under the MIT and GPL licenses.
 */
(function(b,a,c){b.fn.jScrollPane=function(e){function d(D,O){var az,Q=this,Y,ak,v,am,T,Z,y,q,aA,aF,av,i,I,h,j,aa,U,aq,X,t,A,ar,af,an,G,l,au,ay,x,aw,aI,f,L,aj=true,P=true,aH=false,k=false,ap=D.clone(false,false).empty(),ac=b.fn.mwheelIntent?"mwheelIntent.jsp":"mousewheel.jsp";aI=D.css("paddingTop")+" "+D.css("paddingRight")+" "+D.css("paddingBottom")+" "+D.css("paddingLeft");f=(parseInt(D.css("paddingLeft"),10)||0)+(parseInt(D.css("paddingRight"),10)||0);function at(aR){var aM,aO,aN,aK,aJ,aQ,aP=false,aL=false;az=aR;if(Y===c){aJ=D.scrollTop();aQ=D.scrollLeft();D.css({overflow:"hidden",padding:0});ak=D.innerWidth()+f;v=D.innerHeight();D.width(ak);Y=b('<div class="jspPane" />').css("padding",aI).append(D.children());am=b('<div class="jspContainer" />').css({width:ak+"px",height:v+"px"}).append(Y).appendTo(D)}else{D.css("width","");aP=az.stickToBottom&&K();aL=az.stickToRight&&B();aK=D.innerWidth()+f!=ak||D.outerHeight()!=v;if(aK){ak=D.innerWidth()+f;v=D.innerHeight();am.css({width:ak+"px",height:v+"px"})}if(!aK&&L==T&&Y.outerHeight()==Z){D.width(ak);return}L=T;Y.css("width","");D.width(ak);am.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()}Y.css("overflow","auto");if(aR.contentWidth){T=aR.contentWidth}else{T=Y[0].scrollWidth}Z=Y[0].scrollHeight;Y.css("overflow","");y=T/ak;q=Z/v;aA=q>1;aF=y>1;if(!(aF||aA)){D.removeClass("jspScrollable");Y.css({top:0,width:am.width()-f});n();E();R();w();ai()}else{D.addClass("jspScrollable");aM=az.maintainPosition&&(I||aa);if(aM){aO=aD();aN=aB()}aG();z();F();if(aM){N(aL?(T-ak):aO,false);M(aP?(Z-v):aN,false)}J();ag();ao();if(az.enableKeyboardNavigation){S()}if(az.clickOnTrack){p()}C();if(az.hijackInternalLinks){m()}}if(az.autoReinitialise&&!aw){aw=setInterval(function(){at(az)},az.autoReinitialiseDelay)}else{if(!az.autoReinitialise&&aw){clearInterval(aw)}}aJ&&D.scrollTop(0)&&M(aJ,false);aQ&&D.scrollLeft(0)&&N(aQ,false);D.trigger("jsp-initialised",[aF||aA])}function aG(){if(aA){am.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'),b('<div class="jspDragBottom" />'))),b('<div class="jspCap jspCapBottom" />')));U=am.find(">.jspVerticalBar");aq=U.find(">.jspTrack");av=aq.find(">.jspDrag");if(az.showArrows){ar=b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp",aE(0,-1)).bind("click.jsp",aC);af=b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp",aE(0,1)).bind("click.jsp",aC);if(az.arrowScrollOnHover){ar.bind("mouseover.jsp",aE(0,-1,ar));af.bind("mouseover.jsp",aE(0,1,af))}al(aq,az.verticalArrowPositions,ar,af)}t=v;am.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function(){t-=b(this).outerHeight()});av.hover(function(){av.addClass("jspHover")},function(){av.removeClass("jspHover")}).bind("mousedown.jsp",function(aJ){b("html").bind("dragstart.jsp selectstart.jsp",aC);av.addClass("jspActive");var s=aJ.pageY-av.position().top;b("html").bind("mousemove.jsp",function(aK){V(aK.pageY-s,false)}).bind("mouseup.jsp mouseleave.jsp",ax);return false});o()}}function o(){aq.height(t+"px");I=0;X=az.verticalGutter+aq.outerWidth();Y.width(ak-X-f);try{if(U.position().left===0){Y.css("margin-left",X+"px")}}catch(s){}}function z(){if(aF){am.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'),b('<div class="jspDragRight" />'))),b('<div class="jspCap jspCapRight" />')));an=am.find(">.jspHorizontalBar");G=an.find(">.jspTrack");h=G.find(">.jspDrag");if(az.showArrows){ay=b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp",aE(-1,0)).bind("click.jsp",aC);x=b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp",aE(1,0)).bind("click.jsp",aC);
if(az.arrowScrollOnHover){ay.bind("mouseover.jsp",aE(-1,0,ay));x.bind("mouseover.jsp",aE(1,0,x))}al(G,az.horizontalArrowPositions,ay,x)}h.hover(function(){h.addClass("jspHover")},function(){h.removeClass("jspHover")}).bind("mousedown.jsp",function(aJ){b("html").bind("dragstart.jsp selectstart.jsp",aC);h.addClass("jspActive");var s=aJ.pageX-h.position().left;b("html").bind("mousemove.jsp",function(aK){W(aK.pageX-s,false)}).bind("mouseup.jsp mouseleave.jsp",ax);return false});l=am.innerWidth();ah()}}function ah(){am.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function(){l-=b(this).outerWidth()});G.width(l+"px");aa=0}function F(){if(aF&&aA){var aJ=G.outerHeight(),s=aq.outerWidth();t-=aJ;b(an).find(">.jspCap:visible,>.jspArrow").each(function(){l+=b(this).outerWidth()});l-=s;v-=s;ak-=aJ;G.parent().append(b('<div class="jspCorner" />').css("width",aJ+"px"));o();ah()}if(aF){Y.width((am.outerWidth()-f)+"px")}Z=Y.outerHeight();q=Z/v;if(aF){au=Math.ceil(1/y*l);if(au>az.horizontalDragMaxWidth){au=az.horizontalDragMaxWidth}else{if(au<az.horizontalDragMinWidth){au=az.horizontalDragMinWidth}}h.width(au+"px");j=l-au;ae(aa)}if(aA){A=Math.ceil(1/q*t);if(A>az.verticalDragMaxHeight){A=az.verticalDragMaxHeight}else{if(A<az.verticalDragMinHeight){A=az.verticalDragMinHeight}}av.height(A+"px");i=t-A;ad(I)}}function al(aK,aM,aJ,s){var aO="before",aL="after",aN;if(aM=="os"){aM=/Mac/.test(navigator.platform)?"after":"split"}if(aM==aO){aL=aM}else{if(aM==aL){aO=aM;aN=aJ;aJ=s;s=aN}}aK[aO](aJ)[aL](s)}function aE(aJ,s,aK){return function(){H(aJ,s,this,aK);this.blur();return false}}function H(aM,aL,aP,aO){aP=b(aP).addClass("jspActive");var aN,aK,aJ=true,s=function(){if(aM!==0){Q.scrollByX(aM*az.arrowButtonSpeed)}if(aL!==0){Q.scrollByY(aL*az.arrowButtonSpeed)}aK=setTimeout(s,aJ?az.initialDelay:az.arrowRepeatFreq);aJ=false};s();aN=aO?"mouseout.jsp":"mouseup.jsp";aO=aO||b("html");aO.bind(aN,function(){aP.removeClass("jspActive");aK&&clearTimeout(aK);aK=null;aO.unbind(aN)})}function p(){w();if(aA){aq.bind("mousedown.jsp",function(aO){if(aO.originalTarget===c||aO.originalTarget==aO.currentTarget){var aM=b(this),aP=aM.offset(),aN=aO.pageY-aP.top-I,aK,aJ=true,s=function(){var aS=aM.offset(),aT=aO.pageY-aS.top-A/2,aQ=v*az.scrollPagePercent,aR=i*aQ/(Z-v);if(aN<0){if(I-aR>aT){Q.scrollByY(-aQ)}else{V(aT)}}else{if(aN>0){if(I+aR<aT){Q.scrollByY(aQ)}else{V(aT)}}else{aL();return}}aK=setTimeout(s,aJ?az.initialDelay:az.trackClickRepeatFreq);aJ=false},aL=function(){aK&&clearTimeout(aK);aK=null;b(document).unbind("mouseup.jsp",aL)};s();b(document).bind("mouseup.jsp",aL);return false}})}if(aF){G.bind("mousedown.jsp",function(aO){if(aO.originalTarget===c||aO.originalTarget==aO.currentTarget){var aM=b(this),aP=aM.offset(),aN=aO.pageX-aP.left-aa,aK,aJ=true,s=function(){var aS=aM.offset(),aT=aO.pageX-aS.left-au/2,aQ=ak*az.scrollPagePercent,aR=j*aQ/(T-ak);if(aN<0){if(aa-aR>aT){Q.scrollByX(-aQ)}else{W(aT)}}else{if(aN>0){if(aa+aR<aT){Q.scrollByX(aQ)}else{W(aT)}}else{aL();return}}aK=setTimeout(s,aJ?az.initialDelay:az.trackClickRepeatFreq);aJ=false},aL=function(){aK&&clearTimeout(aK);aK=null;b(document).unbind("mouseup.jsp",aL)};s();b(document).bind("mouseup.jsp",aL);return false}})}}function w(){if(G){G.unbind("mousedown.jsp")}if(aq){aq.unbind("mousedown.jsp")}}function ax(){b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");if(av){av.removeClass("jspActive")}if(h){h.removeClass("jspActive")}}function V(s,aJ){if(!aA){return}if(s<0){s=0}else{if(s>i){s=i}}if(aJ===c){aJ=az.animateScroll}if(aJ){Q.animate(av,"top",s,ad)}else{av.css("top",s);ad(s)}}function ad(aJ){if(aJ===c){aJ=av.position().top}am.scrollTop(0);I=aJ;var aM=I===0,aK=I==i,aL=aJ/i,s=-aL*(Z-v);if(aj!=aM||aH!=aK){aj=aM;aH=aK;D.trigger("jsp-arrow-change",[aj,aH,P,k])}u(aM,aK);Y.css("top",s);D.trigger("jsp-scroll-y",[-s,aM,aK]).trigger("scroll")}function W(aJ,s){if(!aF){return}if(aJ<0){aJ=0}else{if(aJ>j){aJ=j}}if(s===c){s=az.animateScroll}if(s){Q.animate(h,"left",aJ,ae)
}else{h.css("left",aJ);ae(aJ)}}function ae(aJ){if(aJ===c){aJ=h.position().left}am.scrollTop(0);aa=aJ;var aM=aa===0,aL=aa==j,aK=aJ/j,s=-aK*(T-ak);if(P!=aM||k!=aL){P=aM;k=aL;D.trigger("jsp-arrow-change",[aj,aH,P,k])}r(aM,aL);Y.css("left",s);D.trigger("jsp-scroll-x",[-s,aM,aL]).trigger("scroll")}function u(aJ,s){if(az.showArrows){ar[aJ?"addClass":"removeClass"]("jspDisabled");af[s?"addClass":"removeClass"]("jspDisabled")}}function r(aJ,s){if(az.showArrows){ay[aJ?"addClass":"removeClass"]("jspDisabled");x[s?"addClass":"removeClass"]("jspDisabled")}}function M(s,aJ){var aK=s/(Z-v);V(aK*i,aJ)}function N(aJ,s){var aK=aJ/(T-ak);W(aK*j,s)}function ab(aW,aR,aK){var aO,aL,aM,s=0,aV=0,aJ,aQ,aP,aT,aS,aU;try{aO=b(aW)}catch(aN){return}aL=aO.outerHeight();aM=aO.outerWidth();am.scrollTop(0);am.scrollLeft(0);while(!aO.is(".jspPane")){s+=aO.position().top;aV+=aO.position().left;aO=aO.offsetParent();if(/^body|html$/i.test(aO[0].nodeName)){return}}aJ=aB();aP=aJ+v;if(s<aJ||aR){aS=s-az.verticalGutter}else{if(s+aL>aP){aS=s-v+aL+az.verticalGutter}}if(aS){M(aS,aK)}aQ=aD();aT=aQ+ak;if(aV<aQ||aR){aU=aV-az.horizontalGutter}else{if(aV+aM>aT){aU=aV-ak+aM+az.horizontalGutter}}if(aU){N(aU,aK)}}function aD(){return -Y.position().left}function aB(){return -Y.position().top}function K(){var s=Z-v;return(s>20)&&(s-aB()<10)}function B(){var s=T-ak;return(s>20)&&(s-aD()<10)}function ag(){am.unbind(ac).bind(ac,function(aM,aN,aL,aJ){var aK=aa,s=I;Q.scrollBy(aL*az.mouseWheelSpeed,-aJ*az.mouseWheelSpeed,false);return aK==aa&&s==I})}function n(){am.unbind(ac)}function aC(){return false}function J(){Y.find(":input,a").unbind("focus.jsp").bind("focus.jsp",function(s){ab(s.target,false)})}function E(){Y.find(":input,a").unbind("focus.jsp")}function S(){var s,aJ,aL=[];aF&&aL.push(an[0]);aA&&aL.push(U[0]);Y.focus(function(){D.focus()});D.attr("tabindex",0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp",function(aO){if(aO.target!==this&&!(aL.length&&b(aO.target).closest(aL).length)){return}var aN=aa,aM=I;switch(aO.keyCode){case 40:case 38:case 34:case 32:case 33:case 39:case 37:s=aO.keyCode;aK();break;case 35:M(Z-v);s=null;break;case 36:M(0);s=null;break}aJ=aO.keyCode==s&&aN!=aa||aM!=I;return !aJ}).bind("keypress.jsp",function(aM){if(aM.keyCode==s){aK()}return !aJ});if(az.hideFocus){D.css("outline","none");if("hideFocus" in am[0]){D.attr("hideFocus",true)}}else{D.css("outline","");if("hideFocus" in am[0]){D.attr("hideFocus",false)}}function aK(){var aN=aa,aM=I;switch(s){case 40:Q.scrollByY(az.keyboardSpeed,false);break;case 38:Q.scrollByY(-az.keyboardSpeed,false);break;case 34:case 32:Q.scrollByY(v*az.scrollPagePercent,false);break;case 33:Q.scrollByY(-v*az.scrollPagePercent,false);break;case 39:Q.scrollByX(az.keyboardSpeed,false);break;case 37:Q.scrollByX(-az.keyboardSpeed,false);break}aJ=aN!=aa||aM!=I;return aJ}}function R(){D.attr("tabindex","-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")}function C(){if(location.hash&&location.hash.length>1){var aL,aJ,aK=escape(location.hash);try{aL=b(aK)}catch(s){return}if(aL.length&&Y.find(aK)){if(am.scrollTop()===0){aJ=setInterval(function(){if(am.scrollTop()>0){ab(aK,true);b(document).scrollTop(am.position().top);clearInterval(aJ)}},50)}else{ab(aK,true);b(document).scrollTop(am.position().top)}}}}function ai(){b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")}function m(){ai();b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack",function(){var s=this.href.split("#"),aJ;if(s.length>1){aJ=s[1];if(aJ.length>0&&Y.find("#"+aJ).length>0){ab("#"+aJ,true);return false}}})}function ao(){var aK,aJ,aM,aL,aN,s=false;am.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp",function(aO){var aP=aO.originalEvent.touches[0];aK=aD();aJ=aB();aM=aP.pageX;aL=aP.pageY;aN=false;s=true}).bind("touchmove.jsp",function(aR){if(!s){return}var aQ=aR.originalEvent.touches[0],aP=aa,aO=I;Q.scrollTo(aK+aM-aQ.pageX,aJ+aL-aQ.pageY);aN=aN||Math.abs(aM-aQ.pageX)>5||Math.abs(aL-aQ.pageY)>5;
return aP==aa&&aO==I}).bind("touchend.jsp",function(aO){s=false}).bind("click.jsp-touchclick",function(aO){if(aN){aN=false;return false}})}function g(){var s=aB(),aJ=aD();D.removeClass("jspScrollable").unbind(".jsp");D.replaceWith(ap.append(Y.children()));ap.scrollTop(s);ap.scrollLeft(aJ)}b.extend(Q,{reinitialise:function(aJ){aJ=b.extend({},az,aJ);at(aJ)},scrollToElement:function(aK,aJ,s){ab(aK,aJ,s)},scrollTo:function(aK,s,aJ){N(aK,aJ);M(s,aJ)},scrollToX:function(aJ,s){N(aJ,s)},scrollToY:function(s,aJ){M(s,aJ)},scrollToPercentX:function(aJ,s){N(aJ*(T-ak),s)},scrollToPercentY:function(aJ,s){M(aJ*(Z-v),s)},scrollBy:function(aJ,s,aK){Q.scrollByX(aJ,aK);Q.scrollByY(s,aK)},scrollByX:function(s,aK){var aJ=aD()+Math[s<0?"floor":"ceil"](s),aL=aJ/(T-ak);W(aL*j,aK)},scrollByY:function(s,aK){var aJ=aB()+Math[s<0?"floor":"ceil"](s),aL=aJ/(Z-v);V(aL*i,aK)},positionDragX:function(s,aJ){W(s,aJ)},positionDragY:function(aJ,s){V(aJ,s)},animate:function(aJ,aM,s,aL){var aK={};aK[aM]=s;aJ.animate(aK,{duration:az.animateDuration,easing:az.animateEase,queue:false,step:aL})},getContentPositionX:function(){return aD()},getContentPositionY:function(){return aB()},getContentWidth:function(){return T},getContentHeight:function(){return Z},getPercentScrolledX:function(){return aD()/(T-ak)},getPercentScrolledY:function(){return aB()/(Z-v)},getIsScrollableH:function(){return aF},getIsScrollableV:function(){return aA},getContentPane:function(){return Y},scrollToBottom:function(s){V(i,s)},hijackInternalLinks:function(){m()},destroy:function(){g()}});at(O)}e=b.extend({},b.fn.jScrollPane.defaults,e);b.each(["mouseWheelSpeed","arrowButtonSpeed","trackClickSpeed","keyboardSpeed"],function(){e[this]=e[this]||e.speed});return this.each(function(){var f=b(this),g=f.data("jsp");if(g){g.reinitialise(e)}else{g=new d(f,e);f.data("jsp",g)}})};b.fn.jScrollPane.defaults={showArrows:false,maintainPosition:true,stickToBottom:false,stickToRight:false,clickOnTrack:true,autoReinitialise:false,autoReinitialiseDelay:500,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,contentWidth:c,animateScroll:false,animateDuration:300,animateEase:"linear",hijackInternalLinks:false,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:0,arrowButtonSpeed:0,arrowRepeatFreq:50,arrowScrollOnHover:false,trackClickSpeed:0,trackClickRepeatFreq:70,verticalArrowPositions:"split",horizontalArrowPositions:"split",enableKeyboardNavigation:true,hideFocus:false,keyboardSpeed:0,initialDelay:300,speed:30,scrollPagePercent:0.8}})(jQuery,this);;
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 * Thanks to: Seamus Leahy for adding deltaX and deltaY
 *
 * Version: 3.0.4
 * 
 * Requires: 1.2.2+
 */

(function($) {

var types = ['DOMMouseScroll', 'mousewheel'];

$.event.special.mousewheel = {
    setup: function() {
        if ( this.addEventListener ) {
            for ( var i=types.length; i; ) {
                this.addEventListener( types[--i], handler, false );
            }
        } else {
            this.onmousewheel = handler;
        }
    },
    
    teardown: function() {
        if ( this.removeEventListener ) {
            for ( var i=types.length; i; ) {
                this.removeEventListener( types[--i], handler, false );
            }
        } else {
            this.onmousewheel = null;
        }
    }
};

$.fn.extend({
    mousewheel: function(fn) {
        return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
    },
    
    unmousewheel: function(fn) {
        return this.unbind("mousewheel", fn);
    }
});


function handler(event) {
    var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
    event = $.event.fix(orgEvent);
    event.type = "mousewheel";
    
    // Old school scrollwheel delta
    if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
    if ( event.detail     ) { delta = -event.detail/3; }
    
    // New school multidimensional scroll (touchpads) deltas
    deltaY = delta;
    
    // Gecko
    if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
        deltaY = 0;
        deltaX = -1*delta;
    }
    
    // Webkit
    if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
    if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
    
    // Add event and delta to the front of the arguments
    args.unshift(event, delta, deltaX, deltaY);
    
    return $.event.handle.apply(this, args);
}

})(jQuery);;
/**
 * @author trixta
 * @version 1.2
 */
(function($){

var mwheelI = {
			pos: [-260, -260]
		},
	minDif 	= 3,
	doc 	= document,
	root 	= doc.documentElement,
	body 	= doc.body,
	longDelay, shortDelay
;

function unsetPos(){
	if(this === mwheelI.elem){
		mwheelI.pos = [-260, -260];
		mwheelI.elem = false;
		minDif = 3;
	}
}

$.event.special.mwheelIntent = {
	setup: function(){
		var jElm = $(this).bind('mousewheel', $.event.special.mwheelIntent.handler);
		if( this !== doc && this !== root && this !== body ){
			jElm.bind('mouseleave', unsetPos);
		}
		jElm = null;
        return true;
    },
	teardown: function(){
        $(this)
			.unbind('mousewheel', $.event.special.mwheelIntent.handler)
			.unbind('mouseleave', unsetPos)
		;
        return true;
    },
    handler: function(e, d){
		var pos = [e.clientX, e.clientY];
		if( this === mwheelI.elem || Math.abs(mwheelI.pos[0] - pos[0]) > minDif || Math.abs(mwheelI.pos[1] - pos[1]) > minDif ){
            mwheelI.elem = this;
			mwheelI.pos = pos;
			minDif = 250;
			
			clearTimeout(shortDelay);
			shortDelay = setTimeout(function(){
				minDif = 10;
			}, 200);
			clearTimeout(longDelay);
			longDelay = setTimeout(function(){
				minDif = 3;
			}, 1500);
			e = $.extend({}, e, {type: 'mwheelIntent'});
            return $.event.handle.apply(this, arguments);
		}
    }
};
$.fn.extend({
	mwheelIntent: function(fn) {
		return fn ? this.bind("mwheelIntent", fn) : this.trigger("mwheelIntent");
	},
	
	unmwheelIntent: function(fn) {
		return this.unbind("mwheelIntent", fn);
	}
});

$(function(){
	body = doc.body;
	//assume that document is always scrollable, doesn't hurt if not
	$(doc).bind('mwheelIntent.mwheelIntentDefault', $.noop);
});
})(jQuery);;

