/*

Magma Channel Widget
Version 1.0.1 -- 2009-10-07
http://mag.ma

*/

var Magma = {Debug : false, BasePath : 'http://mag.ma/', Widget : {Timeout : false, Options : {}, DefaultOptions : {Channel : 'mustwatch', Paginate : true, PerPage : 5, Width : '100%', Height : 'auto', BoxArea : false, Init : false,},Make : function() {this.Options = Magma.MergeObjects(this.DefaultOptions, this.Options);var code = '<div id="magma_header"></div><div id="magma_videos"></div>' + (this.Options.Paginate ? '<div id="magma_paginate"></div>' : '') + '<div id="magma_footer"><a id="magma_logo" href="'+ Magma.BasePath +'"><img src="'+ Magma.BasePath +'/widgets/images/logo.png" title="Magma" alt="Magma" border="0" /></a></div></div> <style type="text/css"> #magma_widget {min-width: 150px; max-width: 254px; padding: 5px 8px 0 8px; margin: 6px 0; border: 1px solid #9d9d9d; background: #ffffff url('+ Magma.BasePath +'widgets/images/bg_footer.png) bottom left no-repeat; font-family: Helvetica, Arial, Verdana, "Lucida Grande", sans-serif; font-size: 12px;} #magma_widget.magma_loading {border-color: #e0e0e0;} #magma_paginate {display: none; padding: 0; margin: 0;} #magma_header {clear: both; display: block; padding: 0 5px 5px 5px; margin: 0 2px; border-bottom: 1px solid #e1e1e1;} #magma_widget.magma_loading #magma_header {padding: 0 0 6px 0; border: none;} #magma_header h1 {clear: both; display: block; font-size: 16px; line-height: 18px; color: #444; font-weight: bold; font-style: normal; text-decoration: none; margin: 0; padding: 0;} #magma_header h1.channel {background: url('+ Magma.BasePath +'widgets/images/channel_icon.png) top left no-repeat; min-height: 25px;} #magma_header h1 a {display: block; color: #444; text-decoration: none;} #magma_header h1 a:hover {color: #000; text-decoration: none; padding: 3px 0 0 0;} #magma_header h1.channel a {padding: 4px 0 0 31px;} #magma_videos {padding: 2px 0; margin: 0; min-height: 70px;} #magma_widget.magma_loading #magma_videos {background: url('+ Magma.BasePath +'widgets/images/loading.gif) center center no-repeat;} #magma_videos .magma_video {position: relative; clear: both; display: block; min-height: 56px; margin: 1px 0; padding: 6px 5px 6px 90px; border: 1px solid #fff; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px;} #magma_videos .magma_video:hover, #magma_videos .magma_video.hover {cursor: pointer; border-color: #d5d5d5; background: #f5f5f5;} #magma_videos .magma_video a.magma_video_image {position: absolute; top: 6px; left: 5px;} #magma_videos .magma_video a.magma_video_image img, #magma_videos .magma_video a.magma_video_image:hover img {border: none;} #magma_videos .magma_video h4.magma_video_title {clear: both; display: block; font-size: 12px; line-height: 14px; color: #444; font-weight: bold; font-style: normal; text-decoration: none; margin: 1px 0 3px 0; padding: 0; height: 42px; overflow: hidden; vertical-align: top;} #magma_videos .magma_video h4.magma_video_title a {color: #444; text-decoration: none;} #magma_videos .magma_video h4.magma_video_title a:hover {color: #000; text-decoration: none;} #magma_videos .magma_video a.magma_video_views {font-size: 11px; line-height: 12px; color: #777; font-weight: normal; font-style: normal; text-decoration: none;} #magma_videos .magma_video a.magma_video_views:hover {color: #444; text-decoration: none;} #magma_videos p.magma_suggest {padding: 16px 6px !important; text-align: center; font-size: 13px !important; line-height: 16px !important; color: #666; font-weight: normal; font-style: normal; text-decoration: none;} #magma_footer {position: relative; height: 34px; overflow: hidden; padding: 10px 0 0 0; margin: 0 2px;} #magma_footer a {position: absolute; z-index: 0; vertical-align: bottom; font-size: 11px; line-height: 11px; font-weight: bold; color: #444; text-decoration: none;} #magma_footer a:hover {color: #000; text-decoration: none;} #magma_footer #magma_logo {bottom: 0; left: 0; width: 102px; height: 34px;} #magma_footer #magma_channel_link {bottom: 4px; right: 0;} </style>';var js = document.getElementsByTagName('script'), area = this.Options.BoxArea;if (!area) {for (var i=0; i<js.length; i++) {if (js[i].src == Magma.BasePath +'widgets/channel.js') {area = js[i]; break;}}}if (area) {var box = document.createElement('div');box.setAttribute('id', 'magma_widget'); box.id = 'magma_widget';box.setAttribute('class', 'magma_loading'); box.className = 'magma_loading';area.parentNode.insertBefore(box, area);box.innerHTML = code;} else {document.write('<div id="magma_widget" class="magma_loading">'+ code +'</div>');}this.Timeout = setTimeout(function() {Magma.Widget.Error('Sorry, but this Magma channel could not be found.');}, 5000);try {this.Paginate(1);} catch(e) {}},Error : function(msg) {var box = Magma.FindElement('magma_widget'), header = Magma.FindElement('magma_header'), vid_box = Magma.FindElement('magma_videos'), details = Magma.FindElement('magma_footer'), name = this.Options.Channel;if (!box || !header || !vid_box || !details) return (Magma.Debug ? alert('Magma channel box not created.') : false);if (!msg) msg = 'Sorry, but an error occured while loading this channel\'s videos.';if (name == 'mustwatch') {name = 'Magma Must Watch Video'+ (this.Options.PerPage > 1 ? 's' : '');} else if (name == 'leaderboard') {name = 'Magma Top Video'+ (this.Options.PerPage > 1 ? 's' : '');} else {name = this.Options.Channel + (this.Options.Channel.toLowerCase() == 's' ? '\'' : '\'s') + ' Favorite Video'+ (this.Options.PerPage > 1 ? 's' : '')}box.className = box.className.replace(/magma_loading/i, '').replace(/\s\s/, ' ');header.innerHTML = '<h1>'+ name + '</h1>';vid_box.innerHTML = '<p class="magma_suggest">'+ msg +'</p>';},Paginate : function(page) {var box = Magma.FindElement('magma_videos'), url = Magma.BasePath +'%channel%.json%data%', s = document.createElement('script'), d = new Date();if (!box) return (Magma.Debug ? alert('Magma channel box not created.') : false);url = url.replace(/\%channel\%/, this.Options.Channel).replace(/\%data\%/, '?page='+ page +'&per_page='+ this.Options.PerPage +'&callback=Magma.Widget.Write&_='+ d.getTime() +'&widget=1');s.setAttribute('type', 'text/javascript'); s.setAttribute('src', url);if (!this.Timeout) this.Timeout = setTimeout(function() {Magma.Widget.Error();}, 5000);box.appendChild(s);},Write : function(info) {clearTimeout(this.Timeout);var box = Magma.FindElement('magma_widget'), header = Magma.FindElement('magma_header'), vid_box = Magma.FindElement('magma_videos'), details = Magma.FindElement('magma_footer');if (!box || !header || !vid_box || !details) return (Magma.Debug ? alert('Magma channel box not created.') : false);if (!this.Options.Init && details) {var title = info.channel.title + (info.channel.title[info.channel.title.length-1].toLowerCase() == 's' ? '\'' : '\'s') + ' Favorite Video'+ (this.Options.PerPage > 1 ? 's' : '');if (this.Options.Channel == 'mustwatch' || this.Options.Channel == 'leaderboard') title = info.channel.title;if (this.Options.Channel == 'mustwatch' || this.Options.Channel == 'leaderboard') {header.innerHTML = '<h1><a id="magma_title_text" href="'+ info.channel.canonical_url +'" title="'+ title.replace(/\"/, '') +'">'+ title +'</a></h1>';} else {header.innerHTML = '<h1 class="channel"'+ (info.channel.profile_image_icon && info.channel.profile_image_icon != '' ? ' style="background-image: url('+ info.channel.profile_image_icon +');"' : '') +'><a id="magma_title_text" href="'+ info.channel.canonical_url +'" title="'+ title.replace(/\"/, '') +'">'+ title +'</a></h1>';}if (details.offsetWidth > 205) details.innerHTML = '<a id="magma_channel_link" href="'+ info.channel.canonical_url +'" title="See All Videos">See All Videos &raquo;</a>' + details.innerHTML;}if (info.videos && info.videos.length > 0) {vid_box.innerHTML = '';for (var i=0; i<this.Options.PerPage; i++) {if (info.videos[i] && typeof(info.videos[i]) == 'object') {var magma_url = info.videos[i].canonical_url;if (info.videos[i].in_channel_url && info.videos[i].in_channel_url != '') magma_url = info.videos[i].in_channel_url;vid_box.innerHTML += '<div class="magma_video" onmouseover="this.className+=\' hover\';" onmouseout="this.className = this.className.replace(/hover/, \'\').replace(/\s\s/, \' \');" onclick="location.href=\''+ magma_url +'\';"><a class="magma_video_image" href="'+ magma_url +'" title="'+ info.videos[i].title.replace(/\"/, '') +'"><img src="'+ info.videos[i].thumbnail +'" width="75" height="56" title="" border="0" /></a><h4 class="magma_video_title"><a href="'+ magma_url +'">'+ info.videos[i].title +'</a></h4><a class="magma_video_views" href="'+ magma_url +'" title="">'+ (info.videos[i].views_count > 0 ? Magma.Commify(info.videos[i].views_count) +' views' : '') +'</a></div>';}}} else {vid_box.innerHTML = '<p class="magma_suggest">'+ (this.Options.Channel == 'mustwatch' || this.Options.Channel == 'leaderboard' ? 'Sorry, but there are no latest videos in this channel.' : 'Sorry, but '+ info.channel.title +' does not have any videos in their Magma channel.') +'</p>';}
if (!this.Options.Init) {box.className = box.className.replace(/magma_loading/i, '').replace(/\s\s/, ' ');this.Options.Init = true;var title_text = Magma.FindElement('magma_title_text');if (title_text.offsetHeight > 25) title_text.style.paddingTop = '1px';}}},Commify : function(num) {var str_num = (num+'').split('').reverse().join(''), str = '';for (var i=0; i<str_num.length; i+=3) {if (str != '') str += ',';if (str_num[i]) str += str_num[i];if (str_num[i+1]) str += str_num[i+1];if (str_num[i+2]) str += str_num[i+2];}return str.split('').reverse().join('');},MergeObjects : function() {var obj = {}; for (var i=0; i < arguments.length; i++) {if (typeof(arguments[i]) == 'object') {for (k in arguments[i]) {obj[k] = arguments[i][k];}}} return obj;},FindElement : function() {var elms = new Array();for (var i = 0; i < arguments.length; i++) {var elm = arguments[i];if (typeof(elm) == 'string') elm = document.getElementById(elm);if (typeof(elm) == 'object') elms.push(elm);}return (elms.length > 0 ? (elms.length > 1 ? elms : elms[0]) : false);}};