var navWidth  = 0;
var navHeight = 0;
var navRatio  = 0;

var homeBgWidth  = 1920;
var homeBgHeight = 1112;
var homeBgRatio  = 0;

var homeLoaderTimer = null;

var homeNewsTimer = null;

var homeNewsCurrent = 0;

var homePanelNextTrigger = 0;
var homePanelNextActual  = 0;

var homePanelPrevTrigger = 0;
var homePanelPrevActual  = 0;

var homePanelCurrent = null;
var homePanelCurrentRel = '';

var homePanelElementWidth = 192;

var tmpProjectImage = '';
var tmpProjectUrl   = '';
var tmpProjectId    = 0;

//var cufonOptions = { hover: true, textShadow: '1px 1px rgba( 0, 0, 0, 0.5 )' };

var cufonLightOptions = { hover: true, fontFamily: 'frutiger-lt-45-light' };
var cufonRomanOptions = { hover: true, fontFamily: 'frutiger-lt-55-roman' };

Cufon.replace( 'a.home-panel-link', cufonLightOptions );
Cufon.replace( 'div.home-news-content', cufonLightOptions );

$(document).ready(function(){
	$( 'div.home-loader' ).flash({
		swf: 'swf/loading.swf',
		width: '50px',
		height: '25px',
		hasVersion: 8,
		flashvars: {},
		params: { wmode: 'transparent'}
	});
	
  if ( $( 'div.home-container' ).length ) {
    homePanelCurrent = $( 'div.home-panel div.home-slider ul:first-child' );
    
    homePanelCurrentRel = homePanelCurrent.attr( 'rel' );
    
    homePanelCurrent.fadeIn( 1000 );
    
    $( 'div.home-panel div.home-slider ul' ).each(function(){
      $( this ).append( $( this ).html() );
      
      newLeft = 0 - ( ( ( $( this ).children( 'li' ).length / 2 ) - 1.5 ) * homePanelElementWidth );
      
      $( this ).css({ width: ( $( this ).children( 'li' ).length * homePanelElementWidth ), left: newLeft });
    });
    
    $( 'div.home-panel div.home-slider ul' ).delegate( 'a', 'click', function(){
      tmpProjectId    = $( this ).attr( 'rel' );
      
      tmpProjectUrl   = $( this ).attr( 'href' );
      
      $( 'div.home-panel div.home-slider ul.home-slide li a.active' ).removeClass( 'active' );
      
      $( 'div.home-panel div.home-slider ul.home-slide li a[rel="' + tmpProjectId + '"]' ).addClass( 'active' );
            
      tmpProjectImage = $( this ).children( 'img' ).attr( 'src' );
      tmpProjectImage = tmpProjectImage.replace( 'uploads/articles/bigimagesthumbs', 'uploads/articles/bigimages' );
      
      homePanelChange( tmpProjectImage );
      
      if ( homeNewsCurrent != tmpProjectId ) {
        homeNewsChange( tmpProjectId );
      }
      
      $( 'div.home-panel a.home-link-details').attr( 'href', tmpProjectUrl );
      
      return false;
    });
    
    $( 'div.home-panel div.home-panel-top a.home-panel-link' ).click(function(){
      if ( homePanelCurrentRel != $( this ).attr( 'rel' ) ) {
        $( 'div.home-panel div.home-panel-top a.home-panel-link-active' ).removeClass( 'home-panel-link-active' );
        
        $( this ).addClass( 'home-panel-link-active' );
        
        Cufon.refresh();
        
        $( 'div.home-panel div.home-slider ul' ).stop( true, true );
        
        homePanelCurrentRel = $( this ).attr( 'rel' );
        
        $( 'div.home-panel div.home-slider ul' ).each(function(){
          if ( $( this ).attr( 'rel' ) == homePanelCurrentRel ) {
            $( this ).fadeIn( 1000 );
            
            homePanelCurrent = $( this );
          } else {
            if ( $( this ).is( ':visible' ) ) {
              $( this ).fadeOut( 1000 );
            }
          }
        });
      }
      
      return false;
    });
    
    $( 'div.home-panel a.home-slider-next' ).click(function(){
      homePanelCurrent.stop( true, true );
      
      homePanelNextActual  = parseInt( homePanelCurrent.css( 'left' ) );
      homePanelNextTrigger = 0 - ( ( homePanelCurrent.children( 'li' ).length - 4.5 ) * homePanelElementWidth );
      
      if ( homePanelNextActual == homePanelNextTrigger ) {
        homePanelCurrent.append( homePanelCurrent.html() );
        
        homePanelCurrent.css({ width: ( homePanelCurrent.children( 'li' ).length * homePanelElementWidth ) });
      }
      
      homePanelCurrent.animate({ left: '-=' + homePanelElementWidth },{ duration: 250 });
      
      return false;
    });
    
    $( 'div.home-panel a.home-slider-prev' ).click(function(){
      homePanelCurrent.stop( true, true );
      
      homePanelPrevActual  = parseInt( homePanelCurrent.css( 'left' ) );
      homePanelPrevTrigger = 0 - ( homePanelElementWidth / 2 );
      
      if ( homePanelPrevActual == homePanelPrevTrigger ) {
        homePanelCurrent.append( homePanelCurrent.html() );
        
        homePanelCurrent.css({ width: ( homePanelCurrent.children( 'li' ).length * homePanelElementWidth ), left: 0 - ( ( ( homePanelCurrent.children( 'li' ).length / 2 ) + 0.5 ) * homePanelElementWidth ) });
      }
      
      homePanelCurrent.animate({ left: '+=' + homePanelElementWidth },{ duration: 250 });
      
      return false;
    });
    
    $(window).resize(function(){
      homePanelFit();
    });
    
    homePanelFit();
    
    homePanelChange();
    
    homeNewsChange();
  }
});

function homePanelChange( newImage ) {
  if ( !newImage ) {
    newImage = $( 'img.home-background-1' ).attr( 'src' );
  } else {
    if ( newImage == $( 'img.home-background-1' ).attr( 'src' ) ) {
      return;
    }
  }
  
  $( 'img.home-background-1' ).stop( true, true );
  $( 'img.home-background-2' ).stop( true, true );
  
  clearTimeout( homeLoaderTimer );
  
  $( 'img.home-background-2' ).css({ display: 'none' });
  
  $( 'div.home-mask' ).fadeIn( 100, function(){
    if ( $.browser.msie ) {
      $('<img />').attr('src', newImage + '?' + Math.random() * 99999 ).load(function(){
        $( 'img.home-background-2' ).attr( 'src', newImage );
        
        $( 'img.home-background-1' ).fadeOut( 750 );
        
        $( 'img.home-background-2' ).fadeIn( 750, function(){
          homeLoaderTimer = setTimeout( function(){ $( 'div.home-mask' ).fadeOut( 100 ); }, 100 );
          
          $( 'img.home-background-1' ).attr( 'src', newImage ).fadeIn( 0 );
        });
      });
    } else {
      $('<img />').attr('src', newImage ).load(function(){
        $( 'img.home-background-2' ).attr( 'src', newImage );
        
        $( 'img.home-background-1' ).fadeOut( 750 );
        
        $( 'img.home-background-2' ).fadeIn( 750, function(){
          homeLoaderTimer = setTimeout( function(){ $( 'div.home-mask' ).fadeOut( 100 ); }, 100 );
          
          $( 'img.home-background-1' ).attr( 'src', newImage ).fadeIn( 0 );
        });
      });
    }
  });
}

function homeNewsChange( newId ) {
  if ( newId ) {
    clearTimeout( homeNewsTimer );
    
    homeNewsCurrent = newId;
    
    $( 'div.home-news-container' ).stop( true, true );
    
    $( 'div.home-news-container' ).animate({ top: 210, opacity: 0 },{ duration: 500, complete: function(){
      $( 'div.home-news-container' ).css({ display: 'block', top: 250, opacity: 0 });
      
      $.ajax({
        url: "/ajax/home.php?news=" + newId,
        success: function( data ) {
          $( 'div.home-news-container' ).html( data );
          
          if ( data ) {
            Cufon.refresh();
            
            homeNewsTimer = setTimeout( function(){
              $( 'div.home-news-container' ).animate({ top: 230, opacity: 1 },{ duration: 500 });
            },1000 );
          }
        }
      });
      
    }});;
  } else {
    if ( $( 'div.home-news-container' ).html() ) {
      homeNewsTimer = setTimeout( function(){
        $( 'div.home-news-container' ).css({ display: 'block', top: 250, opacity: 0 });
        
        $( 'div.home-news-container' ).animate({ top: 230, opacity: 1 },{ duration: 500 });
        
        homeNewsCurrent = $( 'div.home-news-container div.home-news-content' ).attr( 'rel' );
      }, 2000 );
    }
  }
}

function homePanelFit() {
  navWidth  = $(window).width();
  navHeight = $(window).height();
  navRatio  = navWidth / navHeight;
  
  if ( $( 'img.home-background' ).length ) {
    //homeBgWidth  = $( 'img.home-background' ).width();
    //homeBgHeight = $( 'img.home-background' ).height();
    homeBgRatio  = homeBgWidth / homeBgHeight;
    
    
    if ( navRatio > homeBgRatio ) {
      newWidth  = navWidth;
      newHeight = navWidth / homeBgRatio;
      
      newLeft = 0;
      newTop  = 0 - ( ( newHeight - navHeight ) / 2 );
    } else {
      newWidth  = navHeight * homeBgRatio;
      newHeight = navHeight;
      
      newLeft = 0 - ( ( newWidth - navWidth ) / 2 );
      newTop  = 0;
    }
    
    $( 'img.home-background' ).css({ width: newWidth, height: newHeight, left: newLeft, top: newTop });
    $( 'div.home-background-container' ).css({ width: navWidth, height: navHeight });
    $( 'div.home-loader' ).css({ left: ( navWidth / 2 ) - 25, top: ( navHeight / 2 ) - 12 });
  }
  
  $( 'div.home-panel' ).css({ left: ( navWidth - 832 ) / 2 });
}
