// remap jQuery to $
(function($){})(window.jQuery);

$(document).ready(function (){
  
  // Click en enlace del Club
  if ($(".club").length > 0){
    $("#article-0 a:first").addClass("club_link");
    $('a.club_link').click(function() {
      movNextSlider( false );
    });
  }
  
  // Relocate elements
  relocateHeader();
  relocateOptions();
  relocateFooter();
  
  /*
    SLIDER
  */
  
  // Initial pos (1 element, center item)
  if( $(".post").length == 1 ) {
    var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
    initX = Math.ceil( viewportWidth/2 ) - Math.ceil( item_width/2 );
  }
  
  // - HEIGHT -
  
  var viewportheight = $(window).height() - ($('#header').height()+$('#footer').height());
  relocateSliderContainer( viewportheight );
  /*
  //alert("Window height: "+$(window).height()+" / DocumentHeight: "+$(document).height() + " / viewportheight:"+viewportheight);
  if( viewportheight > 400 ) {
    $('#slider').height(viewportheight);
    $('#wrap').height(viewportheight);
  } else {
    $('#slider').height(400);
  }
  */
  
  // Actualizamos los botones de navegacion
  //updateButtons();
  
  var emptyLeftMargin = 0;
  
  for (i=0;i<$(".post").length;i++) {    
    $("#article-"+i).css("left", (i*item_width)+emptyLeftMargin);
  }
  
  if( emptyLeftMargin > 0 ) {
    $("#article-default").css("left", 0);
  }
  
  
  $('#slider').css("width", item_width*((".post").length+1));
  $('#slider-container').css("left", initX );
  
  // NAV
  $('a.next').css("left", $(window).width()-50 );
  if( viewportheight <= maxViewport ) {
    $('a.next').css("top", (Math.ceil(viewportheight/2)-25) );
    $('a.prev').css("top", (Math.ceil(viewportheight/2)-25) );
  } else {
    $('a.next').css("top", ((maxViewport/2)-25) );
    $('a.prev').css("top", ((maxViewport/2)-25) );
  }
  
  
  $('.next').click(function() {
    movNextSlider( false );
  	return false;
	});
  
	$('.prev').click(function() {
	  movPrevSlider();
		return false;
	});
	
	getURLState();
	
	// Mostramos el header
	$('#header').css('visibility', 'visible');
	
	/*
	  Si estamos dentro de un input bloquear la opción de navegación con las teclas
	*/
	var blockButtons = false;
	$('.single').focus(function() {
    if( !blockButtons )
      blockButtons = true;
  });
  $('.single').blur(function() {
    if( blockButtons )
      blockButtons = false;
  });
  
	
	if( $(".post").length > 1  ) {
	  $(document.documentElement).keyup(function (event) {
      if (event.keyCode == 37) {
        // PREV
        if( !blockButtons )
          movPrevSlider();
      } else if (event.keyCode == 39) {
        // NEXT
        if( !blockButtons)
          movNextSlider( false );
      }
    });
	}
	
  
});

function movNextSlider( init ) {
  //var mov = 1000;
  
  if( clicks < ($(".post").length-1) ) {
    
    if( clicks == 0 ) {
      $(".prev").css("visibility", "visible");
      $(".prev").animate({"opacity": "1"},{queue:false, duration:800, easing:"expoEaseInOut"});
    }
    
    clicks++;
    
    updateURL();
    
    //var posX = -(item_width*clicks);
    
    if( (clicks == 1) && ($(".post").length > 2) ) {
      
      //var viewportWidth = item_width - Math.ceil( $(window).width() - (item_width) );
      var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
      var center = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
      var posX  = (center - item_width);
      
    } else if( clicks < ($(".post").length-1) ) {
      
      
      var posX = slider_pos - item_width;
      
      // Si init==true es que venimos desde la funcion gotoSection
      if( init ) {
        var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
        var center = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
        posX  = (center - item_width);
      
        posX = posX - slider_pos - item_width;
      }
      
    } else {
      //alert($("#slider").width() + " / slider_pos: " + slider_pos)
      
      var margin_right = $(window).width() - item_width;
      var posX = -( (( ($(".post").length-1) * item_width) + initX) - margin_right ) - initX;
    }
    slider_pos  = posX;
    
    $("#slider").animate({"left": posX},{queue:false, duration:800, easing:"expoEaseInOut"});
    
		updateButtons( false );
		
	}
}
function movPrevSlider() {
  //var mov = 1000;
  //$.scrollTo(this.hash, 1500, { easing:'elasout' });
  if( clicks > 0 ) {
    
    if( clicks == ($(".post").length-1) ) {
      $(".next").css("visibility", "visible");
      $(".next").animate({"opacity": "1"},{queue:false, duration:800, easing:"expoEaseInOut"});
    }
    
    clicks--;
      
    updateURL();
    updateButtons( false );
    
    //var posX = -(item_width*clicks);
    
    
    if( clicks == 0 ) {
      var posX = 0;
      //var viewportWidth = item_width - Math.ceil( $(window).width() - (item_width) );
      /*
      var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
      var center = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
      var posX  = (center - item_width);
      */
      
    } else if( clicks < ($(".post").length-2) ) {
      
      var posX = slider_pos + item_width;
      
    } else {
      //alert($("#slider").width() + " / slider_pos: " + slider_pos)
            
      var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
      var center        = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
      var posX          = slider_pos - (center - item_width);
      
      /*
      var margin_right = $(window).width() - item_width;
      var posX = -( (( ($(".post").length-1) * item_width) + initX) - margin_right ) - initX;
      */
      
    }
    slider_pos  = posX;
    
    
    $("#slider").animate({"left": posX},{queue:false, duration:800, easing:"expoEaseInOut"});
    
  }
}

function updateButtons( init ) {
  if( clicks == 0 ) {
    
    $(".prev").animate({
      "opacity": "0"
    }, {
      queue:false,
      duration:400,
      easing:"expoEaseInOut",
      complete: function() {
        $(this).css("visibility", "hidden");
      }
    });
  }
  if( clicks == ($(".post").length-1) ) {
    //$(".next").css("visibility", "hidden");
    //$(".next").fadeTo("fast", 0);
    
    $(".next").animate({
      "opacity": "0"
    }, {
      queue:false,
      duration:400,
      easing:"expoEaseInOut",
      complete: function() {
        $(this).css("visibility", "hidden");
      }
    });
    
  }
}


/* optional triggers

$(window).load(function() {
	
});
*/
$(window).resize(function() {
	var viewportheight = $(window).height() - ($('#header').height()+$('#footer').height());
	
  relocateSliderContainer( viewportheight );
  relocateHeader();
  relocateOptions();
  relocateFooter();
  relocateSlider();
  
  // Slider nav
  // NAV
  $('a.next').css("left", $(window).width()-50 );
  if( viewportheight <= maxViewport ) {
    //$('#slider-nav').css("top", (Math.ceil(viewportheight/2)-25) );
    
    $('a.next').css("top", (Math.ceil(viewportheight/2)-25) );
    $('a.prev').css("top", (Math.ceil(viewportheight/2)-25) );
    
  } else {
    //$('#slider-nav').css("top", ((maxViewport/2)-25) );
    $('a.next').css("top", ((maxViewport/2)-25) );
    $('a.prev').css("top", ((maxViewport/2)-25) );
  }
  /*
  if( viewportheight <= maxViewport ) {
    $('#slider-nav').css("top", (Math.ceil(viewportheight/2)-25) );
  } else {
    $('#slider-nav').css("top", ((maxViewport/2)-25) );
  }
  $('#slider-nav').css("width", $(window).width() );
  */
  
});

function relocateSliderContainer( viewportheight ) {
  
  //var viewportheight = $(window).height() - ($('#header').height()+$('#footer').height());
  //alert("Window height: "+$(window).height()+" / DocumentHeight: "+$(document).height() + " / viewportheight:"+viewportheight);
  
  if( viewportheight > minViewport ) {
    $('#slider').height(viewportheight);
    $('#wrap').height(viewportheight);
  } else {
    $('#slider').height(minViewport);
  }
  
  //$("#header p:first").html( "viewportheight: "+viewportheight );
  
}

function relocateSlider() {
  var viewportWidth = ( $(window).width() > item_width ) ? $(window).width() : item_width;
  var posX = 0;
  
  // 1 element, center item
  if( $(".post").length == 1 ) {
    posX = Math.ceil( viewportWidth/2 ) - Math.ceil( item_width/2 ) - initX;
  } else {
  
    if( clicks == 0 ) {
      posX = 0;
    } else if( (clicks == 1) && ($(".post").length > 2) ) {
    
      var center = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
      posX  = (center - item_width);
    
    } else if( clicks < ($(".post").length-1) ) {
      
      var center = Math.ceil( (viewportWidth - item_width)/2 ) - initX;
      var firstX  = (center - item_width);
      posX = firstX - (item_width*(clicks-1));
    
    } else {    
    
      var margin_right = $(window).width() - item_width;
      posX = -( (( ($(".post").length-1) * item_width) + initX) - margin_right ) - initX;
    
    }
    
  }
  
  slider_pos  = posX;
  
  $('#slider').css("left", slider_pos );
  
  //$("#slider").animate({"left": posX},{queue:false, duration:800, easing:"expoEaseInOut"});
}


function updateURL() {
  if( slider_sections[clicks] == "" ) {
     window.location.hash = "";
  } else {
    window.location.hash = slider_sections[clicks];
  }
}

function getURLState() {
  var initialTab = window.location.hash;
  
  if( initialTab != "" )
    gotoSection(initialTab);
  else
    updateButtons( true );
}
function gotoSection( op ) {
  //alert("INITIAL SECTION: "+op);
  num = op.replace("#", "");
  var count;
  for( i=0;i<slider_sections.length;i++ ) {
    if( slider_sections[i] == num ) {
      count = i;
    }
  }
  
  if( count != undefined ) {
    if( count > 0 ) {
      clicks = count-1;
      movNextSlider( true );
    } else {
      updateButtons( true );
    }
    //alert("COUNT..."+count);
  }
  
}

/*
  RELOCATE ELEMENTS
*/
function relocateOptions() {
  var optionsX  = $(window).width()-(220+initX);
  optionsX      = ( optionsX > 745 ) ? optionsX : 745;
  
  $('#options').css( "left", optionsX );
}
function relocateFooter() {
  //var footerY  = ( $(window).height() > 800 ) ? 0 : 50;
  //$('#footer').css( "bottom", footerY );
  
  var footerY  = $(window).height() - $('#footer').height();
  if( $(window).height() > 1010 ) { footerY = 975; }
  if( $(window).height() < 620 ) { footerY = 585; }
  
  $('#footer').css( "top", footerY );
  
}
function relocateHeader() {
  var logoX = Math.ceil( $(window).width()/2 ) - 95;
  var navX  = Math.ceil( $(window).width()/2 ) - 400;
  
  if( logoX < 400 ) {
    logoX = 400;
  }
  if( navX < 95 ) {
    navX = 95;
  }
  
  $('#jeanleon-logo').css( "left", logoX );
  $('#nav').css( "left", navX );
  
  if( $("#subnav").length > 0 ){
    $('#subnav').css( "left", navX );
  }
  
}
