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
		}
	});

	
});

