(($) -> $.fn.MUPlayer = (opt) -> # define global variables settings = undefined # settings objects videoElem = undefined videoControls = undefined volumeDragging = false # combine user settings with defaults settings = $.extend({ 'use_default_css': false 'class_prefix': 'mup-' 'default_volume': 50 'default_position': 0 'video_sources': [] 'video_width': false }, opt) ## Functions # setup - performs initial setup of the MUPlayer element setup = (wrapperElem) -> # add default CSS if needed if settings.use_default_css addStylesheet('build/css/mup.css') # set player width if typeof settings.video_width == 'string' wrapperElem.width(settings.video_width) # create the video player createPlayer(wrapperElem) # load the video now videoElem.get(0).load() # end setup function return # addStylesheet - adds a stylesheet to the head element addStylesheet = (filename) -> # create link element cssElem = $('', rel: 'stylesheet' type: 'text/css' href: filename) # find stylesheet links loadedStylesheets = $('head link[rel=stylesheet]') # check if there are any loaded stylesheets if loadedStylesheets.length > 0 # get last stylesheet lastStylesheet = loadedStylesheets[loadedStylesheets.length - 1] # append new stylesheet after the last one lastStylesheet.after(cssElem) else # append the new element to the head element $('head').append(cssElem) # end addStylesheet function return # createPlayer - add HTML elements for the video player createPlayer = (wrapperElem) -> # create video element videoElem = $('