(function($){
"use strict";
/******************************************************
*
* Check parent
*
******************************************************/
jQuery.expr[':'].notparents = function(a,i,m){
return jQuery(a).parents(m[3]).length < 1;
};
/*! Copyright 2012, Ben Lin (http://dreamerslab.com/)
* Licensed under the MIT License (LICENSE.txt).
*
* Version: 1.0.14
*
* Requires: jQuery 1.2.3 ~ 1.9.0
*/
;(function(e){e.fn.extend({actual:function(t,n){if(!this[t]){throw'$.actual => The jQuery method "'+t+'" you called does not exist'}var r={absolute:false,clone:false,includeMargin:false};var i=e.extend(r,n);var s=this.eq(0);var o,u;if(i.clone===true){o=function(){var e="position: absolute !important; top: -1000 !important; ";s=s.clone().attr("style",e).appendTo("body")};u=function(){s.remove()}}else{var a=[];var f="";var l;o=function(){if(e.fn.jquery>="1.8.0")l=s.parents().addBack().filter(":hidden");else l=s.parents().andSelf().filter(":hidden");f+="visibility: hidden !important; display: block !important; ";if(i.absolute===true)f+="position: absolute !important; ";l.each(function(){var t=e(this);a.push(t.attr("style"));t.attr("style",f)})};u=function(){l.each(function(t){var n=e(this);var r=a[t];if(r===undefined){n.removeAttr("style")}else{n.attr("style",r)}})}}o();var c=/(outer)/g.test(t)?s[t](i.includeMargin):s[t]();u();return c}})})(jQuery);
/*
* Function for finding elements in viewport
*
*/
(function ($) {
var $window = $(window),
_watch = [],
_buffer;
function test($el, tolerance) {
var docViewTop = $window.scrollTop() - tolerance,
docViewBottom = $window.scrollTop() + $window.height() + tolerance,
elemTop = $el.offset().top,
elemBottom = elemTop + $el.outerHeight();
return ( ( elemBottom >= docViewTop && elemTop <= docViewBottom ) || ( elemBottom <= docViewBottom && elemTop >= docViewTop ) || ( elemBottom >= docViewTop && elemTop <= docViewTop ) );
}
function scroller( e ) {
if ( !_buffer ) {
_buffer = setTimeout(function () {
checkInView( e );
_buffer = null;
}, 300);
}
}
if (window.addEventListener) {
//window.addEventListener('load', scroller, false);
window.addEventListener('scroll', scroller, false);
} else if (window.attachEvent) {
//window.attachEvent('onload', scroller);
window.attachEvent('onscroll', scroller);
}
$window.on('resize', scroller);
$(function() {
setTimeout(scroller, 0);
});
function checkInView( e ) {
$.each(_watch, function () {
if ( test( this.element, this.options.tolerance ) ) {
if ( !this.invp ) {
this.invp = true;
if ( this.options.scrolledin )
this.options.scrolledin.call( this.element, e );
this.element.trigger( 'scrolledin', e );
}
} else if ( this.invp ) {
this.invp = false;
if ( this.options.scrolledout )
this.options.scrolledout.call( this.element, e );
this.element.trigger( 'scrolledout', e );
}
});
}
function monitor( element, options ) {
var item = { element: element, options: options, invp: false };
_watch.push(item);
return item;
}
function unmonitor( item ) {
for ( var i=0;i<_watch.length;i++ ) {
if ( _watch[i] === item ) {
_watch.splice( i, 1 );
item.element = null;
break;
}
}
}
var pluginName = 'pixGridderScrolledIntoView',
settings = {
tolerance: null,
scrolledin: null,
scrolledout: null
};
$.fn[pluginName] = function( options ) {
var options = $.extend({}, settings, options);
this.each( function () {
var $el = $(this),
instance = $.data( this, pluginName );
if ( instance ) {
instance.options = options;
} else {
$.data( this, pluginName, monitor( $el, options ) );
$el.on( 'remove', $.proxy( function () {
$.removeData(this, pluginName);
unmonitor( instance );
}, this ) );
}
});
return this;
};
})(jQuery);
var PIXGRIDDER = window.PIXGRIDDER || {};
PIXGRIDDER.rotatingFrames = function(){
var $window = $(window);
$('.row[style*="rotate"]').addClass('pixgridder_rotate').each(function(){
if ( !$('.pix_section_video', this).length ) {
if ( !$('.rotating-frame', this).length ) {
var $frame = $(this);
$frame.append('
');
var rot = $frame.attr('style').match(/rotate\((.+?)deg\)/gi);
rot = rot[0];
rot = rot.replace(/rotate\((.+?)deg\)/gi,'$1');
var negRot = rot*-1,
bgImg,
bgRep,
bgColor,
ratio;
$('.rotating-frame', $frame).css({
webkitTransform: 'rotate('+rot+'deg)',
mozTransform: 'rotate('+rot+'deg)',
msTransform: 'rotate('+rot+'deg)',
oTransform: 'rotate('+rot+'deg)',
transform: 'rotate('+rot+'deg)'
});
$('.rotating-inside', $frame).css({
webkitTransform: 'rotate('+negRot+'deg)',
mozTransform: 'rotate('+negRot+'deg)',
msTransform: 'rotate('+negRot+'deg)',
oTransform: 'rotate('+negRot+'deg)',
transform: 'rotate('+negRot+'deg)'
});
if ( typeof $frame.attr('style') !== 'undefined' && $frame.attr('style').match(/background-image/) ) {
bgImg = $frame.css('background-image');
$frame.css('background-image','');
$('.rotating-inside', $frame).css('background-image',bgImg);
}
if ( typeof $frame.attr('style') !== 'undefined' && $frame.attr('style').match(/background-repeat/) ) {
bgRep = $frame.css('background-repeat');
$frame.css('background-repeat','');
$('.rotating-inside', $frame).css('background-repeat',bgRep);
}
if ( typeof $frame.attr('data-pix-ratio') !== 'undefined' ) {
ratio = $frame.attr('data-pix-ratio');
$frame.removeAttr('data-pix-ratio');
$('.rotating-inside', $frame).attr('data-pix-ratio',ratio);
}
if ( typeof $frame.attr('style') !== 'undefined' && $frame.attr('style').match(/background-color/) ) {
bgColor = $frame.css('background-color');
$frame.css('background-color','');
$('.rotating-frame', $frame).css('background-color',bgColor);
}
}
} else {
$(this).css({
webkitTransform: 'rotate(0)',
mozTransform: 'rotate(0)',
msTransform: 'rotate(0)',
oTransform: 'rotate(0)',
transform: 'rotate(0)'
});
}
$window.trigger('pix-parallax');
});
};
PIXGRIDDER.pixgridderParallax = function() {
var $window = $(window),
$dataratio = $('[data-pix-ratio]'),
fromTop;
$dataratio.each(function(){
var $div = $(this),
leng = $('.rotating-inside', $div).length;
$div = leng ? $('.rotating-inside', $div) : $(this);
var imgUrlOr = $div.css('background-image'),
imgSize = (typeof $div.css('background-size') == 'undefined' || parseFloat($div.css('background-size')) == '0') ? '100%' : $div.css('background-size'),
imgRepeat = (typeof $div.css('background-repeat') == 'undefined') ? 'no-repeat' : $div.css('background-repeat'),
ratio = $div.attr('data-pix-ratio'),
imgUrl = /^url\((['"]?)(.*)\1\)$/.exec(imgUrlOr),
newImg,
imgW,
imgH;
imgUrl = imgUrl ? imgUrl[2] : "";
var img = $('').one('load',function(){
if ( !$('img.pix-parallax', $div).length ) {
newImg = '';
imgW = $(newImg).naturalWidth();
imgH = $(newImg).naturalHeight();
newImg = $(newImg)
.attr('data-orheight',imgH)
.attr('data-orwidth',imgW)
.attr('src',pixgridder_blank_gif)
.css({
backgroundImage: imgUrlOr,
backgroundSize: imgSize,
backgroundRepeat: imgRepeat,
position: 'absolute'
});
$div
.css({backgroundImage:'', overflow:'hidden'})
.prepend(newImg);
$window.trigger('pix-parallax');
}
}).attr('src', imgUrl).each(function() {
if(this.complete) {
$(this).load();
}
});
var moveParax = function(){
fromTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
var $img = $('img.pix-parallax', $div),
winH = $window.height(),
elemTop = $div.offset().top,
elemBottom = elemTop + $div.outerHeight(),
scrollEl = (elemTop-fromTop)*ratio*-1;
if ( typeof $img[0] !== 'undefined' ) {
$img[0].style['-webkit-transform'] = 'translate3d(0,'+scrollEl+'px,0)';
$img[0].style['-moz-transform'] = 'translate3d(0,'+scrollEl+'px,0)';
$img[0].style['-ms-transform'] = 'translate3d(0,'+scrollEl+'px,0)';
$img[0].style['-o-transform'] = 'translate3d(0,'+scrollEl+'px,0)';
$img[0].style['transform'] = 'translate3d(0,'+scrollEl+'px,0)';
}
};
var stopParax = function(){
var $img = $('img.pix-parallax', $div);
if ( typeof $img[0] !== 'undefined' ) {
$img[0].style['-webkit-transform'] = 'translate3d(0,0,0)';
$img[0].style['-moz-transform'] = 'translate3d(0,0,0)';
$img[0].style['-ms-transform'] = 'translate3d(0,0,0)';
$img[0].style['-o-transform'] = 'translate3d(0,0,0)';
$img[0].style['transform'] = 'translate3d(0,0,0)';
}
};
$window.on('pix-parallax resize', function(){
if( !Modernizr.touch && $window.width() > 1024 ){
$div.pixGridderScrolledIntoView({
tolerance: 200,
scrolledin: function () {
if (window.addEventListener) {
window.addEventListener('load', moveParax, false);
window.addEventListener('popstate', moveParax, false);
window.addEventListener('scroll', moveParax, false);
window.addEventListener('resize', moveParax, false);
} else if (window.attachEvent) {
window.attachEvent('onpopstate', moveParax);
window.attachEvent('onscroll', moveParax);
window.attachEvent('onresize', moveParax);
}
}, scrolledout: function () {
if (window.removeEventListener) {
window.removeEventListener('load', moveParax, false);
window.removeEventListener('popstate', moveParax, false);
window.removeEventListener('scroll', moveParax, false);
window.removeEventListener('resize', moveParax, false);
} else if (window.detachEvent) {
window.detachEvent('onpopstate', moveParax);
window.detachEvent('onscroll', moveParax);
window.detachEvent('onresize', moveParax);
}
stopParax();
}
});
}
});
});
$window.on('pix-parallax resize', function(){
$('img.pix-parallax').each(function(){
var $img = $(this),
$div = $img.parents('div[data-pix-ratio]').eq(0),
ratio = parseFloat($div.attr('data-pix-ratio')),
position = 'absolute',
$parent = $img.parents('div').eq(0),
w = $parent.outerWidth(),
winH = $window.height(),
pH = $parent.outerHeight(),
h,
imgW = $img.data('orwidth'),
imgH = $img.data('orheight'),
css, r, d, d1, d2,
ratioImg = imgW/imgH,
ratioSection;
h = winH > pH ? winH : pH;
//h = h+(h*ratio);
ratioSection = w/h;
if( ratioImg > ratioSection ) {
r = h / imgH;
d = d1 = d2 = (w - (imgW*r))*0.5;
$img.css({
'height' : h,
'left': 0,
'margin-left': d1+'px',
'margin-right': d2+'px',
'margin-top': 0,
'max-width': 'none',
'position': position,
'top': 0,
'width': imgW*r,
'z-Index': '-1'
});
} else {
r = w / imgW;
d = (h - (imgH*r))*0.5;
$img.css({
'height': imgH*r,
'left': 0,
'margin-left': 0,
'margin-right': 0,
'margin-top': d+'px',
'max-width': 'none',
'position': position,
'top': 0,
'width': w,
'z-Index': '-1'
});
}
});
});
};
PIXGRIDDER.pixgridderFirstInARow = function() {
var pixgridder_css_selector = typeof pixgridder_css_selector !== 'undefined' ? pixgridder_css_selector : '.row .column',
$window = $(window);
var pixgridderFirstInARowCheck = function(){
var elW = 0,
$el = $(pixgridder_css_selector).filter(':notparents(.pix-letmebe)');
$el.each(function(){
var $t = $(this),
pos,
newPos,
w = $window.width(),
tW = $t.outerWidth();
$t.removeClass('first-child');
pos = $t.position();
newPos = parseFloat(pos.left)+10;
if ( $t.is(':first-child') ) {
$t.attr('data-child','first');
elW = 0;
} else if ( newPos < elW ) {
$t.addClass('first-child');
elW = 0;
}
elW = elW + tW;
});
};
pixgridderFirstInARowCheck();
$window.on('resize',function(){
pixgridderFirstInARowCheck();
});
};
PIXGRIDDER.initPixElem = function() {
var top = 0,
delay = 0,
start = 100,
setDelay,
pixgridder_css_selector = typeof pixgridder_css_selector !== 'undefined' ? pixgridder_css_selector : '.row .column',
elems = jQuery('.pix-fadeIn, .pix-fadeDown, .pix-fadeUp, .pix-fadeLeft, .pix-fadeRight, .pix-zoomIn, .pix-zoomOut, .pix-rotateIn, .pix-rotateOut, .pix-flipClock, .pix-swing, .pix-turnBackward, .pix-turnForward').add(pixgridder_css_selector);
$(elems).not(".pix-lazy-load").not(".pix-letmebe").filter(':notparents(.pix-letmebe)').pixGridderScrolledIntoView().on('scrolledin', function () {
var $elem = $(this),
opt = $elem.data('delay');
$elem.addClass('pix-lazy-load');
var newOff = $elem.offset(),
newTop = newOff.top;
if ( !$elem.hasClass('none') && !$elem.hasClass('bx-clone') ) {
if ( typeof opt != 'undefined' && opt !== '' /*&& isNaN(parseFloat(opt))*/ ) {
delay = parseFloat(opt);
} else {
if ( newTop != top ) {
top = newTop;
setDelay = 0;
} else {
setDelay = (setDelay+200);
}
delay = start+setDelay;
$elem.attr('data-delay',delay);
}
}
if(!Modernizr.csstransforms3d) {
$elem.filter('.pix-flipClock').removeClass('pix-flipClock').addClass('pix-fadeDown');
$elem.filter('.pix-swing').removeClass('pix-swing').addClass('pix-fadeDown');
$elem.filter('.pix-turnBackward').removeClass('pix-turnBackward').addClass('pix-fadeRight');
$elem.filter('.pix-turnForward').removeClass('pix-turnForward').addClass('pix-fadeLeft');
}
if ( !$elem.is('.none, .available, .pix-fadeIn, .pix-fadeDown, .pix-fadeUp, .pix-fadeLeft, .pix-fadeRight, .pix-zoomIn, .pix-zoomOut, .pix-rotateIn, .pix-rotateOut, .pix-flipClock, .pix-swing, .pix-turnBackward, .pix-turnForward') &&
typeof pixgridder_fx !== 'undefined' ) {
$elem.addClass(pixgridder_fx);
}
var elemClass = function(){
$elem.addClass('pix-transended')
.removeClass('pix-loaded')
.removeClass('pix-fadeIn')
.removeClass('pix-fadeDown')
.removeClass('pix-fadeUp')
.removeClass('pix-fadeLeft')
.removeClass('pix-fadeRight')
.removeClass('pix-zoomIn')
.removeClass('pix-zoomOut')
.removeClass('pix-rotateIn')
.removeClass('pix-rotateOut')
.removeClass('pix-flipClock')
.removeClass('pix-swing')
.removeClass('pix-turnBackward')
.removeClass('pix-turnForward');
}
var addLoaded = function(){
if(!Modernizr.cssanimations){
$elem.not('.pix-loaded').addClass('pix-loaded-inanim');
$('body').removeClass('pix-scroll-load');
} else {
$elem.addClass('pix-loaded');
$elem.not('.pix-loaded').not('.available').not('.none').addClass('pix-loaded');
}
$elem.off('transitionend webkitTransitionEnd mozTransitionEnd oTransitionEnd');
$elem.on('transitionend webkitTransitionEnd mozTransitionEnd oTransitionEnd', function(){
setTimeout(elemClass, 1000);
});
};
if ( !$elem.hasClass('none') && !$elem.hasClass('bx-clone') ) {
setTimeout( addLoaded, delay);
} else {
elemClass();
}
});
};
PIXGRIDDER.init = function(){
PIXGRIDDER.rotatingFrames();
PIXGRIDDER.pixgridderParallax();
PIXGRIDDER.pixgridderFirstInARow();
PIXGRIDDER.initPixElem();
};
$(function(){
PIXGRIDDER.init();
//$(window).trigger('resize');
});
$(window).on('pixgridder', function(){
PIXGRIDDER.init();
$(window).trigger('resize');
});
})(jQuery);