function Ribbon(f,b){var g,k,l,e,d,c,j,h,a;this.setRibbonID(f.ribbonID||Math.floor(Math.random()*1000001));this.setType(f.type||"Media_List");if(typeof f.vertical==="boolean"){this.setVertical(f.vertical===true?"up":"left")}else{this.setVertical((f.vertical.toLowerCase()==="true")?"up":"left")}this.setNumDisplay(f.numDisplay||4);this.setContentURI(f.contentURI);this.setNumRetrieve(f.numRetrieve||12);this.setScroll(f.scroll||null);this.setCallback(f.callback);f.hidePageNumber=f.hidePageNumber||false;if(typeof f.hidePageNumber==="boolean"){this.setHidePageNumber(f.hidePageNumber?"hide":"show")}else{this.setHidePageNumber((f.hidePageNumber.toLowerCase()==="true")?"hide":"show")}this.setInfinite(f.infinite||false);if(typeof this.getContentURI()!=="undefined"&&this.getContentURI().length!==0){$("li",this.getListSelector()).remove()}g=$(this.getListSelector()).carouFredSel({circular:this.getInfinite(),infinite:this.getInfinite(),auto:false,direction:this.getVertical(),easing:"linear",height:$(this.getRibbonSelector()).height(),width:$(this.getRibbonSelector()).width(),items:{visible:this.getNumDisplay(),width:"variable",height:"variable"},prev:{button:"{0}_prev".format(this.getRibbonSelector())},next:{button:"{0}_next".format(this.getRibbonSelector())},pagination:{container:"{0}_pagination".format(this.getRibbonSelector()),anchorBuilder:function(i){return'<span class="hidden">{0}</span>'.format(i)}},scroll:{items:this.getScroll(),duration:750,onAfter:function(q,m,p){var i,o,n;i="{0}_pagination".format(q.prevObject.selector.replace(/ ul/i,""));if($(i).length>0){o=$(".selected",i).html();n=$("span:last",i).html();if(f.hidePageNumber!==true){if($("{0}_pages".format(i)).length<=0){$(i).append('<div id="{0}_pages" class="pages"></div>'.format(i.replace(/#/,"")))}$("{0}_pages".format(i)).html('<span class="pages-text">Page: </span><span class="pages-current">{0}</span><span class="pages-of"> of </span><span class="pages-total">{1}</span>'.format(o,n))}}}}});this.setRibbon(g);if(this.getType()!=="Pre_Populated"){l=Byutv.applyMethod(this,this.loadRibbon);l(b)}else{k=0;$(this.getListSelector()).children().each(function(){$(this).addClass("item-{0}".format(k));k+=1});e=$(this.getListSelector()).children().length;d=Byutv.applyMethod(this,this.bufferEnd);d(e);c=Byutv.applyMethod(this,this.adjustItemSize);c();if(typeof this.getCallback()==="function"){this.getCallback()()}}j="{0}_pagination".format(this.getRibbonSelector());if($(j).length>0){h=$(".selected",j).html();a=$("span:last",j).html();if(f.hidePageNumber!==true){if($("{0}_pages".format(j)).length<=0){$(j).append('<div id="{0}_pages" class="pages"></div>'.format(j.replace(/#/,"")))}$("{0}_pages".format(j)).html('<span class="pages-text">Page: </span><span class="pages-current">{0}</span><span class="pages-of"> of </span><span class="pages-total">{1}</span>'.format(h,a))}}$("{0} a".format(this.getWrapperSelector())).each(function(){this.tabIndex=-1});if(this.getType()==="Events"){$(this.getRibbonSelector()).removeClass("widget-background");$(".pagination",this.getRibbonSelector()).remove()}if(this.getRibbonID()==="eventsribbon"){$(this.getRibbonSelector()).addClass("widget-background")}return this}Ribbon.prototype={loadRibbon:function(f){var d,a,b,e,c;a=this.buildURI();b=this;e=Byutv.addLoader(this.getRibbonSelector());$.ajax({url:a,dataType:"jsonp",success:function(n,m,g){var i,h,o,l,k,p,j;Byutv.killLoader(e);if(n===null){$(b.getRibbonSelector()).html('<div class="no-result">No Results Returned</div>')}else{i=Byutv.applyMethod(b,b.formatData);i(n,f);h=Byutv.applyMethod(b,b.bufferEnd);h();o=Byutv.applyMethod(b,b.adjustItemSize);o()}if("{0}_pagination".format($(b.getRibbonSelector())).length>0){l="{0}_pagination".format(b.getRibbonSelector());k=$(".selected",l).html();p=$("span:last",l).html();j="{0}_pages".format(l);hidePageNumber=b.getHidePageNumber();if(hidePageNumber!=="hide"){if($(j).length<=0){$(l).append('<div id="{0}_pages" class="pages"></div>'.format(l.replace(/#/,"")))}$(j).html("Page: {0} of {1}".format(k,p))}}if(typeof b.getCallback()==="function"){b.getCallback()()}},error:function(h,i,g){Byutv.killLoader(e);$(b.getRibbonSelector()).html('<div class="no-result">There was an error in retrieving content.</div>');Byutv.log({message:"Error loading content from - {0}. Error Status Message - {1}".format(a,i),code:"error",filename:"Ribbon.js"})}})},bufferEnd:function(){var d,b,c,a;if(this.getInfinite()){return}d=$("li",this.getListSelector()).length;b=d%this.getNumDisplay();c=b!==0?this.getNumDisplay()-b:0;for(a=0;a<c;a+=1){$(this.getListSelector()).trigger("insertItem",'<li class="item-{0} empty-item">&nbsp;</li>'.format(d));d+=1}},adjustItemSize:function(){var a,c,e,d,b,f;if($("li",this.getListSelector()).length<this.getNumDisplay()){this.setNumDisplay($("li",this.getListSelector()).length);this.getRibbon().configuration("items.visible",$("li",this.getListSelector()).length)}if(this.getVertical()==="up"){a=parseInt($(this.getWrapperSelector()).parent().height()/this.getNumDisplay(),10);$(this.getWrapperSelector()).height(a*this.getNumDisplay());c=parseInt($("li",this.getListSelector()).css("padding-top"),10)+parseInt($("li",this.getListSelector()).css("padding-bottom"),10);e=parseInt($("li",this.getListSelector()).css("border-top-width"),10)+parseInt($("li",this.getListSelector()).css("border-bottom-width"),10);d=c+e;b=parseInt($("li",this.getListSelector()).css("margin-top"),10)+parseInt($("li",this.getListSelector()).css("margin-bottom"),10);f=a-d-b;if(f<0){Byutv.log({message:"The padding, borders, and margins are too big for the container size",code:"warn",filename:"Ribbon.js"});return}$("li",this.getListSelector()).height(f);$("li:last",this.getListSelector()).height(f+$(this.getWrapperSelector()).height()-(a*this.getNumDisplay()))}else{a=parseInt($(this.getWrapperSelector()).parent().width()/this.getNumDisplay(),10);$(this.getWrapperSelector()).width(a*this.getNumDisplay());c=parseInt($("li",this.getListSelector()).css("padding-left"),10)+parseInt($("li",this.getListSelector()).css("padding-right"),10);e=parseInt($("li",this.getListSelector()).css("border-left-width"),10)+parseInt($("li",this.getListSelector()).css("border-right-width"),10);d=c+e;b=parseInt($("li",this.getListSelector()).css("margin-left"),10)+parseInt($("li",this.getListSelector()).css("margin-right"),10);f=a-d-b;if(f<0){Byutv.log({message:"The padding, borders, and margins are too big for the container size",code:"warn",filename:"Ribbon.js"});return}$("li",this.getListSelector()).width(f);$("li:last",this.getListSelector()).width(f+$(this.getWrapperSelector()).width()-(a*this.getNumDisplay()))}},buildURI:function(){var b=this.getNumRetrieve()>0?this.getNumRetrieve():"",a;switch(this.getType()){case"Media_List":return"{0}&itemType=Playlist&maxToReturn={1}".format(this.getContentURI(),b);case"Social_Media":a="?skip=0&limit={0}&descending=true".format(b);a=encodeURIComponent(a);return"{0}{1}".format(this.getContentURI(),a);case"Blog":return"{0}?&maxToReturn={1}".format(this.getContentURI(),b);case"Events":return this.getContentURI()}},formatData:function(b,a){switch(this.getType()){case"Media_List":return this.formatMedia_List(b);case"Social_Media":return this.formatSocial_Media(b);case"Blog":return this.formatBlog(b);case"Events":return this.formatEvent(b,a)}},formatMedia_List:function(b){var d,a,e,c="";for(d=0;d<b.length;d+=1){a=b[d];e='<li class="item-{0}">'.format(d);if(a.IsVideo){e+='<div class="vertical-center-img"><div><div><a href="{1}"><div class="play"></div><img alt="image" src="{0}" /></a></div></div></div>'.format(a.Image,a.Link)}else{e+='<div class="vertical-center-img"><div><div><a href="{1}"><img alt="image" src="{0}" /></a></div></div></div>'.format(a.Image,a.Link)}if(a.Source===null){e+='<div class="vertical-center-text"><div><div><a href="{3}"><h3>{0}</h3></a><p title="{1}">{2}</p></div></div></div></li>'.format(a.Title,a.Description.replace(/"/g,"&quot;"),a.Description.strsub(0,75),a.Link)}else{e+='<div class="vertical-center-text"><div class="episodeWidget"><div><a href="{3}"><h3>{1}</h3><p title="{2}">{0}</p></a></div></div></div></li>'.format(a.Title,a.Source,a.Source,a.Link)}c=c+e}$(this.getListSelector()).trigger("insertItem",c)},formatEvent:function(h,n){var k,f,b,j="",d,c,m,a,g;for(k=0;k<h.length;k+=1){var o=new Date();n=parseInt(n,10);var e=o.getTimezoneOffset();e=e/60;e=e+n;e=e*3600000;var l=h[k].Timestamp*1000;l=l+e;f=h[k];d=new Date(l).format("hh:nna/p");c=new Date(l).format("mmm dd");if(k>=0){g="";a="return true;";b='<li class="hoverable item-{0}">'.format(k);m="/watch/event/{0}".format(f.Guid);if(!f.EmbedCode){g="display:none;"}if(f.IsVideo){b+='<div class="vertical-center-img"><div><div><a href="{1}" onclick="{2}"><div class="play" style="{3}"></div><img alt="image" src="{0}" /></a></div></div></div>'.format(f.Image,m,a,g)}else{b+='<div class="vertical-center-img"><div><div><a href="{1}" onclick="{2}"><div class="play" style="{3}"></div><img alt="image" src="{0}" /></a></div></div></div>'.format(f.Image,m,a,g)}if(f.Source===null){b+='<div class="vertical-center-text"><div><div><a href="{3}" onclick="{6}"><h3>{0}</h3></a><p title="{1}">{2}</p><p class="italic time">{4}, {5}</p></div></div></div></li>'.format(f.Title,f.StartDate,f.StartDate,m,c,d,a)}else{b+='<div class="vertical-center-text"><div><a href="{3}" onclick="{6}"><h3>{0}</h3><p title="{1}">{2}</p><p class="italic time">{4}, {5}</p></a></div></div></li>'.format(f.Title,f.Description.replace("/g, '&quot;'"),f.Description.strsub(0,75),m,c,d,a)}j=j+b}}$(this.getListSelector()).trigger("insertItem",j)},formatSocial_Media:function(g){var h,b,j,e,d,f,c,q,m,a,p,o,n,k,l="";g=g.rows;for(h=0;h<g.length;h+=1){c=g[h].value.Document;e=new Date(c.timestamp*1000);q=e.format("hh:nna/p");m=e.format("mmm dd");if(e.isToday()){k=q}else{k="{0}, {1}".format(m,q)}b=c.UserDisplayName;switch(c.Source){case"Facebook":o="facebook";n="http://www.facebook.com/BYUtv";break;case"Twitter":o="twitter";n="http://twitter.com/byutv";b="{0}".format(b);break}j=c.Comment.strsub(0,205);j=j.replace(/"/g,"&quot;");p='<li class="item-{0}">'.format(h);p+='<div class="vertical-center-img"><div><div><img class="social-image" alt="image" src="{0}" /></div></div></div>'.format(c.UserImageUrl);p+='<a href="{0}"><div class="social-logo {1}"></div></a>'.format(n,o);p+='<div class="vertical-center-text"><div><div><h3>{0}<span class="italic time">{3}</span></h3><p title="{1}">{2}</p></div></div></div></li>'.format(b,c.Comment,j,k);l=l+p}$(this.getListSelector()).trigger("insertItem",l)},formatBlog:function(f){var g,a,c,e,k,h,b,j,d;for(g=0;g<f.length;g+=1){a=f[g];d=new Date(a.Timestamp*1000);e=d.format("hh:nna/p");k=d.format("mmm dd");if(d.isToday()){h=e}else{h="{0}, {1}".format(k,e)}c='<li class="item-{0}">'.format(g);c+='<div class="vertical-center-img"><div><div><a href="{1}"><img alt="image" src="{0}" /></a></div></div></div>'.format(a.Image,a.Link);c+='<div class="vertical-center-text"><div><div><a href="{4}"><h3>{0}</h3></a><p title="{1}">{2}</p><p class="italic time">{3}</p></div></div></div></a></li>'.format(a.Title,a.Description.replace(/"/g,"&quot;"),a.Description.strsub(0,50),h,a.Link);j=j+c}$(this.getListSelector()).trigger("insertItem",j)},setType:function(a){this.type=a},setRibbonID:function(a){this.ribbonID=a},setVertical:function(a){this.vertical=a},setNumDisplay:function(a){this.numDisplay=a},setContentURI:function(a){this.contentURI=a},setNumRetrieve:function(a){this.numRetrieve=a},setScroll:function(a){this.scroll=a},setRibbon:function(a){this.ribbon=a},setCallback:function(a){this.callback=a},setHidePageNumber:function(a){this.hidePageNumber=a},setInfinite:function(a){this.infinite=a},getType:function(){return this.type},getRibbonID:function(){return this.ribbonID},getRibbonSelector:function(){return"#{0}".format(this.ribbonID)},getListSelector:function(){return"#{0} ul".format(this.ribbonID)},getVertical:function(){return this.vertical},getNumDisplay:function(){return this.numDisplay},getContentURI:function(){return this.contentURI},getNumRetrieve:function(){return this.numRetrieve},getScroll:function(){return this.scroll},getRibbon:function(){return this.ribbon},getWrapperSelector:function(){return"#{0} .caroufredsel_wrapper".format(this.ribbonID)},getCallback:function(){return this.callback},getHidePageNumber:function(){return this.hidePageNumber},getInfinite:function(){return this.infinite}};
