jQuery(document)
		.ready(function($) {
	$('.popup-youtube').magnificPopup({
		disableOn: 700,
		type: 'iframe',
		mainClass: 'mfp-fade',
		removalDelay: 160,
		preloader: false,

		fixedContentPos: false
	});
	
	$('.popup-gallery').magnificPopup({
		delegate: 'a',
		type: 'image',
		tLoading: 'Loading image #%curr%...',
		mainClass: 'mfp-img-mobile',
		gallery: {
			enabled: true,
			navigateByImgClick: true,
			preload: [0,1] // Will preload 0 - before current, and 1 after the current image
		},
		image: {
			tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
			titleSrc: function(item) {
				return item.el.attr('title') + ' ';
			}
		}
	});
	
	$('.image-popup-vertical-fit').magnificPopup( {
			type : 'image',
			closeOnContentClick : true,
			mainClass : 'mfp-img-mobile',
			image : {
				verticalFit : true
			}

		});

	$('.image-popup-fit-width').magnificPopup( {
		type : 'image',
		closeOnContentClick : true,
		image : {
			verticalFit : false
		}
	});

	$('.image-popup-no-margins').magnificPopup( {
		type : 'image',
		closeOnContentClick : true,
		closeBtnInside : false,
		fixedContentPos : true,
		mainClass : 'mfp-no-margins mfp-with-zoom', // class to
													// remove
													// default
													// margin
													// from left
													// and right
													// side
		image : {
			verticalFit : true
		},
		zoom : {
			enabled : true,
			duration : 300
		// don't foget to change the duration also in CSS
		}
	});

	
});

