EIOS/tpl/assets/metr-folio/js/jquery.metro-gal.megafoliop...

1368 lines
39 KiB
JavaScript

(function($,undefined){
////////////////////////////////////////
// THE REVOLUTION PLUGIN STARTS HERE //
///////////////////////////////////////
$.fn.extend({
///////////////////////////
// MAIN PLUGIN FUNCTION //
///////////////////////////
megafoliopro: function(options) {
var defaults = {
filterChangeAnimation:"rotatescale", // fade, rotate, scale, rotatescale, pagetop, pagebottom,pagemiddle
filterChangeSpeed:400, // Speed of Transition
filterChangeRotate:99, // If you ue scalerotate or rotate you can set the rotation (99 = random !!)
filterChangeScale:0.6, // Scale Animation Endparameter
delay:20,
defaultWidth:980,
paddingHorizontal:10,
paddingVertical:10,
layoutarray:[11],
lowSize:50,
startFilter:"*"
};
options = $.extend({}, defaults, options);
return this.each(function() {
// Delegate .transition() calls to .animate()
// if the browser can't do CSS transitions.
if (!$.support.transition)
$.fn.transition = $.fn.animate;
var opt=options;
opt.detaiview="off";
opt.firststart=1;
if (opt.filter==undefined) opt.filter="*";
if (opt.delay==undefined) opt.delay=0;
//opt.savetrans = opt.filterChangeAnimation;
//opt.filterChangeAnimation="fade";
// CHECK IF FIREFOX 13 IS ON WAY.. IT HAS A STRANGE BUG, CSS ANIMATE SHOULD NOT BE USED
var firefox = opt.firefox13 = false;
var ie = opt.ie = !$.support.opacity;
var ie9 = opt.ie9 = !$.support.htmlSerialize
if (ie) $('body').addClass("ie8");
if (ie9) $('body').addClass("ie9");
var container=$(this);
container.data('defaultwidth',opt.defaultWidth);
container.data('paddingh',opt.paddingHorizontal);
container.data('paddingv',opt.paddingVertical);
container.data('order',opt.layoutarray);
container.data('ie',ie);
container.data('ie9',ie9);
container.data('ff',firefox);
container.data('opt',opt);
prepairEntries(container,opt);
reOrder(container,0);
addFilter(container,"*");
preparingLazyLoad(container);
reOrder(container,0);
setTimeout(function() {
rePosition(container);
},400)
// START WITH AN ALTERNATIVE FILTER BY BUILDING THE CONTAINERS
if ( opt.startFilter!="*" && opt.startFilter !=undefined) {
addFilter(container,opt.startFilter);
reOrder(container,0);
rePosition(container);
}
$(window).resize(function() {
clearTimeout(container.data('resized'));
container.data('resized',setTimeout(function() {
reOrderOrdered(container,0,container.find('>.mega-entry.tp-ordered').length);
},150));
});
/****************************************************
- APPLE IPAD AND IPHONE WORKAROUNDS HERE -
******************************************************/
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
$(".mega-entry").click(function(){
//we just need to attach a click event listener to provoke iPhone/iPod/iPad's hover event
//strange
});
}
})
},
///////////////////////
// METHODE RESUME //
//////////////////////
megamethode: function(option) {
return this.each(function() {
// CATCH THE CONTAINER
var container=$(this);
})
},
megagetcurrentorder: function() {
// CATCH THE CONTAINER
var container=$(this);
return container.data('lastorder');
},
megaappendentry: function(entry) {
// CATCH THE CONTAINER
var container=$(this);
var newentry=$(entry);
newentry.addClass("mega-entry-added");
container.append(newentry);
var opt=container.data('opt');
prepairNewEntries(container,opt);
reOrder(container,0);
rePosition(container,1);
setTimeout(function() {
addFilter(container,opt.filter);
reOrder(container,0);
rePosition(container,1);
},200);
},
megaremix: function(order) {
return this.each(function() {
// CATCH THE CONTAINER
var container=$(this);
if (order!=undefined)
container.data('order',order);
notOrdered(container);
reOrder(container,0);
rePosition(container);
})
},
megafilter: function(filter) {
return this.each(function() {
// CATCH THE CONTAINER
var container=$(this);
if (container.data('nofilterinaction')!=1) {
container.data('nofilterinaction',1);
addFilter(container,filter);
reOrder(container,0);
rePosition(container);
setTimeout(function() {
container.data('nofilterinaction',0);
},1200)
} else {
clearInterval(container.data('nextfiltertimer'));
container.data('nextfiltertimer',setInterval(function() {
if (container.data('nofilterinaction')!=1) {
clearInterval(container.data('nextfiltertimer'));
addFilter(container,filter);
reOrder(container,0);
rePosition(container);
container.data('nofilterinaction',1);
setTimeout(function() {
container.data('nofilterinaction',0);
},1200)
}
},10));
}
})
},
megaanimchange: function(anim,speed,rotate,scale) {
return this.each(function() {
// CATCH THE CONTAINER
var container=$(this);
var opt=container.data('opt');
var filter=opt.filter;
opt.filterChangeAnimation=anim;
opt.filterChangeSpeed=speed;
opt.filterChangeRotate=rotate;
opt.filterChangeScale=scale;
addFilter(container,"");
addFilter(container,filter);
setTimeout(function() {
reOrder(container,0);
rePosition(container);
},2*opt.filterChangeSpeed);
container.data('opt',opt);
})
}
})
////////////////////////////////////////////////////////
// WRAP THE DIVS DEPENDING ON THE AMOUNT OF ENTRIES //
////////////////////////////////////////////////////////
function prepairEntries(container,opt) {
container.find('>.mega-entry').each(function() {
var ent=$(this);
ent.removeClass('tp-layout-first-item').removeClass('tp-layout-last-item').removeClass('very-last-item');
ent.addClass("tp-notordered").addClass("mega-entry-added");
ent.wrapInner('<div class="mega-entry-innerwrap"></div>');
//ent.find('.mega-socialbar').appendTo(ent)
var iw = ent.find('.mega-entry-innerwrap')
/*if (opt.ie) {
iw.append('<img class="ieimg" src='+ent.data("src")+'>');
} else {*/
iw.css({'background':'url('+ent.data("src")+')','backgroundPosition':'50% 49%', 'backgroundSize':'cover', 'background-repeat':'no-repeat'});
// }
// LET ACT ON THE CLICK ON ITEM SOMEWAY
ent.find('.mega-show-more').each(function() {
var msm = $(this);
// SAVE THE ID OF THE mega-entry WHICH IS CORRESPONDING ON THE BUTTON
msm.data('entid',ent.attr('id'));
// HANDLING OF THE CLICK
msm.click(function() {
var msm=$(this);
var ent=container.find('#'+msm.data('entid'));
ent.addClass("mega-in-detailview");
opt.detailview="on";
});
});
});
}
////////////////////////////////////////////////////////
// WRAP THE DIVS DEPENDING ON THE AMOUNT OF ENTRIES //
////////////////////////////////////////////////////////
function prepairNewEntries(container,opt) {
container.find('>.mega-entry-added').each(function(i) {
var ent=$(this);
if (!ent.hasClass('tp-layout')) {
ent.removeClass('tp-layout-first-item').removeClass('tp-layout-last-item').removeClass('very-last-item');
ent.addClass("tp-notordered")
ent.wrapInner('<div class="mega-entry-innerwrap"></div>');
//ent.find('.mega-socialbar').appendTo(ent)
var iw = ent.find('.mega-entry-innerwrap')
/*if (opt.ie) {
iw.append('<img class="ieimg" src='+ent.data("src")+'>');
} else {*/
iw.css({'background':'url('+ent.data("src")+')','backgroundPosition':'50% 49%', 'backgroundSize':'cover', 'background-repeat':'no-repeat'});
//}
// LET ACT ON THE CLICK ON ITEM SOMEWAY
ent.find('.mega-show-more').each(function() {
var msm = $(this);
// SAVE THE ID OF THE mega-entry WHICH IS CORRESPONDING ON THE BUTTON
msm.data('entid',ent.attr('id'));
// HANDLING OF THE CLICK
msm.click(function() {
var msm=$(this);
var ent=container.find('#'+msm.data('entid'));
ent.addClass("mega-in-detailview");
opt.detailview="on";
});
});
}
});
}
///////////////////////////////////////
// ADD NOT ORDERED TO THE ENTRIES //
///////////////////////////////////////
function notOrdered(container) {
container.find('>.mega-entry.tp-layout').each(function() {
var ent=$(this);
ent.removeClass('tp-layout').addClass('tp-notordered');
});
}
///////////////////////////////////////
// ADD FILTER FOR THE ENTRIES //
///////////////////////////////////////
function addFilter(container,filter) {
var ie=container.data('ie');
var ie9=container.data('ie9');
var opt = container.data('opt');
if (opt.filterChangeSpeed == undefined) opt.filterChangeSpeed = Math.round(Math.random()*500+100);
opt.filter=filter;
var outi=1;
var ini=1;
container.find('>.mega-entry').each(function(i) {
var ent=$(this);
var rot = opt.filterChangeRotate;
if (rot==undefined) rot=30;
if (rot==99) rot = Math.round(Math.random()*50-25);
ent.removeClass('tp-layout-first-item').removeClass('tp-layout-last-item').removeClass('very-last-item');
var subfilters = filter.split(',');
var hasfilter =false;
for (var u=0;u<subfilters.length;u++) {
if (ent.hasClass(subfilters[u])) {
hasfilter=true;
console.log("has class");
}
}
if (hasfilter || filter=="*") {
ent.removeClass('tp-layout').addClass('tp-notordered');
} else {
ent.removeClass('tp-ordered').removeClass('tp-layout');
setTimeout(function() {
if (ie || ie9) {
ent.animate({'scale':0, 'opacity':0},{queue:false,duration:opt.filterChangeSpeed});
} else {
if (opt.filterChangeAnimation=="fade") {
ent.transition({'scale':1, 'opacity':0,'rotate':0},opt.filterChangeSpeed);
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':1,perspective: '10000px',rotateX: '0deg'},opt.filterChangeSpeed);
}
else
if (opt.filterChangeAnimation=="scale") {
ent.transition({'scale':opt.filterChangeScale, 'opacity':0,'rotate':0},opt.filterChangeSpeed);
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':1,perspective: '10000px',rotateX: '0deg'},opt.filterChangeSpeed);
}
else
if (opt.filterChangeAnimation=="rotate") {
ent.transition({'scale':1, 'opacity':0,'rotate':rot},opt.filterChangeSpeed);
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':1,perspective: '10000px',rotateX: '0deg'},opt.filterChangeSpeed);
}
else
if (opt.filterChangeAnimation=="rotatescale") {
ent.transition({'scale':opt.filterChangeScale, 'opacity':0,'rotate':rot},opt.filterChangeSpeed);
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':1,perspective: '10000px',rotateX: '0deg'},opt.filterChangeSpeed);
} else
if (opt.filterChangeAnimation=="pagetop" || opt.filterChangeAnimation=="pagebottom" || opt.filterChangeAnimation=="pagemiddle") {
ent.find('.mega-entry-innerwrap').removeClass("pagemiddle").removeClass("pagetop").removeClass("pagebottom").addClass(opt.filterChangeAnimation);
ent.transition({'opacity':0},opt.filterChangeSpeed);
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':0,perspective: '10000px',rotateX: '90deg'},opt.filterChangeSpeed);
}
}
setTimeout(function() { ent.css({visibility:'hidden'})},opt.filterChangeSpeed);
},ini*opt.delay/2);
ini++;
}
});
}
///////////////////////////////////////////
// PREPARE FOR THE FIRST START THE ITEMS //
//////////////////////////////////////////
function preparingLazyLoad(container) {
var ie=container.data('ie');
var ie9=container.data('ie9');
var opt = container.data('opt');
if (opt.filterChangeSpeed == undefined) opt.filterChangeSpeed = Math.round(Math.random()*500+100);
if (opt.filterChangeScale == undefined) opt.filterChangeScale = 0.8;
var outi=0;
var ini=0;
container.find('>.mega-entry').each(function(i) {
var ent=$(this);
var rot = opt.filterChangeRotate;
if (rot==undefined) rot=30;
if (rot==99) rot = Math.round(Math.random()*360);
if (ie || ie9) {
ent.css({'opacity':0});
} else {
if (opt.filterChangeAnimation=="fade")
ent.transition({'scale':1, 'opacity':0,'rotate':0,duration:1,queue:false});
else
if (opt.filterChangeAnimation=="scale") {
ent.transition({'scale':opt.filterChangeScale, 'opacity':0,'rotate':0,duration:1,queue:false});
}
else
if (opt.filterChangeAnimation=="rotate")
ent.transition({'scale':1, 'opacity':0,'rotate':rot,duration:1,queue:false});
else
if (opt.filterChangeAnimation=="rotatescale") {
ent.transition({'scale':opt.filterChangeScale, 'opacity':0,'rotate':rot,duration:1,queue:false});
}
else
if (opt.filterChangeAnimation=="pagetop" || opt.filterChangeAnimation=="pagebottom" || opt.filterChangeAnimation=="pagemiddle") {
ent.find('.mega-entry-innerwrap').addClass(opt.filterChangeAnimation);
ent.transition({'opacity':0,duration:1,queue:false});
ent.find('.mega-entry-innerwrap').transition({'scale':1, 'opacity':1,perspective: '10000px',rotateX: '90deg',duration:1,queue:false});
}
}
});
//opt.filterChangeAnimation = opt.savetrans;
}
////////////////////////////////////////////////////////
// REORDER THE CONTAINER DEPENDING ON THE SETTINGS //
////////////////////////////////////////////////////////
function reOrder(container,deep) {
// TO SAVE THE LAST ORDER FOR THE GALLERY, TO BE ABLE TO REPRODUCE IT
if (deep==0) {
var lastorder=new Array();
} else
var lastorder=container.data('lastorder');
var cw = container.width();
// THIS IS THE CURRENT REQUESTED ORDER
var order=container.data('order');
// IF ORDER ARRIVED TO THE END, SHOULD START FROM THE BEGINNING
if (deep>order.length-1) deep=0;
// SAVE THE ENTRIES IN AN ARRAY
var entries=container.find('>.mega-entry.tp-notordered');
// LET SEE HOW MANY LAYOUT ART WE HAVE 2-9 ARE THE PREMIUM GRIDS
var max_layout_art=12;
if (entries.length<9) max_layout_art=entries.length;
//SAVE THE NEXT LAYOUT HERE
var next_layout = order[deep];
var firefox = false;
var ie = !$.support.opacity;
var ie9 = !$.support.htmlSerialize
if (order[deep]==0 || next_layout<2 || next_layout>23)
if (ie) {
next_layout=9;
} else {
next_layout=Math.round(Math.random()*max_layout_art+1);
}
if (next_layout<2) next_layout=2;
if (next_layout>23) next_layout=23;
// PUSH THE NEXT LAYOUT INTO THE SAVED ORDER (IN CASE IT NEEDED SOMEWHERE)
lastorder.push(next_layout);
var element_amount=next_layout;
if (next_layout==10 || next_layout==14) element_amount=3;
if (next_layout==11 || next_layout==15) element_amount=4;
if (next_layout==12 || next_layout==16) element_amount=5;
if (next_layout==13 || next_layout==17) element_amount=6;
if (next_layout==11 || next_layout==12 || next_layout==13 || next_layout==15 || next_layout==16 || next_layout==17)
if (cw<840 && cw>721) element_amount=4
else
if (cw<720) element_amount=3;
if (next_layout==18 || next_layout==19 || next_layout==20) element_amount = 1;
if (next_layout==21 || next_layout==22 || next_layout==23) element_amount = 2;
// SET THE NEXT ITEM AS THE NEXT LAYOUT INDICATES
entries.slice(0,element_amount).each(function(i) {
var ent=$(this);
ent.removeClass('tp-layout-first-item').removeClass('tp-layout-last-item').removeClass('very-last-item');
// tp-layout SHOWS THAT THE ITEM HAS ALREADY A LAYOUT
ent.addClass('tp-ordered tp-layout');
// SAVE THE LAYOUT TYPE IN EACH mega-entry
ent.data('layout',next_layout)
//SAVE THE CHILD INDEX IN THE mega-entry
ent.data('child',i)
// MARK FIRST AND LAST ITEMS HERE
if (i==0) ent.addClass("tp-layout-first-item");
if (i==element_amount-1) {
ent.addClass("tp-layout-last-item");
}
//ITEM IS ORDERED, SO NOT ORDERED CLASS CAN BE REMOVED
ent.removeClass('tp-notordered');
});
// WE GO ONE FURTHER; DEEPER IN THE REKURSIVE FUNCTION
deep=deep+1;
//SAVE THE LAST ORDER !!
container.data('lastorder',lastorder);
//IF WE HAVE MORE ITEM TO ORDER, WE CAN CALL THE REKURSIVE FUNCTION AGAIN
if (container.find('>.mega-entry.tp-notordered').length>0)
reOrder(container,deep);
else
{
try{
findLastOrdered(container).addClass('very-last-item');
} catch(e) {}
return container;
}
}
////////////////////////////////////////////////////////
// REORDER THE CONTAINER DEPENDING ON THE SETTINGS //
////////////////////////////////////////////////////////
function reOrderOrdered(container,deep,itemtogo) {
// TO SAVE THE LAST ORDER FOR THE GALLERY, TO BE ABLE TO REPRODUCE IT
if (deep==0) {
var lastorder=new Array();
} else
var lastorder=container.data('lastorder');
var cw = container.width();
// THIS IS THE CURRENT REQUESTED ORDER
var order=container.data('order');
// IF ORDER ARRIVED TO THE END, SHOULD START FROM THE BEGINNING
if (deep>order.length-1) deep=0;
// SAVE THE ENTRIES IN AN ARRAY
var entries=container.find('>.mega-entry.tp-ordered');
// LET SEE HOW MANY LAYOUT ART WE HAVE 2-9 ARE THE PREMIUM GRIDS
var max_layout_art=12;
if (entries.length<9) max_layout_art=entries.length;
//SAVE THE NEXT LAYOUT HERE
var next_layout = order[deep];
var firefox = false;
var ie = !$.support.opacity;
var ie9 = !$.support.htmlSerialize
if (order[deep]==0 || next_layout<2 || next_layout>23)
if (ie) {
next_layout=9;
} else {
next_layout=Math.round(Math.random()*max_layout_art+1);
}
if (next_layout<2) next_layout=2;
if (next_layout>23) next_layout=23;
// PUSH THE NEXT LAYOUT INTO THE SAVED ORDER (IN CASE IT NEEDED SOMEWHERE)
lastorder.push(next_layout);
var element_amount=next_layout;
if (next_layout==10 || next_layout==14) element_amount=3;
if (next_layout==11 || next_layout==15) element_amount=4;
if (next_layout==12 || next_layout==16) element_amount=5;
if (next_layout==13 || next_layout==17) element_amount=6;
if (next_layout==11 || next_layout==12 || next_layout==13 || next_layout==15 || next_layout==16 || next_layout==17)
if (cw<840 && cw>721) element_amount=4
else
if (cw<720) element_amount=3;
if (next_layout==18 || next_layout==19 || next_layout==20) element_amount = 1;
if (next_layout==21 || next_layout==22 || next_layout==23) element_amount = 2;
var firstent = entries.length-itemtogo;
// SET THE NEXT ITEM AS THE NEXT LAYOUT INDICATES
entries.slice(firstent,firstent+element_amount).each(function(i) {
var ent=$(this);
ent.removeClass('tp-layout-first-item').removeClass('tp-layout-last-item').removeClass('very-last-item');
// tp-layout SHOWS THAT THE ITEM HAS ALREADY A LAYOUT
ent.addClass('tp-ordered tp-layout');
// SAVE THE LAYOUT TYPE IN EACH mega-entry
ent.data('layout',next_layout)
//SAVE THE CHILD INDEX IN THE mega-entry
ent.data('child',i)
// MARK FIRST AND LAST ITEMS HERE
if (i==0) ent.addClass("tp-layout-first-item");
if (i==element_amount-1) {
ent.addClass("tp-layout-last-item");
}
//ITEM IS ORDERED, SO NOT ORDERED CLASS CAN BE REMOVED
ent.removeClass('tp-notordered');
});
// WE GO ONE FURTHER; DEEPER IN THE REKURSIVE FUNCTION
deep=deep+1;
//SAVE THE LAST ORDER !!
container.data('lastorder',lastorder);
itemtogo=itemtogo-element_amount;
//IF WE HAVE MORE ITEM TO ORDER, WE CAN CALL THE REKURSIVE FUNCTION AGAIN
if (itemtogo>0)
reOrderOrdered(container,deep,itemtogo);
else
{
findLastOrdered(container).addClass('very-last-item');
rePosition(container);
return container;
}
}
/////////////////////////////
// FIND LAST ORDERED ITEM //
///////////////////////////
function findLastOrdered(container) {
var lastitem;
container.find('>.mega-entry.tp-layout.tp-ordered').each(function() {
lastitem=$(this);
});
return lastitem;
}
/////////////////////////////
// ROUND ME TO RIGHT VALUE //
////////////////////////////
function roundme(val) {
return val;
}
//////////////////////////
// PUT IT IN POSITION //
//////////////////////////
function rePosition(container,maxdelay) {
var topp=0;
var startwidth = container.data('defaultwidth');
var opt=container.data('opt');
var optdelay=opt.delay;
var firststart=0;
if (opt.firststart==1) {
firststart=1;
opt.firststart=0;
}
var cw = container.width();
var prop = cw / startwidth;
var basicheight = 185;
var paddingh = container.data('paddingh');
var paddingv = container.data('paddingv');
var outi=1;
var ini=1;
var ie=container.data('ie');
var ie9=container.data('ie9');
// CALCULATE THE BASI PROPORTIONS
var w5 = 5*prop;
// THE MAX HEIGHT OF THE ITEM
var maxhh=0;
// THE NEW BASIC VALUES
//w5 = Math.floor(w5)+dec;
// Calculate the Basic Grid Sizes
var w980 = cw;
var w790 = roundme(w5 * 160);
var w780 = roundme(w5 * 158);
var w760 = roundme(w5 * 152);
var w740 = roundme(w5 * 148);
var w660 = roundme(w5 * 132);
var w615 = roundme(w5 * 123);
var w610 = roundme(w5 * 122);
var w595 = roundme(w5 * 119);
var w565 = roundme(w5 * 113);
var w560 = roundme(w5 * 112);
var w490 = roundme(w5 * 98);
var w420 = roundme(w5 * 84);
var w415 = roundme(w5 * 83);
var w395 = roundme(w5 * 79);
var w390 = roundme(w5 * 78);
var w385 = roundme(w5 * 77);
var w370 = roundme(w5 * 74);
var w365 = roundme(w5 * 73);
var w345 = roundme(w5 * 69);
var w340 = roundme(w5 * 68);
var w335 = roundme(w5 * 67);
var w326 = roundme(w5 * 65.3);
var w245 = roundme(w5 * 49);
var w240 = roundme(w5 * 48);
var w225 = roundme(w5 * 45);
var w220 = roundme(w5 * 44);
var w196 = roundme(w5 * 39.2);
var w195 = roundme(w5 * 39);
var w190 = roundme(w5 * 38);
var w185 = roundme(w5 * 37);
var w180 = roundme(w5 * 36);
var w163 = roundme(w5 * 32.66);
// The Basic Heights
var h1110 = roundme(w5 * 222);
var h740 = w740;
var h555 = roundme(w5*111);
var h370 = w370;
var h365 = w365;
var h245 = w245;
var h240 = w240;
var h185 = w185;
var h180 = w180;
var heights = new Array(0,0,0,0,0,0,0,0,0);
var lastheights = new Array(0,0,0,0,0,0,0,0,0);
var currentcolumn=0;
var layout=0;
var allelements=container.find('>.mega-entry.tp-layout').length;
// LET CREATE THE GIRDS
container.find('>.mega-entry.tp-layout').each(function(i) {
var ent=$(this);
var iw = ent.find('.mega-entry-innerwrap');
layout=ent.data('layout');
if (layout==11 || layout==12 || layout==13 )
if (cw<840 && cw>721) layout=11
else
if (cw<720) layout=10;
if (layout==15 || layout==16 || layout==17)
if (cw<840 && cw>721) layout=15
else
if (cw<720) layout=14;
// SET THE SPEED
var dur=500;
// SET THE BASIC POSITIONS AND SIZES
var w,h,xp;
var ph=paddingh;
var pv=paddingv;
var yp=topp;
var lasth=h185;
if (cw>480) {
// THE GRID TYPE 3 POSITIONS SHOULD BE CALCULATED HERE
if (layout==2) {
if (cw>767) {
if (ent.data('child')==0) { w=w565; h=h370; xp=0; lasth=h370}
if (ent.data('child')==1) { w=w415; h=h370; xp=w565; ph=0; topp=topp+h370; lasth=h370}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w420; h=h370; xp=0; lasth=h370}
if (ent.data('child')==1) { w=w560; h=h370; xp=w420; ph=0; topp=topp+h370; lasth=h370}
}
}
}
// THE GRID TYPE 3 POSITIONS SHOULD BE CALCULATED HERE
if (layout==3) {
if (cw>767) {
if (ent.data('child')==0) { w=w390; h=h370; xp=0; lasth=h370}
if (ent.data('child')==1) { w=w225; h=h370; xp=w390; lasth=h370}
if (ent.data('child')==2) { w=w365; h=h370; xp=w615; topp=topp+h370; lasth=h370;ph=0;}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w370; h=h370; xp=0; lasth=h370}
if (ent.data('child')==1) { w=w390; h=h370; xp=w370; lasth=h370}
if (ent.data('child')==2) { w=w220; h=h370; xp=w760; lasth=h370; topp=topp+h370; ph=0;}
}
}
}
// THE GRID TYPE 4 POSITIONS SHOULD BE CALCULATED HERE
if (layout==4) {
if (cw>767) {
if (ent.data('child')==0) { w=w420; h=h370; xp=0; lasth=370;}
if (ent.data('child')==1) { w=w195; h=h185; xp=w420; }
if (ent.data('child')==2) { w=w365; h=h370; xp=w615; ph=0; topp=topp+h185; lasth=h370}
if (ent.data('child')==3) { w=w195; h=h185; xp=w420; topp=topp+h185;}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w195; h=h185; xp=w420; }
if (ent.data('child')==1) { w=w420; h=h370; xp=0; topp=topp+h185; }
if (ent.data('child')==2) { w=w195; h=h185; xp=w420; topp=topp-h185;}
if (ent.data('child')==3) { w=w365; h=h370; xp=w615; ph=0; topp=topp+h370; lasth=h370}
}
}
}
// THE GRID TYPE 5 POSITIONS SHOULD BE CALCULATED HERE
if (layout==5) {
if (cw>767) {
if (ent.data('child')==0) { w=w420; h=h185; xp=0; }
if (ent.data('child')==1) { w=w195; h=h185; xp=w420; }
if (ent.data('child')==2) { w=w365; h=h370; xp=w615; ph=0; topp=topp+h185; lasth=h370}
if (ent.data('child')==3) { w=w220; h=h185; xp=0; }
if (ent.data('child')==4) { w=w395; h=h185; xp=w220; topp=topp+h185;}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w420; h=h185; xp=0; }
if (ent.data('child')==1) { w=w195; h=h185; xp=w420; }
if (ent.data('child')==2) { w=w365; h=h185; xp=w615; ph=0; topp=topp+h185;}
if (ent.data('child')==3) { w=w490; h=h185; xp=0; }
if (ent.data('child')==4) { w=w490; h=h185; xp=w490; ph=0; topp=topp+h185;}
}
}
}
// THE GRID TYPE 5 POSITIONS SHOULD BE CALCULATED HERE
if (layout==6) {
if (cw>767) {
if (ent.data('child')==0) { w=w370; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w225; h=h185; xp=w370; }
if (ent.data('child')==2) { w=w385; h=h185; xp=w595; ph=0; topp=topp+h185;}
if (ent.data('child')==3) { w=w225; h=h185; xp=w370; }
if (ent.data('child')==4) { w=w195; h=h185; xp=w595; }
if (ent.data('child')==5) { w=w190; h=h185; xp=w780; ph=0; topp=topp+h185;}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w225; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w340; h=h370; xp=w225; lasth=h370;}
if (ent.data('child')==2) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==3) { w=w220; h=h185; xp=w760; ph=0; topp=topp+h185;}
if (ent.data('child')==4) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==5) { w=w220; h=h185; xp=w760; ph=0; topp=topp+h185;}
}
}
}
// THE GRID TYPE 7 POSITIONS SHOULD BE CALCULATED HERE
if (layout==7) {
if (cw>767) {
if (ent.data('child')==0) { w=w565; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w415; h=h185; xp=w565; ph=0; topp=topp+h185;}
if (ent.data('child')==2) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==3) { w=w220; h=h370; xp=w760; ph=0; topp=topp+h185;lasth=h370}
if (ent.data('child')==4) { w=w225; h=h185; xp=0; }
if (ent.data('child')==5) { w=w340; h=h185; xp=w225; }
if (ent.data('child')==6) { w=w195; h=h185; xp=w565; topp=topp+h185;}
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w565; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w415; h=h185; xp=w565; ph=0; topp=topp+h185;}
if (ent.data('child')==2) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==3) { w=w220; h=h185; xp=w760; ph=0; topp=topp+h185;}
if (ent.data('child')==4) { w=w225; h=h185; xp=0; }
if (ent.data('child')==5) { w=w340; h=h185; xp=w225; }
if (ent.data('child')==6) { w=w415; h=h185; xp=w565; ph=0; topp=topp+h185;}
}
}
}
// THE GRID TYPE 8 POSITIONS SHOULD BE CALCULATED HERE
if (layout==8) {
if (cw>767) {
if (ent.data('child')==0) { w=w415; h=h185; xp=0; }
if (ent.data('child')==1) { w=w345; h=h370; xp=w415; lasth=h370;}
if (ent.data('child')==2) { w=w220; h=h185; xp=w760; ph=0; topp=topp+h185;}
if (ent.data('child')==3) { w=w195; h=h185; xp=0; }
if (ent.data('child')==4) { w=w220; h=h185; xp=w195; }
if (ent.data('child')==5) { w=w220; h=h370; xp=w760; ph=0; topp=topp+h185; lasth=h185;}
if (ent.data('child')==6) { w=w415; h=h185; xp=0; }
if (ent.data('child')==7) { w=w345; h=h185; xp=w415; topp=topp+h185; }
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w415; h=h185; xp=0; }
if (ent.data('child')==1) { w=w195; h=h185; xp=w415; }
if (ent.data('child')==2) { w=w370; h=h185; xp=w610; ph=0; topp=topp+h185; lasth=h370;}
if (ent.data('child')==3) { w=w195; h=h185; xp=0; }
if (ent.data('child')==4) { w=w415; h=h185; xp=w195; }
if (ent.data('child')==5) { w=w370; h=h370; xp=w610; ph=0; topp=topp+h185; lasth=h370;}
if (ent.data('child')==6) { w=w415; h=h185; xp=0; }
if (ent.data('child')==7) { w=w195; h=h185; xp=w415; topp=topp+h185; }
}
}
}
// THE GRID TYPE 9 POSITIONS SHOULD BE CALCULATED HERE
if (layout==9) {
if (cw>767) {
if (ent.data('child')==0) { w=w565; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w415; h=h185; xp=w565; ph=0; topp=topp+h185; }
if (ent.data('child')==2) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==3) { w=w220; h=h370; xp=w760; ph=0; topp=topp+h185; lasth=h370;}
if (ent.data('child')==4) { w=w225; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==5) { w=w340; h=h370; xp=w225; lasth=h370;}
if (ent.data('child')==6) { w=w195; h=h185; xp=w565; topp=topp+h185; }
if (ent.data('child')==7) { w=w195; h=h185; xp=w565; }
if (ent.data('child')==8) { w=w220; h=h185; xp=w760; ph=0; topp=topp+h185; }
} else {
if (cw>480 && cw<768) {
if (ent.data('child')==0) { w=w370; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==1) { w=w240; h=h370; xp=w370; lasth=h370;}
if (ent.data('child')==2) { w=w370; h=h370; xp=w610; ph=0; topp=topp+h370; lasth=h370;}
if (ent.data('child')==3) { w=w240; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==4) { w=w370; h=h370; xp=w240; lasth=h370;}
if (ent.data('child')==5) { w=w370; h=h370; xp=w610; ph=0; topp=topp+h370; lasth=h370;}
if (ent.data('child')==6) { w=w370; h=h370; xp=0; lasth=h370;}
if (ent.data('child')==7) { w=w370; h=h370; xp=w370; lasth=h370;}
if (ent.data('child')==8) { w=w240; h=h370; xp=w740; ph=0; topp=topp+h370; lasth=h370;}
}
}
}
/*********************************
- BASIC GRID OPTIONS -
**********************************/
if (layout>9 && layout<14) {
if (layout==10) {
w=Math.round(w326);
w=w + (ph/3);
} else
if (layout==11) {
w=Math.round(w245);
w=w + (ph/4);
} else
if (layout==12) {
w=Math.round(w196);
w=w + (ph/5);
} else
if (layout==13) {
w=Math.round(w163);
w=w + (ph/6);
}
var h=w;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
if ( (chil==2 && layout==10) ||
(chil==3 && layout==11) ||
(chil==4 && layout==12) ||
(chil==5 && layout==13) ||
(ent.hasClass('tp-layout-last-item'))
) { // ph=0;
topp=topp+h; }
}
/*********************************
- 1 GRID OPTIONS -
**********************************/
// 1 COLUMN GRIDS
if (layout==18) {
w=Math.round(w980);
w=w + (ph);
var h=w;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
topp=topp+h;
}
// 1 COLUMN GRIDS
if (layout==19) {
w=Math.round(w980);
w=w + (ph);
var h=w/ 2;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
topp=topp+h;
}
// 1 COLUMN GRIDS
if (layout==20) {
w=Math.round(w980);
w=w + (ph);
var h=w/ 3;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
topp=topp+h;
}
/*********************************
- 2 GRID OPTIONS -
**********************************/
// 1 COLUMN GRIDS
if (layout==21) {
w=Math.round(w490);
w=w + (ph/2);
var h=w;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
if ( chil==1) topp=topp+h;
}
// 1 COLUMN GRIDS
if (layout==22) {
w=Math.round(w490);
w=w + (ph/2);
var h=w/2;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
if ( chil==1) topp=topp+h;
}
// 1 COLUMN GRIDS
if (layout==23) {
w=Math.round(w490);
w=w + (ph/2);
var h=w/3;
var chil=ent.data('child');
xp=w*chil;
lasth=h;
if ( chil==1) topp=topp+h;
}
/*********************************
- DIFFERENT HEIGHT OPTIONS -
**********************************/
if (layout>13 && layout<18) {
if (layout==14) {
w=Math.round(w326);
w=w + (ph/3);
} else
if (layout==15) {
w=Math.round(w245);
w=w + (ph/4);
} else
if (layout==16) {
w=Math.round(w196);
w=w + (ph/5);
} else
if (layout==17) {
w=Math.round(w163);
w=w + (ph/6);
}
var chil = ent.data('child');
var prop =w/ent.data('width');
h=ent.data('height') * prop;
xp=w*ent.data('child');
yp=heights[chil];
lasth=h*prop;
lastheights[chil]=lasth;
topp=yp+h;
heights[chil] = topp;
}
} else { // IF THE CONTAINER IS TOO SMALL THAN LET
h=Math.round(ent.data('height')*(cw/ent.data('width')));
w=cw;
ph=0;
xp=0;
yp=topp;
topp=topp+h;
}
var scal=1;
var opaa=1;
var rx = 0;
var rot = 0;
var orot = opt.filterChangeRotate;
if (orot==undefined) rot=30;
if (orot==99) orot = Math.round(Math.random()*360);
// FILTER DEPENDEND SETTINGS
var subfilters = opt.filter.split(',');
var hasfilter =false;
for (var u=0;u<subfilters.length;u++) {
if (ent.hasClass(subfilters[u])) {
hasfilter=true;
console.log("has class");
}
}
if (hasfilter || opt.filter=="*") {
ent.css({visibility:'visible'});
if (ie || ie9) {
scal=1;
opaa=1;
} else {
if (opt.filterChangeAnimation=="pagetop" || opt.filterChangeAnimation=="pagebottom" || opt.filterChangeAnimation=="pagemiddle") {
rot=0;
rx=0;
scal=1;
opaa=1;
eiscal=1;
eiopaa=1;
eirx=0;
//ent.transition({rotate:0,'opacity':1},opt.filterChangeSpeed);
} else {
scal=1;
rot=0;
opaa=1;
eiscal=1;
eiopaa=1;
eirx=0;
}
}
}
if (opt.detailview=="on" && opaa==1) opaa=0.4;
if (ent.hasClass('mega-in-detailview')) opaa=1;
ent.removeClass("mega-square").removeClass("mega-portrait").removeClass("mega-landscape");
var wround=Math.floor(w/100);
var hround=Math.floor(h/100);
if (wround>hround) ent.addClass("mega-landscape");
if (hround>wround) ent.addClass("mega-portrait");
if (wround==hround) ent.addClass("mega-square");
var timer_delay=i*opt.delay;
/*if (maxdelay!=undefined) {
if (allelements-i<6)
timer_delay=(allelements-i)*opt.delay;
}*/
// PUT THE mega-entry IN THE RIGHT POSITION
if (ie || ie9) {
ent.find('.mega-socialbar').animate({'width':w+'px'});
ent.animate({ 'scale':scal, 'opacity':opaa, width:w+"px", height:h+"px", left:xp+"px", top:yp+"px", 'paddingBottom':pv+"px", 'paddingRight':ph+"px"},{queue:false,duration:400});
iw.animate({'background-position':'50% 49%', 'background-size':'cover'},{queue:false,duration:400});
if (ie) {
var img=iw.find('.ieimg');
var imgratio=Math.round(ent.data('width')) / Math.round(ent.data('height'));
var conratio=Math.round(w)/Math.round(h);
var nw=w;
var nh=nw/ent.data('width')*ent.data('height');
if (nh<h) {
nh=h;
nw=nh/ent.data('height')*ent.data('width');
}
img.css({'width':nw+'px','height':nh+'px'});
}
} else {
var prop = (cw / startwidth)*100 -16;
if (ent.data('lowsize')!=undefined )
if (prop<=ent.data('lowsize'))
ent.addClass("mega-lowsize")
else
ent.removeClass("mega-lowsize");
if (firststart) {
timer_delay=timer_delay+100;
ent.transition({ 'opacity':0, "top":yp+"px","left":xp+"px", width:w, height:h, 'paddingBottom':pv+"px", 'paddingRight':ph+"px",duration:1,queue:false});
}
setTimeout(function() {
ent.transition({ 'scale':scal, 'opacity':opaa,'rotate':rot, 'z-index':1,width:w, height:h, "top":yp+"px","left":xp+"px", 'paddingBottom':pv+"px", 'paddingRight':ph+"px",duration:opt.filterChangeSpeed,queue:false});
setTimeout(function() {
ent.find('.mega-entry-innerwrap').transition({'scale':eiscal, 'opacity':eiopaa,perspective: '10000px',rotateX: eirx,duration:opt.filterChangeSpeed,queue:false});
ent.removeClass('mega-entry-added');
},50);
iw.transition({'background-position':'50% 49%', 'background-size':'cover',duration:opt.filterChangeSpeed,queue:false});
},timer_delay);
}
if (ent.hasClass('very-last-item') && !ent.hasClass('tp-layout-last-item')) {
topp=topp+lasth;
} else {
//$('.debug').html($('.debug').html()+"<br>"+topp);
}
if (maxhh<yp+h) maxhh=yp+h;
})
// IF THE LAST LAYOUT HAD A DIFFERENT HEIGHT ATTRIBUTE, WE NEED TO CALCULATE THE HEIGHETS ROW
if (layout>13 && layout<18) {
topp=heights[0];
for (allh=0;allh<heights.length;allh++) {
if (topp<heights[allh]) topp=heights[allh];
}
}
container.css({height:maxhh+"px"})
}
})(jQuery);