/* Author: Carl Mathisen

*/

/* PROJECTS */

(function($) {
    
    var config = {threshold: 0, offset_scroll: 6, offset_intertia: .15, offset_bg_intertia: 0.40};
    config.threshold = -175;
    
    if($.browser.msie !== true
        && !Modernizr.touch
        && $('#slides').length) {
        
        $self = $(this);
        var element = undefined;
        
        $.distancefromfold = function($element, settings) {
                var fold = $(window).height() + $(window).scrollTop();
                return (fold + settings.threshold) - element.offset().top;
        };
        
        $.onSlideScroll = function() {
            $('#layout section').each(function(index) {
                element = $(this);
                var _x = '50% '
                var distance = $.distancefromfold(element,{threshold:config.threshold});
                var _y = -((distance - config.threshold) * config.offset_intertia);
		var bpos = _x + _y + 'px';
                element.css({'backgroundPosition':bpos})
                
		var fadeBg = element.find('.slide-fade-bg');
		if(fadeBg) {
		    
		    var opacity = 0;
		    var offset = $(window).scrollTop() - $(element).offset().top + 200;
		    if(offset < 0) opacity = 0;
		    else if(offset > 400) opacity = 1;
		    else {
			opacity = offset / 400;
		    }
    
		    fadeBg.css({'backgroundPosition':bpos, 'opacity': opacity});
		
		}

	        var elementId = element.attr('id');
               	var split = elementId.split('-');
		if(split.length == 2) {
			var offset = $(window).scrollTop() - $(element).offset().top;
			if(offset > -200) {
				var sliderId = split[1];
				console.log(split[1]);
				$('#slider-nav a').css('backgroundPosition', '0px -19px');
				$('#slider-nav-dot-'+sliderId+' a').css('backgroundPosition', '0px 0px');
				console.log('#slider-nav-dot-'+sliderId+' a');
			}	
		}
               
                bpos = _x + (-((distance - config.threshold) * config.offset_bg_intertia) + 300 ) + 'px';
                element.find('.slide-bg').css({'backgroundPosition':bpos});
            });
        };
           
        $.onSlideScroll();
    
        $(document).scroll(function() {
            $.onSlideScroll()
        });
        
    }
    else
    {
        $('body .slide-container').css('backgroundAttachment', 'scroll');
        $('body .slide-fade-bg').css('backgroundAttachment', 'scroll');
        $('body .slide-container').css('backgroundPosition', '50% -100px');
        $('body .slide-fade-bg').css('backgroundPosition', '50% -100px');

    }
    
    if(!Modernizr.touch
    && $('#slides').length) {
        
        
        /* MASK FOR SLIDES */
        
        var resize = function() {
            var width = $(window).width();
            var height = $(window).height();
            if(width > 1900 || height > 980) {

        	$('#mask-left').show();
        	$('#mask-right').show();
        	$('#mask-bottom').show();

        	var maskHorizontal = width - (Math.round((width - 1900) / 2));
        	var maskWidth = width - maskHorizontal;
        	$('#mask-left').css('right', maskHorizontal+'px');
        	$('#mask-left').css('height', height+'px');
        	$('#mask-left').css('width', maskWidth+'px');

        	$('#mask-right').css('left', maskHorizontal+'px');
        	$('#mask-right').css('height', height+'px');
        	$('#mask-right').css('width', maskWidth+'px');

        	var maskHeight = height - 980;
        	$('#mask-bottom').css('width', width+'px');
        	$('#mask-bottom').css('height', maskHeight+'px');
            }
            else
            {
        	if(width < 1900) {
        		$('#mask-left').hide();
        		$('#mask-right').hide();
        	}
        	if(height < 980) {
        		$('#mask-bottom').hide();
                }
            }

	    /* slider nav dots */
            $('#slider-nav').show();
	    if($('#slider-nav').length) {
	    	var sliderHeight = $('#slider-nav').height();
		if(height > 980)
			height= 980;

		var offset = (height-sliderHeight) / 2;
	    	$('#slider-nav').css('top', offset+'px');
            
		var margin = $('#mask-right').width() + 20;
		$('#slider-nav').css('right', margin+'px');
	    }
	}
        $(window).resize(resize);
        resize();
        
    }
    
	
	
	
	if($(document.body).attr('id') == 'ProjectHolder') {
		
		/* scroll */
		if($.browser.msie !== true
            && !Modernizr.touch) {
		
        	$.onPageScroll = function() {
                var element = $('body#ProjectHolder');
                var _x = '50% '
        
                var fold = $(window).height() + $(window).scrollTop();
                var distance = (fold + config.threshold) - element.offset().top;
        
                var bpos = _x + (-((distance - config.threshold) * config.offset_intertia) ) + 'px';
                element.css({'backgroundPosition':bpos})
            };
        }
        
        $(document).scroll(function() {
            $.onPageScroll()
        });
        
        /* filtering */
		
		var projects = $('#services');
		var data = projects.clone();
		
		function showFiltered(service) {
			
			$('#ProjectHolder .filter a.button').removeClass('active');
			$('#ProjectHolder .filter a[data-service="'+service+'"]').addClass('active');
			
			var filteredData;
			if(service == '') {
				filteredData = data.find('li');
			}
			else {
				filteredData = data.find('li[data-services~="'+service+'"]');
			}
		  
			projects.quicksand(filteredData, {
				duration: 500,
				easing: 'easeInOutQuad'
			});
		}

		$('#ProjectHolder .filter a.button').click(function(e) {
			var service = $(this).attr('data-service');
			showFiltered(service);
		});
		
		
		var url = $(location).attr('href');
		if(url.indexOf('#') > -1) {
			var service = url.split('#')[1];
			showFiltered(service);
		}
	}
    
})(jQuery);

