/* WELCOME ANIMATION */

(
function($)
{
 
 $.fn.slideAnimation = function( elements )
 {
  if( ( typeof $(this).data( "slideAnimation" ) == "undefined" || $(this).data( "slideAnimation" ) != true ) && typeof elements == "object" )
  {
   $(this).data( "slideAnimation", true );
   $(this).data( "animation_in_progress", false );
   $(this).data( "elements", elements );
   $(this).data( "timer", null );
   
   var mainElement = $(this);
     $(mainElement).addClass( "slideAnimation" );
   
   // Add elements
   $.each( elements,
           function( i, element)
           {
            // Create element
            div = document.createElement( "div" );
            $(div).addClass( "element" )
                  .css({ backgroundImage: "url('" + element.image + "')" });
            
            // Add data to element
            $(div).data( "position", i );
            $(div).data( "element", element );
            
            // Position element
            switch( i )
            {
             case 0:
              $(div).css({ left: "0px", zIndex: 1001 });
              
              var txtElement = $( "#container div.content_home_left" );
              $( "h2", txtElement ).html( "<a href=" + element.href + ">" + element.title + "</a>" );
              $( "h3", txtElement ).html( element.subtitle );
              $( "a", txtElement ).attr( "href", element.href );
              break;
             default:
              $(div).addClass( "perspective" )
                    .css({ left: ( 275 + (i-1) * 105 ) + "px", zIndex: ( 1000 - i ) });
            }
            
            $(mainElement).append( div );
           } );
   
   // Click on element
   $( ".element", mainElement )
    .bind( "click",
           function()
           {
            // if( $(this).index() == 0 )
            // {
             if( typeof $(this).data("element").img_href != "undefined" && $(this).data("element").img_href != "" )
             {
              window.location.href = $(this).data("element").img_href;
             }
             else if( typeof $(this).data("element").href != "undefined" && $(this).data("element").href != "" )
             {
              window.location.href = $(this).data("element").href;
             }
            // }
            else
            {
             $(mainElement).trigger( "moveToNext" );
            }
           } );
   
   
   
   $(mainElement)
    // Main animation of mouvement
    .bind( "moveToNext", 
           function()
           {
            if( $(mainElement).data( "elements" ).length > 1 )
            {
             if( $(mainElement).data( "animation_in_progress" ) == false )
             {
              $(mainElement).trigger( "stopAutoRead" );
              $(mainElement).data( "animation_in_progress", true );
              
              var clone = $( ".element:eq(0)" ).clone();
                  clone.hide()
                       .addClass( "perspective" )
                       .css({ left: "85px" })
                       .prependTo( mainElement );
              
              $( ".element:eq(1)" ).fadeOut();
              $( "#container div.content_home_left" ).fadeOut();
              $( ".element:eq(0)" )
               .fadeIn( function()
                        {
                         $( ".element:eq(2)", mainElement )
                          .animate( { left: "85px" },
                                    function()
                                    {
                                     var clone = $(this).clone();
                                     
                                     $(this).hide()
                                            .removeClass( "perspective" )
                                            .css({ left: 0 })
                                            .fadeIn();
                                     
                                     var txtElement = $( "#container div.content_home_left" );
                                     $( "h2", txtElement ).html( "<a href=" + $(this).data("element").href + ">" + $(this).data("element").title + "</a>" );
                                     $( "h3", txtElement ).html( $(this).data("element").subtitle );
                                     $( "a", txtElement ).attr( "href", $(this).data("element").href );
                                     txtElement.fadeIn();
                                     
                                     $(clone).fadeOut( function()
                                                       {
                                                        $(this).remove();
                                                       } );
                                    } );
                         $( ".element:gt(2)", mainElement ).animate({ left: "-=105px" });
                         
                         
                         
                         $(this).animate( { left: "-250px" },
                                          function()
                                          {
                                           var lastElement = $( ".element:gt(1):last", mainElement );
                                           
                                           if( $(mainElement).outerWidth() < $(lastElement).position().left + $(lastElement).outerWidth() )
                                           {
                                            $( ".element:eq(1)" )
                                             .appendTo( mainElement )
                                             .addClass( "perspective" )
                                             .css({ left: ( $(lastElement).position().left + $(lastElement).outerWidth() - 145 ) + "px", zIndex: $(lastElement).css("zIndex") - 1 })
                                             .show();
                                            
                                            $(mainElement).data( "animation_in_progress", false );
                                            $(mainElement).trigger( "startAutoRead" );
                                           }
                                           else
                                           {
                                            $( ".element:eq(1)" )
                                             .appendTo( mainElement )
                                             .addClass( "perspective" )
                                             .css({ left: $(mainElement).outerWidth() + "px", zIndex: $(lastElement).css("zIndex") - 1 })
                                             .show()
                                             .animate( { left: ( $(lastElement).position().left + $(lastElement).outerWidth() - 145 ) + "px" },
                                                       function()
                                                       {
                                                        $(mainElement).data( "animation_in_progress", false );
                                                        $(mainElement).trigger( "startAutoRead" );
                                                       } );
                                           }
                                           
                                           $(this).remove();
                                          } );
                        } );
             }
            }
           } )
    // Auto read
    .bind( "startAutoRead",
           function()
           {
            $(this).data( "timer",
                          window.setTimeout( function()
                                             {
                                              $(mainElement).trigger("moveToNext");
                                             }, 4000 ) );
           } )
    .bind( "stopAutoRead",
           function()
           {
            window.clearTimeout( $(this).data( "timer" ) );
           } );
   
   
   // Start auto read
   $(this).trigger( "startAutoRead" );
  }
 }
 
}
)(jQuery);