/*! * Video background plugin by owwwlab * Version : 0.9 * Date : 2014-06-05 * Licence : All rights reserved * Author : owwwlab (Ehsan Dalvand & Alireza Jahandideh) * Contact : owwwlab@gmail.com * Web site : http://themeforest.net/user/owwwlab */ // Utility if ( typeof Object.create !== 'function' ){ // browser dose not support Object.create Object.create = function (obj){ function F(){}; F.prototype = obj; return new F(); }; }; (function($, window, document, undefined) { var vs; var owlVideoBg = { init: function( options , elem ){ var self = this; //store a reference to this self.elem = elem; self.$elem = $(elem); self.options = $.extend( true,{}, $.fn.owlVideoBg.options, options); vs=self.options; self.$elem.addClass(vs.elemClass); generatedMarkup=self.generateMarkup(); if (generatedMarkup){ self.inject(generatedMarkup.videoHTML); }else{ self.setPoster(); } }, generateMarkup : function(){ var self=this, srcPath,basePath,ogvPath,webmPath,posterPath,videoHTML,videoHeadTag; vs.autoplay = self.$elem.hasClass('autoplay')||vs.autoplay, vs.muted = self.$elem.hasClass('muted') || vs.muted, vs.loop = self.$elem.hasClass('loop') || vs.loop, vs.playonHover =self.$elem.hasClass('hoverPlay') || vs.playonHover; var headOption=''; if (vs.autoplay & !vs.playonHover){ headOption+=' autoplay'; } if (vs.muted){ headOption+=' muted'; } if(vs.loop){ headOption+=' loop'; } if (vs.preload && !vs.autoplay){ headOption += ' preload="'+vs.preload+'"'; } videoHeadTag=''; if (vs.autoGenerate.basedOnSrc){ //We should generate other video formats and poster image path //Do the user provide inline src ? var inlineSrc=(vs.autoGenerate.inlineBaseSrc!=''); if (inlineSrc){ srcPath=vs.autoGenerate.inlineBaseSrc; }else{ // read the base source path from HTML markup srcPath=self.$elem.attr(vs.autoGenerate.srcProperty); } if (srcPath==undefined || ''){ return false; } basePath=srcPath.substr(0, srcPath.lastIndexOf('.mp4')) || srcPath; //Generate the video element videoHTML=videoHeadTag+''; //Generate all formats file path vs.autoGenerate.formats.forEach(function(entry) { videoHTML+=''; }); //Add other if you need to videoHTML+=''; //Generate Poster image path posterPath=basePath+'.'+vs.autoGenerate.posterImageFormat; posterPath=self.$elem.attr(vs.autoGenerate.posterProperty)||posterPath; }else{ //We should use provided source by user and don't generate any if($.isEmptyObject(vs.srcSetup)){ return false } else{ //Generate the video element videoHTML=videoHeadTag; vs.srcSetup.forEach(function(entry) { videoHTML+=''; }); //Add other if you need to videoHTML+=''; } posterPath=vs.posterPath; } headOption+=' poster="'+posterPath+'"'; videoHeadTag='