text: // ==========================================================================
  //
  // Media
  // Adds additional media type support
  //
  // ==========================================================================
  ;(function ($) {
  
  	'use strict';
  
  	// Formats matching url to final form
  
  	var format = function (url, rez, params) {
  		if (!url) {
  			return;
  		}
  		params = params || '';
  
  		if ($.type(params) === "object") {
  			params = $.param(params, true);
  		}
  
  		$.each(rez, function (key, value) {
  			url = url.replace('$' + key, value || '');
  		});
  
  		if (params.length) {
  			url += (url.indexOf('?') > 0 ? '&' : '?') + params;
  		}
  
  		return url;
  	};
  
  	// Object containing properties for each media type
  
  	var media = {
  		youtube: {
  			matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
  			params: {
  				autoplay: 1,
  				autohide: 1,
  				fs: 1,
  				rel: 0,
  				hd: 1,
  				wmode: 'transparent',
  				enablejsapi: 1,
  				html5: 1
  			},
  			paramPlace : 8,
  			type: 'iframe',
  			url: '//www.youtube.com/embed/$4',
  			thumb: '//img.youtube.com/vi/$4/hqdefault.jpg'
  		},
  
  		vimeo: {
  			matcher: /((player\.)?vimeo(pro)?\.com)\/(video\/)?([\d]+)?(\?(.*))?/,
  			params: {
  				autoplay: 1,
  				hd: 1,
  				show_title: 1,
  				show_byline: 1,
  				show_portrait: 0,
  				fullscreen: 1,
  				api: 1
  			},
  			paramPlace : 7,
  			type: 'iframe',
  			url: '//player.vimeo.com/video/$5'
  		},
  
  		metacafe: {
  			matcher: /metacafe.com\/watch\/(\d+)\/(.*)?/,
  			type: 'iframe',
  			url: '//www.metacafe.com/embed/$1/?ap=1'
  		},
  
  		dailymotion: {
  			matcher: /dailymotion.com\/video\/(.*)\/?(.*)/,
  			params: {
  				additionalInfos: 0,
  				autoStart: 1
  			},
  			type: 'iframe',
  			url: '//www.dailymotion.com/embed/video/$1'
  		},
  
  		vine: {
  			matcher: /vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/,
  			type: 'iframe',
  			url: '//vine.co/v/$1/embed/simple'
  		},
  
  		instagram: {
  			matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
  			type: 'image',
  			url: '//$1/p/$2/media/?size=l'
  		},
  
  		// Examples:
  		// http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
  		// http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
  		// https://www.google.lv/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572
  		google_maps: {
  			matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
  			type: 'iframe',
  			url: function (rez) {
  				return '//maps.google.' + rez[2] + '/?ll=' + ( rez[9] ? rez[9] + '&z=' + Math.floor(  rez[10]  ) + ( rez[12] ? rez[12].replace(/^\//, "&") : '' )  : rez[12] ) + '&output=' + ( rez[12] && rez[12].indexOf('layer=c') > 0 ? 'svembed' : 'embed' );
  			}
  		}
  	};
  
  	$(document).on('onInit.fb', function (e, instance) {
  
  		$.each(instance.group, function( i, item ) {
  
  			var url	 = item.src || '',
  				type = false,
  				thumb,
  				rez,
  				params,
  				urlParams,
  				o,
  				id,
  				provider;
  
  			// Skip items that already have content type
  			if ( item.type ) {
  				return;
  			}
  
  			// Look for any matching media type
  
  			$.each(media, function ( n, el ) {
  				rez = url.match(el.matcher);
  				o   = {};
  				provider = n;
  
  				if (!rez) {
  					return;
  				}
  
  				type = el.type;
  
  				if ( el.paramPlace && rez[ el.paramPlace ] ) {
  					urlParams = rez[ el.paramPlace ];
  
  					if ( urlParams[ 0 ] == '?') {
  						urlParams = urlParams.substring(1);
  					}
  
  					urlParams = urlParams.split('&');
  
  					for ( var m = 0; m < urlParams.length; ++m ) {
  						var p = urlParams[ m ].split('=', 2);
  
  						if ( p.length == 2 ) {
  							o[ p[0] ] = decodeURIComponent( p[1].replace(/\+/g, " ") );
  						}
  					}
  				}
  
  				if ( el.idPlace ) {
  					id = rez[ el.idPlace ];
  				}
  
  				params = $.extend( true, {}, el.params, item.opts[ n ], o );
  
  				url   = $.type(el.url) === "function" ? el.url.call(this, rez, params, item) : format(el.url, rez, params);
  				thumb = $.type(el.thumb) === "function" ? el.thumb.call(this, rez, params, item) : format(el.thumb, rez);
  
  				return false;
  			});
  
  			// If it is found, then change content type and update the url
  
  			if ( type ) {
  				item.src  = url;
  				item.type = type;
  
  				if ( !item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length ) ) {
  					item.opts.thumb = thumb;
  				}
  
  				if ( id ) {
  					item.opts.id = provider + '-' + id;
  				}
  
  				if ( type === 'iframe' ) {
  					$.extend(true, item.opts, {
  						iframe : {
  							preload   : false,
  							scrolling : "no"
  						},
  						smallBtn   : false,
  						closeBtn   : true,
  						fullScreen : false,
  						slideShow  : false
  					});
  
  					item.opts.slideClass += ' fancybox-slide--video';
  				}
  
  			} else {
  
  				// If no content type is found, then set it to `iframe` as fallback
  				item.type = 'iframe';
  
  			}
  
  		});
  
  	});
  
  }(window.jQuery));
  