/////////////////////Responsive////////////////////
jQuery(document).ready(function ()
{
});
function wdi_responsive()
{
};
/*
* Calculates current column layout and gives proper column classes
*/
wdi_responsive.columnControl = function (currentFeed, load, customWidth)
{
currentFeed.openRows = [];
if (load === 1) {
var wrapper = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_feed_wrapper");
var itemWidth = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_feed_item").css('width') + '';
var containerWidth = wrapper.width();
if (itemWidth.substr(itemWidth.length - 2, itemWidth.length) == 'px') {
itemWidth = parseFloat(itemWidth);
} else {
itemWidth = 0.01 * containerWidth * parseFloat(itemWidth);
}
if (currentFeed.feed_row.feed_type == 'masonry') {
var itemWidth = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_masonry_column").width();
}
if (customWidth != undefined) {
itemWidth = customWidth;
}
var currentClass = wrapper.attr('wdi-res');
var newClass = currentClass.substr(0, 8) + Math.round(containerWidth / itemWidth);
wrapper.removeClass(currentClass);
wrapper.attr('wdi-res', newClass);
wrapper.addClass(newClass);
//////////////////////////////////////////
if (currentClass != newClass) {
var colNum = newClass.substr(8, newClass.length);
//updating free spaces for pagination view
if (currentFeed.feed_row.feed_display_view == 'pagination') {
currentFeed.freeSpaces = (Math.floor(currentFeed.feed_row.pagination_per_page_number / Math.round(containerWidth / itemWidth)) + 1) * Math.round(containerWidth / itemWidth) - currentFeed.feed_row.pagination_per_page_number;
if (currentFeed.freeSpaces % colNum == 0) {
currentFeed.freeSpaces = 0;
}
//updating pagination indexes for new layout
currentFeed.resIndex = 0;
var k = 0;
jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_feed_item').each(function ()
{
jQuery(this).attr('wdi_res_index', currentFeed.resIndex);
if ((k + 1) % currentFeed.feed_row.pagination_per_page_number === 0) {
currentFeed.resIndex += currentFeed.freeSpaces + 1;
} else {
currentFeed.resIndex++;
}
k++;
});
}
}
} else {
jQuery(window).resize(function ()
{
var wrapper = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_feed_wrapper");
if (wrapper.length == 0) {
return;
}
var itemWidth = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_feed_item").css('width') + '';
var containerWidth = wrapper.width();
if (itemWidth.substr(itemWidth.length - 2, itemWidth.length) == 'px') {
itemWidth = parseFloat(itemWidth);
} else {
itemWidth = 0.01 * containerWidth * parseFloat(itemWidth);
}
var currentClass = wrapper.attr('wdi-res');
//check if layout was changed then reposition masonry
if (currentFeed.feed_row.feed_type == 'masonry') {
var itemWidth = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + " .wdi_masonry_column").width();
}
var newClass = currentClass.substr(0, 8) + Math.round(containerWidth / itemWidth);
wrapper.removeClass(currentClass);
wrapper.attr('wdi-res', newClass);
wrapper.addClass(newClass);
//Feed type based configurations
if (currentFeed.feed_row.feed_type === 'thumbnails') {
//fixes row which was opened by user
wdi_responsive.fixRow(currentFeed);
}
if (currentFeed.feed_row.feed_type === 'masonry') {
//checking if layout changed then change masonry columns
if (currentClass != newClass) {
wdi_front.ajaxLoader(currentFeed);
var colNum = newClass.substr(8, newClass.length);
//clearing wrapper adn adding blank colums
wrapper.html('');
var newCols = '';
for (var i = 0; i < colNum; i++) {
newCols += '
';
}
newCols += '';
wrapper.html(newCols);
//resetting index variables
currentFeed.imageIndex = 0;
currentFeed.resIndex = 0;
//inserting content again
//fix sorting issue;
var dataToBeDisplayed = currentFeed.displayedData;
currentFeed.displayedData = [];
wdi_front.masonryDisplayFeedItems(dataToBeDisplayed, currentFeed);
wdi_front.applyFilters(currentFeed);
///wdi_front.allImagesLoaded(currentFeed);
}
}
//////////////////////////////////////////
if (currentClass != newClass) {
var colNum = newClass.substr(8, newClass.length);
//updating free spaces for pagination view
if (currentFeed.feed_row.feed_display_view == 'pagination') {
currentFeed.freeSpaces = (Math.floor(currentFeed.feed_row.number_of_photos / Math.round(containerWidth / itemWidth)) + 1) * Math.round(containerWidth / itemWidth) - currentFeed.feed_row.number_of_photos;
if (currentFeed.freeSpaces % colNum == 0) {
currentFeed.freeSpaces = 0;
}
//updating pagination indexes for new layout
currentFeed.resIndex = 0;
var k = 0;
jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_feed_item').each(function ()
{
jQuery(this).attr('wdi_res_index', currentFeed.resIndex);
if ((k + 1) % currentFeed.feed_row.pagination_per_page_number === 0) {
currentFeed.resIndex += currentFeed.freeSpaces + 1;
} else {
currentFeed.resIndex++;
}
k++;
});
}
}
});
}
};
wdi_responsive.bindCaptionEvent = function (imgtitle, currentFeed)
{
//if(typeof imgtitle == "undefined") return;
// imgtitle.on('click',function(e){
// wdi_responsive.showCaption(jQuery(this),currentFeed);
// })
}
wdi_responsive.bindMasonryCaptionEvent = function (imgtitle, currentFeed)
{
//console.log("asdasd");
// imgtitle.on('click',function(){
// wdi_responsive.showMasonryCaption(jQuery(this),currentFeed);
// });
}
wdi_responsive.showCaption = function (caption, currentFeedCounter)
{
var currentFeed = window["wdi_feed_" + currentFeedCounter]
var imgItem = caption.parent().parent();
if (currentFeed.feed_row.feed_display_view === 'pagination') {
var indexType = 'wdi_res_index';
} else {
var indexType = 'wdi_index';
}
var imgIndex = imgItem.attr(indexType);
var colClass = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_feed_wrapper').attr('wdi-res');
var colNum = parseInt(colClass.substr(8, colClass.length));
var imgBeforRows = Math.floor(imgIndex / colNum);
var indexInRow = imgIndex - colNum * imgBeforRows;
var indexes = [];
for (var i = 0; i < colNum; i++) {
var rowIndex = i + (imgBeforRows) * colNum;
indexes.push(rowIndex);
}
if (imgItem.hasClass('wdi_full_caption')) {
caption.css('white-space', 'nowrap');
imgItem.removeClass('wdi_full_caption');
//jQuery('body, html').animate({scrollTop:imgItem.attr('wdi_scroll_to')}, '500');
//console.log("showCaption")
} else {
caption.css('white-space', 'normal');
imgItem.addClass('wdi_full_caption');
imgItem.attr('wdi_scroll_to', imgItem.offset().top - 50);
}
imgItem.css('height', 'auto');
//find maximum height in row
var maxHeight = 0;
for (var i = 0; i < indexes.length; i++) {
var currentItem = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_feed_wrapper [' + indexType + '=' + indexes[i] + ']');
currentItem.addClass('wdi_row_affected');
currentItem.css('height', 'auto');
if (maxHeight < currentItem.height() && currentItem.hasClass('wdi_full_caption')) {
maxHeight = currentItem.height();
}
}
if (maxHeight == 0) {
maxHeight = imgItem.height();
}
for (var i = 0; i < indexes.length; i++) {
var currentItem = jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_feed_wrapper [' + indexType + '=' + indexes[i] + ']');
currentItem.height(maxHeight);
}
currentFeed.affectedRow = true;
}
wdi_responsive.fixRow = function (currentFeed)
{
jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_row_affected').each(function ()
{
jQuery(this).css('height', 'auto');
jQuery(this).removeClass('wdi_row_affected');
});
if (currentFeed.feed_row.feed_display_view === 'pagination') {
jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_full_caption').each(function ()
{
if (!jQuery(this).hasClass('wdi_hidden')) {
//triggering two times one time for fixing row second for bringing back old state
jQuery(this).find('.wdi_photo_title').trigger(wdi_front.clickOrTouch);
jQuery(this).find('.wdi_photo_title').trigger(wdi_front.clickOrTouch);
}
});
} else {
jQuery('#wdi_feed_' + currentFeed.feed_row.wdi_feed_counter + ' .wdi_full_caption').each(function ()
{
//triggering two times one time for fixing row second for bringing back old state
jQuery(this).find('.wdi_photo_title').trigger(wdi_front.clickOrTouch);
jQuery(this).find('.wdi_photo_title').trigger(wdi_front.clickOrTouch);
});
}
}
wdi_responsive.showMasonryCaption = function (caption, currentFeedCounter)
{
var currentFeed = window["wdi_feed_" + currentFeedCounter];
var imgItem = caption.parent().parent();
if (imgItem.hasClass('wdi_full_caption')) {
caption.css('white-space', 'nowrap');
imgItem.removeClass('wdi_full_caption');
//jQuery('body, html').animate({scrollTop:imgItem.attr('wdi_scroll_to')}, '500');
} else {
imgItem.attr('wdi_scroll_to', imgItem.offset().top - 50);
caption.css('white-space', 'normal');
imgItem.addClass('wdi_full_caption');
}
}