/**
 * Name: Scripts.js
 * Date: March 2011
 * Description:
 * Version: 1.0
 * Coder: Enrique Ramirez
 * Coder URI: http://enrique-ramirez.com
*/

/* Infinite Carousel Plugin
-----------------------------------------------*/
jQuery.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }
  
    return this.each(function () {
        var jQuerywrapper = jQuery('> div', this).css('overflow', 'hidden'),
            jQueryslider = jQuerywrapper.find('> ul'),
            jQueryitems = jQueryslider.find('> li'),
            jQuerysingle = jQueryitems.filter(':first'),
            
            singleWidth = jQuerysingle.outerWidth() + 1, 
            visible = Math.ceil(jQuerywrapper.innerWidth() / singleWidth),
            currentPage = 1,
            pages = Math.ceil(jQueryitems.length / visible);                
			

        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if ((jQueryitems.length % visible) != 0) {
            jQueryslider.append(repeat('<li class="empty" />', visible - (jQueryitems.length % visible)));
            jQueryitems = jQueryslider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        jQueryitems.filter(':first').before(jQueryitems.slice(- visible).clone().addClass('cloned'));
        jQueryitems.filter(':last').after(jQueryitems.slice(0, visible).clone().addClass('cloned'));
        jQueryitems = jQueryslider.find('> li'); // reselect
        jQueryitems.addClass('item');
        // 3. Set the left position to the first 'real' item
        jQuerywrapper.scrollLeft(singleWidth * visible);
        
        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;
            
            jQuerywrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    jQuerywrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    jQuerywrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                } 

                currentPage = page;
            });                
            
			// Bullet Point Modification
			jQuery("ul.bullet-points li").removeClass('active');
            var current_bullet = page;
            if(page > bullet_needle) {
				current_bullet = 1;
			} else if(page == 0) {
            	current_bullet = bullet_needle;
			}
			jQuery("a.goto-slide[rel='slide-"+current_bullet+"']").parent().addClass('active');

            return false;
        }
        
        jQuerywrapper.after('<a class="arrow-left"></a><a class="arrow-right"></a>');
        
        // 5. Bind to the forward and back buttons
        jQuery('.arrow-left', this).click(function () {
            return gotoPage(currentPage - 1);
        });
        
        jQuery('.arrow-right', this).click(function () {
            return gotoPage(currentPage + 1);
        });
        
        // create a public interface to move to a specific page
        jQuery(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
        
        // Calculate number of bullet points
  		var totalElements = jQuery(".slides ul li[class='item']").length;
  		var bullet_needle = Math.ceil(totalElements/1);
  		var i = 1;

  		// Generate bullet points
  		jQuery(this).append('<ul class="bullet-points"></ul>');
  		for(i=1;i<=bullet_needle;i++){
  			jQuery("ul.bullet-points").append('<li><a class="goto-slide" href="#" rel="slide-'+i+'">'+i+'</a></li>');
  		}
		jQuery("ul.bullet-points li:first-child").addClass("active");
		
  		// Bind the Click action
		jQuery('a.goto-slide').click(function (e) {
			e.preventDefault();
			jQuery("ul.bullet-points li").removeClass('active');
			jQuery(this).parent().addClass('active');
			var page = jQuery(this).attr('rel');
			page = page.split('-');
			page = parseInt(page[1]);	
			gotoPage(page);                
		});
    });  
};

/* jQuery Document Ready */
jQuery(document).ready(function(){

	/* Homepage Carousel
	===============================================*/
	jQuery('#slides .slides, .slideshow').infiniteCarousel();
	jQuery('.posts-list').infiniteCarousel();
	
	/* Look Popup
	===============================================*/
	jQuery('.look').fancybox({
		'padding'		: '0',
		'transitionIn'	: 'fade',
		'transitionOut'	: 'fade',
		'easingIn'      : 'easeOutBack',
		'easingOut'     : 'easeInBack',
		'overlayColor'	: '#000',
		'margin'		: '0',
		'scrolling'		: false

	});
	
	jQuery('.btn-be-my').fancybox({
		'padding'		: '20',
		'transitionIn'	: 'fade',
		'transitionOut'	: 'fade',
		'easingIn'      : 'easeOutBack',
		'easingOut'     : 'easeInBack',
		'overlayColor'	: '#000',
		'margin'		: '0',
		'width' : '475',
		'height' : 'auto',
		'autoDimensions' : false
	});
	
	jQuery('.thank-you').fancybox({
		'padding'		: '20',
		'transitionIn'	: 'fade',
		'transitionOut'	: 'fade',
		'easingIn'      : 'easeOutBack',
		'easingOut'     : 'easeInBack',
		'overlayColor'	: '#000',
		'margin'		: '0',
		'width' : '475',
		'height' : 'auto',
		'autoDimensions' : false,
		'onClosed' : function() { window.location.href = "http://www.hentschman.com/info/the-hentsch-men"; }
	});
		
	jQuery('.thank-you').click();	
	
	/* Hentschmen
	===============================================*/
	jQuery('#hentschmen .men li a').click(function() {
		jQuery('#hentschmen .men li a').removeClass('active');
		jQuery(this).addClass('active');
		var img = jQuery(this).parent().find('.men-info .img img').attr('src');
		var content = jQuery(this).parent().find('.men-info .info').html();
		
		jQuery('#men-details .img img').fadeOut('slow', function() {
			jQuery(this).attr('src',img).fadeIn();
		});
		
		jQuery('#men-details .info').fadeOut('slow', function() {
			jQuery(this).html(content).fadeIn();
		});
		
		return false;
	}); 
	var intervalSlideshow = "",
		autoscrolling = true;
		
	/* jQuery Document Ready */
	jQuery(document).ready(function(){
	
		
		/* Look Popup
		===============================================*/
		jQuery('.look').fancybox({
			'padding'		: '20',
			'transitionIn'	: 'fade',
			'transitionOut'	: 'fade',
			'easingIn'      : 'easeOutBack',
			'easingOut'     : 'easeInBack',
			'overlayColor'	: '#000',
			'margin'		: '0'
		});
		
		/* Auto Scrolling 
			===============================================*/
		intervalSlideshow = setInterval(function () {
		  if (autoscrolling) {
		  	var event = jQuery.Event('click');
		  	event.isAuto = true;
		  
		    jQuery('#slides .arrow-right').trigger(event);
		  }
		}, 6000);
		
		jQuery('#slides .slides').mouseover(function () {
		  autoscrolling = false;
		}).mouseout(function () {
		  autoscrolling = true;
		});
		
		jQuery('#slides .arrow-right').click(function(e){
			if (!e.isAuto) {
				clearInterval(intervalSlideshow);
			}
		})
	
	});
});	
