if(typeof os==="undefined"){var os={}}os.MediaControl=function(config){var defaults={name:"os.MediaControl",controllerId:"",controlItems:{},triggerEvent:"click",eventType:"mediacontrolclick",controlsClass:os.$c.CONTROLS};var elm=document.createElement("ul");os.MediaControl._super.constructor.apply(this,[elm,config]);this.applySettings(defaults,config);this.setContext(elm)._create.apply(this,arguments)};os.Plug.extend(os.MediaControl,os.Component,{initialize:function(){var _this=this;this.element.attr("id",this.controllerId).addClass(this.controlsClass);this.element.bind(this.triggerEvent,function(e){jQuery(this).trigger({type:_this.eventType,controlTarget:e.target,action:e.target.getAttribute("data-action")||null})})},addControlItem:function(controlName,content,attr){if(arguments.length<1){throw new Error('Improper number of arguments, mediaControl requires an "controlName" param: '+this.name)}controlName=this.parseControlName(controlName);attr=attr||{};attr["data-action"]=controlName;var item=new os.MediaControlItem(content,attr);this.controlItems[controlName]=item;this.element.append(jQuery("<li></li>").append(item.element));return this},toggleSelect:function(controlName,multiSelect){controlName=this.parseControlName(controlName);multiSelect=multiSelect||false;if(!multiSelect){this.deselectAll()}this.controlItems[controlName].select()},deselectAll:function(){for(var action in this.controlItems){this.controlItems[action].deselect()}},parseControlName:function(name){return(typeof name==="number")?"action"+name:name}});os.MediaControlItem=function(){var defaults={name:"os.MediaControlItem",disabledClass:os.$c.DISABLED,selectedClass:os.$c.SELECTED,controlItemClass:os.$c.CONTROL_TRIGGER};var elm=document.createElement("a");os.MediaControlItem._super.constructor.apply(this,[elm]);this.applySettings(defaults,{});this.setContext(elm)._create.apply(this,arguments)};os.Plug.extend(os.MediaControlItem,os.Component,{initialize:function(content,attr){var parsedContent;if(typeof content==="object"){if(content.img){var parsedContent=document.createElement("img");parsedContent.src=content.img}else{if(content.lbl){parsedContent=content.lbl}}}else{parsedContent=content}this.element.addClass(this.controlItemClass).append(parsedContent);if(attr){for(var name in attr){switch(name){case"class":case"className":this.element.addClass(attr[name]);break;default:this.element.attr(name,attr[name])}}}},enable:function(){this.element.removeClass(this.disabledClass)},disable:function(){this.element.addClass(this.disabledClass)},select:function(){this.element.addClass(this.selectedClass)},deselect:function(){this.element.removeClass(this.selectedClass)}});
