G_slideshowDelay = 3000;
G_slideshowStop  = false;
G_loadedImages2   = new Array();
G_loadedImages2Id = new Array();
G_firstPic = ''

FxFade = Fx.Base.extend({
  initialize: function (img, overlay, options) {
    this.img = img;
    this.img.setStyle('opacity', 0);
    this.overlay = overlay;
    this.overlay.setStyle('opacity', 0);
    this.setOptions(options);
  },

  setNow: function() {
    this.now = this.compute(this.from, this.to);
  },

  compute: function(from, to) {
    return (to - from) * this.delta + from;
  },

  increase: function() {
    this.img.setStyle('opacity', this.now);
    this.overlay.setStyle('opacity', Math.sin(Math.PI * this.now) / 3);
  }
});

function slideshowInit()
{
  
  if ( G_loadedImages2Id.length == 0)
  {
    G_loadedImages2Id.push( slideshowImages[0].replace(/&amp;/g,'&') );
    G_loadedImages2.push( new Asset.image( slideshowImages[0].replace(/&amp;/g,'&') ) );
  }
  
  var image = new Asset.image(G_firstPic.replace(/&amp;/g,'&'),{onload:function()
  {
      if ( !G_contentFirstFx)
      {
        $("menuCover").fx.start(0.8); //showMenuCover(false);
        $("menuCover").setStyle('height', '350px');
        
        $('content').setStyle('border',' 1px solid #666666');
        $('scrollPane').setStyle('display','none');
        
        $('preloadCircle').fx.start(0);
        menuShow.start(1);
        
        $('Im1').src = this.src;
        $('Im2').src = '';
        
        var fx1 = new Fx.Styles('content'  ,{duration:1000});
        var fx2 = new Fx.Styles('contentBg',{duration:1000});
            
        fx2.addEvent('onComplete', function(event)
        {
          if ( !G_slideshowStop )
          {
            $('scrollPane').setStyle('display','block');
            FxIm1.start(1);
            G_firstIntro = false;
          }
        });
        
        (function(){
            fx1.start( {width : [0, 646], height : [0, 431]});
            fx2.start( {width : [0, 646], height : [0, 431]});
            
            slideshowCurrentPos = 1;
            slideshowIteration = 0;
            
            FxIm1 = $('Im1').effect('opacity', {wait: false, duration: 1000}).set(0);
            FxIm1.addEvent('onComplete', loadImg);
            FxF = new FxFade($('Im2'), $('Fg'),{wait: false, duration: 1000});
            FxF.addEvent('onComplete', loadImg);
            G_contentFirstFx = true;
        }).delay(1000);
      }
      else
      {    
           
          slideshowCurrentPos = 1;
          slideshowIteration = 0;
          
          $('Im1').src = this.src;
          $('Im2').src = '';
            
          
          
          FxIm1 = $('Im1').effect('opacity', {wait: false, duration: 1000}).set(0);
          FxIm1.addEvent('onComplete', loadImg);
          FxF = new FxFade($('Im2'), $('Fg'),{wait: false, duration: 1000});
          FxF.addEvent('onComplete', loadImg);
        
          (function() {
              if ( !G_slideshowStop )
              {
                $('preloadCircle').fx.start(0);
                FxIm1.start(1);
                showMenuCover(false);
                $("menuCover").setStyle('height', '350px');
              }
          }).delay(1000);             
       }
  }});  
}


function loadImg()
{

  if ( !G_slideshowStop )
  {
      var path = slideshowImages[slideshowCurrentPos].replace(/&amp;/g,'&');
      var index = (G_loadedImages2Id != null) ? G_loadedImages2Id.indexOf(path) :  -1;
      //console.log ( 'path : ' + path );
      if ( index > -1 && index < G_loadedImages2.length)
      {
          //console.log  ( 'preload : ' + G_loadedImages2[ index ].src );
          if ( !(slideshowIteration%2) )
             $('Im2').src = G_loadedImages2[ index ].src;
          else
             $('Im1').src = G_loadedImages2[ index ].src;
             
          slideshowFade.delay(G_slideshowDelay); 
      }
      else
      {
          var img = new Asset.image(path, {onload: function() {
            if ( typeof img.fired == 'undefined' || !G_slideshowStop ) // workaround for bug in mootools (event fires double for already cached images)
            {
              img.fired = true;
              //console.log ( 'asset : ' + img.src );
              if ( !(slideshowIteration%2) )
            	   $('Im2').src = img.src;
              else
                 $('Im1').src = img.src;
                
              if ( !G_loadedImages2Id.contains(path ))
              {
                G_loadedImages2Id.push ( path );
                G_loadedImages2.push ( img ); 
              }
              
              slideshowFade.delay(G_slideshowDelay);
            }
          }});
          
      }
  }
}

function slideshowFade()
{
  if ( !G_slideshowStop )
  {
      if ( !(slideshowIteration%2) )
        FxF.start(0,1);
      else
        FxF.start(1,0);
    
      slideshowIteration++;
      slideshowCurrentPos++;    
      if ( slideshowCurrentPos >= slideshowImages.length )
        slideshowCurrentPos = 0;
  }
}
