Skip to content

Instantly share code, notes, and snippets.

@psykidellic
Created October 30, 2013 08:17
Show Gist options
  • Select an option

  • Save psykidellic/7228863 to your computer and use it in GitHub Desktop.

Select an option

Save psykidellic/7228863 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html data-cast-api-enabled="true">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<script charset="UTF-8" type="text/javascript">var Locale = {"currency": {"isk": {"position": "end", "symbol": " kr."}, "usd": {"symbol": "$"}, "aud": {"symbol": "$"}, "chf": {"position": "end", "symbol": " CHF"}, "nok": {"position": "end", "symbol": " kr."}, "clp": {"position": "start", "symbol": "$"}, "pln": {"position": "end", "symbol": " z\u0142"}, "myr": {"position": "start", "symbol": "RM"}, "cop": {"position": "start", "symbol": "$"}, "mxn": {"position": "start", "symbol": "$"}, "czk": {"position": "end", "symbol": " K\u010d"}, "brl": {"symbol": "R$"}, "gbp": {"symbol": "\u00a3"}, "nzd": {"symbol": "$"}, "lvl": {"position": "end", "symbol": " Ls"}, "ltl": {"position": "end", "symbol": " Lt"}, "eur": {"position": "end", "symbol": "\u20ac"}, "sek": {"position": "end", "symbol": " kr."}, "dkk": {"position": "end", "symbol": " kr."}, "hkd": {"position": "start", "symbol": "$"}, "cad": {"symbol": "$"}}, "defaultCurrencyCode": "usd", "currencyForCountryCode": {"ch": "chf", "co": "cop", "cl": "clp", "ee": "eur", "ca": "cad", "it": "eur", "cz": "czk", "au": "aud", "at": "eur", "ie": "eur", "es": "eur", "nl": "eur", "pt": "eur", "no": "nok", "lt": "ltl", "lv": "lvl", "nz": "nzd", "is": "isk", "pl": "pln", "be": "eur", "fr": "eur", "dk": "dkk", "de": "eur", "hk": "hkd", "br": "brl", "fi": "eur", "us": "usd", "my": "myr", "mx": "mxn", "se": "sek", "gb": "gbp"}, "longDate": "%B %-d, %Y", "pluralizationRules": ["num == 1", "true"], "timeFormat": "%I:%M %p", "shortDate": "%m/%d/%y", "percent": "%", "number": {"decimal": ".", "delimiterPos": 3, "delimiter": ","}, "strings": {}};</script>
<script charset="UTF-8" type="text/javascript" >
/*! LAB.js (LABjs :: Loading And Blocking JavaScript)
v2.0.3 (c) Kyle Simpson
MIT License
*/
(function(o){var K=o.$LAB,y="UseLocalXHR",z="AlwaysPreserveOrder",u="AllowDuplicates",A="CacheBust",B="BasePath",C=/^[^?#]*\//.exec(location.href)[0],D=/^\w+\:\/\/\/?[^\/]+/.exec(C)[0],i=document.head||document.getElementsByTagName("head"),L=(o.opera&&Object.prototype.toString.call(o.opera)=="[object Opera]")||("MozAppearance"in document.documentElement.style),q=document.createElement("script"),E=typeof q.preload=="boolean",r=E||(q.readyState&&q.readyState=="uninitialized"),F=!r&&q.async===true,M=!r&&!F&&!L;function G(a){return Object.prototype.toString.call(a)=="[object Function]"}function H(a){return Object.prototype.toString.call(a)=="[object Array]"}function N(a,c){var b=/^\w+\:\/\//;if(/^\/\/\/?/.test(a)){a=location.protocol+a}else if(!b.test(a)&&a.charAt(0)!="/"){a=(c||"")+a}return b.test(a)?a:((a.charAt(0)=="/"?D:C)+a)}function s(a,c){for(var b in a){if(a.hasOwnProperty(b)){c[b]=a[b]}}return c}function O(a){var c=false;for(var b=0;b<a.scripts.length;b++){if(a.scripts[b].ready&&a.scripts[b].exec_trigger){c=true;a.scripts[b].exec_trigger();a.scripts[b].exec_trigger=null}}return c}function t(a,c,b,d){a.onload=a.onreadystatechange=function(){if((a.readyState&&a.readyState!="complete"&&a.readyState!="loaded")||c[b])return;a.onload=a.onreadystatechange=null;d()}}function I(a){a.ready=a.finished=true;for(var c=0;c<a.finished_listeners.length;c++){a.finished_listeners[c]()}a.ready_listeners=[];a.finished_listeners=[]}function P(d,f,e,g,h){setTimeout(function(){var a,c=f.real_src,b;if("item"in i){if(!i[0]){setTimeout(arguments.callee,25);return}i=i[0]}a=document.createElement("script");if(f.type)a.type=f.type;if(f.charset)a.charset=f.charset;if(h){if(r){e.elem=a;if(E){a.preload=true;a.onpreload=g}else{a.onreadystatechange=function(){if(a.readyState=="loaded")g()}}a.src=c}else if(h&&c.indexOf(D)==0&&d[y]){b=new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){b.onreadystatechange=function(){};e.text=b.responseText+"\n//@ sourceURL="+c;g()}};b.open("GET",c);b.send()}else{a.type="text/cache-script";t(a,e,"ready",function(){i.removeChild(a);g()});a.src=c;i.insertBefore(a,i.firstChild)}}else if(F){a.async=false;t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}else{t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}},0)}function J(){var l={},Q=r||M,n=[],p={},m;l[y]=true;l[z]=false;l[u]=false;l[A]=false;l[B]="";function R(a,c,b){var d;function f(){if(d!=null){d=null;I(b)}}if(p[c.src].finished)return;if(!a[u])p[c.src].finished=true;d=b.elem||document.createElement("script");if(c.type)d.type=c.type;if(c.charset)d.charset=c.charset;t(d,b,"finished",f);if(b.elem){b.elem=null}else if(b.text){d.onload=d.onreadystatechange=null;d.text=b.text}else{d.src=c.real_src}i.insertBefore(d,i.firstChild);if(b.text){f()}}function S(c,b,d,f){var e,g,h=function(){b.ready_cb(b,function(){R(c,b,e)})},j=function(){b.finished_cb(b,d)};b.src=N(b.src,c[B]);b.real_src=b.src+(c[A]?((/\?.*$/.test(b.src)?"&_":"?_")+~~(Math.random()*1E9)+"="):"");if(!p[b.src])p[b.src]={items:[],finished:false};g=p[b.src].items;if(c[u]||g.length==0){e=g[g.length]={ready:false,finished:false,ready_listeners:[h],finished_listeners:[j]};P(c,b,e,((f)?function(){e.ready=true;for(var a=0;a<e.ready_listeners.length;a++){e.ready_listeners[a]()}e.ready_listeners=[]}:function(){I(e)}),f)}else{e=g[0];if(e.finished){j()}else{e.finished_listeners.push(j)}}}function v(){var e,g=s(l,{}),h=[],j=0,w=false,k;function T(a,c){a.ready=true;a.exec_trigger=c;x()}function U(a,c){a.ready=a.finished=true;a.exec_trigger=null;for(var b=0;b<c.scripts.length;b++){if(!c.scripts[b].finished)return}c.finished=true;x()}function x(){while(j<h.length){if(G(h[j])){try{h[j++]()}catch(err){}continue}else if(!h[j].finished){if(O(h[j]))continue;break}j++}if(j==h.length){w=false;k=false}}function V(){if(!k||!k.scripts){h.push(k={scripts:[],finished:true})}}e={script:function(){for(var f=0;f<arguments.length;f++){(function(a,c){var b;if(!H(a)){c=[a]}for(var d=0;d<c.length;d++){V();a=c[d];if(G(a))a=a();if(!a)continue;if(H(a)){b=[].slice.call(a);b.unshift(d,1);[].splice.apply(c,b);d--;continue}if(typeof a=="string")a={src:a};a=s(a,{ready:false,ready_cb:T,finished:false,finished_cb:U});k.finished=false;k.scripts.push(a);S(g,a,k,(Q&&w));w=true;if(g[z])e.wait()}})(arguments[f],arguments[f])}return e},wait:function(){if(arguments.length>0){for(var a=0;a<arguments.length;a++){h.push(arguments[a])}k=h[h.length-1]}else k=false;x();return e}};return{script:e.script,wait:e.wait,setOptions:function(a){s(a,g);return e}}}m={setGlobalDefaults:function(a){s(a,l);return m},setOptions:function(){return v().setOptions.apply(null,arguments)},script:function(){return v().script.apply(null,arguments)},wait:function(){return v().wait.apply(null,arguments)},queueScript:function(){n[n.length]={type:"script",args:[].slice.call(arguments)};return m},queueWait:function(){n[n.length]={type:"wait",args:[].slice.call(arguments)};return m},runQueue:function(){var a=m,c=n.length,b=c,d;for(;--b>=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this);
"object"!==typeof JSON&&(JSON={});
(function(){function l(a){return 10>a?"0"+a:a}function q(a){r.lastIndex=0;return r.test(a)?'"'+a.replace(r,function(a){var c=t[a];return"string"===typeof c?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function n(a,k){var c,d,h,p,g=e,f,b=k[a];b&&("object"===typeof b&&"function"===typeof b.toJSON)&&(b=b.toJSON(a));"function"===typeof j&&(b=j.call(k,a,b));switch(typeof b){case "string":return q(b);case "number":return isFinite(b)?String(b):"null";case "boolean":case "null":return String(b);
case "object":if(!b)return"null";e+=m;f=[];if("[object Array]"===Object.prototype.toString.apply(b)){p=b.length;for(c=0;c<p;c+=1)f[c]=n(c,b)||"null";h=0===f.length?"[]":e?"[\n"+e+f.join(",\n"+e)+"\n"+g+"]":"["+f.join(",")+"]";e=g;return h}if(j&&"object"===typeof j){p=j.length;for(c=0;c<p;c+=1)"string"===typeof j[c]&&(d=j[c],(h=n(d,b))&&f.push(q(d)+(e?": ":":")+h))}else for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(h=n(d,b))&&f.push(q(d)+(e?": ":":")+h);h=0===f.length?"{}":e?"{\n"+e+f.join(",\n"+
e)+"\n"+g+"}":"{"+f.join(",")+"}";e=g;return h}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+l(this.getUTCMonth()+1)+"-"+l(this.getUTCDate())+"T"+l(this.getUTCHours())+":"+l(this.getUTCMinutes())+":"+l(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var s=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
r=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e,m,t={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},j;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,k,c){var d;m=e="";if("number"===typeof c)for(d=0;d<c;d+=1)m+=" ";else"string"===typeof c&&(m=c);if((j=k)&&"function"!==typeof k&&("object"!==typeof k||"number"!==typeof k.length))throw Error("JSON.stringify");return n("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,e){function c(a,d){var g,f,b=a[d];if(b&&"object"===typeof b)for(g in b)Object.prototype.hasOwnProperty.call(b,g)&&(f=c(b,g),void 0!==f?b[g]=f:delete b[g]);return e.call(a,d,b)}var d;a=String(a);s.lastIndex=0;s.test(a)&&(a=a.replace(s,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return d=eval("("+a+")"),"function"===typeof e?c({"":d},""):d;throw new SyntaxError("JSON.parse");})})();
!function(){"use strict";var root=this;var headEl=document.getElementsByTagName("head")[0];var targetBase="/";var resourceBase="";var resourceBases=[];var pathFactories;function time(name){try{if(typeof console!=="undefined"&&console.time){console.time(name)}Env.timers[name]=new Date}catch(e){}}function timeEnd(name){try{if(typeof console!=="undefined"&&console.timeEnd){console.timeEnd(name)}Env.timers[name]=new Date-Env.timers[name]}catch(e){}}function defaultPathFactory(file){if(file.ext){return file.file+"."+file.ext}return file.file}function getXhr(){if(root.XMLHttpRequest){return new XMLHttpRequest}else{return new ActiveXObject("MSXML2.XMLHTTP.3.0")}}function getCDNForResource(resource){var letter_sum=0;for(var i=0;i<resource.length;i++){letter_sum+=resource.charCodeAt(i)}return resourceBases[letter_sum%resourceBases.length]}function flattenList(list,absolute){if(!list){return[]}var len=list.length;var flattened=[];var basePath,fileList,numFiles,file,pathFactory;for(var i=0;i<len;i++){basePath=list[i][0];if(basePath.charAt(basePath.length-1)!=="/"){basePath=basePath+"/"}if(!absolute){if(resourceBases.length>0&&basePath.indexOf("//")===-1){basePath="//"+getCDNForResource(basePath)+resourceBase+basePath}else{basePath=resourceBase+basePath}}fileList=list[i][1];numFiles=fileList.length;for(var j=0;j<numFiles;j++){file=fileList[j];if(typeof file=="string"){flattened.push(basePath+file)}else{pathFactory=pathFactories[file.ext]||defaultPathFactory;flattened.push(basePath+pathFactory(file))}}}return flattened}var Target={load:function(target,callback){var xhr=getXhr();var targetUrl=targetBase+target+".json";var parsedTarget;var isPhantom=navigator.userAgent.indexOf("Phantom")!==-1;var useAsync=!isPhantom;xhr.open("GET",targetUrl,useAsync);xhr.onreadystatechange=function(){if(xhr.readyState===4){if(xhr.status===200){try{parsedTarget=JSON.parse(xhr.responseText)}catch(e){console.error("Could not parse target:",target);throw e}Target.flatten(parsedTarget,callback)}else{callback("Could not load "+target)}}};xhr.send(null)},flatten:function(target,callback){var targetDeps=target.targetDependencies;var targetsToMerge=[];function loaded(err,dependentTarget){if(err){return callback(err)}targetsToMerge.push(dependentTarget);if(targetsToMerge.length===targetDeps.length){targetsToMerge.push(target);callback(null,Target.merge(targetsToMerge))}}var len=targetDeps&&targetDeps.length;if(len){for(var i=0;i<len;i++){Target.load(targetDeps[i],loaded)}}else{callback(null,target)}},merge:function(targetList){var current;var merged={};var len=targetList.length;for(var i=0;i<len;i++){current=targetList[i];for(var field in current){if(current.hasOwnProperty(field)){merged[field]=Target.mergeField(merged[field],current[field])}}}return merged},mergeField:function(a,b){if(!a){return b}else if(a instanceof Array){return a.concat(b)}else if(typeof b=="string"){if(b){return b}return a}else{for(var field in b){if(b.hasOwnProperty(field)){a[field]=b[field]}}return a}}};function zergRushJavascript(app,target,options){$LAB.script(["/client/test/load_target?target="+app]).wait(function(){eval(target.main).call(root,options.mainOptions)})}function loadJavascript(target,options){var fileList=[];var toLoad=["dependencies","scripts","models"];if(options.dev){toLoad.splice(1,0,"devDependencies")}for(var i=0;i<toLoad.length;i++){fileList=uniquify(fileList.concat(flattenList(target[toLoad[i]])))}time("loading.js");var promise=$LAB.setOptions({AlwaysPreserveOrder:true}).script(fileList);if(target.preload){root.Env.__bundled_app=true;promise=promise.wait().script(flattenList(target.preload[R.theme]))}promise.wait(function(){timeEnd("loading.js");hideLoadingSpinner();try{eval(target.main).call(root,options.mainOptions)}catch(err){console.error(err.stack)}})}var injected_styles={};function loadStyles(target,options){var toLoad=["externalCss","css"];if(options.dev){toLoad.push("less")}var el,field,files,numFiles;setTimeout(function(){for(var i=0;i<toLoad.length;i++){field=toLoad[i];files=flattenList(target[field],field==="externalCss");numFiles=files.length;for(var j=0;j<numFiles;j++){if(injected_styles[files[j]]){continue}el=document.createElement("link");el.rel=field==="less"?"stylesheet/less":"stylesheet";el.type="text/css";el.href=files[j];injected_styles[files[j]]=true;headEl.appendChild(el)}}},0)}var loadingSpinner;function showLoadingSpinner(){if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){var color=R.theme==="vdio"?"#FFF":"#4b5c66";var opts={lines:12,length:4,width:2,radius:5,color:color,speed:1,trail:60,shadow:false,top:"auto",left:"auto"};loadingSpinner=document.createElement("div");loadingSpinner.id="loading";loadingSpinner.style.position="fixed";loadingSpinner.style.top="50%";loadingSpinner.style.left="50%";var spinner=new Spinner(opts);document.body.appendChild(loadingSpinner);spinner.spin(loadingSpinner)})}}function hideLoadingSpinner(){if(typeof loadingSpinner!="undefined"){document.body.removeChild(loadingSpinner)}}function uniquify(arr){var seen={},result=[];var i=-1,len=arr.length;while(++i<len){if(seen[arr[i]]){continue}seen[arr[i]]=true;result.push(arr[i])}return result}root.R=root.R||{};R.boot=function(app,options){showLoadingSpinner();options=options||{};root.Env=options.environment;Env.timers={};if(options.targetBase){targetBase=options.targetBase}if(typeof targetBase==="function"){targetBase=targetBase()}if(options.resourceBase){resourceBase=options.resourceBase}if(options.resourceBases){resourceBases=options.resourceBases}if(typeof resourceBase==="function"){resourceBase=resourceBase()}pathFactories=options.pathFactories||{};var timer="loading.target."+app;time(timer);Target.load(app,function(err,target){timeEnd(timer);if(err){throw new Error(err)}Env.target=target;if(app==="test"){zergRushJavascript(app,target,options)}else{loadJavascript(target,options)}if(!options.unstyled){loadStyles(target,options)}})};R.getCDNForResource=getCDNForResource;R._flattenList=flattenList}.call(this);
!function(){"use strict";var root=this;function Mux(rules,options){this.options=options||{};this.rules=rules;var rule;var len=rules.length;for(var i=0;i<len;i++){rule=rules[i];if(rule.rules){rule.rules=new Mux(rule.rules,options)}}}Mux.prototype.tests={pathname:function(location,regex){var path=location.pathname;if(location.pathname==="/"&&location.hash){path=location.hash.replace("#","/")}return regex.test(path)},host:function(location,regex){return regex.test(location.host)},auth:function(location,authRequired){if(authRequired===true&&Env.currentUser.key!=="s-1"){return true}else if(authRequired===false&&Env.currentUser.key==="s-1"){return true}return false},prod:function(location,prodRequired){return Env.serverInfo.prod===prodRequired},zuul:function(location,rule){return Env.currentUser.features[rule]},enabledIf:function(location,bool){return bool}};Mux.prototype._checkSecure=function(location,rule){if(!Env.serverInfo.prod){return rule}if(rule.secure===true&&location.protocol!=="https:"){location.href=location.href.replace(/^http/,"https")}else if(rule.secure===false&&location.protocol!="http:"){location.href=location.href.replace(/^https/,"http")}return rule};Mux.prototype._checkStealth=function(location,rule){if(Env.serverInfo.stealthMode&&rule.stealth){location.href="/unavailable/"}return rule};Mux.prototype.find=function(locationOrPath){var i,j,rule,test,testName,ruleValue,match;var testsLen=this.tests.length;var location=locationOrPath;if(typeof locationOrPath==="string"){location=_.clone(root.location);location.pathname=locationOrPath}for(i=0;i<this.rules.length;i++){rule=this.rules[i];var match=true;for(testName in this.tests){if(this.tests.hasOwnProperty(testName)){test=this.tests[testName];ruleValue=rule[testName];if(ruleValue!==void 0&&!test.call(this,location,ruleValue)){match=false;break}}}if(match){if(rule.rules){return this._checkSecure(location,rule.rules.find(location)||rule)}return this._checkStealth(location,this._checkSecure(location,rule))}}return null};R.TargetMux=Mux}.call(this);
!function(){"use strict";var LANDING_PAGE_AB_TEST_GROUP=0;var rules=[{pathname:/^\/admin\/?/,target:"admin",secure:true},{host:/[A-Za-z\.]+\.rdio\.com|^rdio\./,rules:[{pathname:/^\/demo\//,target:"demo",prod:false},{pathname:/^\/test\//,target:"test",prod:false},{pathname:/^\/api\/iframe\//,target:"api-iframe",unstyled:true},{pathname:/^\/secure_dialog\//,target:"secure",secure:true},{pathname:/^\/i\//,target:"rdio-embed"},{pathname:/^\/account\//,target:"rdio-marketing",secure:true},{pathname:/^\/m\//,target:"rdio-marketing"},{pathname:/^\/confirm-change-email\//,target:"rdio-marketing",secure:true},{pathname:/^\/facebook\/.+/,target:"rdio-marketing",zuul:"landingpage"},{pathname:/^\/stations\/(genre|people|artist|label)\/.+/,target:"rdio-marketing",zuul:"landingpage"},{pathname:/^\/artist\/.+/,target:"rdio-marketing",enabledIf:LANDING_PAGE_AB_TEST_GROUP==1,auth:false},{pathname:/^\/people\/.+/,target:"rdio-marketing",enabledIf:LANDING_PAGE_AB_TEST_GROUP==1,auth:false},{pathname:/^\/developers\//,target:"rdio-dev"},{pathname:/^\/chromecast\/app\/rdio.*/,target:"chromecast-rdio"},{pathname:/^\/.*/,target:"rdio",secure:false}]},{host:/[A-Za-z\.]+\.vdio\.com|^vdio\./,rules:[{pathname:/^\/demo\//,target:"demo",prod:false},{pathname:/^\/test\//,target:"test",prod:false},{pathname:/^\/secure_dialog\//,target:"secure",secure:true},{pathname:/^\/home\//,target:"vdio-marketing",secure:true},{pathname:/^\/signin\//,target:"vdio-marketing",secure:true},{pathname:/^\/legal\/.*/,target:"vdio-marketing",secure:true},{pathname:/^\/account\//,target:"vdio-marketing",secure:true},{pathname:/^\/unavailable\//,target:"vdio-marketing",secure:true},{pathname:/^\/mobile_unsupported\//,target:"vdio-marketing",secure:true},{pathname:/^\/chromecast\/app\/.+/,target:"chromecast-vdio"},{pathname:/^\/$/,target:"vdio-marketing",auth:false,secure:true},{pathname:/^\/$/,target:"vdio",auth:true,secure:false},{pathname:/^\/.+/,target:"vdio",secure:false,stealth:true}]}];R.muxer=new R.TargetMux(rules)}.call(this);
!function(root,factory){if(typeof exports=="object")module.exports=factory();else if(typeof define=="function"&&define.amd)define(factory);else root.Spinner=factory()}(this,function(){"use strict";var prefixes=["webkit","Moz","ms","O"],animations={},useCssAnimations;function createEl(tag,prop){var el=document.createElement(tag||"div"),n;for(n in prop)el[n]=prop[n];return el}function ins(parent){for(var i=1,n=arguments.length;i<n;i++)parent.appendChild(arguments[i]);return parent}var sheet=function(){var el=createEl("style",{type:"text/css"});ins(document.getElementsByTagName("head")[0],el);return el.sheet||el.styleSheet}();function addAnimation(alpha,trail,i,lines){var name=["opacity",trail,~~(alpha*100),i,lines].join("-"),start=.01+i/lines*100,z=Math.max(1-(1-alpha)/trail*(100-start),alpha),prefix=useCssAnimations.substring(0,useCssAnimations.indexOf("Animation")).toLowerCase(),pre=prefix&&"-"+prefix+"-"||"";if(!animations[name]){sheet.insertRule("@"+pre+"keyframes "+name+"{"+"0%{opacity:"+z+"}"+start+"%{opacity:"+alpha+"}"+(start+.01)+"%{opacity:1}"+(start+trail)%100+"%{opacity:"+alpha+"}"+"100%{opacity:"+z+"}"+"}",sheet.cssRules.length);animations[name]=1}return name}function vendor(el,prop){var s=el.style,pp,i;if(s[prop]!==undefined)return prop;prop=prop.charAt(0).toUpperCase()+prop.slice(1);for(i=0;i<prefixes.length;i++){pp=prefixes[i]+prop;if(s[pp]!==undefined)return pp}}function css(el,prop){for(var n in prop)el.style[vendor(el,n)||n]=prop[n];return el}function merge(obj){for(var i=1;i<arguments.length;i++){var def=arguments[i];for(var n in def)if(obj[n]===undefined)obj[n]=def[n]}return obj}function pos(el){var o={x:el.offsetLeft,y:el.offsetTop};while(el=el.offsetParent)o.x+=el.offsetLeft,o.y+=el.offsetTop;return o}var defaults={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:1/4,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto",position:"relative"};function Spinner(o){if(typeof this=="undefined")return new Spinner(o);this.opts=merge(o||{},Spinner.defaults,defaults)}Spinner.defaults={};merge(Spinner.prototype,{spin:function(target){this.stop();var self=this,o=self.opts,el=self.el=css(createEl(0,{className:o.className}),{position:o.position,width:0,zIndex:o.zIndex}),mid=o.radius+o.length+o.width,ep,tp;if(target){target.insertBefore(el,target.firstChild||null);tp=pos(target);ep=pos(el);css(el,{left:(o.left=="auto"?tp.x-ep.x+(target.offsetWidth>>1):parseInt(o.left,10)+mid)+"px",top:(o.top=="auto"?tp.y-ep.y+(target.offsetHeight>>1):parseInt(o.top,10)+mid)+"px"})}el.setAttribute("role","progressbar");self.lines(el,self.opts);if(!useCssAnimations){var i=0,start=(o.lines-1)*(1-o.direction)/2,alpha,fps=o.fps,f=fps/o.speed,ostep=(1-o.opacity)/(f*o.trail/100),astep=f/o.lines;!function anim(){i++;for(var j=0;j<o.lines;j++){alpha=Math.max(1-(i+(o.lines-j)*astep)%f*ostep,o.opacity);self.opacity(el,j*o.direction+start,alpha,o)}self.timeout=self.el&&setTimeout(anim,~~(1e3/fps))}()}return self},stop:function(){var el=this.el;if(el){clearTimeout(this.timeout);if(el.parentNode)el.parentNode.removeChild(el);this.el=undefined}return this},lines:function(el,o){var i=0,start=(o.lines-1)*(1-o.direction)/2,seg;function fill(color,shadow){return css(createEl(),{position:"absolute",width:o.length+o.width+"px",height:o.width+"px",background:color,boxShadow:shadow,transformOrigin:"left",transform:"rotate("+~~(360/o.lines*i+o.rotate)+"deg) translate("+o.radius+"px"+",0)",borderRadius:(o.corners*o.width>>1)+"px"})}for(;i<o.lines;i++){seg=css(createEl(),{position:"absolute",top:1+~(o.width/2)+"px",transform:o.hwaccel?"translate3d(0,0,0)":"",opacity:o.opacity,animation:useCssAnimations&&addAnimation(o.opacity,o.trail,start+i*o.direction,o.lines)+" "+1/o.speed+"s linear infinite"});if(o.shadow)ins(seg,css(fill("#000","0 0 4px "+"#000"),{top:2+"px"}));ins(el,ins(seg,fill(o.color,"0 0 1px rgba(0,0,0,.1)")))}return el},opacity:function(el,i,val){if(i<el.childNodes.length)el.childNodes[i].style.opacity=val}});function initVML(){function vml(tag,attr){return createEl("<"+tag+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',attr)}sheet.addRule(".spin-vml","behavior:url(#default#VML)");Spinner.prototype.lines=function(el,o){var r=o.length+o.width,s=2*r;function grp(){return css(vml("group",{coordsize:s+" "+s,coordorigin:-r+" "+-r}),{width:s,height:s})}var margin=-(o.width+o.length)*2+"px",g=css(grp(),{position:"absolute",top:margin,left:margin}),i;function seg(i,dx,filter){ins(g,ins(css(grp(),{rotation:360/o.lines*i+"deg",left:~~dx}),ins(css(vml("roundrect",{arcsize:o.corners}),{width:r,height:o.width,left:o.radius,top:-o.width>>1,filter:filter}),vml("fill",{color:o.color,opacity:o.opacity}),vml("stroke",{opacity:0}))))}if(o.shadow)for(i=1;i<=o.lines;i++)seg(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=o.lines;i++)seg(i);return ins(el,g)};Spinner.prototype.opacity=function(el,i,val,o){var c=el.firstChild;o=o.shadow&&o.lines||0;if(c&&i+o<c.childNodes.length){c=c.childNodes[i+o];c=c&&c.firstChild;c=c&&c.firstChild;if(c)c.opacity=val}}}var probe=css(createEl("group"),{behavior:"url(#default#VML)"});if(!vendor(probe,"transform")&&probe.adj)initVML();else useCssAnimations=vendor(probe,"animation");return Spinner});
R.supportsDataUris = true;
R.theme = /vdio/.test(window.location.hostname) ? 'vdio' : 'rdio';
(function() {
var data = new Image();
data.onload = data.onerror = function() {
if (this.width != 1 || this.height != 1) {
R.supportsDataUris = false;
}
}
data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
})();
Env = {
VERSION: {"version": "3f91b0beb072658bda9d063d1a29230e97991142"},
currentUser: {"last_name": "", "features": {"echonest_auto": true, "recommendations_page": true, "rdio_onboarding": true, "snorkel_vdio_qos": true, "echonest_song": true, "echonest_reporting": true, "echonest_genre": true, "snorkel_sample_all": true, "vdio_user_specific_hr": true, "vdio_external": true, "newsignup": true, "newregister": true, "vdio_paypal": true, "student_discount": true, "newOnboarding": true, "send_text": true, "shard_cdn_domains": true, "echonest_profile": true, "rdio2": true, "paypal": true, "preload_deps": true, "vdio_sub_notify": true, "notifications": true, "artist_program_social_media": true, "vdio": true, "echonest_radio": true, "rdio_footer_blur": true, "stations": true, "vdio_sub_launch": true, "vdio_pub_launch": true, "use_edgecast": true, "protected_accounts": true, "landingpage": true, "vdio_ca_launch": true}, "freeLimited": null, "new_user": true, "free_trial": {}, "has_lastfm": false, "tender_multipass": null, "hideTrialBar": false, "authorizationKey": "eyJyYW5kIjogMzgxNDgyNzk3MCwgImtleSI6ICJzLTEiLCAidGltZSI6IDEzODMxMjAwNzJ9.xdoariqu5bri5ebVO1zn4BhUn-g", "rdio_wallet_available_amount": 0, "key": "s-1", "has_facebook": false, "vdioAcceptedTOS": null, "id": -1, "rdioAcceptedTOS": null, "subscription": null, "vdio_wallet_available_amount": 0, "first_name": "", "subscription_type": 2, "isAnonymous": true, "deviceCount": 0, "has_twitter": false, "vanity_name": "", "invite_count": 0, "has_payment_profile": false, "comp": null, "type": "s"},
serverInfo: {"inAppPurchaseCurrency": null, "various_artist_key": "r62", "countryCode": "US", "availableSubscriptionTypes": [{"subscriptionId": 1, "type": "web"}, {"subscriptionId": 2, "type": "unlimited"}, {"subscriptionId": 3, "type": "family"}], "locale": "en", "assistlyEmailUrl": "http://help.rdio.com/customer/authentication/multipass/callback?multipass=None", "iosAppId": 335060889, "marketingTarget": " target=\"_blank\"", "helpBaseUrl": "http://help.rdio.com/customer/portal/articles/", "favicon": "/media/favicon_rdio_2012_11_15.ico", "isAmazonBillingPermitted": true, "vdioPromoNotificationCutoffDate": "2013-08-15T00:00:00", "twitterName": "@Rdio", "vdioBaseUrl": "http://www.vdio.com", "flashMediaUrl": "/media/", "stealthMode": false, "vppaCountries": ["US"], "media_address": "/media/", "studentDiscountValidRegion": true, "is_address": "http://rdio-a.akamaihd.net/_is/", "rdioChromecastAppId": "6749eb60-da18-49a3-830e-77a3966c6f97_1", "vdioLaunched": true, "availableCreditCards": ["visa", "mastercard", "americanexpress", "discover"], "singlePage": true, "stationTypes": ["ap", "ar", "c", "e", "gr", "h", "lr", "pr", "rr", "sr", "tp", "tr"], "androidAppId": "com.rdio.android.ui", "prod": true, "awsFpsLive": true, "product_name": "Rdio", "pixelTracking": {"registered": {"pixelScript": {"mediaIQ": "//ib.adnxs.com/px?id=82561&seg=789242&t=1", "accuen": "//d.p-td.com/r/dd/id/L21rdC80L2NpZC8yNzUxOTg3NS90LzAvY2F0LzI3NTE5ODg2", "mediaSix": "//media6degrees.com/orbserv/hbjs?pixId=15529&pcv=53"}, "floodlightTag": {"dart": "//4208419.fls.doubleclick.net/activityi;src=4208419;type=rdioy780;cat=regis110;ord="}, "pixelTracking": {"adwords": "//www.googleadservices.com/pagead/conversion/1009559828/?value=0&amp;label=GnqjCMyh9QIQlNKy4QM&amp;guid=ON&amp;script=0", "bing": "//flex.atdmt.com/mstag/tag/015b6fe6-942d-4cc2-8c00-04ea3e5e5e0c/analytics.html?dedup=1&domainId=1602430&type=1&actionid=52597", "facebook": "//www.facebook.com/offsite_event.php?id=6007316259336&amp;value=0&amp;currency=USD"}}, "studentDiscount": {"verified": {"mobile": "https://ad.doubleclick.net/activity;src=4208419;type=stude408;cat=stude517;ord="}, "landing": {"mobile": "https://ad.doubleclick.net/activity;src=4208419;type=stude408;cat=landi065;ord=", "desktop": "https://4208419.fls.doubleclick.net/activityi;src=4208419;type=stude408;cat=landi928;ord="}, "emailSignup": {"mobile": "https://ad.doubleclick.net/activity;src=4208419;type=stude408;cat=email193;ord=", "desktop": "https://4208419.fls.doubleclick.net/activityi;src=4208419;type=stude408;cat=email120;ord="}, "subscriptionConfirmation": {"mobile": "https://ad.doubleclick.net/activity;src=4208419;type=stude408;cat=subsc960;ord=", "desktop": "https://4208419.fls.doubleclick.net/activityi;src=4208419;type=stude408;cat=subsc499;ord="}, "fbSignup": {"mobile": "https://ad.doubleclick.net/activity;src=4208419;type=stude408;cat=faceb475;ord=", "desktop": "https://4208419.fls.doubleclick.net/activityi;src=4208419;type=stude408;cat=faceb662;ord="}, "purchaseSummary": {"desktop": "https://4208419.fls.doubleclick.net/activityi;src=4208419;type=stude408;cat=purch532;ord="}, "accuen": {"conversion": "https://d.p-td.com/r/dd/id/L21rdC80L2NpZC8yNzUxOTg3NS90LzIvY2F0LzI4NTA0ODYy", "exclusion": "https://d.p-td.com/r/dd/id/L21rdC80L2NpZC8yNzUxOTg3NS90LzIvY2F0LzI4NTA0ODYz", "retargeting": "https://d.p-td.com/r/dd/id/L21rdC80L2NpZC8yNzUxOTg3NS90LzIvY2F0LzI4NTA0ODY0"}}, "signedIn": {"pixelScript": {"mediaIQ": "//ib.adnxs.com/px?id=85439&seg=813277&t=1", "accuen": "//d.p-td.com/r/dd/id/L21rdC80L2NpZC8yNzUxOTg3NS90LzAvY2F0LzI3ODYwNDA5"}, "floodlightTag": {"dart": "//4208419.fls.doubleclick.net/activityi;src=4208419;type=rdioy780;cat=signe068;ord="}}, "subscribed": {"floodlightTag": {"dart": "//4208419.fls.doubleclick.net/activityi;src=4208419;type=rdioy780;cat=conve377;ord="}, "pixelTracking": {"studentDiscount": "//www.facebook.com/offsite_event.php?id=6007316245936&amp;value=0&amp;currency=USD", "facebook": "//www.facebook.com/offsite_event.php?id=6007316245936&amp;value=0&amp;currency=USD"}}}, "giftcardValidRegion": true, "silence_mp3_url": "cdn3.rd.io/playlist/silence.mp3", "urls": {"resolveSubscription": "/settings/resolve_subscription/", "subscriptions": "/settings/subscription/", "twitter": "https://twitter.com/rdio", "oauthGmailStart": "/invite/start_google/", "oauthLiveStart": "/invite/start_windowslive/", "tritonUUID": null, "oauthTwitter": "/connect/twitter/", "blog": "http://blog.rdio.com/us", "secureDialog": "/secure_dialog/", "oauthLastfm": "/connect/lastfm/", "oauthYahooStart": "/invite/start_yahoo/", "oauthArtistTwitter": "/connect/artist_twitter/"}, "vdioShareTypes": ["mr", "vr", "vsr", "ver", "ct", "cs", "bn", "pz"], "isHappyHourPermitted": false, "resourceVersions": {"desktop_app.css": "3e96254d94e2404fc4ef1c511d905bb1", "api.swf": "395ad9d5ed568498bcdbe3bea6f884e6", "sec.css": "7bfa8605b25e87cfedd93602594cadba", "player.swf": "a27305001f969a86eba8828fdd0ce36f", "embed_loader.swf": "40dfc41404f1d8ead08866886e43cb3b", "ie7fixes.js": "d89ffa52c5896a953d7d23dadbe1f4fb", "embed.swf": "530394e6b27ef24dcea28200048a1706", "oauth_c.css": "6c3798023b96bc39a56a6743cfd4a9c5", "rdio.datauri.css": "bc9949b93dbb62adeaccbdcf9143771f", "rdio.css": "bb441a022d328ab8ee3774afad45ab05", "desktop_app_rdio2.css": "688bb520188fe1b0568656e90650dd7d", "ie8.css": "3f8bf9cd61f3b2d015ad70cc4c04f946", "desktop_app.js": "7d6d6a89ce9b7f60cc7a135fc6bdb892", "sec.js": "4ef515ebf56433d34bb6159c4667ee71", "ie7.css": "86afc1833c0b4e7f99331dbfefdaa6b3", "admin.js": "d41d8cd98f00b204e9800998ecf8427e", "admin.css": "88bbbd125759b9ed20c69d86ae334bde", "rdio.js": "717e21355d96c11088115cd11d5914f9", "fallback.swf": "33720facdf91ca31726f816da78abb84", "mob.css": "763eb31beb39a12d2ed110b2b52ce2d8", "oauth_c.js": "83da8f1c4bdeb2d4757ec59514b1eeff", "circleview.swf": "bee1b6f643a45616eec9d570ff56317c", "mob.js": "7eb8c3319c70699b8d61756d223c2e76", "vdioplayer.swf": "9d2bb4b02621b9582604af1cfc9e06e5"}, "macAppIsLive": true, "freeRadioPermitted": true, "various_artist_id": 62, "billingHelpUrl": "http://help.rdio.com/customer/portal/topics/27655-billing-and-privacy/articles/", "daysInTrial": 14, "prices": {"web": 4.99, "numDiscountedSubaccounts": 4, "itunesUnlimited": 14.99, "family": 17.99, "familyPlusOne": 22.99, "studentDiscountUnlimited": 4.99, "unlimited": 9.99, "familySubaccount": 5.0}, "free_limited": true, "isFamilyPlanPermitted": true, "marketingRegionTiers": [{"id": 1, "name": "North America"}, {"id": 2, "name": "Europe"}, {"id": 3, "name": "Australia"}, {"id": 4, "name": "Brazil"}, {"id": 5, "name": "Latin America"}, {"id": 6, "name": "Asia"}, {"id": 7, "name": "Everywhere Else"}], "adSupportedCountry": false, "ignored_urls": ["/artist/Various_Artists/", "/artist/Various_Artists/bio/", "/artist/Various_Artists/albums/"], "countryName": "United States", "availableCreditCardsByCountry": {"BE": ["visa", "mastercard", "americanexpress"], "FR": ["visa", "mastercard", "americanexpress"], "DK": ["visa", "mastercard", "americanexpress"], "DE": ["visa", "mastercard", "americanexpress"], "HK": ["visa", "mastercard", "americanexpress"], "BR": ["visa", "mastercard", "americanexpress"], "FI": ["visa", "mastercard", "americanexpress"], "NL": ["visa", "mastercard", "americanexpress"], "PT": ["visa", "mastercard", "americanexpress"], "NO": ["visa", "mastercard", "americanexpress"], "NZ": ["visa", "mastercard", "americanexpress"], "LV": ["visa", "mastercard", "americanexpress"], "LT": ["visa", "mastercard", "americanexpress"], "IS": ["visa", "mastercard", "americanexpress"], "PL": ["visa", "mastercard", "americanexpress"], "CH": ["visa", "mastercard", "americanexpress"], "CO": ["visa", "mastercard"], "CL": ["visa", "mastercard"], "EE": ["visa", "mastercard", "americanexpress"], "CA": ["visa", "mastercard", "americanexpress", "discover"], "IT": ["visa", "mastercard", "americanexpress"], "CZ": ["visa", "mastercard", "americanexpress"], "AU": ["visa", "mastercard", "americanexpress"], "GB": ["visa", "mastercard", "americanexpress"], "IE": ["visa", "mastercard", "americanexpress"], "ES": ["visa", "mastercard", "americanexpress"], "US": ["visa", "mastercard", "americanexpress", "discover"], "MY": ["visa", "mastercard", "americanexpress"], "MX": ["visa", "mastercard"], "SE": ["visa", "mastercard", "americanexpress"], "AT": ["visa", "mastercard", "americanexpress"]}, "oiPaymentsLive": true, "fbid": "100322856680770", "rdioLaunched": true, "isPaypalBillingPermitted": true, "omnitureData": {"userCampaign": null, "omnitureAccount": "rdiocomprod"}, "maintenanceDates": {"start": "2013-03-30T06:00:00", "end": "2013-03-30T08:00:00"}, "isOi": false, "allow_offline": true, "appDownloadUrls": {"ios_device_app_store": "itms://itunes.apple.com/us/app/rdio/id335060889", "windows": "/media/static/desktop/win/Rdio.application", "ios": "http://itunes.apple.com/us/app/rdio/id335060889", "windows_phone": "https://www.windowsphone.com/en-us/store/app/rdio/aab4252d-a0e0-df11-a844-00237de2db9e", "android_device_app_store": "market://search?q=pname:com.rdio.android.ui", "mac": "/media/static/desktop/mac/Rdio.dmg", "vdio_ipad": "https://itunes.apple.com/us/app/vdio/id603691597?ls=1&mt=8", "android": "https://play.google.com/store/apps/details?id=com.rdio.android.ui&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5yZGlvLmFuZHJvaWQudWkiXQ.."}, "dartTagUserId": 3528214722510, "fbLocale": "en_US", "songCount": 20, "debug": false, "helpUrl": "http://help.rdio.com/customer/portal/articles/", "vdioChromecastAppId": "5f0e8d72-75df-4602-9601-835391f25ab1_1"}
};
(function() {
var rule = R.muxer.find(location);
if (!rule || !rule.target) {
document.write("Not found");
if (location.pathname !== "/") {
location.pathname = "/";
}
return;
}
Env.loadedTarget = rule.target;
R.boot(Env.loadedTarget, {
environment: Env,
pathFactories: {
css: function(file) {
var fileName = file.file + '.' + R.theme;
if (R.supportsDataUris && file.themeVersions[R.theme].datauriVersion) {
fileName = fileName + '.datauri.' + file.themeVersions[R.theme].datauriVersion;
} else if (file.themeVersions[R.theme].version) {
fileName = fileName + '.' + file.themeVersions[R.theme].version;
}
return fileName + '.css'
}
},
targetBase: '/media/client/targets/3f91b0beb072658bda9d063d1a29230e97991142/',
resourceBase: '/media/',
resourceBases: ['rdio-a.akamaihd.net', 'rdio0-a.akamaihd.net', 'rdio1-a.akamaihd.net', 'rdio2-a.akamaihd.net'],
mainOptions: {},
dev: false,
unstyled: rule.unstyled
});
})();
</script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="application-name" content="Rdio" />
<meta name="application-url" content="http://www.rdio.com/" />
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, width=device-width" />
<link rel="icon shortcut" type="image/x-icon" href="http://www.rdio.com/favicon.ico" />
</head>
<body style="margin: 0">
<noscript><iframe src="/client/noscript/" style="position: absolute; height: 100%; width: 100%; border: 0;"></iframe></noscript>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment