
$.loc=function(s){
var I18N={
'Now Playing':"Now Playing",
'Album':'Album',
'Artist':'Artist',
'Track':'Track',
'Genre':'Genre',
'Country':'Country',
'Website':'Website',
'Email':'Email',
'Share':'Share',
'Share Station':'Share Station',
'Look at this music station from':'Hi ,\\n\\n have a look at this music station from',
'Shared from':'Shared from',
'Play length':'Play length',
'On now':'On Now',
'Coming next':'Coming Next',
'Tune in Now!':'Tune in Now!',
'Broadcast Radio':'Broadcast Radio',
'Internet Radio':'Internet Radio',
'Music Videos':'Music Videos',
'Artist related':'Artist Related',
'Artist Biography':'Artist Biography',
'Biography':'Biography',
'Similar Artists':'Similar Artists',
'Top 5 Radio stations':'Top 5 Radio Stations',
'Similar Artists Radio':'Similar Artists Radio',
'More BBC Radio stations':'More BBC Radio stations',
'close':'Close',
'open':'Open',
'Free':'Free',
'Options':'Options',
'Login':'Login',
'Logout':'Logout',
'Create a new account':'Create a new account',
'Advertisement':'Advertisement',
'Sorry, no results':'Sorry, no results',
'We\'re sorry, but this service is temporarily unavailable':'We\'re sorry, but this service is temporarily unavailable',
'e_nickname_reserved':'This Nickname is already taken.',
'e_enter_name':'Please enter a Screenname',
'e_nickname_too_short':'The Screen name must have at least 2 characters.',
'e_nickname_too_long':'Please use a shorter screen name (max 20 chars).',
'e_only_az':'Please use only the following characters for your nickname: A-Z, a-z, 0-9,-_ ',
'e_server_problem':'Our apologies, but the server reported an error!',
'comments':'Comments',
'onecomment':'1 Comment',
'Problems downloading? Click here for a RealPlayer update':'Problems downloading? Click here for a RealPlayer update',
'Burn your videos to DVD with RealPlayer Plus':'Burn your videos to DVD with RealPlayer Plus',
'Find more videos to download':'Find more videos to download',
'Players':'players'
};
return I18N[s]||s;
};
(function($){
$.fn.badge=function badge(o,c){
var el=$(this),
id=el.attr('id');
if(!id){
id='badge_'+($.fn.badge._nextid++);
el.attr('id',id);
}
var ns=($.fn.badge._stack[id]=$.fn.badge._stack[id]||{});
if(typeof ns[o]==='function'){
var r=ns[o](c);
return typeof(r)!=='undefined'?r:el;
}
var elbr=el.find('.badgeresize');
ns.panel=function(){return el.find('#badgepanel');};
ns.toggler=$(ns.panel()).find('.ui-badge-toggle-outer');
ns.minHeight=makeGetter(o.minHeight);
ns.maxHeight=makeGetter(o.maxHeight);
ns.state=function(){
var actH=elbr.height(),
minH=ns.minHeight(),
maxH=ns.maxHeight(),
e=(actH>=maxH),
c=(actH<=minH);
return(e&&'expanded')||(c&&'collapsed')||'halfopen';
};
var wasExpanded=false;
function checkExpanded(){
var isExpanded=(elbr.height()>=ns.maxHeight());
var isCollapsed=(elbr.height()<=ns.minHeight());
el[isExpanded?'addClass':'removeClass']('ui-badge-expanded');
el[isCollapsed?'addClass':'removeClass']('ui-badge-collapsed');
el[(!isCollapsed&&!isExpanded)?'addClass':'removeClass']('ui-badge-halfopen');
$(ns.toggler)[isCollapsed?'addClass':'removeClass']('up');
if(isExpanded!==wasExpanded){
wasExpanded=isExpanded;
el.trigger('change',[{expanded:isExpanded}]);
}
}
function updateResizable(){
var ro={
handles:'xxx',
minHeight:ns.minHeight(),
maxHeight:ns.maxHeight(),
start:o.start,
theme:'reloadTheme',
stop:function(){
$(this).css({width:null});
checkExpanded();
if(o.stop){o.stop.call(this);}
}
};
elbr.resizable('destroy').resizable(ro);
}
function anim(height,top,callback){
if(elbr.height()===height){
if(typeof callback==='function'){callback(elbr);}
return;
}
if(o.start){o.start.call(elbr);}
elbr.stop().animate(
{height:height,top:top},
900,"swing",function(){
checkExpanded();
if($.isFunction(callback)){callback(elbr);}
if(o.stop){o.stop.call(elbr);}
}
);
if($.browser.webkit&&ns.state()==='collapsed'){
$(window).resize();
}
}
ns.addTabs=function(tabs){
el.panelTabs=tabs;
};
var elToggle=el.find('.ui-badge-toggle');
ns.expand=ns.show=function(extcallback){
var canOpen=true;
if(el.panelTabs){
$.fn.badge._activetab=el.panelTabs.tabbedPanels('selected');
if(!$.fn.badge._activetab){
canOpen=false;
}
}
if(canOpen){
if(elToggle.length){
elToggle.html($.loc('close'));
}
anim(ns.maxHeight(),ns.minHeight()-ns.maxHeight(),extcallback);
}
};
ns.collapse=ns.hide=function(extcallback){
elbr.find('.ui-panel-content').hide();
var callback=function(){
$(elToggle).html($.loc('open'));
if($.isFunction(extcallback)){extcallback();}
};
anim(ns.minHeight(),1,callback);
};
ns.toggle=function(extcallback){
var callback=function(){
if(el.panelTabs){
el.panelTabs.tabbedPanels('show');
}
};
ns[(elbr.height()<ns.maxHeight()?'expand':'collapse')](callback);
};
ns.toggleByTab=function(callback){
var tempActive=$.fn.badge._activetab,
command='hide';
$.fn.badge._activetab=el.panelTabs.tabbedPanels('selected');
if(ns.state()==='collapsed'||($.fn.badge._activetab!==tempActive)||elbr.height()<ns.maxHeight()){
command='expand';
}
ns[command](callback);
};
ns.redraw=function(){
if(wasExpanded||elbr.height()>=ns.maxHeight()){
elbr.stop().css({height:ns.maxHeight(),top:ns.minHeight()-ns.maxHeight()});
}
checkExpanded();
var setWidthTo=($(window).outerHeight>$(window).innerHeight)?$(window).width():$(window).width();
elbr.css({width:setWidthTo});
};
$(window).resize(function(){ns.redraw();});
ns.repos=function(params){
var el=params.el;
var ms=params.ms||500;
el.stop().animate({bottom:-document.body.scrollTop},ms,"linear",function(){});
};
ns.redraw();
return el;
};
$.fn.badge._activetab=null;
$.fn.badge._stack={};
$.fn.badge._nextid=0;
function makeGetter(fn){
return(typeof fn==='function')?fn:function(){
return fn;
};
}
}(jQuery));
(function($){
$.fn.bigTarget=function(options){
var opts=$.extend({},$.fn.bigTarget.defaults,options);
return this.each(function(){
var $a=$(this);
var href=$a.attr('href');
var title=$a.attr('title');
var o=$.meta?$.extend({},opts,$a.data()):opts;
$a.parents(o.clickZone)
.hover(function(){
$h=$(this);
$h.addClass(o.hoverClass);
if(typeof o.title!=='undefined'&&o.title===true&&title!==''){
$h.attr('title',title);
}
},function(){
$h.removeClass(o.hoverClass);
if(typeof o.title!=='undefined'&&o.title===true&&title!==''){
$h.removeAttr('title');
}
})
.click(function(){
if(getSelectedText()==="")
{
if(href==='#'){
$a.click();
}
else if($a.is('[rel*=external]')){
window.open(href);
return false;
}
else{
window.location=href;
}
}
});
});
};
function getSelectedText(){
if(window.getSelection){
return window.getSelection().toString();
}
else if(document.getSelection){
return document.getSelection();
}
else if(document.selection){
return document.selection.createRange().text;
}
}
$.fn.bigTarget.defaults={
hoverClass:'hover',
clickZone:'li:eq(0)',
title:true
};
}(jQuery));
(function($){
$.fn.expander=function(o){
var ex=$(this),id=o.id||ex.attr('id')||'expander_'+($.fn.expander._nextid++);
if(!ex.attr('id')){
ex.attr('id',id);
}
var ns=($.fn.expander._stack[id]=$.fn.expander._stack[id]||{});
if(typeof ns[o]==='function'){
var r=ns[o].apply(ex,Array.prototype.slice.call(arguments,1));
return(typeof(r)!=='undefined')?r:ex;
}
$.fn.expander._status[id]='collapsed';
var inner=o.id;
var callback=o.callback;
var msec=parseInt(o.msec,10)||1000;
var _inner=$('#'+inner+'_slider_frame');
function anim(o,callback){
$(_inner).stop().animate({height:o.toHeight},msec,null,function(){toggle_expand(inner);});
if($.isFunction(callback)){
callback(ns);
}
}
function setSession(id,act){
var sessionObj={'expander':{}};
sessionObj.expander[id]=act;
app.session.set(sessionObj);
}
ns.expand=ns.show=function(callback){
var _innerHeight=$('#'+inner+'_list').height();
$.fn.expander._status[id]='expanded';
setSession(id,'show');
anim({toHeight:_innerHeight+'px'},callback);
};
ns.collapse=ns.hide=function(callback){
$.fn.expander._status[id]='collapsed';
setSession(id,'hide');
anim({toHeight:0},callback);
};
ns.getStatus=function(){
return $.fn.expander._status[id];
};
ns.toggle=function(){
ns[($.fn.expander._status[id]==='collapsed')?'show':'hide'](callback);
};
ex.click(function(){ns.toggle();});
function toggle_expand(which){
$('#'+which+'_expander').toggle();
$('#'+which+'_collapser').toggle();
}
if(callback){
callback();
}
return this;
};
$.fn.expander._status={};
$.fn.expander._nextid=0;
$.fn.expander._stack={};
}(jQuery));
(function($){
$.fn.pager=function(options){
var opts=$.extend({},$.fn.pager.defaults,options);
return this.each(function(k,v){
if(options.uifeature==='text'){
$('.m_pager_text_cur_page',$(v).parent()).text(options.pagenumber);
}
$(v).empty().append(renderpager(parseInt(options.pagenumber,10),parseInt(options.pagecount,10),parseInt(options.shownTicks,10),options.buttonClickCallback,options.uifeature));
});
};
function renderpager(pagenumber,pagecount,shownTicks,buttonClickCallback,uifeature){
var $pager=$('<ul class="pages"></ul>');
var page;
$pager.append(renderButton('prev',pagenumber,pagecount,buttonClickCallback,shownTicks));
if(pagecount>shownTicks&&uifeature==='full'){
$pager.append(renderButton('prevSet',pagenumber,pagecount,buttonClickCallback,shownTicks));
}
var startPoint=1;
var endPoint=shownTicks;
if(pagenumber>Math.ceil(shownTicks/2)){
startPoint=pagenumber-Math.floor(shownTicks/2);
endPoint=pagenumber+Math.floor(shownTicks/2);
}
if(endPoint>pagecount){
startPoint=pagecount-(shownTicks-1);
endPoint=pagecount;
}
if(startPoint<1){
startPoint=1;
}
var onButtonClick=function(){buttonClickCallback(this.firstChild.data);};
if(uifeature==='full'){
for(page=startPoint;page<=endPoint;page++){
var currentButton=$('<li class="page-number">'+(page)+'</li>');
if(page===pagenumber){
currentButton.addClass('pgCurrent');
}
else{
currentButton.click(onButtonClick);
}
currentButton.appendTo($pager);
}
}
if(pagecount>shownTicks&&uifeature==='full'){
$pager.append(renderButton('nextSet',pagenumber,pagecount,buttonClickCallback,shownTicks));
}
$pager.append(renderButton('next',pagenumber,pagecount,buttonClickCallback,shownTicks));
return $pager;
}
function renderButton(buttonLabel,pagenumber,pagecount,buttonClickCallback,boxCount){
var destPage=1;
switch(buttonLabel){
case"first":
destPage=1;
break;
case"prev":
destPage=pagenumber-1;
if(!destPage){
destPage=pagecount;
}
break;
case"next":
destPage=pagenumber+1;
if(destPage>pagecount){
destPage=1;
}
break;
case"prevSet":
destPage=pagenumber-boxCount;
break;
case"nextSet":
destPage=pagenumber+boxCount;
break;
case"last":
destPage=pagecount;
break;
}
if(destPage>pagecount){
if(destPage<pagecount+boxCount){
destPage=pagecount;
}
else{
destPage=1;
}
}
if(destPage<1){
destPage=pagecount;
}
var label='<div class="'+buttonLabel+'"></div>';
if(buttonLabel.match(/^(next|prev)$/)){
label={next:'&#8250;',prev:'&#8249;'}[buttonLabel];
}
if(buttonLabel==='nextSet'||buttonLabel==='prevSet'){
label='...';
buttonLabel=buttonLabel+' page-number';
}
var $Button=$('<li class="'+buttonLabel+'">'+label+'</li>');
$Button.click(function(){buttonClickCallback(destPage);});
return $Button;
}
$.fn.pager.defaults={
pagenumber:1,
pagecount:1
};
}(jQuery));
(function($){
$.fn.alphasort=function(o){
var html='<span item="sort" search="search_type:firstc,search_string:0" id="sorted-character-item-0" class="sorted-character-item">#</span>';
$.each('a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' '),function(k,v){
html+='<span item="sort" search="search_type:firstc,search_string:'+v+'" id="sorted-character-item-'+v+'" class="sorted-character-item">'+v.toUpperCase()+'</span>';
});
$(this.prepend(html));
};
$.fn.sort=function(o){
var target=o.target;
var context=$(this).attr('context');
var index=parseInt($(this).attr('index'),10);
var data={},sorter=[],sorted=[];
$(this).click(function(o){
$(this).toggleClass('down').toggleClass('up');
if($(target).children().length<=0){return;}
var dir=$(this).hasClass('down')?'down':'up';
var listitems=$(target).children().get();
listitems.sort(function(a,b){
var compA=$(a).children().eq(index).text().toUpperCase();
var compB=$(b).children().eq(index).text().toUpperCase();
if(dir==='down'){
return(compA<compB)?-1:(compA>compB)?1:0;
}
else{
return(compB<compA)?-1:(compB>compA)?1:0;
}
});
var ul=$(target).clone().empty();
$.each(listitems,function(k,v){
ul.append(v);
});
$(ul).find('li:odd').removeClass('pair');
$(ul).find('li:even').addClass('pair');
$(target).replaceWith(ul);
return this;
});
};
}(jQuery));
(function($){
$.fn.tabbedCont=function(o){
var cont=$(this);
var cid=cont.attr('id')||'cont_'+($.fn.tabbedCont._nextid++);
if(!cont.attr('id')){
cont.attr('id',cid);
}
var tabs=($.fn.tabbedCont._stack[cid]=$.fn.tabbedCont._stack[cid]||{});
if(typeof tabs[o]==='function'){
var r=tabs[o].apply(cont,Array.prototype.slice.call(arguments,1));
return typeof(r)!=='undefined'?r:cont;
}
function changeTab(t){
if($(t).hasClass('active')||!$(t).attr('id')){
return;
}
$('<div class="m_pager_loader opaque"></div>').prependTo($(cont).find('.thumbnails'));
$(t).siblings().removeClass('active');
$(t).addClass('active');
var tabId=$(t).attr('id');
if($('#'+cid).hasClass('sessioned')){
var state={};
state[cid]=tabId;
app.act.page.setState(state,null);
}
var contentId=tabId.replace(/^tab_/,'tabcontent_');
var tabContent=$('#'+contentId);
if($(t).hasClass('ajax')&&$(t).attr('moduleset')){
var modules=$(t).attr('moduleset').split(',');
if($(tabContent).length){
$(cont).find('.tabcontent').hide();
$(tabContent).show();
$('.m_pager_loader').remove();
}
else{
$.each(modules,function(i,url){
url='/render/'+url.replace('.tt','');
if(self.pageEnv.edit_mode){
url=$.urlhelper.replaceGetParamInUrl(url,'cmsmode',1);
}
$.get(url,function(data){
var newCont='<div class="tabcontent" id="'+contentId+'" >'+data+'</div>';
$('div.m_pager_loader').remove();
$(cont).find('.tabcontent').hide();
$(cont).find('.ccontent').append(newCont);
var ttOffset=app.detect.isRp?[0,0]:[-10,-50];
$(cont).find('#'+contentId+' li.tooltips').tooltip({fixed:true,directOffset:true,offset:ttOffset,oneInstance:false});
$(cont).find('#'+contentId+' li.tooltips_fix').tooltip({directOffset:true,offset:ttOffset,oneInstance:false,mouseFollow:0});
$(cont).find('div.m_pager').applyPager().find('ul.pages li').hover(
app.hover.over,app.hover.out
);
});
});
}
}
}
cont.find('ul.tabs').click(function(e){
var li=$(e.target)||$(e.originalTarget);
changeTab(li);
}).end()
.find('li').hover(app.hover.over,app.hover.out);
tabs.selected=function(){
return panel.data('tabbedpanel.selected');
};
tabs.select=function(id){
changeTab(id);
};
return this;
};
$.fn.tabbedCont._nextid=0;
$.fn.tabbedCont._stack={};
}(jQuery));
(function($){
$.fn.tabbedPanels=function(o){
var panel=$(this),badgeEl,ul,
id=panel.attr('id')||'panel_'+($.fn.tabbedPanels._nextid++);
if(!panel.attr('id')){
panel.attr('id',id);
}
var ns=($.fn.tabbedPanels._stack[id]=$.fn.tabbedPanels._stack[id]||{});
if(typeof ns[o]==='function'){
var r=ns[o].apply(panel,Array.prototype.slice.call(arguments,1));
return typeof(r)!=='undefined'?r:panel;
}
badgeEl=$('#badge');
if(o.container){
badgeEl=o.container;
}
if($.isFunction(o.panelHandler)){
badgeHdl=o.panelHandler;
}
if(o.element&&$(o.element).length){
ul=$(o.element);
$.each(o.panels||[],
function(k,v){
if(v.expandTo){
panel.data('tabbedpanel.'+v.id+'.expandBadgeTo',v.expandTo);
}
}
);
}
else{
ul=$('<ul class="ui-panel-tabs" />');
$.each(o.panels||[],
function(k,v){
if(!v){return;}
var li=v.html?$('<li />').html(v.html):$('<li />').html(v.title),
a=$('<a class="paneltab" />').attr('href',v.href||'#'+(v.id||'')),
div=$('<div class="ui-panel-content" />');
$(li).wrapInner(a);
if(v.id){
$(li).attr('id','tab-'+v.id);
div.attr('id','panel-'+v.id);
}
ul.append(li);
panel.append(div);
if(v.expandTo){
panel.data('tabbedpanel.'+v.id+'.expandBadgeTo',v.expandTo);
}
if(v.params){div.data('params',v.params);}
}
);
panel.append(ul);
}
var panelChangeBlocker=0;
function changeTab(id,keep){
var isCollapsed=badgeEl.badge('state')==='collapsed';
var to;
var curselected=panel.data('tabbedpanel.selected');
if(!curselected&&o.toggler){
o.toggler.show();
}
panel.data('tabbedpanel.previous',curselected);
if(curselected!==id){
panel.data('tabbedpanel.selected',id);
panel.find('> ul li').removeClass('active');
panel.find('#tab-'+id).addClass('active');
to='expanded';
}
else{
to=isCollapsed?'expanded':'collapsed';
keep=false;
}
if(!isCollapsed){
panel.find('#panel-'+curselected).hide();
}
if(!keep){
panel.trigger('change',[{to:to,selected:id}]);
}
if(!panelChangeBlocker){
if(!app.badgePanels.isCached(id)){
$('#panel-'+id).showLoader({spez:'badge',style:'positioned',overlay:'black'});
}
var cb=function(){
if($.isFunction(badgeHdl)){
badgeHdl(id);
}
ns.showTab(id);
if(curselected!==id){
panel.find('> div.ui-panel-content').removeClass('active');
}
};
if(!keep){
badgeEl.badge('toggleByTab',cb);
}
}
}
panel.find('> ul li').click(function(){
changeTab($(this).attr('id').replace(/^tab-/,''));
});
ns.selected=function(){
return panel.data('tabbedpanel.selected');
};
ns.previous=function(){
return panel.data('tabbedpanel.previous');
};
ns.select=function(id,keep){
var tb=panel.find('#tab-'+id);
if(tb){
if(!$(tb).is(':visible')){
$(tb).show();
}
changeTab(id,keep);
}
else{
panel.find('> ul li').removeClass('active');
}
};
ns.expandTo=function(id){
return panel.data('tabbedpanel.'+id+'.expandBadgeTo');
};
ns.hideTab=ns.hide=function(id){
panel.find('#panel-'+id).hide();
};
ns.showTab=ns.show=function(id){
if(!id){
id=ns.selected();
}
panel.find('#panel-'+id).show();
};
return this;
};
$.fn.tabbedPanels._nextid=0;
$.fn.tabbedPanels._stack={};
}(jQuery));

var app={};
jQuery(function($){
app.act={};
app.identityData={
browser:[
{
string:navigator.userAgent,
subString:"OmniWeb",
versionSearch:"OmniWeb/",
identity:"OmniWeb"
},
{
string:navigator.vendor,
subString:"Apple",
identity:"Safari"
},
{
prop:window.opera,
identity:"Opera"
},
{
string:navigator.vendor,
subString:"iCab",
identity:"iCab"
},
{
string:navigator.vendor,
subString:"KDE",
identity:"Konqueror"
},
{
string:navigator.userAgent,
subString:"Chrome",
identity:"Chrome"
},
{
string:navigator.userAgent,
subString:"Firefox",
identity:"Firefox"
},
{
string:navigator.vendor,
subString:"Camino",
identity:"Camino"
},
{
string:navigator.userAgent,
subString:"Netscape",
identity:"Netscape"
},
{
string:navigator.userAgent,
subString:"MSIE",
identity:"Explorer",
versionSearch:"MSIE"
},
{
string:navigator.userAgent,
subString:"Gecko",
identity:"Mozilla",
versionSearch:"rv"
},
{
string:navigator.userAgent,
subString:"Mozilla",
identity:"Netscape",
versionSearch:"Mozilla"
}
],
OS:[
{
string:navigator.userAgent,
subString:"Windows NT 5.0",
identity:"Windows",
version:"2000"
},
{
string:navigator.userAgent,
subString:"Windows NT 5.1",
identity:"Windows",
version:"XP"
},
{
string:navigator.userAgent,
subString:"Windows NT 5.2",
identity:"Windows",
version:"XP"
},
{
string:navigator.userAgent,
subString:"Windows NT 6.0",
identity:"Windows",
version:"Vista"
},
{
string:navigator.userAgent,
subString:"Windows NT 6.1",
identity:"Windows",
version:"7"
},
{
string:navigator.userAgent,
subString:"Windows NT 6.2",
identity:"Windows",
version:"8"
},
{
string:navigator.platform,
subString:"Mac",
identity:"Mac"
},
{
string:navigator.platform,
subString:"Linux",
identity:"Linux"
}
]
};
app.detect={
init:function(){
this.isRp=false;
this.browser=this.getBrowserData();
this.player=this.getPlayerData();
this.OS=this.getOSData();
this.user=this.getUserData();
if(this.OS.name==='Mac'&&this.browser.name==='RealPlayer'){
this.isRp=true;
}
},
getUserData:function(){
var location=false,locationSource=false;
if($.cookie('RNEUgeo')){
locationSource='cookie';
location=$.cookie('RNEUgeo').toLowerCase();
}else{
var geoIp=$.ajax({
url:'/geo/ip/',
dataType:'json',
type:'GET',
timeout:10,
async:false
}).responseText;
if(typeof $.parseJSON(geoIp)=='object'){
if($.parseJSON(geoIp).country_code){
$.cookie('RNEUgeo',self,$.parseJSON(geoIp).country_code,{expires:3,path:'/',domain:'real.com',secure:false});
locationSource='call';
location=$.parseJSON(geoIp).country_code.toLowerCase();
}
}
}
return{
location:location,
locationSource:locationSource
}
},
getBrowserData:function(){
return{
name:this.browserData().identity||false,
version:this.getBrowserVersion(navigator.userAgent)||this.getBrowserVersion(navigator.appVersion)
};
},
getOSData:function(){
return{
name:this.OSData().identity||false,
version:(this.OSData().identity==='Windows')?this.OSData().version:false
};
},
getPlayerData:function(){
var sPlayerBuild=this.getPlayerBuild()||null;
return{
build:sPlayerBuild,
version:(sPlayerBuild!==null)?this.getPlayerVersion(sPlayerBuild):false,
installed:(sPlayerBuild!==null)?true:false,
distributioncode:(this.isRp)?parent.window.external.PlayerProperty("DISTRIBUTIONCODE"):false,
languageid:(this.isRp)?parent.window.external.PlayerProperty("LANGUAGEID"):false
};
},
getDataFromObject:function(oData){
for(var i=0;i<oData.length;i++){
var sString=oData[i].string;
var sProp=oData[i].prop;
if((sString&&sString.indexOf(oData[i].subString)!==-1)||sProp){
return oData[i];
}
}
},
browserData:function(){
return this.getDataFromObject(app.identityData.browser);
},
OSData:function(){
return this.getDataFromObject(app.identityData.OS);
},
unpackRealPlayerBuildNumber:function(num){
return''+(num>>28&0xF)+'.'+
((num&0xFF00000)>>20)+'.'+
((num&0xFF000)>>12)+'.'+
(num&0xFFF);
},
getPlayerBuild:function(){
var packedRealPlayerBuildNumber,plyrObj;
var build=false;
try{
plyrObj=parent.window.external;
if(plyrObj){
packedRealPlayerBuildNumber=plyrObj.RealPlayerVersion;
}
}
catch(e){}
if(!packedRealPlayerBuildNumber){
if(this.browser.name==='Explorer'){
$("<object id=\"IERPCtl\" width=0 height=0 classid=\"CLSID:FDC7A535-4070-4B92-A0EA-D9994BCC0DC5\"></object>").appendTo($('body'));
try{
packedRealPlayerBuildNumber=document.getElementById("IERPCtl").RealPlayerVersion;
build=(String(packedRealPlayerBuildNumber)!=='undefined')?app.detect.unpackRealPlayerBuildNumber(packedRealPlayerBuildNumber):null;
if(build){
throw'works';
}else{
throw'works_not';
}
}catch(e){
if(e=='works_not'){
window.setTimeout(function(){
packedRealPlayerBuildNumber=document.getElementById("IERPCtl").RealPlayerVersion;
build=(String(packedRealPlayerBuildNumber)!=='undefined')?app.detect.unpackRealPlayerBuildNumber(packedRealPlayerBuildNumber):null;
if(build){
app.detect.player={
build:build,
version:(build!==null)?app.detect.getPlayerVersion(build):false,
installed:(build!==null)?true:false
};
}
},50);
}
}
}
else{
$("<embed name=\"IERPCtl\" id=\"IERPCtl\" type=\"audio/x-pn-realaudio-plugin\" width=0 height=0></embed>").appendTo($('body'));
build=(typeof document.IERPCtl.GetVersionInfo==='function')?String(document.IERPCtl.GetVersionInfo()):null;
}
}
else{
app.detect.isRp=true;
build=this.unpackRealPlayerBuildNumber(packedRealPlayerBuildNumber);
}
return build;
},
getPlayerVersion:function(sPlayerBuild){
var version=false;
(/([\d]{1,}).([\d]{1,}).([\d]{1,}).([\d]{1,})/g).exec(sPlayerBuild||this.getPlayerBuild());
var offs=[parseInt(RegExp.$1,10),parseInt(RegExp.$2,10),parseInt(RegExp.$3,10),parseInt(RegExp.$4,10)];
if(offs[0]===15){
version=15;
}
if(offs[0]===14){
version=14;
}
if(offs[0]===12&&offs[2]===0){
version=(offs[3]>343)?12.1:12;
}
if(offs[0]===6){
if(offs[2]===14){
version=11;
}
else if(offs[2]===12){
version=(offs[3]>=1053)?10.5:10;
}
}
return version;
},
getBrowserVersion:function(userAgent){
var sBrowserVersionSearch=this.browserData().versionSearch||this.browserData().identity;
var iIndex=userAgent.indexOf(sBrowserVersionSearch);
if(iIndex===-1){return false;}
return parseFloat(userAgent.substring(iIndex+sBrowserVersionSearch.length+1));
}
};
if(!window.location.hostname.match('rinse')){
app.detect.init();
};
app.auth=(function(){
var userServices=null;
var isRMsubscriber=function(){
var snNames=userServices||getUsersServices();
var m=false;
$.each(snNames,function(k,v){
var res=v.match(/^(rmus|radiopl|radiopb|radiop|rm_dance|rpwrmus880|rmusbas881)([\w]{2})?/);
if(res){
m='RealMusic';
}
});
return m;
};
var isSPsubscriber=function(){
var snNames=userServices||getUsersServices();
var m=false;
$.each(snNames,function(k,v){
if(v.match(/^(sp|r1sp)(eu|uk)(1c|3c|ru3|ru1)?/)){
m='SuperPass';
}
});
return m;
};
var hasRPplus=function(){
var snNames=userServices||getUsersServices();
var m=false;
$.each(snNames,function(k,v){
if(v.match(/^(realplayer|RealPlayer|sp|r1sp|rmus)(eu|uk|de|fr|it|nl|es)?(1c|3c|ru3|ru1)?/)){
m='PlayerPlus';
}
});
return m;
};
var hasGamePass=function(){
var snNames=userServices||getUsersServices();
var m=false;
$.each(snNames,function(k,v){
if(v.match(/^gamepass/)){
m='GamePass';
}
});
return m;
};
var rest='/REST/darf/';
var cookieCache={};
var serviceNames=[],callbacks=[];
var isLoggedIn=false;
var ci=false;
var email='';
var afterLoginParams=null;
var afterLogin=function(params){
if(afterLoginParams){
params=afterLoginParams;
}
if(params&&params.task&&params.subs){
var task=params.task.match(/^(play)(Video|Station).*/);
var section=(task&&{Video:'video',Station:'music'}[task[2]])||'music';
var redirect=['http://',location.host,'/',section];
var has=hasSubs(params.subs);
if(has){
redirect.push('#act.rp.'+params.task);
}
location.replace(redirect.join(''));
}
};
var onlogin=function(){
var keks=getKeks();
if(keks&&!$.cookie('RNUser')){
var logoutMachine=self.setInterval(
function(){
if(!$.cookie('RNUser')){
logOut('darf');
self.clearInterval(logoutMachine);
}
},50
);
}
else{
if(this.isApplied){return;}
this.isApplied=true;
var limit=30;
var trys=0;
var RpOnloginInterval=self.setInterval(
function(){
trys++;
if($.cookie('RNUser')){
self.clearInterval(RpOnloginInterval);
app.debug('onlogin.... RNuser cookie found, now gapi-login');
isLoggedIn=true;
auth({'method':'cookie','cookietype':'player'});
}
if(trys>limit){
self.clearInterval(RpOnloginInterval);
location.reload();
}
},200
);
}
};
function auth(args,callback){
var restUrl='',data='';
if(args.method==='login'&&args.uname&&args.passwd){
restUrl=rest+'authenticate_by_username_and_password/?user='+args.uname+'&password='+args.passwd;
}
else if(args.method==='cookie'&&args.cookietype){
var cookieName=(args.cookietype==='player')?'RNUser':'darf';
var authCookie=$.cookie(cookieName,self);
if(!authCookie){
app.debug('authCookie not found, aborting  :((( ');
app.RTracking.trackLogin({title:'Cookie '+cookieName+' not found.'});
return;
}
restUrl=rest+'authenticate_by_'+args.cookietype+'_cookie/';
}
if(!restUrl){
app.debug('invalid or no restUrl ! ');
return;
}
$.post(restUrl,'',function(response){
handleDarfResponse(response);
if($.isFunction(callback)){callback();}
},'json');
}
var getKeks=function(){
return $.cookie('darf',self);
};
var _loginTries=0;
var handleDarfResponse=function(res,args,callback){
if(res.error){
$.each(res,function(k,v){app.debug('auth response error: ',k,v);});
if(_loginTries<1){
app.debug('error on login, try another time');
self.setTimeout(function(){
auth(args,callback);}
,2000);
}
app.RTracking.trackLogin({title:res.errorcode||res.error});
_loginTries++;
self.setTimeout(function(){_loginTries=0;},20000);
return;
}
if(app.RTracking){
app.RTracking.trackLogin({});
}
email=res.email;
setUserInfoCookie({email:res.email});
if(res.cookies){
isLoggedIn=true;
setCookiesByAuthResponse(res.cookies);
if(callbacks.length){
var ic;
for(ic=0;ic<callbacks.length;ic++){
if($.isFunction(callbacks[ic])){
callbacks[ic]();
}
}
}
var params={};
if(self.pageEnv.section==='upsell'){
params={
task:$.query.get('task'),
subs:$.query.get('rn.workflow')
};
}
else{
var hashtest=location.hash.match(/act\.panel.(superpass|freeTrial)(\.)(.*)/);
if(hashtest){
params={
task:hashtest[3],
subs:(hashtest[1]==='freeTrial')?'realmusic':'superpass'
};
}
}
afterLogin(params);
if((hasRPplus()||isRMsubscriber())&&app.advert){
$('body').toggleClass('loggedin loggedout');
}
}
else{
app.debug('handleDarfResponse: bad response, no cookie!');
}
app.smod.init();
};
var getUserEmail=function(){
if(email){return email;}
email=$.cookie('userInfo')&&$.cookie('userInfo').match(/email=(\w+((?:\.\w+)|(?:-\w+))*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/);
if(email&&email[0]){
return email[0].split('=')[1];
}
return'';
};
var setUserInfoCookie=function(infoCookie){
var ctemp=[];
$.each(infoCookie,function(k,v){ctemp.push(k+'='+v);});
newKeks=ctemp.join('|');
$.cookie('userInfo',self,newKeks,{expires:1000,path:'/',domain:'.real.com',secure:false});
};
var setCookiesByAuthResponse=function(cookies){
$.each(cookies,
function(k,v){
if(v.cookieName){
var options={
expires:1,
path:v.cookiePath,
domain:v.cookieDomain,
secure:false
};
$.cookie(v.cookieName,self,v.cookieContent,options);
cookieCache[v.cookieName]=v;
}
}
);
};
function getCIvalFromCookie(c){
var ci=null;
c=c||'RNPlayer';
var cookie=$.cookie(c);
if(!cookie){return ci;}
ci=cookie.match(/CI=([\d]+)&/);
if(!ci){
return'';
}
else{
return ci[1];
}
}
function autoLogin(callback){
var keks=getKeks();
var _ci=getCIvalFromCookie('RNPlayer')||getCIvalFromCookie('RNUser');
if(_ci){
$('body').addClass('loggedin').removeClass('loggedout');
if(!keks){
auth({method:'cookie',cookietype:'player'},callback);
}
isLoggedIn=true;
if(app.act.statusModule){
app.act.statusModule.show();
}
}
else{
if(keks){
$('body').addClass('loggedin').removeClass('loggedout');
if(app.act.statusModule){
app.act.statusModule.show();
}
if($.browser.msie){
logOut('darf');
}
}
else{
app.RTracking.trackLogin({title:'No CI value found in player cookie.'});
}
}
if($.isFunction(callback)){callback();}
}
function logOut(what){
if($.inArray(what,['player','all'])>-1){
app.act.rp.doSignOut();
}
if($.inArray(what,['darf','all'])>-1){
$.cookie('darf',self,'null',{expires:-1,path:'/',domain:'real.com',secure:false});
$.cookie('serviceStatus',self,'null',{expires:-1,path:'/',domain:'real.com',secure:false});
}
isLoggedIn=false;
if((hasRPplus()||isRMsubscriber())&&app.advert){
$('body').toggleClass('loggedin loggedout');
}
}
var isSubscriber=function(){
return(isRMsubscriber()||isSPsubscriber()||hasRPplus());
};
var hasSubs=function(subs){
var has=false;
switch(subs.toLowerCase()){
case'realmusic':
has=isRMsubscriber();
break;
case'superpass':
has=isSPsubscriber();
break;
case'realplayer':
has=hasRPplus();
break;
}
return has;
};
function getUsersServices(){
var services=$.cookie('serviceStatus')&&$.cookie('serviceStatus').match(/SN=([\w]+):SS=A/g);
if(!services){return serviceNames;}
$.each(services,function(i,s){
var service=s.match(/\=([\w]+):/)[1];
serviceNames.push(service);
});
userServices=serviceNames;
return serviceNames;
}
function getUserGuid(){
return getCIvalFromCookie();
}
var addCallback=function(callback){
callbacks.push(callback);
};
return{
authByPlayerCookie:function(){
auth({method:'cookie',cookietype:'player'});
},
logout:function(what){
logOut(what);
},
login:function(params){
if(params){
afterLoginParams=params;
}
app.act.rp.openSignInDialog();
},
hasRPplus:function(){
return hasRPplus();
},
hasRealMusic:function(){
return isRMsubscriber();
},
hasSuperPass:function(){
return isSPsubscriber();
},
getUserGuid:function(){
return getCIvalFromCookie();
},
getUserEmail:function(){
return getUserEmail();
},
getUsersServices:function(){
return(serviceNames.length&&serviceNames)||getUsersServices();
},
isSubscriber:function(){
return isSubscriber();
},
getServices:function(){
return[
hasRPplus(),
isRMsubscriber(),
isSPsubscriber()
];
},
onlogin:function(){
onlogin();
},
autologin:function(callback){
autoLogin(callback);
},
isloggedin:function(){
return isLoggedIn;
},
addCallback:function(callback){
addCallback(callback);
}
};
}());
app.blog=(function(){
var $blog,$cur_post,$cur_post_id,$cur_select,$post_comment,$myComments,$comment_mask_html,$section,$header;
var $commentCache={};
var $uname;
var commentOff=false;
var $ustate=0;
var $uid=app.auth.getUserGuid();
var init=function(){
$section={'video':'movie','music':'music'}[self.pageEnv.section];
var $blog_side=$('#c_300_search');
init_articles();
$uname=app.session.get('nickname');
$cur_post_id=$.query.GET('id');
if($cur_post_id){
$cur_select='#post_'+$cur_post_id;
$cur_post=$($cur_select);
showComments($cur_post_id);
}
$('.listitem',$blog_side).hover(app.hover.over,app.hover.out);
var search_start;
var search_btn=$('.search_bar .search.submit',$blog_side);
search_btn.click(function(){
var str=$('.search_bar input',$blog_side).val();
if(str&&search_start){
searchPosts(encodeURIComponent(str));
location.hash='#act.blog.search.'+encodeURIComponent(str);
}
}).end()
.find('input').focus(
function(){
if(!search_start){
$(this).val('');
search_start=1;
}
}
).keypress(function(e){
if($(e.target).val()&&$(e.target).val().length>2&&e.keyCode===13){
search_btn.click();
return false;
}
});
app.act.blog={
search:function(str){
searchPosts(str);
}
};
};
var init_articles=function(new_pager){
$blog=$('#m_blog-'+self.pageEnv.section+'-entries');
if($('.bookmark_share',$blog).length){
app.bookmarkshare.init($blog);
}
if($uid){
$blog.addClass('loggedin')
.delegate('#submit_blog_comment:not(.inactive)','click',
function(e){
postComment($cur_post_id);
}
).find('.please_login').remove();
}
if(new_pager){
$('.m_pager',$blog).applyPager();
}
$($blog).delegate(".play_station_blog","click",function(){
app.realplayer.playStation($(this).attr('station_id'));
})
.delegate(".play_station_blog","mouseenter",app.hover.over)
.delegate(".play_station_blog","mouseleave",app.hover.out)
.delegate('.rm_play_video_blog',"click",this.id,function(data){
$rmplayer=new app.blog.rmplayer(this.id,$(this).attr('videoclip_id'));
$rmplayer.init();
data.stopPropagation();
})
.delegate(".rm_play_video_blog","mouseenter",app.hover.over)
.delegate(".rm_play_video_blog","mouseleave",app.hover.out);
$(".flv_play_video_blog",$blog).each(function(){
$flvplayer=new app.blog.flvplayer(this.id,$(this).attr('videoclip_id'));
$flvplayer.init();
});
};
var toggleComments=function(id){
$('.more, .comments_head',$cur_post).toggle();
if($uid){
$('.leave_blog_comment',$cur_post).click(
function(e){
$(this).show();
var submit=$('.post_comment',$cur_post);
if(submit.length){
$(window).scrollTop(Math.floor(submit.offset().top-120));
}
}
);
}
};
var showCommentMask=function(id){
if(!$comment_mask_html){
$.get('/render/m_widgets/comment_mask?rev=2',function(r){
if(r){
$comment_mask_html=$(r);
showCommentMask(id);
}
});
return;
}
var cwrap=$($blog).find('.comment_wrap:visible');
if(cwrap.length){
cwrap.remove();
}
$myComments=$cur_post.find('.comments');
var addHtml=function(){
$($myComments).append($($comment_mask_html)).find('.post_comment, .post_comment_head').show();
$post_comment=$post_comment||$($myComments).find('.post_comment');
};
if(!$uname){
app.ws.get('getBlogUser',function(r){
if(r[0]&&r[0].nickname){
$uname=r[0].nickname;
switchNameField($uname);
}
addHtml();
});
}
else{
addHtml();
}
};
var switchNameField=function(n){
$($comment_mask_html).find('.firstuser').remove().end().find('.posteduser').removeClass('hidden').find('#nickname').html(n);
};
var showComments=function(id){
$myComments=$('.comments',$cur_post).show();
if(!$myComments.length){return;}
toggleComments(id);
$('.leave_blog_comment',$cur_post).show();
if($uid){
showCommentMask(id);
}
else if(app.detect.isRp){
$('#comment_please_login').appendTo($myComments).show()
.find('a.login').click(function(){
app.auth.login();
});
}
else{
$('#comment_open_rp').appendTo($myComments).show();
}
$('.more',$cur_post).hide().end().find('.comments_head').show();
if(!$commentCache[$cur_select]){
app.ws.get('getBlogComments',{post_id:id,limit:100},function(r){
if(r.length&&!r.error){
$commentCache[$cur_select]=r;
parseComments(r);
}
});
}
else{
parseComments($commentCache[$cur_select]);
}
};
var updateNumComments=function(l){
var numComTxt=(l===1)?$.loc('onecomment'):l+' '+$.loc('comments');
$('span.num_comments',$cur_post).html(numComTxt);
};
var parseComments=function(comments,append){
var comList=$('.comment_list',$myComments);
if(!append){
$('.comment',comList).remove();
}
var tmpl='<div class="comment"><p class="name">{name}</p><p class="postdate">{postdate}</p><p class="blob">{text}</p></div>';
var $comments=[];
var i;
for(i=0;i<comments.length;i++){
var pdate=comments[i].post_date||'Now';
$comments.push(tmpl.replace('{name}',decodeURIComponent(comments[i].author)).replace('{postdate}',pdate).replace('{text}',decodeURIComponent(comments[i].content)));
}
comList.prepend($comments.join(''));
updateNumComments(comList.children().length);
};
var clearComment=function(){
$($post_comment).find('textarea').val('');
};
var searchPosts=function(str){
if(!$('#blog_hdl_search:visible').length){
$('#blog_hdl, #blog_hdl_search').toggle();
}
$.get('/render/m_blog/'+self.pageEnv.section+'/entries/?s='+str,function(r){
if(r&&!r.error){
location.hash='';
if($(r).find('.m_content > *').length){
$($blog).replaceWith($(r));
init_articles(true);
}
else{
console.log('no data');
}
}
else{
console.log('error',str,r.error);
}
});
};
var postComment=function(id){
if(!$uid||commentOff){
return false;
}
var nname;
var pars={
post_id:id,
content:encodeURIComponent($($post_comment).find('#comment_text').val())
};
if(!pars.content){
onError(null);
return;
}
if(!$uname){
nname=$cur_post.find('#comment_name').val();
if(!nname){
onError('e_enter_name');
return;
}
else if(nname.length<2){
onError('e_nickname_too_short');
return;
}
else if(nname.length>20){
onError('e_nickname_too_long');
return;
}
else if(!nname.match(/^\w[\w-]*\w$/)){
onError('e_only_az');
return;
}
else if(nname.match(/^(admin|root|superuser)/)){
onError('e_nickname_reserved');
return;
}
nname=encodeURIComponent(nname);
}
else{
$ustate=1;
}
toggleCommentOff();
pars.author=nname||$uname;
var postThanks=$($blog).find('#thanks_for_comment');
postThanks.show();
app.ws.get('postBlogComment',pars,function(r){
if(r.error){
app.debug('post error',r.error,r.error.errorcode);
postThanks.hide();
switch(r.error.errorcode){
case 49:
$($post_comment).find('.uname_state').addClass('bad');
self.setTimeout(toggleCommentOff,2000);
onError($.loc('e_nickname_reserved'));break;
default:
var overlay=$($blog).find('#error_on_comment').show();
toggleOverlay(overlay);
break;
}
}
else{
$uname=pars.author;
app.session.set({nickname:$uname});
if(nname){
$($post_comment).find('.uname_state').removeClass('bad').addClass('good');
}
clearComment();
if(!$ustate){
$($post_comment).find('.comment_error').html('').end().find('.uname_state').addClass('good');
switchNameField(pars.author);
}
parseComments([pars],true);
toggleOverlay(postThanks);
}
});
};
var toggleOverlay=function(o){
self.setTimeout(function(){
toggleCommentOff();
o.hide();
},8000);
};
var toggleCommentOff=function(){
commentOff=!commentOff;
};
var onError=function(str){
if(str){
$($post_comment).addClass('bad').find('.comment_error').html($.loc(str));
}
};
return{
init:init
};
}());
$.extend(app,{
debug:(function(){
$('body').append('<div id="debug"><div class="body"><div class="msgs"></div><div><a href="#" onclick="app.act.debug.clear();">clear</a> | <a href="#" onclick="app.act.debug.hide();">hide</a></div></div><input class="cmdline" type="text" /></div>');
var el=$('#debug').hide(),
body=el.find('.body'),
msgs=el.find('.msgs'),
cmdline=el.find('.cmdline');
el.resizable({
handles:'all'
});
var counter=0;
var debug=function(){
counter++;
var msg=Array.prototype.join.call(arguments,' , ');
$.each(arguments,function(k,v){
console.log(v);
});
var scrollToBottom=(body.scrollTop()>=msgs.height()-body.height());
msgs.append('<p class="debug_msg">'+counter+': '+msg+'</p>');
if(scrollToBottom){
body.scrollTop(msgs.height());
}
};
var ch=[];
function run(code){
if(ch[ch.length]!==code){
ch.push(code);
}
app.debug('call ',code);
var ret;
try{
ret=eval(code);
debug(ret);
}
catch(e){
debug('EXCEPTION: ',e);
$.each(e,function(k,v){
debug('--->: ',k,v);
});
}
return ret;
}
function history(){
}
cmdline.keypress(function(o){
switch(o.keyCode){
case 13:
var val=cmdline.val();
if(val){
run(val);
}
break;
case 38:
case 40:
break;
default:
break;
}
});
app.act.debug={
clear:function(){el.find('.msgs').empty();},
show:function(){
el.fadeIn();
},
hide:function(){el.fadeOut();},
toggle:function(){
if(el.is(':visible')){
el.fadeOut();
}else{
el.fadeIn();
}
}
};
if($.query&&$.query.get('debug')==='show'){app.act.debug.show();}
if(self.pageEnv.env!=='live'){
$('.debugInfo').click(
function(){
$(this).toggleClass('active');
}
);
}
return debug;
}())
});
function dumpObject(obj,prefix){
var str='',i;
for(i in obj){
if(!$.isFunction(obj[i])){str+='<span style="color:gray">'+prefix+'</span>'+i+' = '+obj[i]+'<br>';}
if(typeof obj[i]==='object'){str+=dumpObject(obj[i],prefix+i+'.');}
}
return str;
}
app.flvplayer={
$player:$('#flv_play_video'),
clipUrl:null,
clipId:null,
headEl:null,
headline:'',
playClipUrlByAjax:function(url,directPlay,callback){
var $url=url||'/play/video/'+this.clipId+'.json';
$.get($url,function(r){
console.log('playClipUrlByAjax',r,url,directPlay,callback);
if(!r.error){
var i;
for(i=1;i<r.videoclipmedia.length;i++){
if(r.videoclipmedia[i].bandwidth=='m'){
app.flvplayer.clipUrl=r.videoclipmedia[i];
}
}
if(!app.flvplayer.clipUrl){
app.flvplayer.clipUrl=r.videoclipmedia[0];
}
if(directPlay){
if(app.flvplayer.clipUrl.stream_url.match(/rtmp/)){
app.flvplayer.real_rtmp_preroll.playRtmp(this,null,app.flvplayer.clipUrl);
}
else{
app.flvplayer.play(app.flvplayer.clipUrl.stream_url);
}
}
}
if(callback){callback();}
});
},
initFLVPlayer:function(){
this.headEl=$('#c_480_video_flv_playback .headline');
this.clipUrl=this.$player.attr('clip_url');
this.clipId=this.$player.attr('clip_id');
this.headline=this.headEl.html();
if(app.detect.isRp){
app.act.rp.stop();
}
var chunks=self.pageEnv.page.replace(/\/$/,'').split('/');
contextpane=chunks[chunks.length-1];
var media=(contextpane=='default')?this.$player.attr('content_type'):contextpane;
var trackParams={
id:(this.$player.attr('videoclip_id')=="")?this.$player.attr('clip_id'):this.$player.attr('videoclip_id'),
type:'playVideo',
category:encodeURIComponent(this.$player.attr('videosection_title')),
PG:self.pageEnv.page,
media:media
};
app.RTracking.trackClick(trackParams);
this.initAdPreroll(0);
},
stopPlayback:function(){
},
play:function(playbackUrl){
flowplayer("flowplayer",
{
src:"/static/swf/player/flowplayer.commercial-3.2.1.swf",
wmode:'transparent',
cachebusting:false
},
{
canvas:{
backgroundGradient:'none',
backgroundColor:'#000000'
},
key:'#$e73af8695d619158b51',
clip:{
autoPlay:true,
autoBuffering:true,
url:playbackUrl,
scaling:'fit'
}
});
},
showAdHeadline:function(){
this.headEl.html($.loc('Advertisement'));
$('#m_widgets-video-movietrailer-film_details .trailer').hide();
},
hideAdHeadline:function(){
this.headEl.html(this.headline);
$('#m_widgets-video-movietrailer-film_details .trailer').fadeIn("slow");
},
updateFLVPlayer:function(clip){
var playbackUrl=$("#flv_res_"+clip).attr('clip_url');
var flowplayer=$f("flowplayer");
flowplayer.setClip({
url:playbackUrl,
autoPlay:true,
autoBuffering:true,
scaling:'fit'
});
flowplayer.play();
},
initAdPreroll:function(counter){
this.$player.show();
if(self.advertisement&&self.advertisement['video']&&self.advertisement['video'].videourl&&self.advertisement['video'].type){
this.showAdHeadline();
var prerollType;
if(self.advertisement['video'].type=='real_rtmp_preroll'){
prerollType='real_rtmp_preroll';
}
else if(self.advertisement['video'].type=='ew_vast'&&app.flvplayer.ew_vast){
prerollType='ew_vast';
}
else if(self.advertisement['video'].type=='vast'&&app.flvplayer.vast){
prerollType='vast';
}
if(!this.clipUrl){
this.playClipUrlByAjax(false,false,function(){
app.flvplayer[prerollType].playAd(this,self.advertisement['video'],app.flvplayer.clipUrl);
});
}
else{
app.flvplayer[prerollType].playAd(this,self.advertisement['video'],this.clipUrl);
}
return;
}
else if(counter>=20){
if(!this.clipUrl){
this.playClipUrlByAjax(null,1);
}
else{
this.play(this.clipUrl);
}
return;
}
if($.loc){
counter+=1;
}
window.setTimeout("app.flvplayer.initAdPreroll("+counter+")",100);
}
};
app.realplayer=(function(){
var rpex=window.parent.external;
function RP(func){
if(!app.detect.isRp){
return false;
}
var args=Array.prototype.slice.call(arguments,1)||[];
var ret=null;
if(func!=='GetClipInfo'){
}
try{
eval('ret = rpex.'+func+'('+(args.length?'"'+args.join('","')+'"':'')+');');
}
catch(e){
app.debug('catched EXCEPTION: ',func,args.join('","'));
}
return ret;
}
var pub={};
var autoInit=1;
var states='stopped,contacting,buffering,playing,paused,seeking,busy'.split(',');
var eventHandlers={};
var playQueue=[];
var skipPreroll=false;
function bindEvent(fnname,fn){
if(!eventHandlers[fnname]){
eventHandlers[fnname]=[];
}
eventHandlers[fnname].push(fn);
}
function unBindEvent(fnname,fn,i){
if(eventHandlers[fnname]&&eventHandlers[fnname].length){
$.each(eventHandlers[fnname],function(k,v){
if(v===fn){
delete eventHandlers[fnname][k];
}
});
}
}
function trigger(fnname,args){
if(fnname==='statechange'){
if(!args.length){
args.push('0');
}
args.push(states[args[0]]);
}
args=$.merge([pub],args);
var hdls=eventHandlers[fnname]||[];
var i;
for(i=0;i<hdls.length;i++){
if($.isFunction(hdls[i])){
hdls[i].apply(pub,args);
}
}
}
var RPevents='RPOnPreload,RPOnPositionLengthChange,RPOnStateChange,RPOnClipInfoChange,RPOnBuffering,OnAUEvent'.split(',');
$.each(RPevents,function(i,rpEvent){
var fnname=rpEvent.replace(/^RPOn|^On/,'').toLowerCase();
pub[fnname]=function(fn){
if($.isFunction(fn)){
return bindEvent(fnname,fn);
}
trigger(fnname,$.merge([],arguments));
};
self[rpEvent]=function(){
trigger(fnname,$.merge([],arguments));
};
});
pub.GetCopyright=function(){
var copyright=RP('GetCopyRight',"");
};
var OWNevents='clipidchange,clipmetachange,playbegin,playstationbegin,playend'.split(',');
$.each(OWNevents,function(i,fnname){
pub[fnname]=function(fn){
if($.isFunction(fn)){
return bindEvent(fnname,fn);
}
trigger(fnname,$.merge([],arguments));
};
});
var curClipId='';
var checkClipIdChange=function(){
var clipId=RP('GetClipInfo',"clipId");
if(!curClipId||(clipId&&(curClipId!=clipId))){
curClipId=clipId;
trigger('clipidchange',[curClipId]);
}
};
var curClipMeta={};
function clipMetaChange(clipMeta){
if(!clipMeta){
return;
}
curClipMeta=clipMeta;
curClipMeta.track={};
var abort=1;
var panelSelected=app.session.get('panelEl');
if((!autoInit&&!(panelSelected&&panelSelected.music))&&app.act.panel.selected()!='related-info'
){
$('#related-info').show();
app.act.panel.select('related-info',0);
}
autoInit=0;
var nowplayingready=self.setInterval(
function(){
if(app.np.is_inited()||abort>50){
trigger('clipmetachange',[curClipMeta]);
self.clearInterval(nowplayingready);
}
abort++;
}
,50
);
}
function trackMetaReceive(trackMeta){
curClipMeta.track=trackMeta.length&&trackMeta[0];
trigger('clipmetachange',[curClipMeta]);
self.setTimeout(function(){
if(RP('GetPlayerState')!='3'){
pub.pause();
self.setTimeout(function(){
pub.play();
app.debug('2nd play try. Play state: ',RP('GetPlayerState'));
},2000);
}
},2000);
}
pub.getError=function(){
var errorstr=RP('GetLastErrorUserString','');
return errorstr;
};
pub.getClipid=function(){
var title=RP('GetClipInfo',"clipId");
return title;
};
pub.clipidchange(function(player,clipId){
function getTrack(tid,next){
app.ws.get('track',tid,{tracks:[tid],imagetype_codes:'square170,square300,square120,square500',want_url:1},function(trackMeta){
trackMetaReceive(trackMeta);
if(next){
app.ws.prefetch('track',next,{tracks:[next],imagetype_codes:'square170,square300,square120,square500',want_url:1});
}
});
}
var cd={};
var intern=true;
if(clipId&&isNaN(clipId)&&clipId.match(/^STATION:/)){
clipId.replace(/(\w+):(\w+);/g,function(x,k,v){cd[k]=v;});
}
else if(clipId&&!isNaN(clipId)){
cd.STATION=clipId;
intern=false;
}
if(!cd.STATION){
app.debug('station not found!');
return;
}
if(!app.np.is_inited()){
if(app.session.get('badgeEl')!='collapsed'&&!location.hash.match(/freeTrial/)){
pub.checkAndInit();
}
}
if(cd.STATION&&((cd.STATION!=curClipMeta.station_id)||!intern)){
trigger('playstationbegin',[cd.STATION]);
var station_id=curClipMeta.station_id||cd.STATION;
app.ws.get('station',station_id,{station_id:station_id,imagetype_code:'144x81',want_url:1},function(clipMeta){
clipMeta=$.isPlainObject(clipMeta)?clipMeta:clipMeta[0];
clipMetaChange(clipMeta);
if(cd.RMTR){
getTrack(cd.RMTR,cd.NEXTTR);
}
});
}
else if(cd.STATION&&cd.RMTR){
self.setTimeout(function(){
getTrack(cd.RMTR,cd.NEXTTR);
},2000);
}
});
$.extend(pub,{
playStation:function(id,prerolled){
autoInit=0;
var playPreroll=function(){
skipPreroll=true;
playQueue.push({method:'playStation',id:id});
if(app.act.panel.selected()!='audiopreroll'||app.act.badge.getState()=='collapsed'){
app.act.panel.audiopreroll();
}
var prerollPanel=$('#panel-audiopreroll');
var playerObj=document.getElementById('RMPlayer_ACTVX');
if(!playerObj){
app.debug('no player obj!');
return false;
}
playerObj.setSource(self.advertisement.audiourl);
playerObj.doPlay();
var counter=self.advertisement.playlength||0;
var adPrerollInterv=self.setInterval(
function(i){
var state=playerObj.GetPlayState();
if(state==0&&playQueue[0]){
var q=playQueue.shift();
pub[q.method](q.id,true);
skipPreroll=false;
self.clearInterval(adPrerollInterv);
self.advertisement=null;
}
else if(state==4){
playerObj.doPlay();
}
else if(counter){
var min='0'+Math.floor(counter/60);
var sec=counter%60;
sec=sec<10?'0'+sec:sec;
timeoutput=min+':'+sec;
prerollPanel.find('#preroll-counter').html(timeoutput);
counter--;
}
},
1000
);
};
if(!app.detect.player.installed){
app.messages.playerrequired();
return;
}
var ourl='http://'+location.host;
var url='http://'+location.host;
var streamUrl='';
var authPassed=false;
var ramUrl=url+'/play/station/'+id+'/?ec='+self.pageEnv.ec;
ramUrl+='&task=playStation.'+id+'&section='+self.pageEnv.section;
if(!app.detect.isRp){
var hash=encodeURIComponent('act.rp.openStation.'+id);
ourl+='/play/init/?hash='+hash+'&page='+self.pageEnv.page_path;
location.hash='';
location.replace(ourl);
return false;
}
var playStreamUrl=function(url,clipMeta,trackParams){
if(clipMeta.error){
return;
}
if(clipMeta[0]){clipMeta=clipMeta[0];}
if(clipMeta&&clipMeta.title){
app.RTracking.trackClick(trackParams);
clipMetaChange(clipMeta);
trigger('playstationbegin',[id]);
RP('playClipEx',url,'showinnowplaying=0');
}
};
app.ws.get('station',id,{station_id:id,imagetype_code:'144x81',want_url:1},function(clipMeta){
if(clipMeta&&clipMeta[0]){
clipMeta[0].is_paid=parseInt(clipMeta[0].is_paid,10);
var trackParams={
type:'playStation',
id:id,
free:clipMeta[0].is_paid?'NO':'YES',
media:clipMeta[0].type
};
if(clipMeta[0].is_paid==1&&!app.auth.hasRealMusic()){
trackParams.type='RMupsell';
app.RTracking.trackClick(trackParams,function(){
location.hash='#act.panel.freeTrial.playStation.'+id;
app.act.panel.select('rm-upsell',0);
});
}
else{
if(!prerolled){
app.advert.triggerAdRefresh('audio');
app.advert.triggerAdRefresh('audiompu');
}
if(self.pageEnv.ads.pr_audio){
app.advert.addAdContainer({format:'audio',bid:self.pageEnv.ad_bid});
}
app.advert.addAdContainer({format:'audiompu',bid:self.pageEnv.ad_bid});
self.setTimeout(function(){
if(app.detect.isRp&&!app.auth.isSubscriber()&&!clipMeta[0].type.match(/bbc/)&&self.advertisement&&self.advertisement['audio']&&!skipPreroll){
playPreroll();
return;
}
else if(clipMeta[0].type&&clipMeta[0].type.match(/world/)){
$.get(ramUrl,function(r){
playStreamUrl(r,clipMeta,trackParams);
});
}
else{
playStreamUrl(ramUrl,clipMeta,trackParams);
}
app.session.set({panelEl:{music:''},nps:id});
},1400);
}
}
});
},
checkAndInit:function(station_id){
var pState=RP('GetPlayerState');
function initPanel(id){
function startdelayed(id){
$('#tab-related-info').show();
var _bstate=app.act.page.getState('badgeEl');
var _pstate=app.act.page.getState('panelEl')||{};
_pstate=_pstate.music||app.act.panel.selected();
if(
(_bstate!='collapsed'&&(!_pstate||_pstate=='related-info'))||
(_bstate=='collapsed'&&!_pstate)
){
if(!app.np.is_inited()){app.np.init();}
trigger('playstationbegin',[id]);
}
self.setTimeout(function(){
pub.clipidchange(id);
},100);
}
if(id){
startdelayed(id);
}
else{
self.setTimeout(function(){
app.act.page.getState('nps',function(r){
if(r&&RP('GetClipInfo',"clipId")){
startdelayed(r);
}
});
},100);
}
}
if($.inArray(pState,[1,2,3,4,5])>-1){
initPanel(station_id||null);
}
return false;
},
onPanelReady:function(){
checkClipIdChange();
},
getClipDataByAjax:function(clipId){
var videoclipmediaItem=null;
var $url='/play/video/'+clipId+'.json';
$.ajax({
url:$url,
dataType:'json',
async:false,
success:function(r){
videoclipmediaItem=r.videoclipmedia[0];
var i;
for(i in r.videoclipmedia){
if(r.videoclipmedia[i].bandwidth=='m'){
videoclipmediaItem=r.videoclipmedia[i];
}
}
}
});
return videoclipmediaItem;
},
getContextpane:function(videoclipMedia){
var contextpane='default';
if(videoclipMedia.format=='flv'){
if(self.pageEnv.ec=='uk'&&videoclipMedia.streamer_file.indexOf('/itn/')==0){
contextpane='itn';
}
}
if(videoclipMedia.format=='rm'){
if(videoclipMedia.content_type=='musicvideo'){
contextpane='musicvideo';
}
}
return contextpane;
},
playVideo:function(id,mediatype,contextPane){
pub.stop();
if(app.act.badge&&app.act.badge.getState()=='expanded'){app.act.badge.toggle();}
location.hash='';
if(mediatype==undefined||contextPane==undefined){
var videoClipData=app.realplayer.getClipDataByAjax(id);
mediatype=videoClipData.format;
contextPane=app.realplayer.getContextpane(videoClipData);
}
if(mediatype=='rm'){
if(!app.detect.player.installed){
app.messages.playerrequired();
return;
}
}
if(contextPane==undefined){
contextPane='default';
}
var trackParams={
id:id,
type:'playVideo',
PG:self.pageEnv.page.split('/').slice(0,2).join('/'),
media:contextPane||'video'
};
if(contextPane=='superpass'){
trackParams.partner={
'2279':function(){var idINT=parseInt(id);return idINT>22791?'france24':'aljazeera';}(),20484:'bbcworldnews',2277:'cnn',2280:'deutschewelle',2278:'euronews'
}[id.substr(0,4)]||id;
if(!self.pageEnv.cc){
app.act.page.getState('cc',function(cc){
self.pageEnv.cc=cc;
if(!self.pageEnv.cc){
app.ws.get('getIp',function(r){
self.pageEnv.cc=r.country_code||self.pageEnv.ec;
app.act.page.setState({cc:self.pageEnv.cc});
app.realplayer.playVideo(id,mediatype,contextPane);
});
return false;
}
else{
app.realplayer.playVideo(id,mediatype,contextPane);
}
});
return false;
}
if(app.realplayer.gbl.isBlocked(self.pageEnv.cc,'superpass',id)){
trackParams.type='SPgeoblocked';
app.RTracking.trackClick(trackParams);
app.messages.contentRestricted();
return false;
}
}
if(mediatype=='rm'){
var playurl='/play/video/'+contextPane+'/'+id;
var backreference=self.pageEnv.page_path;
if(self.pageEnv.page_path.indexOf('video/player/rm')>=0){
backreference=$('#backreference').attr('backreference');
}
playurl+='?backreference='+backreference;
playurl+='&ec='+self.pageEnv.ec+'&task=playVideo.'+id+'.rm.'+contextPane+'%26path='+self.pageEnv.page_path;
if(!app.detect.isRp){
var hash=encodeURIComponent('act.rp.openVideo.'+id+'.rm.'+contextPane);
var ourl=location.protocol+'//'+location.host+'/play/init/'+'?hash='+hash+'&page='+self.pageEnv.page_path;
location.replace(ourl);
return false;
}
else{
app.RTracking.trackClick(trackParams);
RP('playClip',location.protocol+'//'+location.host+playurl,'showinnowplaying=1');
}
}
else if(mediatype=='flv'){
var _flvSection=(self.pageEnv.section!='music')?'video':'music';
var playurl=location.protocol+'//'+location.host+'/'+_flvSection+'/'+contextPane+'/?id='+id;
window.location=playurl;
return false;
}
},
stop:function(){RP('handleAction','Stop()');},
play:function(){RP('handleAction','Play()');},
pause:function(){RP('handleAction','Pause()');},
openSignInDialog:function(){
RP('handleAction','SignIn()');
},
doSignOut:function(){
RP('LogoutCurrentUser');
location.reload();
}
});
app.act.rp={
checkAndInit:pub.checkAndInit,
onPanelReady:pub.onPanelReady,
openStation:function(id){
var browserurl=location.href;
browserurl=browserurl.replace('openStation','playStation');
RP('OpenURLInPlayerBrowser',browserurl);
},
openVideo:function(){
var urlParts=location.href.split('#');
urlParts[1]=urlParts[1].replace('openVideo','playVideo');
var params=urlParts[1].split('.');
app.act.rp.playVideo(params[3],params[4],params[5]);
},
triggerChange:function(){
pub.statechange(checkClipIdChange);
pub.positionlengthchange(checkClipIdChange);
},
removeTrigger:function(){
unBindEvent('statechange',checkClipIdChange);
unBindEvent('positionlengthchange',checkClipIdChange);
},
playVideo:pub.playVideo,
playStation:pub.playStation,
stop:pub.stop,
play:pub.play,
pause:pub.pause,
openSignInDialog:pub.openSignInDialog,
doSignOut:pub.doSignOut,
getCopyright:pub.GetCopyright,
getError:pub.getError,
getTitle:pub.GetTitle,
getClipid:pub.getClipid,
clearPlayList:function(){RP('clearNowPlaying');}
};
pub.statechange(function(player,stateId,state){
if(stateId===0){
location.replace(location.href.split('#')[0]+'#');
}
});
return pub;
}());
$("a[href*='#act']").live('click',function(){
self.setTimeout(function(){$(location).trigger('change');},20);
}
);
document.domain=document.domain.split('.').slice(-2).join('.');
if(typeof app.snippets==='undefined'){
self._location=(parent&&parent.location)?parent.location:self.location;
}
else{
self._location=self.location;
}
app.click_handler=function(e){
var t=$(e.target),curT=$(e.currentTarget),tPar=t.parent();
var elA=(t.is('a,dt')&&t.attr('href')&&t)||(curT.is('a')&&curT.attr('href')&&curT)||(tPar.attr('href')&&tPar)||(t.closest('a').attr('href')&&t.closest('a'));
var href=(elA&&$(elA).attr('href'))||'';
var tParams={};
var clickDispatcher=function(){
var p=$(t.parent());
switch(true){
case p.hasClass('tabs'):
tParams={type:'cl-moduleTabs',TITLE:t.attr('id'),LNK:t.html()};
break;
case t.hasClass('flyeritem'):
case t.parents('.flyeritem').length:
tParams={type:'cl-flyer',TITLE:t.attr('id')};
break;
case p.parent().is('.subNavItem'):
tParams={type:'smod-click',TITLE:t.html()};
break;
case t.is('#createnewlink'):
tParams={type:'smod-newaccount'};
break;
case t.hasClass('ui-badge-toggle'):
case t.hasClass('ui-resizable-handle'):
tParams.type='cl-panel_'+{'collapsed':'exp','expanded':'coll'}[app.act.badge.getState()];
break;
case t.hasClass('paneltab'):
tParams={type:'cl-paneltab',TITLE:t.attr('href').replace('#',''),LNK:t.html()};
break;
case t.is('span.genre_title'):
tParams={type:'cl-panel-rm-search',TITLE:p.attr('id'),LNK:t.html()};
break;
case t.is('#loginlink'):
tParams={type:'smod-login'};
break;
case p.parent().is('#langsel'):
tParams={type:'footer-lang-select'};
break;
case href.match(/games\/play/):
var params=href.split('/');
tParams={type:'gameclick',game:params.pop(),category:params.pop()};
break;
case t.is('.nava'):
tParams={type:'naviclick',LNK:href.replace(/\?.*$/,'')};
break;
default:
break;
}
if(tParams.type){
app.RTracking.trackClick(tParams);
}
};
var _hash=href.match(/#act\.(\w+)\.(\w+)\.(\d+)\.?(\w+)?\.?(\w+)?/);
if(_hash){
if($(tPar).is('.slidecontent')){
try{
var title=encodeURIComponent($(t).next().find('h3').text());
app.RTracking.trackClick({type:'teaserclick',TITLE:title,media:_hash[2],id:_hash[3]});
}catch(e){}
}
if(href.match(/blog\.post/)){
app.RTracking.trackClick({type:'blogmoreclick',TITLE:'',id:_hash[3]});
}
if(href.match(/blog\.comment/)){
app.RTracking.trackClick({type:'blogcommentclick',TITLE:'',id:_hash[3]});
}
if(_hash[2]==='playStation'&&!app.auth.isSubscriber()){
app.advert.adRefresh();
}
return;
}
else{
clickDispatcher();
return;
}
var local_href_base=self._location.href.split('/').slice(0,3).join('/')+'/';
var elemAnchor_href_base=href.split('/').slice(0,3).join('/')+'/';
var localhref='';
var exthref='';
var appendSrcCodes=false;
var noRTrackhref=href.replace(new RegExp("\/R\/R\..*?\.R\/"+self._location.host),'');
if(noRTrackhref.substr(0,1)==='/'){
localhref=noRTrackhref;
}
else{
if(href.substr(0,local_href_base.length)===local_href_base){
localhref=href.substr(local_href_base.length-1);
}
else{
exthref=href.substr(elemAnchor_href_base.length-1);
}
}
if(exthref){
var extpath=exthref.split('/');
}
if(localhref){
var localpath=localhref.split('/');
if($.inArray(localpath[1],['download','order'])){
appendSrcCodes=true;
}
}
else{
var urlParts=$.urlhelper.matchUrl(href);
$.each(['real.com','realnetworks.com','realplayer.com','realarcade.com','rhapsody.com'],
function(k,v){
if(urlParts.host&&urlParts.host.substring(urlParts.host.indexOf(v))===v){
appendSrcCodes=true;
}
}
);
}
if(appendSrcCodes){
elA.href=app.srcTracking.appendSrcCodesToUrl(href);
}
};
app.srcTracking={
cookieName:'euSRCcodes',
srcCodes:'opage,cpath,rsrc,tps,r1e,src,s',
srcCodesMultiValue:'src,rsrc',
srcCodesSingleValue:'opage,cpath,tps,r1e,s',
doCleanHref:function(){
var qstr=self._location.href.split('?').slice(1).join('?').split('#')[0];
this.storeSrcCodesByQueryString(qstr);
var cleanhref=self._location.href;
$.each(this.srcCodes.split(','),
function(k,v){
cleanhref=$.urlhelper.removeGetParamInUrl(cleanhref,v);
}
);
var pcode=$.urlhelper.getGetParamFromUrl(qstr,'pcode');
if(pcode){
this.storePcode(pcode);
cleanhref=$.urlhelper.removeGetParamInUrl(cleanhref,'pcode');
}
if(cleanhref.substr(-1)==='?'){
cleanhref=cleanhref.substr(0,cleanhref.length-1);
}
},
storePcode:function(pcode){
$.cookie('pcode',self,pcode,{path:'/',domain:'real.com',expires:45});
},
storeSrcCodesByQueryString:function(qstr){
var cookieCodes=$.cookie(this.cookieName)||'';
var cookieCodesBefore=cookieCodes;
cookieCodes=this.__appendSrcCodes(cookieCodes,qstr,0);
if(cookieCodes&&cookieCodes!==cookieCodesBefore){
$.cookie(this.cookieName,self,cookieCodes,{path:'/',domain:'real.com'});
}
},
appendSrcCodesToUrl:function(url){
var cookieCodes=$.cookie(this.cookieName);
var parts=url.split('#');
if(cookieCodes){
parts[0]=this.__appendSrcCodes(parts[0],cookieCodes,1);
}
if(!$.urlhelper.getGetParamFromUrl(url,'pcode')){
var pcode=$.cookie('pcode');
if(pcode){
parts[0]=$.urlhelper.replaceGetParamInUrl(parts[0],'pcode',pcode);
}
}
return parts.join('#');
},
__appendSrcCodes:function(qstr1,qstr2,olderNew){
var qpar={};
$.each(this.srcCodes.split(','),function(k,v){
var value=$.urlhelper.getGetParamFromUrl(qstr2,v);
if(value){qpar[v]=value;}
});
$.each(this.srcCodesSingleValue.split(','),function(k,v){
var newValue=qpar[v];
if(!olderNew&&newValue){
qstr1=$.urlhelper.replaceGetParamInUrl(qstr1,v,newValue);
}
else if(newValue){
var value=$.urlhelper.getGetParamFromUrl(qstr1,key);
if(!value){
qstr1=$.urlhelper.replaceGetParamInUrl(qstr1,v,newValue);
}
}
});
$.each(this.srcCodesMultiValue.split(','),function(k,v){
var values=[],
oldValues=($.urlhelper.getGetParamFromUrl(qstr1,v)||'').split(','),
newValues=(qpar[v]||'').split(',');
var addNewValues=function(){
$.each(newValues||[],function(kk,vv){
if(vv){
if(!$.inArray(vv,values)){
values[values.length]=vv;
}
}});
};
var addOldValues=function(){
$.each(oldValues||[],function(k,vv){
if(vv){
if(!$.inArray(vv,values)){
if(!$.inArray(vv,newValues)){
values[values.length]=vv;
}
}
}});
};
if(olderNew){
addNewValues();addOldValues();
}
else{
addOldValues();addNewValues();
}
if(values.length>=1){
qstr1=$.urlhelper.replaceGetParamInUrl(qstr1,v,values.join(','));
}
});
return qstr1;
}
};
app.RTracking={
page:null,
imgPath:'http://stats.rnhh.de',
init:function(params){
var p=params||{};
if(typeof p.autoload==='undefined'){p.autoload=true;}
if(p.autoload){
this.onPageLoaded();
}
return'';
},
getRTrackStr:function(type,trackParams){
var trackStr='';
$.each(trackParams,function(k,v){
trackStr+=k+'='+v+';';
});
return'/R/R.reload.'+type+'.'+trackStr+'./R/';
},
getBasicRTrackParams:function(params){
return $.extend({
VID:this.getVisitorId()||'',
UID:app.auth.getUserGuid()||'',
SN:app.auth.getUsersServices()||'NULL',
EC:self.pageEnv.ec,
PG:this.getPage()
},params||{});
},
loadTrackImage:function(type,trackParams,callback){
var trackStr=this.getRTrackStr(type,trackParams);
var t=(new Date()).getTime();
var host=self.pageEnv.ec+'.real.com/';
var trackUrl=this.imgPath+trackStr+host+'fd/img/track.png?t='+t;
if(app.debug){
app.debug('track %s: %o %s',type,trackUrl);
}else{console.log('track %s: %o %s',type,trackUrl);}
if(self.pageEnv.env!=='live'){
if($.isFunction(callback)){callback();}
return;
}
self['trackImg'+t]=new Image();
if($.isFunction(callback)){callback();}
self['trackImg'+t].src=trackUrl;
},
addRTrackingToUrl:function(type,url,params){
var trackParams=this.getBasicRTrackParams(params);
var trackStr=this.getRTrackStr(type,trackParams);
url=trackStr+url.split('http://').slice(1).join('http://');
return url;
},
trackLogin:function(params){
var trackParams=this.getBasicRTrackParams(params);
this.loadTrackImage('login',trackParams);
},
getPage:function(){
var trackPage;
if(this.page){return this.page;}
try{
trackPage=self._location.pathname.split('&')[0];
if(self.pageEnv&&self.pageEnv.track_page_path){
trackPage=self.pageEnv.track_page_path;
}
}
catch(e){return'';}
this.page=this.getCleanPage(trackPage);
return this.page;
},
getCleanPage:function(p){
if(!p.match(/\/$/)){p+='/';}
if(!p.match(/^\//)){p='/'+p;}
return p;
},
pageTrackType:'page',
setPageTrackType:function(ptt){
this.pageTrackType=ptt;
},
pageTrackParams:{},
onPageLoaded:function(){
var trackParams=this.getBasicRTrackParams($.extend(
self.pageEnv&&self.pageEnv.page_path&&self.pageEnv.page_path.indexOf('404')>-1?{ERROR:404}:{},{
PG:app.RTracking.getPage(),
OS:(app.detect.OS&&app.detect.OS.name)||'unknown',
BRO:(app.detect.isRp&&'realplayer')||(app.detect.browser&&app.detect.browser.name)||'unknown',
BROV:(app.detect.isRp&&app.detect.getPlayerVersion())||(app.detect.browser&&app.detect.browser.version)||'unknown'
}));
this.pageTrackParams=trackParams;
this.loadTrackImage(this.pageTrackType,trackParams);
},
addClickTrackingToUrl:function(url,params){
return this.addRTrackingToUrl('click',url,params);
},
trackClick:function(params,onTrackedHandler){
var type=params.type||'click';
delete params.type;
var trackParams=this.getBasicRTrackParams(params);
this.loadTrackImage(type,trackParams,onTrackedHandler);
},
getVisitorId:function(){
var VID=$.cookie('euVID');
if(VID){return VID;}
var today=new Date();
var unique=(Math.random()*100000000000000000).toString()+'_'+today.getTime().toString();
$.cookie('euVID',self,unique,{path:'/',domain:'real.com',expires:(365*5)});
return unique;
},
campaign:function(params){
var trackParams={
title:params.title,
partner:params.partner,
EC:self.pageEnv.ec,
PG:app.RTracking.getPage()
};
this.loadTrackImage('campaign',trackParams);
}
};
app.GA={
add:function(){
if(!(self.pageEnv&&self.pageEnv.previewmode)){
var prot=location.protocol;
var uacode=self.pageEnv.uacode||'UA-324895-26';
var ua=navigator.userAgent;
var gaJsHost=(prot==='https:')?'https://ssl.':'http://www.';
var gaUrl=gaJsHost+'google-analytics.com/ga.js';
var gaPage='/('+(app.detect.isRp?'using-player':'using-browser')+')'+app.RTracking.getPage();
$.script.add(gaUrl,false,20,function(){
if(!_gat){return;}
var pageTracker=_gat._getTracker(uacode);
pageTracker._initData();
pageTracker._trackPageview(gaPage);
},'async');
}
}
};

app.blog.flvplayer=function(player_id,videoclip_id){
var clip_url=null;
this.init=function(){
var $url='/play/video/'+videoclip_id+'.json';
$.get($url,function(r){
if(!r.error){
var i;
for(i=1;i<r.videoclipmedia.length;i++){
if(r.videoclipmedia[i].bandwidth=='m'||r.videoclipmedia[i].bandwidth==null){
clip_url=r.videoclipmedia[i].stream_url;
flowplayer("flowplayer_"+videoclip_id,
{
src:"/static/swf/player/flowplayer.commercial-3.2.1.swf",
wmode:'transparent',
cachebusting:false
},
{
key:'#$e73af8695d619158b51',
clip:{
autoPlay:false,
autoBuffering:true,
url:clip_url
}
});
break;
}
}
}
else{
console.log("error: "+r.error);
}
});
};
};
app.blog.rmplayer=function(player_id,videoclip_id){
var clip_url=null;
this.init=function(){
var $url='/play/video/'+videoclip_id+'.json';
$.get($url,function(r){
if(!r.error){
var i;
for(i=0;i<r.videoclipmedia.length;i++){
if(r.videoclipmedia[i].bandwidth=='m'||r.videoclipmedia[i].bandwidth==null){
clip_url=r.videoclipmedia[i].stream_url+'?rn.render=RAM';
var $attrs={
src:clip_url,
width:460,
height:368,
controls:'ImageWindow,ControlPanel',
console:'video'+player_id,
autostart:true,
autogotourl:false,
center:true,
maintainaspect:true,
pluginspage:false,
loop:false,
nojava:true,
nologo:false,
nolabels:true,
numloop:0,
shuffle:false
};
var NSPlugin=(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length);
if(NSPlugin){
output='<embed SCRIPTCALLBACKS="None"';
output+=' id="RMPlayer_'+player_id+'_EMBED" name="RMPlayer_'+player_id+'_EMBED" type="audio/x-pn-realaudio-plugin" ';
$.each($attrs,function(attr){
output+=attr+'="'+this+'" \n';
});
output+='>';
output+='</embed>';
}
else{
output='<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" id="RMPlayer_'+player_id+'_ACVTX" width="'+$attrs.width+'" height="'+$attrs.height+'">';
$.each($attrs,function(attr){
output+='<param name="'+attr+'" value="'+this+'" />';
});
output+="</object>";
}
$('#'+player_id).append(output);
break;
}
}
}
else{
console.log("error: "+r.error);
}
});
};
};app.bookmarkshare={
init:function(el){
el=el||$('#content');
var self=this;
if(app.detect.browser.name.match(/(Opera|Chrome)/)){
$(el).find('dd.bookmark').remove();
}
$(el).find('dl.bookmark_share').each(function(k,v){
var title=$(this).attr('bookmark_share_title').replace(/\+/g,' ');
var url=decodeURIComponent($(this).attr('bookmark_share_url'));
$(this).find('a.email').click(
function(){
self.shareEmail($(this));
}
).end().find('a.bookmark')
.click(
function(){
self.createBookmark(title,url);
}
);
});
},
createBookmark:function(title,url){
if(!(title&&url)){return;}
if(app.detect.isRp){
app.favorites.addWeb({
title:title,
url:url,
path:'Web Pages'
});
}
else if(window.sidebar){
window.sidebar.addPanel(title,url,"");
}
else if(window.external){
window.external.AddFavorite(url,title);
}
return false;
},
shareEmail:function(obj){
window.open(obj.attr('href'),'popup','width=394,height=400,location=no,scrollbars=no,status=no,resizable=no');
}
};
app.edition={
cookie:null,
ec:self.pageEnv.ec,
init:function(){
var eSel=$('#footer .langsel');
if(app.detect.isRp){
this.cookie=$.cookie("Edition");
}
$('li[ident='+this.ec+']',eSel).addClass('active');
eSel.click(
function(e){
e.preventDefault();
var el=$(e.target);
var ec=el.attr('ident');
if(ec){
if(app.detect.isRp){
app.edition.setDef(ec);
}
else{
app.edition.switchEdition(ec);
}
}
}
);
},
getCookieSplit:function(){
var c=this.cookie.match(/(.*&)?(ED=)(\w*)(&.*)?/);
return c&&c.slice(1,c.length);
},
getEditionFromCookie:function(){
var c=this.getCookieSplit();
return c&&c[2];
},
getGuideURL:function(ed){
var guideMap={
"asia-en":"au",
"zh-cn":"guide.cn",
ja:"japan",
ko:"korea",
hk:"hongkong",
tw:"taiwan",
"pt-br":"brazil",
de:"germany",
es:"spain",
fr:"france",
it:"italy",
nl:"netherlands",
uk:"uk",
eu:"europe",
latam:"latam",
us:"home"
};
var g=guideMap[ed]+'.real.com/';
if(ed.match(/(de|es|fr|it|nl|eu)/)){
if(self.pageEnv.env.match(/(development|staging)/)){
var tmp=location.href.match(/^(http:\/\/)([\w]+)(\.dev|\.reload\.staging)(\.euro\.real\.com)(.*)/);
tmp[2]=ed;
g=tmp.slice(2,tmp.length).join('');
}
else{
g+=self.pageEnv.page_path;
}
}
else if(!ed.match(/(asia-en|zh-cn|us|hk)/)){
g+='guide/';
}
return g||null;
},
switchEdition:function(ec){
var u="ht"+"tp://"+this.getGuideURL(ec);
window.open(u,'_rpbrowser');
},
setDef:function(ec){
if(this.cookie){
var c=this.getCookieSplit();
c[2]=ec;
this.cookie=c.join('');
}
else{
this.cookie="CV=1&ED="+ec+"&TR=0&SET=user_session";
}
$.cookie("Edition",self,this.cookie,{
expires:2000,
path:'/',
domain:'.real.com',
secure:false
});
this.switchEdition(ec);
}
};
app.favorites=(function(){
var parex=parent.window.external;
var addWebFav=function(p){
if(!(p.title&&p.url)){
return;
}
parex.AddWebFavorite(p.path,p.title,p.url,p.icon);
};
var addClipfav=function(p){
if(!(p.title&&p.url)){
return;
}
var startP=p.startpos||'00:00:00.0';
parex.AddClipFavorite(p.path,p.title,p.url,p.icon,p.startpos);
};
var remFavs=function(p){
if(!(p.path&&p.title)){
return;
}
parex.RemoveFavorite(p.path,p.title);
};
var numFavs=function(){
parex.GetNumFavorites("",false);
};
return{
addWeb:function(p){
addWebFav(p);
},
addClip:function(p){
addClipfav(p);
},
remFavs:function(p){
remFavs(p);
}
};
}());
app.flvplayer.ew_vast={
playAd:function(player,ad,theclip){
this.playStream(player,ad.videourl,theclip);
if(ad.track_start){
var t=(new Date()).getTime();
self['trackImg'+t]=new Image();
self['trackImg'+t].src=ad.track_start;
}
},
playStream:function(player,adUrl,theclip){
flowplayer("flowplayer",
{
src:"/static/swf/player/flowplayer.commercial-3.1.5.swf",
wmode:'transparent',
key:'#$f15f579f8f3a0868373',
cachebusting:false
},
{
key:'#$f15f579f8f3a0868373',
playlist:[{
url:theclip,
preroll:escape(adUrl),
onStart:function(clip){
this.getPlugin("play").hide();
app.flvplayer.hideAdHeadline();
},
onFinish:function(clip){
console.log('clip end',clip.title);
}
}],
plugins:{
controls:{
url:escape('/static/swf/player/flowplayer.controls-3.1.5.swf')
,autoHide:"always"
},
UIF_Plugin:{
url:escape('/static/swf/player/UIFPlugin-3.1.5.swf'),
midroll_video_length:'100',
overlay_delay:'3',
ad_countdown:true,
ad_countdown_position:'top',
ad_countdown_text:$.loc('Advertisement')+' [time]s - [percent]',
ad_countdown_text_color:'0xffffff',
ad_countdown_color:'0x232323',
ad_countdown_opacity:0.5
}
}
}
);
$('#flv_play_video').css('display','block');
}
};
app.flvplayer.real_rtmp_preroll={
playAd:function(player,ad,clip){
var playAdUrl=function(url){
console.log('playAdUrl',url,clip);
var leClip,adstreamer,adstreamurl;
if(url.match(/rtmp/)){
var splitResult=url.split("vod");
var adstreamer=splitResult[0]+'vod';
var adstreamurl=splitResult[1];
adStreams={
url:adstreamurl,
netConnectionUrl:adstreamer
};
}
else{
adStreams={
url:url
};
}
adStreams.scaling='orig';
adStreams.metaData=false;
adStreams.controls={
url:escape('/static/swf/player/flowplayer.controls-3.2.1.swf'),
play:false,
volume:false,
mute:false,
time:true,
stop:false,
playlist:false,
fullscreen:false,
enabled:{
scrubber:false
}
};
adStreams.linkUrl=encodeURIComponent(self.advertisement['video'].clickthroughurl);
adStreams.linkWindow='_blank';
adStreams.onFinish=function(){
this.getPlugin("play").hide();
app.flvplayer.hideAdHeadline();
};
if(typeof clip=='string'){
leClip={
url:clip
};
}
else
if(clip.stream_url.match(/^(http)/)){
leClip={
url:clip.stream_url
};
}
else
if(clip.streamer_file){
leClip={
provider:'rtmp',
streams:[{
url:clip.streamer_file,
scaling:'orig',
metaData:false
}],
netConnectionUrl:clip.streamer_server
};
}
var playlist=[adStreams,leClip];
app.flvplayer.real_rtmp_preroll.playStream(player,ad,null,playlist);
var t=(new Date()).getTime();
self['trackImg'+t]=new Image();
self['trackImg'+t].src=self.advertisement['video'].track_start;
};
if(ad.videourl.match(/^rtmp:\/\//)){
playAdUrl(ad.videourl);
}
else{
$.ajax({
url:ad.videourl,
context:document.body,
success:function(data){
if(data.videoclipmedia&&data.videoclipmedia[0].stream_url){
playAdUrl(data.videoclipmedia[0].stream_url);
}
else{
app.flvplayer.hideAdHeadline();
if(typeof clip=='string'){
app.flvplayer.play(clip);
}
else if(clip.stream_url.match(/^(http)/)){
app.flvplayer.play(clip.stream_url);
}
else if(clip.streamer_file){
app.flvplayer.playRtmp(this,null,clip);
}
}
},
error:function(r){
app.flvplayer.hideAdHeadline();
if(typeof clip=='string'){
app.flvplayer.play(clip);
}
else
if(clip.stream_url.match(/^(http)/)){
app.flvplayer.play(clip.stream_url);
}
else if(clip.streamer_file){
app.flvplayer.playRtmp(this,null,clip);
}
}
});
}
},
playRtmp:function(player,ad,clipObj){
var clip={
provider:'rtmp',
streams:[{
url:clipObj.streamer_file,
netConnectionUrl:clipObj.streamer_server,
scaling:'orig',
metaData:false
}],
netConnectionUrl:clipObj.streamer_server
};
this.playStream(player,null,null,[clip]);
},
playStream:function(player,ad,streamer,playlist){
console.log('playStream',player,ad,streamer,playlist);
flowplayer("flowplayer",{
src:"/static/swf/player/flowplayer.commercial-3.2.1.swf",
wmode:'transparent',
cachebusting:false
},{
key:'#$e73af8695d619158b51',
clip:{
autoPlay:true,
autoBuffering:true
},
playlist:playlist
});
$('#flv_play_video').css('display','block');
}
};
app.genrebrowser=(function(){
var free_stations_only=false;
var init=function(){
var panelEl=$('#panel-realmusic');
var searchListBox=panelEl.find('#station_list_content');
var artistList=$('div.artist_stations .search_result_output',searchListBox);
var genreList=$('div.genre_stations .search_result_output',searchListBox);
function resizeArtistList(){
var toHeight=($(window).height()-120-81);
$(artistList).css({'height':toHeight,'max-height':toHeight});
$(searchListBox).css({width:($(window).width()-320-190)});
}
$(window).resize(resizeArtistList);
resizeArtistList();
$('.display_free_stations .checkbox',panelEl).click(function(){
free_stations_only=!free_stations_only;
var output=$(panelEl).find('.search_result_output .dyn_list');
var paid=(free_stations_only)?'no':1;
startSearch(null,1,{paid:paid});
});
var rmGenres=$(panelEl).find('.realmusic_genres');
var rmGenresOver=$(rmGenres).find('.overflower');
$('.realmusic_genres .subgenre_deeper',panelEl).click(function(){
var _this=this;
var subgenre_id=$(this).parent().attr('id').split('_')[1];
var parentId=$(this).attr('parentId')||subgenre_id;
var listId='subgenre_list_'+subgenre_id;
$('.realmusic_genres .head',panelEl).click(browseBack).addClass('sub');
$(rmGenresOver).find('.subgenre[id!=subgenre_list_'+parentId+']').hide();
var topGenreTitle=$(_this).prev().html();
if($('#'+listId).length){
$('#'+listId).show();
}
else{
app.ws.get('subGenres',subgenre_id,{genre_id:subgenre_id},
function(r){
var list='<ul class="genres subgenre txt" id="'+listId+'" >'+
'<li class="active topgenre genre_head" id="genre_'+subgenre_id+'"><span  class="genre_title">'+topGenreTitle+'</span><a class="browse_back layer2" parent="'+parentId+'"></a></li>';
$.each(r,function(k,v){
list+='<li class="topgenre" id="genre_'+v.child_genre_id+'"><span class="genre_title">'+v.child_title+'</span></li>';
});
$(rmGenresOver).append(list).find('.genre_title')
.click(function(e){
startSearch(this);
}).end()
.find('li').hover(app.hover.over,app.hover.out)
.end()
.find('.browse_back').click(browseBack);
var newLeft=getNewLeft('>');
$(rmGenresOver).animate({left:newLeft},500,'linear');
}
);
}
});
var getNewLeft=function(dir){
var curLeft=parseInt($(rmGenresOver).css('left').replace('px',''),10);
var layerWidth=parseInt($(rmGenresOver).find('ul').width());
return{'<':curLeft+layerWidth,'>':curLeft-layerWidth}[dir];
};
var browseBack=function(){
var newLeft=getNewLeft('<');
$(this).removeClass('sub');
$(rmGenresOver).animate({left:newLeft},500,'swing',function(){
$(this).css({left:newLeft});}
);
$(this).unbind('click');
};
var lastQuery={};
var lastClicked=null;
var startSearch=function(elem,repeat,p){
var el=(elem&&$(elem))||$(lastClicked);
lastClicked=el;
if(!el.hasClass('active')){
el.parent().siblings().removeClass('active');
el.parent().addClass('active');
$(artistList).showLoader({style:'positioned big margin',overlay:'white',overlayAddto:$(artistList).children().eq(0)});
$(genreList).showLoader({style:'positioned big margin',overlay:'white',overlayAddto:$(genreList).children().eq(0)});
var paramStr='',params={};
var types=['artist','genre'];
if(!repeat){
var genre_id=el.parent().attr('id').replace('genre_','');
var cacheId='p_realmusic_genrestations_'+genre_id;
params={artistgenre_id:genre_id};
if(free_stations_only){
params.paid='no';
}
lastQuery=params;
}
else{
params=$.extend(lastQuery,p);
}
$.each(params,function(k,v){
if(v!==''){
paramStr+='&'+k+'='+v;
}
});
$.each(types,function(k,v){
var getUrl='/render/m_panel/realmusic_browseresult?'+v+'=1';
var list=$('#panel_realmusic_'+v+'stations');
$.get(getUrl+paramStr,function(r){
$(panelEl).find('.'+v+'_stations').hideLoader();
if(r.error){console.error('genre browser: serror?',r,r.length);return;}
$(list).html(r)
.find('li').hover(app.hover.over,app.hover.out);
});
});
}
};
$(rmGenres).find('.topgenre .genre_title').click(
function(){
startSearch(this);
}
);
};
return{
init:function(){
init();
}
};
}());
app.helper={
getGetParam:function(name){
return $.query.get(name);
},
getTagData:function(oModule){
var self=this;
var sPagerData=oModule.attr('data');
var aPagerData=sPagerData.split(',');
var oPagerData=[];
$.each(aPagerData,function(key,value){
var aKeyValue=value.split(':');
oPagerData[aKeyValue[0]]=aKeyValue[1];
});
return oPagerData;
},
showPager:function(oModule,iAvailableRows,iItemsPerPage,iActivePage,classes){
var oPager,iPages;
if(oModule.next('.m_pager').length){
oModule.next('.m_pager').remove();
}
if(oModule.children('.pagerdata').attr('data')){
iPages=Math.ceil(iAvailableRows/iItemsPerPage);
oPager=$('<div class="m_pager m_pager_full '+classes+'" uifeature="full" pages="'+iPages+'" active="'+iActivePage+'"></div>');
}
else{
oPager=$('<div style="color: red;">Error: Attribute data is not defined</div>');
}
if(iPages>1){
oPager.insertAfter(oModule);
}
return oPager;
},
getMixinParams:function(sMixinParams){
var oMixinParams={};
aMixinParams=sMixinParams.split('&');
$.each(aMixinParams,function(key,value){
var aKeyValue=value.split('=');
oMixinParams[aKeyValue[0]]=aKeyValue[1];
});
return oMixinParams;
}
};
app.hover={
over:function(){$(this).addClass('eventhover');},
out:function(){$(this).removeClass('eventhover');}
};
app.preventPanelExpand=function(e){
var href=$(this).attr('href');
if(href.match(/\.flv/)){
e.preventDefault();
app.session.set({badgeEl:'collapsed'},function(){
location.replace(href);
$(location).change();
},1);
}
};
jQuery.fn.extend({
showLoader:function(params){
if($(this).find('.loader').length){return;}
params=$.extend({id:1,style:''},params);
var css=params.css||{},w,h;
var html=$('<div id="loader_'+params.id+'" class="loader '+params.style+'"></div>');
$(this).show();
if(params.style=='positioned'){
w=Math.floor(((this.width()||$(window).width())-8)/2);
h=($(window).height()<$(this).height())?
50:
Math.floor(($(this).height()-8)/2);
css=$.extend({left:w,top:h},css);
}
if(params.overlay){
var refEl=params.overlayAddto||$(this);
var toHeight=refEl.height()||$(this).height();
var overlay=$('<div id="overlay_'+params.id+'" class="loader_overlay '+params.overlay+'"></div>')
.css({'height':toHeight,'width':refEl.width()});
this.append(overlay);
}
this.append($(html).css(css));
},
hideLoader:function(id){
$(this).find('.loader, .loader_overlay').remove();
}
});
(function($){
$.fn.flyoutnav=function(o){
var defaults={
widthL1:240,
widthL2:480,
fullwidth:570,
navLeft:0,
tabSpacing:0,
navWidthCorrection:0,
callback:function(){}
};
o=$.extend({},defaults,o);
var nav=this;
var _openTabContents=$('.nav_tab_content',nav);
var _currentTab=null,_currentContent=null,_currentId=null,_wasActive=null,_tabPositions=[];
var _liLength={};
var _startTab=$('.start',nav)||$('#nav_tab_'+self.pageEnv.section);
var effectiveNavWidth=o.navWidthCorrection;
if(!app.detect.isRp){
$('.nav_layer .nava:[target]').each(function(){
$(this).attr('target','_self');
});
}
_currentId=_startTab.attr('id');
var _navTabs=$('.nav_tab',nav);
_navTabs.each(
function(k,v){
if($(this).attr('id')!='nav_tab_myaccount'){
var numLis=$('.nav_tab_content > ul.one > li',this).length;
var checkMoreLis=$(this).find('ul.defaultright li').length;
if(checkMoreLis&&checkMoreLis>numLis){
numLis=checkMoreLis;
}
$(this).data({'liCnt':numLis});
}
_tabPositions[k]=effectiveNavWidth;
effectiveNavWidth+=$(this).width()+o.tabSpacing;
}
);
$('.nav_tab_content:not(.fullwidth)',nav).each(
function(){
var _cWidth=($(this).hasClass('wide'))?o.widthL2:o.widthL1;
var _leftPos=0;
var i=_openTabContents.index($(this));
if($(this).hasClass('right')){
if($(this).hasClass('flyToLeft')){
_cWidth-=o.widthL1;
}
_leftPos=_tabPositions[i+1]-o.widthL1;
}
else if($(this).hasClass('absright')){
if($(this).hasClass('flyToLeft')){_cWidth-=o.widthL1;}
_leftPos=effectiveNavWidth-_cWidth;
}
else if($(this).hasClass('left')){
_leftPos=_tabPositions[i]+1;
}
$(this).css({left:_leftPos});
$(this).data({'left':_leftPos});
}
);
_currentContent=$('.nav_tab_content',_startTab);
_navTabs.hover(
function(){
_currentTab=$(this).addClass('exp active');
_currentContent=$('.nav_tab_content',$(this));
_currentContent.show();
if(_currentContent.height()<($(this).data('liCnt')*28+15)){
_currentContent.css({height:$(this).data('liCnt')*28+15});
}
flyHover($('.default_hover',_currentContent));
},
function(){
resetNav('_navTabs');
}
);
function resetNav(e){
_navTabs.removeClass('exp active');
_currentContent.stop(true,false).height('');
if(_currentContent.hasClass('flyToLeft')&&_currentContent.data('left')){
_currentContent.css({left:_currentContent.data('left')});
}
_openTabContents.hide();
_openTabContents.not('.staticwide, .fullwidth').css({width:o.widthL1}).find('.nav_layer.two:not(.active)').hide();
}
if(o.fHover){
$('.nav_tab_content .navli',nav).hover(
o.fHover.over,o.fHover.out
);
}
flyHover($('.nav_layer.one > li.navli.active',nav),1);
function flyHover(el,skipexpand){
var _layertwo=$('.nav_layer.two',el).show();
var _siblings=$(el).siblings();
var _anim={};
if(_layertwo.length){
var _hc={
leftH:_siblings.length+1,
rightH:$('li',_layertwo).length
};
if(_hc.rightH>_hc.leftH){
_anim.height=_hc.rightH*28+10;
if(skipexpand){
_currentContent.css({height:_hc.rightH*28+10});
return;
}
}
}
if(!_currentContent.hasClass('fullwidth')){
_anim.width=o.widthL2;
}
if(!(_anim.width||_anim.height)){
return;
}
if(_currentContent.hasClass('flyToLeft')){
_currentContent.css({width:o.widthL2,left:_currentContent.data('left')-o.widthL1});
return;
}
_currentContent.stop().animate(_anim,100);
}
$('.nav_tab_content .one > .navli',nav)
.hover(
function(e){
if($(this).is('.fly')){
flyHover(this);
}
if($(this).is('.active')){
$('.navli.active .two',nav).show();
}
else{
$('.navli.active .two',nav).hide();
}
},
function(e){
if($(this).is('.fly')){
var myTab=_currentContent.closest('.nav_tab');
var defHeight=$(myTab).data('liCnt')*28+14;
if(_currentContent.height()!=defHeight){
_currentContent.stop().animate({height:defHeight},100);
}
_currentContent.find('.defaultright').show();
}
}
);
o.callback();
};
}(jQuery));
$.fn.applyPager=function(el,params,callback){
var $el=(el&&el.parent())||$(this).closest('.module');
var renderPage=function(){
var $pager=$(this).find('div.m_pager');
$pager.module_id=this.id;
var module=this;
var $pages=Math.ceil($pager.attr('pages'));
var $active=1;
if($pager.attr('active')){
$active=$pager.attr('active');
}
var $uifeature='full';
if($pager.attr('uifeature')){
$uifeature=$pager.attr('uifeature');
}
var $mixinparams='';
var tab_id=$pager.module_id.replace(/^edit_/,'').replace(/-/g,'/');
var pager_id;
var parent=$(this).parent();
if(parent.is('.tabcontent')){
pager_id=parent.attr('id');
$pager.module_id=pager_id;
}
else{
pager_id=tab_id+'_page';
}
if($(module).attr('mixinparams')){
$mixinparams='&'+$(module).attr('mixinparams');
}
$pager.PageClick=function(pageNr){
$pager.pager({
pagenumber:pageNr,
pagecount:$pages,
shownTicks:5,
buttonClickCallback:$pager.PageClick,
uifeature:$uifeature
});
var url,$m_content;
if(params&&params.url){
url=params.url+'&offset='+(pageNr-1)*params.perPage;
}
else{
url='/render/'+tab_id;
url+='?page='+pageNr+$mixinparams;
var state_pagenr={};
state_pagenr[pager_id]=pageNr;
app.session.set(state_pagenr,null);
$('<div class="m_pager_loader opaque"></div>').prependTo(module);
$m_content=$('#'+$pager.module_id+" .m_content");
}
$.get(url,function(data){
$('div.m_pager_loader',module).remove();
if(params&&params.json&&params.parser){
params.parser(data.data);
}
else{
$($m_content).html($(data).find(".m_content > *"));
$pager.find('ul.pages li').hover(
app.hover.over,app.hover.out
);
}
if($m_content){
$($m_content).find('li.tooltips,li.tooltip').tooltip({fixed:true,directOffset:true,offset:[-10,-50],oneInstance:false});
$($m_content).find('li.tooltips_fix').tooltip({directOffset:true,offset:[0,0],oneInstance:false,mouseFollow:0});
}
if($(document).scrollTop()>$(module).offset().top){
$(document).scrollTop($(module).offset().top-30);
}
if(callback){
callback(pageNr);
}
if($pager.module_id.match(/m_blog-(music|video)-entries/)){
app.session.set({blogpage:pageNr});
app.bookmarkshare.init($(module));
}
});
};
$pager.pager({pagenumber:$active,
pagecount:$pages,
shownTicks:5,
buttonClickCallback:$pager.PageClick,
uifeature:$uifeature
})
.find('ul.pages li').hover(
app.hover.over,app.hover.out
);
var savedPgNr=app.session.get(pager_id);
if(savedPgNr){
$('ul.pages li.page-number:not(.prevSet)',$pager).eq(savedPgNr-1).click();
}
};
return $($el).each(renderPage);
};
$.extend(app.realplayer,(function(){
var gbl={
'gb':[20484,19816],
'us':[20484,19816,22732,25267,22779,22778,20400,20401,20423,20422,22800,22801,20402,20403,20404,20405,20406,20407,20408,20409,22780,22781,22782,22783,22784,22785,22786,22787],
'ca':[20484,19816,22732,25267,22779,22778,20400,20401,20423,20422,22800,22801,20402,20403,20404,20405,20406,20407,20408,20409,22780,22781,22782,22783,22784,22785,22786,22787]
};
function getSuperpassGbl(ec){
var rv=false;
$.each(gbl,function(key,value){
if(key===ec.toLowerCase()){
rv=value;
}
});
return rv;
}
function isBlocked(ec,product,id){
var streams=null;
switch(product){
case'superpass':
streams=getSuperpassGbl(ec);
break;
default:
return false;
}
if(streams){
if($.inArray(Number(id),streams)>-1){
return true;
}
}
}
return{
gbl:{
isBlocked:isBlocked
}
};
}()));
app.session=(function(){
var rest='/REST/session/';
var cookiename='real-web-reload-session';
var _sessionCache=null;
var _sessionCookies=[];
var _sessionType=self.pageEnv.session;
var sessionInit=function(callback){
sessionGet(null,function(r){
if(r&&r.error&&_sessionType==='server'){
sessionStart(function(r){
if(r&&r.error){return r;}
if(r&&r.data){
writeSessionCookie(r.data);
}
});
}
else if(r&&_sessionType==='client'){
if(r.data&&r.data[0]){
_sessionCache=r.data[0];
}
else{
_sessionCache=r;
}
}
if(callback){callback(_sessionCache);}
});
};
var sessionStart=function(callback){
$.getJSON(rest+'start',{},function(r){
if(callback){callback(r);}
});
};
var sessionGet=function(key,callback){
var resp;
if(_sessionCache){
resp=(key)?(_sessionCache[key]||null):_sessionCache;
if(callback){callback(resp);}
return resp;
}
if(_sessionType==='server'){
$.getJSON(rest+'get',{},function(r){
if(callback){callback(r);}
});
}
else if(_sessionType==='client'){
var sessionKeks=null;
sessionKeks=$.cookie(cookiename);
if(!sessionKeks){
if(callback){callback(null);}
}
else{
try{
var sessionObj=$.toJSON(sessionKeks)||{};
if(key){
resp=sessionObj[key]||null;
}
else{
resp=sessionObj;
}
_sessionCache=sessionObj;
if(callback&&$.isFunction(callback)){callback(resp);}
}catch(e){
$.each(e,function(k,v){app.debug(k,v);});
}
}
}
};
var sessionSet=function(params,callback,store){
_sessionCache=$.extend({},_sessionCache||{},params);
if(store){
sessionStore(callback);
}
else if(callback){
callback();
}
};
var sessionStore=function(callback){
if(_sessionType==='server'){
$.getJSON(rest+'set',_sessionCache,function(r){
if(r.data){
if(callback){callback(r);}
}
});
}
else if(_sessionType==='client'){
var sessionString;
var sessionObj=_sessionCache||{};
try{
sessionString=$.jSONToString(sessionObj);
}catch(e){app.debug('sessionStore: catched EXCEPTION',e);}
if(sessionString){
$.cookie(cookiename,self,sessionString,{
path:'/',
domain:'real.com',
secure:false
});
}
}
};
var getSessionCookie=function(){
return $.cookie(_sessionCookies[0]);
};
var writeSessionCookie=function(c){
$.each(c||[],function(k,v){
_sessionCookies.push(v.cookieName);
$.cookie(v.cookieName,self,v.cookieContent,{
path:v.cookiePath,
domain:v.cookieDomain,
secure:false
});
});
};
var sessionClear=function(){
sessionSet({panelEl:{music:null,video:null},badgeEl:null},null,1);
};
return{
init:function(callback){
sessionInit(callback);
},
start:function(callback){
sessionStart(callback);
},
set:function(params,callback){
sessionSet(params,callback);
},
store:function(callback){
sessionStore(callback);
},
get:function(key,callback){
return sessionGet(key,callback);
},
clear:function(){
sessionClear();
}
};
}());
app.smod=(function(){
function init(){
var keks=$.cookie('serviceStatus');
var RNUser=$.cookie('RNUser');
var userStatus={},sUname;
var services=[];
var login=$('.navbar_login');
var unameBox=$('#useremail');
var smod=$('.navbar');
if(!keks){
unameBox.empty();
}
else{
services=services.concat(app.auth.getServices());
}
if(app.detect.isRp){
services.push('RealPlayer');
if(RNUser){
var uname=app.auth.getUserEmail(),shortUname='';
if(uname.length>22){
shortUname=uname.substr(0,19)+'...';
}
if(unameBox.length){
unameBox.html(shortUname||uname)
.attr('title',uname);
}
$('.loggedout',login).hide();
$('.loggedin',login).show();
$('.logoutlink',login).click(function(){app.auth.logout('all');});
}
else{
$('.loggedin',login).hide();
$('.loggedout',login).show();
$('.loginlink',smod).unbind('click').click(
function(){
app.auth.login();
}
);
}
}
else if(app.detect.player.installed){
services.push('RealPlayer');
$('.loggedout',login).show();
$('.loginlink',login).click(
function(){
app.messages.browserLogin();
return false;
});
}
$.each(services,
function(k,v){
if(v){
$('#SM_'+v).addClass('has_entl');
var entl=$('#SM_'+v+' .entitlement');
if(entl.length){
entl.attr('onclick',null).unbind('click').click(function(e){
e.preventDefault();
return false;
});
}
}
}
);
}
return{
init:function(){
self.setTimeout(function(){
init();
},40);
}
};
}());
app.ws=(function(){
var staticJsonBaseUrl='http://stage-uk.euro.real.com/';
var gAPIbaseUrl='http://gapi.euro.real.com/';
var rest='/REST/';
var editionCode=(self.pageEnv&&self.pageEnv.edition)||'uk';
function responseCallback(cb,full){
return function(r){
if(cb){
if(full){
cb(r);
}
else{cb(r.data||r);}
}
};
}
function getREST(path,params,callback){
var full=false;
if(params&&params.full){
full=params.full;
delete params.full;
}
if(params){
var p=[];
$.each(params,function(k,v){
p.push(k+'='+v);
});
if(p.length){path+='?'+p.join('&');}
}
var url=rest+path;
$.getJSON(url,responseCallback(callback,full));
}
var wsMap=function(type){
return{
artistsimilars:'music/get_similar_artists/',
artistbio:'music/get_artist_biography/',
bbcschedule:'bbc/get_program_schedule/',
bbcondemand:'bbc/get_ondemand_schedule/',
station:'music/get_station_data/',
track:'music/get_track_meta/',
topLevelGenres:'music/get_toplevel_genres/',
subGenres:'music/get_sub_genres/',
getArtistStations:'music/get_artist_radio_stations/',
get_edition_genre_station_count:'music/get_edition_genre_station_count/',
get_countries_station_count:'music/get_edition_country_station_count/',
getWorldStations:'music/get_world_radio_stations/',
getGenreStations:'music/get_genre_radio_stations/',
getVideoSectionClips:'video/get_videosection_videoclips/',
getVideoSections:'video/get_videosections/',
getVideos:'video/get_videoclips/',
getMusicVideos:'video/get_videoclips/',
getMovieTrailers:'movietrailer/get_movies/',
real_img_uri:'real/img_uri/',
getBlogComments:'blog/get_comments/',
postBlogComment:'blog/add_comment/',
getBlogPosts:'blog/get_posts',
getBlogUser:'user/get_nickname'
}[type]||'';
};
var set={};
var gets={
usersession_isCacheable:0,
usersession:function(id,params,callback){
var restUrl='session/get';
getREST(restUrl,params,callback);
},
artistsimilars_isCacheable:1,
artistsimilars:function(id,params,callback){
if(!params.artist_id){return;}
getREST(wsMap('artistsimilars'),params,callback);
},
artistbio_isCacheable:1,
artistbio:function(id,params,callback){
if(!params.artist_id){return;}
var simple='';
if(params.features=='simple'){
simple='&features=simple';
}
$.get('/render/m_panel/panel_artist_bio?artist_id='+params.artist_id+simple,
function(templ){if(callback){callback(templ);}}
);
},
station_isCacheable:1,
station:function(id,params,callback){
if(!params.station_id){return;}
getREST(wsMap('station'),params,callback);
},
track_isCacheable:1,
track:function(id,params,callback){
if(!params.tracks){return;}
params.track_id=params.tracks[0];
delete params.tracks;
getREST(wsMap('track'),params,callback);
},
bbcschedule_isCacheable:1,
bbcschedule:function(id,params,callback){
var map={
423:'BBCROne',409:'BBCRTwo',5376:'BBCRTwo',410:'BBCRThree',463:'BBCRFour',2268:'BBCWrld',
605:'BBCRFiveL',411:'BBCSixMU',4423:'OneXtra',4197:'BBCSeven',604:'BBCAsian'
};
if(!params.id||!map[params.id]){return;}
getREST(wsMap('bbcschedule')+map[params.id],{},callback);
},
getSuperPassUrl:function(id,params,callback){
var map={
bbcnews:{fname:'',type:'gratis'},
aljazeera:{fname:'al_jazeera_en_me.rm',type:'gratis'},
cnn:{fname:'cnn_en_lo.rm',type:'gratis'},
deutschewelle:{fname:'RealOne-Europe-HH-live-DeutscheWelle_de-me.rm',type:'gratis'},
sntv:{fname:'RealOne-Europe-00000000-000000-ICF-Daily_Bulletin_01-me-0000.rm',type:'gratis'},
france24:{fname:'RealOne-Europe-HH-live-France24-News_en-hi.rm',type:'gratis'},
euronews:{fname:'euronews_en.rm',type:'gratis'},
comedytime:{fname:'CT_20041207-500001.rm',type:'gratis'},
bbcworld:{fname:'high.rm',type:'gratis'}
};
if(!params.id||!map[params.id]){return false;}
callback(map[params.id]);
return;
},
bbcondemand_isCacheable:1,
bbcondemand:function(id,p,callback){
if(!p.station){return;}
getREST(wsMap('bbcondemand')+p.station,{},callback);
},
topLevelGenres_isCacheable:1,
topLevelGenres:function(_void,params,callback){
getREST(wsMap('topLevelGenres'),params,callback);
},
subGenres_isCacheable:1,
subGenres:function(_void,params,callback){
if(!params.genre_id){return;}
getREST(wsMap('subGenres'),params,callback);
},
getArtistStations_isCacheable:1,
getArtistStations:function(_void,params,callback){
getREST(wsMap('getArtistStations'),params,callback);
},
getGenreStations_isCacheable:1,
getGenreStations:function(_void,params,callback){
getREST(wsMap('getGenreStations'),params,callback);
},
getWorldStations_isCacheable:1,
getWorldStations:function(type,params,callback){
var keys={genre:'artistgenre_id',country_code:'country_code',country:'country_code',language:'language_code',search:'search_string',search_string:'search_string'};
if(type){
params[keys[type]]=params[type];
}
delete(params[type]);
getREST(wsMap('getWorldStations'),params,callback);
},
get_edition_genre_station_count_isCacheable:1,
get_edition_genre_station_count:function(_void,params,callback){
getREST(wsMap('get_edition_genre_station_count'),params,callback);
},
get_countries_station_count_isCacheable:1,
get_countries_station_count:function(_void,params,callback){
getREST(wsMap('get_countries_station_count'),params,callback);
},
getVideoSections:function(id,params,callback){
getREST(wsMap('getVideoSections'),params,callback);
},
getVideoSectionClips:function(id,params,callback){
getREST(wsMap('getVideoSectionClips'),params,callback);
},
getVideos:function(id,p,callback){
getREST(wsMap('getVideos'),p,callback);
},
getMusicVideos:function(id,p,callback){
getREST(wsMap('getVideos'),p,callback);
},
getMovieTrailers:function(id,p,callback){
getREST(wsMap('getMovieTrailers'),p,callback);
},
getBlogComments:function(p,callback){
getREST(wsMap('getBlogComments'),p,callback);
},
postBlogComment:function(p,callback){
getREST(wsMap('postBlogComment'),p,callback);
},
getBlogPosts:function(p,callback){
getREST(wsMap('getBlogPosts'),p,callback);
},
getBlogUser:function(callback){
getREST(wsMap('getBlogUser'),null,callback);
},
real_img_uri:function(id,p,callback){
if(!params.img_uri){return;}
getREST(wsMap('real_img_uri'),p,callback);
},
getItemTemplate:function(id,params,callback){
id=id.replace(/-/g,'/');
var url='/render/'+id+'?listTemplOnly=1';
$.get(url,
function(templ){if(callback){callback(templ);}}
);
},
getIp:function(callback){
if(callback){
var url='/geo/ip/';
$.get('/geo/ip/',function(r){
callback(r);
});
}
}
};
var cache={};
function fresh_get(fn,id,params,callback){
if(typeof gets[fn]!='function'){
throw"unknown type:"+fn;
}
return gets[fn].apply(this,Array.prototype.slice.call(arguments,1));
}
function fresh_get_n_cache(fn,id,params,callback){
var cid=get_cache_key(id,params);
fresh_get(fn,id,params,function(){
cache[fn]=cache[fn]||{data:{},index:[]};
cache[fn].data[cid]=arguments;
cache[fn].index.push(cid);
if(cache[fn].index.length>10){
delete cache[fn].data[cache[fn].index.shift()];
}
if(callback){
callback.apply(self,arguments);
}
});
}
function get_cache_key(id,p){
segs=[];
$.each(p,function(k,v){
segs.push(k+'_'+v);
});
if(segs.length){
id=segs.join('|');
}
return id;
}
function cacheable_get(fn,id,params,callback){
cid=get_cache_key(id,params);
if(cache[fn]&&cache[fn].data[cid]){
if(callback){
callback.apply(self,cache[fn].data[cid]);
}
return;
}
return fresh_get_n_cache(fn,id,params,callback);
}
function clearCache(fn,id){
if(fn&&cache[fn]){
if(id&&cache[fn].data[id]){
delete cache[fn].data[id];
return;
}
cache[fn]={data:{},index:[]};
return;
}
cache={};
}
return{
cache:cache,
prefetch:function(fn,id,params,callback){
if(!gets[fn+'_isCacheable']){
throw'type "'+fn+'" is not cacheable';
}
cacheable_get(fn,id,params,callback);
},
flush:function(fn,id){
clearCache(fn,id);
},
set:function(fn,params,callback){
if(!sets[fn]){
return false;
}
sets[fn](params,callback);
},
get:function(fn,id,params,callback){
try{
if(params&&params.loader){
$(params.loader).showLoader();
delete params.loader;
}
}catch(oh){}
if(!gets[fn]){
return;
}
if(!gets[fn+'_isCacheable']){
fresh_get(fn,id,params,callback);
}
else{
cacheable_get(fn,id,params,callback);
}
},
map:function(t){
return wsMap(t);
}
};
}());

document.domain=document.domain.split('.').slice(-2).join('.');
app.advert={
self:self,
rand_num:Math.floor(Math.random()*10000000000),
tile_count:1,
subsInit:function(){
if(self.pageEnv.ads.viagogo){
$('<div id="viagogo_container_ad" class="'+self.pageEnv.section+'"></div').appendTo('.c480.viagogo .cheader');
$('#viagogo_panel_ad, #viagogo_container_ad').click(function(e){
var _id=$(this).attr('id');
var _href='/partners/viagogo/?src='+_id;
app.RTracking.trackClick({type:_id+'_'+self.pageEnv.section});
if(app.auth.isSubscriber()){
app.messages.viagogo();
}
else{
self.setTimeout(function(){
window.open(_href,'_rpbrowser');
},50);
}
});
}
app.advert.addAdContainer({format:'panelskin'});
},
init:function(cc){
var _ads=[];
self.setTimeout(function(){
var adContainers=['videopanel'];
if(self.pageEnv.ads.videopreroll){
app.advert.addAdContainer({format:'video'});
if(self.pageEnv.ads.mpu){
app.advert.addAdContainer({format:'videompu'});
}
}
var skyscrapertop=270;
if(self.pageEnv.ads.textlinks){
skyscrapertop+=30;
}
if(self.pageEnv.ads.rpp_fullwidth_thin){
skyscrapertop+=45;
}
$('#ads_skyscraper_left').css('top',skyscrapertop);
if($('#ads_skyscraper_left').length>0){
$('#main, .main').css('min-height',980);
}
if(self.advertisement){
var siteskin=self.advertisement.siteskin;
if(self.advertisement.allowed_ads){
adContainers=self.advertisement.allowed_ads||null;
}
if(siteskin){
if(siteskin.allowed_ads){
adContainers=siteskin.allowed_ads||null;
}
var mainEl=$('#main');
mainEl.click(function(e){
if(e.target===this||e.target==$('#content')[0]||e.target==$('#content .col.right')[0]||e.target==$('#content .col.left')[0]){
var width=(siteskin.popup&&siteskin.popup.width)||1124;
var height=(siteskin.popup&&siteskin.popup.height)||800;
self.siteskin_win=window.open(siteskin.click_through,'siteskin','width='+width+',height='+height+',location=yes,scrollbars=yes,status=yes,resizable=yes');
self.siteskin_win.focus();
}
});
if(siteskin.background_url){
mainEl.css({
background:'transparent url('+siteskin.background_url+') no-repeat center top',
cursor:'pointer'
});
}
}
}
$.each(adContainers,function(k,v){
if(self.pageEnv.ads[v]){
app.advert.addAdContainer({format:v});
}
});
app.advert.subsInit();
app.advert.adRefreshInit();
},100);
},
getSect:function(){
var sect=self.pageEnv.section||'home';
return sect;
},
addAdContainer:function(p){
var target,adEl,adCode;
if(!p.bid){
p.bid=self.pageEnv.ad_bid;
}
p=this.getAdParams(p);
if(p.format=='textlinks'){
$('.loggedout #ads_textlinks').show();
return;
}
else if(!p.format.match(/interstitial/)){
adCode=this.getIframeTag(p);
}
else{
adCode=this.getAdCode(p);
}
target=$('#ads_'+p.format);
if(self.pageEnv.page.match(/video\/player\/.+/)){
p.keys=';m=videoclip/'+$(target).attr('contentid');
}
switch(p.format){
case'audiompu':
p.format='mpu';
break;
default:
adEl=$(adCode);
break;
}
if(target.length&&adEl&&$('#adFrame_'+p.format).length===0){
self.setTimeout(function(){
target.append(adEl);
if($.browser.mozilla){
var _theframe=document.getElementById('adFrame_'+p.format);
if(_theframe){
_theframe.contentWindow.location.href=_theframe.src;
}
}
},app.advert.adFormats[p.format].refresh_delay);
}
},
checkDateRange:function(start,end){
var _mydate=new Date(),
_findate=null,
_startdate=null,
_inRange=false;
if(end){
_findate=new Date(end.y,end.m-1,end.d,end.h,end.min,end.s);
}
if(start){
_startdate=new Date(start.y,start.m-1,start.d,start.h,start.min,start.s);
}
if((!_findate||(_findate&&_mydate<_findate))&&(!_startdate||(_startdate&&_mydate>_startdate))){
_inRange=true;
}
return _inRange;
},
adIFramesToRefresh:{},
adRefreshInit:function(){
var refresh=this.adRefreshTimes[this.self.pageEnv.ec]||0;
if(typeof self.pageEnv.adRefreshTime!='undefined'){
refresh=self.pageEnv.adRefreshTime;
}
var that=this;
this.adsToRefresh=$('.ad.refresh');
if(refresh){
that.self.setInterval(function(){
that.adRefresh();
},refresh*1000);
}
},
adsToRefresh:null,
adRefresh:function(){
this.rand_num=Math.floor(Math.random()*10000000000);
$.each(this.adIFramesToRefresh,function(k,v){
var format=v.replace('adFrame_','');
if(format!=='audio'&&format!=='audiompu'){
self.setTimeout(function(){
var frame=self.frames[v];
try{
frame.location.reload();
}
catch(e){}
},app.advert.adFormats[format].refresh_delay);
}
});
},
triggerAdRefresh:function(format,instant){
this.rand_num=Math.floor(Math.random()*10000000000);
var frame=self.frames['adFrame_'+format];
if(!instant&&app.advert.adFormats[format].refresh_delay>0){
self.setTimeout(function(){
try{
frame.location.reload();
}
catch(e){}
},app.advert.adFormats[format].refresh_delay);
}
else{
try{
frame.location.reload();
}
catch(e){}
}
},
adRefreshTimes:{
uk:120,eu:120,nl:120,fr:120,it:120,es:120,de:0
},
adFormats:{
audio:{tile:5,keys:';audio=mpu1',sz:'1x2',refresh_delay:700},
audiompu:{tile:6,keys:';audio=mpu1',sz:'300x250',refresh_delay:1000,refresh:1},
mpu:{tile:2,keys:'',sz:'300x250',refresh_delay:300,refresh:1},
videompu:{tile:2,keys:';ad=videopreroll',sz:'300x250',refresh_delay:500,refresh:1},
videopanel:{tile:4,keys:';ad=videopanel',sz:'1x2',refresh_delay:1},
panelskin:{tile:5,keys:';ad=panelskin',sz:'1x2',refresh_delay:50},
underboard:{tile:1,keys:';pos=bottom',sz:'728x90',refresh_delay:200,refresh:1},
leaderboard:{tile:1,keys:';pos=top',sz:'728x90',refresh_delay:300,refresh:1},
video:{tile:4,keys:';ad=videopreroll;testad=videopreroll',sz:'2x2',refresh_delay:100},
skyscraper_left:{tile:2,keys:'',sz:'120x600',refresh_delay:0,refresh:1},
skyscraper:{tile:3,keys:'',sz:'160x600',refresh_delay:0,refresh:1}
},
getAdParams:function(p){
p.win=p.win||self;
p.format=p.format||'mpu';
p.mode=p.mode||null;
p.sect=p.sect||this.getSect(this.self.location.href);
p.bid=p.bid||this.self.pageEnv.buildid;
p.edition=p.edition||this.self.pageEnv.ec;
p.keys=p.keys||'';
return p;
},
getIframeTag:function(p){
var f=this.adFormats[p.format];
if(f&&f.refresh){
this.adIFramesToRefresh[p.format]='adFrame_'+p.format;
}
var jsonData=$.jSONToString({format:p.format,bid:p.bid});
var src=[this.self.pageEnv.BASE_PATH,'ads/advert_iframe_ext.html/',encodeURIComponent('|'+jsonData+'|')].join('');
var dims=f.sz&&f.sz.split('x');
return'<iframe src="'+src+'" width="'+(dims[0]||1)+'" height="'+(dims[1]||1)+'" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="adFrame_'+p.format+'" id="adFrame_'+p.format+'" allowtransparency="true"></iframe>';
},
getAdCode:function(p){
var adcode,services,sns,pagename;
services=app.auth.getUsersServices();
sns=(services&&services.length)?services.join(','):'NULL';
var f=this.adFormats[p.format];
if(p.sect){
var zone=self.pageEnv.page.replace(/\/+$/,'');
if(p.edition==='uk'){
p.edition='_uk';
}
pagename=p.edition+'.real.com';
if(!p.extrakeys){
p.extrakeys='';
}
var rubicon_ads_ids=['#ads_leaderboard','#ads_underboard','#ads_mpu','#ads_skyscraper_left'];
var rubicon_ads={};
for(var i in rubicon_ads_ids){
rubicon_ads[rubicon_ads_ids[i]]=$(rubicon_ads_ids[i]+' iframe');
}
if(!self.pageEnv.adRefreshTime||self.pageEnv.adRefreshTime<120){
self.pageEnv.adRefreshTime=120;
}
self.setInterval(function(){
for(var i in rubicon_ads_ids){
var frame=rubicon_ads[rubicon_ads_ids[i]].clone().hide();
$(rubicon_ads_ids[i]).html('');
frame.show().appendTo(rubicon_ads_ids[i]);
}
},self.pageEnv.adRefreshTime*1000);
}
return'';
}
};
app.badgePanels=(function(){
var _panelCache={},bp;
var panelIsCached=function(panelId){
return _panelCache[panelId];
};
var showPanelAdskin=function(ad){
var skin=$('.panelskin',bp).show();
if(ad.impression_tracker){
var _impTrack=new Image();
_impTrack.src=ad.impression_tracker;
}
if(ad.bgimage){
$(skin).css({'background-image':'url('+ad.bgimage+')'});
}
if(ad.clickthroughurl){
skin.click(function(){
window.open(ad.clickthroughurl,'_blank','width=1024,height=720,location=yes,scrollbars=yes,status=yes,resizable=yes');
});
}
};
var panelAdskinInit=function(id){
var _id=id.replace(/-/g,'');
var adCnt=0;
var panelSkinInt=self.setInterval(function(){
if(adCnt>15){
self.clearTimeout(panelSkinInt);
}
var ad=self.advertisement;
if(ad&&ad[_id]){
self.clearTimeout(panelSkinInt);
bp.addClass('panelskinad');
if(ad.callback){
ad.callback();
}
else if(_id=='tuneinnow'){
$('#badgepanel').data('tabbedpanel.'+id+'.expandBadgeTo',148);
app.act.badge.redraw();
$('#m_panel-tuneinnow_stations_image',bp).hide();
}
showPanelAdskin(ad[_id]);
}
adCnt++;
},20);
};
var callbacks={
'audiopreroll':function(){},
'rm-upsell':function(){},
'realplayer-plus':function(){},
'related-info':function(){
if(!app.np.is_inited()){app.np.init();}
},
'tune-in-now':function(){
$('.teaser li',bp).tooltip({fixed:true,offset:[-10,-20],oneInstance:false});
$('.stationlist li.tooltips',bp).tooltip({fixed:true,offset:[-10,-10],oneInstance:false});
},
'realmusic':function(){
app.genrebrowser.init();
$.each($('.genre_stations .sortable_bar',bp),function(k,v){
$(v).sort({
target:'#panel_realmusic_genrestations'
});
});
$.each(bp.find('.artist_stations .sortable_bar'),function(k,v){
$(v).sort({
target:'#panel_realmusic_artiststations'
});
});
$('.dyn_list .row',bp).hover(app.hover.over,app.hover.out);
$('.access_to_rm_stations a',bp).click(function(e){
e.preventDefault();
var el=this;
app.act.badge.toggle(function(){
location.replace($(el).attr('href'));
});
app.session.store();
}).end()
.find('.checkbox').click(function(){
$(this).toggleClass('selected');
}).end()
.find('.topgenre').hover(app.hover.over,app.hover.out);
},
'world-radio':function(){
var searchBox,container,list;
var controls=$('.worldmusic_ctrl',bp);
var searchReset=function(){
bp.find('.select_list ul').hide();
controls.find('.select_list input').each(function(){
$(this).val($(this).data('startText'));
});
};
var cc=self.pageEnv.ec=='uk'?'gb':self.pageEnv.ec;
scrollParams={offset:50};
var scroller=function(params){
if(!loading&&$(container).scrollTop()>=(container.children().eq(0).height()-container.height()-20)){
loading=true;
startSearch(scrollParams,true);
}
};
var loading=false;
var startSearch=function(params,append){
list=$('ul',container);
var loaderTop=Math.floor(container.scrollTop()+$(container).height()/2);
var loaderleft=Math.floor((container.width()-28)/2);
container.showLoader({css:{'top':loaderTop,left:loaderleft,'position':'absolute'},overlay:'white',overlayAddto:container.children().eq(0)});
if(params.country){
params.country_code=params.country;
delete params.country;
}
params.limit=append?50:50;
params.offset=(typeof params.offset=='undefined')?0:params.offset+params.limit;
scrollParams=params;
var getUrl='/render/m_panel/worldradio_station_search?';
$.each(params,function(k,v){
if(v!==''){
getUrl+=k+'='+v+'&';
}
});
getUrl+='search=1';
$.get(getUrl,function(r){
if(r.error||r.length<1){
container.hideLoader();
console.log('world radio search: error?',getUrl,r.length);
return;
}
if(append){
list.append(r);
if($('li.stopsearch',list).length){
container.unbind('scroll');
}
}
else{
list.html(r);
if($(list).find('li').length>=params.limit){
container.scroll(function(){scroller(scrollParams);});
}
}
$('li.row',list).hover(app.hover.over,app.hover.out);
loading=false;
container.hideLoader();
});
};
searchBox=$('#station_list_content');
container=$('div.search_result_output',searchBox);
list=$('ul',container);
container.scroll(function(){scroller(scrollParams);});
var ctrlHeight=$(controls).height();
var availHeight=$(window).height()-28-ctrlHeight;
function onResize(){
var availHeight=$(window).height()-28-ctrlHeight;
container.css({'max-height':availHeight-22,'height':availHeight-22});
searchBox.css({width:($(window).width()-320)});
}
$(window).resize(onResize);
onResize();
container.css({'max-height':availHeight-22,'height':availHeight-22});
var searchInput=$('span.search_station input',controls);
searchInput.focus(
function(){
$(this).data('startText',$(this).val());
$(this).val('');
}
);
$.each($('.sortable_bar',bp),function(k,v){
$(this).hover(app.hover.over,app.hover.out);
$(v).sort({
target:'#panel_world_stations_list'
});
});
$('#worldradio_choose_country_list li.first').remove().prependTo('#worldradio_choose_country_list');
$.each($('#worldradio_choose_genre input, #worldradio_choose_country input'),function(k,v){
$(v).data('startText',$(v).val());
});
var selectLists=$('#worldradio_choose_genre_list, #worldradio_choose_country_list',bp);
controls.find("span.search_button").click(
function(){
var keyword=$(searchInput).val();
if(keyword.length<2){return;}
searchReset();
startSearch({search_string:keyword},0);
}
).end()
.find("span.select").click(
function(){
var listId=$(this).attr('id')+'_list';
selectLists.hide();
$('#'+listId).toggle();
}
).end()
.find("span[id^='worldradio_choose']").hover(
app.hover.over,app.hover.out
).end()
.find('ul[id^=worldradio_choose] li').click(
function(){
var parentUl=$(this).parent();
var inputId=parentUl.attr('id').replace(/_list/,'');
var browseType=inputId.split('_')[2];
parentUl.toggle();
container.showLoader({id:'world_stations',style:'positioned big margin',overlay:'white'});
var id=$(this).attr('opt')||false;
var searchObj={};
if(id&&browseType){
searchObj[browseType]=id;
}
searchReset();
$('#'+inputId+' input',controls).val($(this).text());
startSearch(searchObj,0);
return false;
});
bp.click(
function(e){
if(!$(e.target).parents('.select_list').length){
selectLists.hide();
}
selectLists.removeClass('selected');
}
)
.keypress(function(e){
if($(e.target).is('.search')&&$(e.target).val()!=''&&e.keyCode==13){
$('.search_button',controls).click();
return false;
}
});
if($('#panel_world_stations_list li').length===0){
startSearch({country_code:cc,limit:50,sort_by:'title'},0);
}
},
superpass:function(){
var prods=null;
if(self.pageEnv.ec!='uk'){
prods={
aljazeera:22791,
bbcworldnews:20484,
cnn:22778,
deutschewelle:22800,
euronews:22782,
france24:(function(){return{en:22793,fr:22795,ar:22797}[self.pageEnv.language]||22792;}())
};
}
else{
prods={
aljazeera:22791,
cnn:22778,
deutschewelle:22800,
euronews:22782,
france24:(function(){return{en:22793,fr:22795,ar:22797}[self.pageEnv.language]||22792;}())
};
}
var content='';
$.each(prods,function(k,v){
content+='<td class="'+k+'"><a href="#act.rp.playVideo.'+v+'.rm.superpass" class="splink" /></td>';
});
bp.find('tr').html(content);
},
music_videos_editable:function(params){
params=$.extend({},{
tooltipp:1,
more_callback:function(){
app.RTracking.trackClick({type:'musicvideospanel_more_btn'});
}},params);
panelPager(params);
},
entertainment_editable:function(params){
params=$.extend({},{
more_callback:function(){
app.RTracking.trackClick({type:'entertainmentpanel_more_btn'});
}},params);
panelPager(params);
$('.listitem',bp).tooltip({fixed:true,offset:[-10,-20],oneInstance:false});
},
filmtrailers:function(params){
var type='small';
params=$.extend({
section:'movietrailers',
id:'filmtrailers',
itemWidth:{small:95,big:123}[type],
tooltipp:1,
more_callback:function(){
app.RTracking.trackClick({type:'filmtrailerspanel_more_btn'});
}
},params||{});
panelPager(params);
$('.listitem',bp).tooltip({fixed:true,offset:[-10,-20],oneInstance:false});
if(self.pageEnv.ads.videopanel){
app.advert.addAdContainer({format:'videopanel',bid:self.pageEnv.ad_bid});
var adCnt=0;
var videoPanelInt=self.setInterval(function(){
if(adCnt>100){
self.clearTimeout(videoPanelInt);
}
var ad=null;
if(self.advertisement){
ad=self.advertisement.videopanel;
}
if(ad&&ad.script){
self.clearTimeout(videoPanelInt);
videoad_width=200;
app.act.badge.redraw();
params.reserved_width=videoad_width;
panelPager(params);
$(window).resize();
$('#panel-filmtrailers').prepend('<div id="script_based_filmtrailer_panel_ad"></div>');
var tmp_reg=ad.script.match(/(wildfire_)([\d]{8,})/);
var ad_id=(tmp_reg&&tmp_reg[2])||null;
if(ad_id){
$('<iframe />',{
name:'videopaneladFrame',
id:'videopaneladFrame',
src:"/ads/unruly_iframe_base.html?adid="+ad_id,
scrolling:"no",
frameborder:"0",
width:"100%",
height:"100%",
marginheight:"auto",
marginwidth:"auto"
}).prependTo($('#script_based_filmtrailer_panel_ad'));
}
}
else if(ad&&ad.videourl){
self.clearTimeout(videoPanelInt);
var _adEl=bp.find('.film_trailer_ad').show();
bp.addClass('videoad');
app.act.badge.redraw();
params.reserved_width=350;
panelPager(params);
$(window).resize();
ad.playCounter=0;
var _adWin;
var _click=function(){
if(flvPlayer){
if(flvPlayer.getState()!=3){
_ol.empty();
_ol.next('.tooltip').find('.tt_title').toggle();
flvPlayer.play();
if(ad.playCounter>0&&ad.replay_tracker){
var _replayTrack=new Image();
_replayTrack.src=ad.replay_tracker;
}
else if(ad.play_tracker){
if($.browser.msie){
var _playTrack=new Image();
_playTrack.src=ad.play_tracker;
}
else{
$.get(ad.play_tracker,function(){console.log('play_tracker');});
}
}
ad.playCounter++;
}
else{
if(ad.clickthroughurl){
_adWin=window.open(ad.clickthroughurl,'videotrailer','width=1024,height=800,location=yes,scrollbars=yes,status=yes,resizable=yes');
_adWin.focus();
}
}
}
};
if(ad.clickthroughurl){
var _ol=bp.find('#flvPl_videoOverlay').show();
if(ad.bgimage){
_ol.append('<img src="'+ad.bgimage+'" width="220"/>');
}
_ol.tooltip({fixed:true,offset:[-30,-30],oneInstance:false});
_ol.click(_click);
}
if(!$.browser.msie){
bp.find('.advert_vertical').addClass('moz');
}
var flvPlayer=flowplayer("film_trailer_ad",{
src:"/static/swf/player/flowplayer.commercial-3.2.1.swf",
wmode:'transparent',
cachebusting:false,
onFail:function(){
if(_ol){_ol.hide();}
}
},
{
canvas:{
backgroundGradient:'none',
backgroundColor:'#444444'
},
key:'#$e73af8695d619158b51',
clip:{
autoPlay:false,
autoBuffering:true,
url:ad.videourl,
scaling:'fit',
onPlay:function(){
_ol.hide();
},
onStart:function(){
_ol.show();
},
controls:{
url:escape('/static/swf/player/flowplayer.controls-3.1.5.swf'),
play:false,
volume:false,
mute:true,
time:false,
stop:false,
playlist:false,
fullscreen:true,
enabled:{
scrubber:false
}
}
},
onFinish:function(){
var _endTrack=new Image();
_endTrack.src=ad.end_tracker;
}
});
}
adCnt++;
},100);
}
}
};
var switchpanel=function(id){
var renderUrl='/render/m_panel/panel_'+id;
var params=bp.data('params')||null;
var getParams=[];
if(params){
$.each(params,function(k,v){
getParams.push(k+'='+v);
});
}
if(self.pageEnv.edit_mode){
getParams.push('cmsmode=1');
}
if(getParams.length){
renderUrl+='?'+getParams.join('&');
}
bp.load(renderUrl,function(r){
bp.hideLoader();
if(callbacks[id]){callbacks[id]();}
if($('.panelskin',bp).length&&self.pageEnv.ads.panelskin){
panelAdskinInit(id);
}
});
};
function updatePanel(panelId){
bp=$('#panel-'+panelId);
if(!bp.length){return;}
if(_panelCache[panelId]===true){
$('#badge .ui-panel-content:not(#panel-'+panelId+')').hide();
$(bp).hideLoader();
return;
}
else{
bp.show();
_panelCache[panelId]=true;
if(panelId!='related-info'&&panelId!='audiopreroll'){
switchpanel(panelId);
if(panelId!='rm-upsell'){
location.hash='#';
}
}
else{
bp.hideLoader();
callbacks[panelId]();
}
}
}
function panelPager(params){
params=$.extend({},{
offset:0,
selector:'ul.videolist li',
section:'cms',
itemWidth:160,
buttonWidth:100,
tooltipp:0,
reserved_width:0},params);
params.limit=getPanelItemsMax(params);
var limit=params.limit;
var offset=params.offset;
var listEl=$('ul.module_content_frame:visible',bp);
var available_rows=parseInt(listEl.attr('rows'));
var browserButt=bp.find('.panel_browser_dual .prev, .panel_browser_dual .next');
bp.find('.panel_browser_dual .more_btn, .listlink')
.click(function(e){
e.preventDefault();
var el=this;
app.session.set({badgeEl:'collapsed'},function(){
location.replace($(el).attr('href'));
$(location).change();
},1);
if(params.more_callback&&$(el).is('.more_btn')){
params.more_callback();
}
}
).tooltip(
{fixed:true,offset:[60,-60],oneInstance:false}
);
var canBrowseBack=function(){
return(offset>0)?1:0;
};
var canBrowseNext=function(){
var itemCount=$(listEl).find('li:visible').length;
var itemsAll=$(listEl).find('li').length;
if(itemsAll<available_rows||itemsAll>(offset+itemCount)){
return 1;
}
return 0;
};
$(window).resize(function(e){
limit=params.limit=getPanelItemsMax(params);
panelRender();
});
if(params.redraw){
params.redraw=0;
$(window).resize();
}
var panelRender=function(){
reShowOnResize(params);
bp.hideLoader();
listEl=$('ul.module_content_frame',bp);
if(canBrowseBack()){
$(browserButt[0]).removeClass('disabled');
}
else{
$(browserButt[0]).addClass('disabled').removeClass('hover');
}
if(canBrowseNext()){
$(browserButt[1]).removeClass('disabled');
}
else{
$(browserButt[1]).addClass('disabled').removeClass('hover');
}
};
panelRender();
$(browserButt).unbind('click').click(function(){
if($(this).is('.disabled')){return;}
var dir=$(this).is('.prev')?'back':'next';
if(dir=='back'){
offset-=limit;
if(offset<=0){
offset=0;
}
}
else{
offset+=limit;
}
params.offset=offset;
var loadedItems=$(params.selector,bp);
var available_rows=parseInt(listEl.attr('rows'));
if(dir=='next'&&loadedItems.length<available_rows&&(offset+limit)>loadedItems.length){
var _limit=(offset+limit)-loadedItems.length;
bp.showLoader({style:'positioned big margin',overlay:'black'});
var renderUrl='/render/m_panel/section_videolist/?section='+params.section+'&limit='+_limit+'&offset='+offset;
$.get(renderUrl,function(resp){
var lis=$(resp).find('li').hide();
if(params.tooltipp){
lis.tooltip({fixed:true,offset:[-10,-20],oneInstance:false});
}
listEl.append(lis);
panelRender();
});
}
else{
panelRender();
}
});
function getPanelItemsMax(p){
var max=Math.floor(($(window).width()-(p.buttonWidth||0)-p.reserved_width)/(p.itemWidth||160));
return max;
}
function reShowOnResize(params){
if(!params.redraw){
var offset=params.offset||0;
var showSelector=params.selector+':lt('+(params.limit+offset)+')';
if(offset>0){
showSelector+=':gt('+(offset-1)+')';
}
$(params.selector,bp).hide();
$(showSelector,bp).show();
}
}
}
return{
updatePanelHTML:function(panelId,params){
updatePanel(panelId,params);
},
isCached:function(panelId){
return panelIsCached(panelId);
}
};
}());
(function(){
var m=document.uniqueID&&document.compatMode&&!window.XMLHttpRequest&&document.execCommand;
try{
if(!!m){
m("BackgroundImageCache",false,true);
}
}catch(oh){}
}());
if(self.pageEnv.session){
window.onbeforeunload=function(){app.session.store(null);};
}
$.extend(app,(function(){
var badgeEl,staticBadge,topNavEl,panelEl,leftNavEl,hashChange,statusmodule,leaderboard,footerEl;
var routes=[
[/^\#act\.(\w+)\.(\w+)\.?([\w\.]*)$/,
function(mod,meth,args){
if(app.act[mod]&&$.isFunction(app.act[mod][meth])){
args=(args&&args.split('.'))||[];
app.act[mod][meth].apply(app,args);
}
}]
];
var block_disp=false;
var dispatch=function(){
self.setTimeout(function(){
if(!block_disp){
block_disp=true;
var h=''+location.hash,m;
$.each(routes,function(i,r){
m=h.match(r[0]);
if(m){
r[1].apply(app,m.slice(1));
return false;
}
});
}
self.setTimeout(function(){
block_disp=false;
},500);
},1);
};
function onload(){
app.initLists();
app.initThumbnails();
app.initAccordions();
app.initWidgets();
app.initFlyers();
app.initNowplaying();
var _flvplayer=$('#flv_play_video');
if(_flvplayer.length){
app.flvplayer.initFLVPlayer(_flvplayer);
}
}
function init(){
onload();
if(app.detect.OS.name==='Mac'){
$('#m_boxes-no_macos_support').show();
}
if(self.pageEnv.ec=='fr'&&self.pageEnv.section.match(/music/)&&app.advert.checkDateRange({d:20,m:3,y:2011,h:23,min:59,s:0},{d:22,m:3,y:2011,h:0,min:1,s:0})){
$('#ads_textlinks').remove();
}
if(app.detect.isRp){
var sectionHome=self.pageEnv.page_path.replace('/','');
if(sectionHome==='music'||sectionHome==='video'||sectionHome==='games'){
try{
var plyrObj=top.parent.window.external;
}catch(e){}
}
}
var proceed=app.messages.init();
if(!proceed){return;}
if(self.pageEnv.footer){
footerEl=$('#footer');
app.edition.init();
}
if(self.pageEnv.showBadge){
staticBadge=$('#static_badge');
}
if(self.pageEnv.leftNav){
leftNavEl=$('#leftNav');
}
if($.browser.msie&&$.browser.version==='7.0'){
if(footerEl&&footerEl.length){
footerEl.css({'float':'none'});
}
}
app.act.page={
refresh:function(delay){
if(!delay){delay=1;}
self.refreshTimer=self.setTimeout(function(){self.location.reload();},delay);
},
setState:function(states){
if(self.pageEnv.session){
app.session.set(states,null);
}
},
clearState:function(states){
if(self.pageEnv.session){
app.session.clear();
}
},
getState:function(module,callback){
return app.session.get(module,callback);
}
};
if(self.pageEnv.showBadge){
initBadge();
panelEl.click(function(e){
if($(e.target).is('.paneltab')){
var oldTab=app.act.panel.previous()||'';
var newSession=app.act.page.getState('panelEl')||{};
var newTab=$(e.target).attr('href').replace('#','');
var _bstate='expanded';
newSession[self.pageEnv.section]=newTab;
if(newTab===oldTab&&app.act.page.getState('badgeEl')==='expanded'){
_bstate='collapsed';
}
app.act.page.setState({'panelEl':newSession,'badgeEl':_bstate});
}
});
}
initNavi();
if(app.auth&&app.detect.isRp){
var loginCnt=0;
var loginTimer=self.setInterval(function(){
if($.cookie('RNUser')){
app.auth.autologin();
self.clearInterval(loginTimer);
}
if(loginCnt>25){
self.clearInterval(loginTimer);
}
loginCnt++;
},200);
}
$(location).change(dispatch);
if(location.hash){dispatch();}
if(!app.auth.isSubscriber()){
$('body').addClass('loggedout');
var _rnGeo=$.cookie('RNgeo');
if(_rnGeo){
app.advert.init(_rnGeo);
}
else{
app.ws.get('getIp',function(r){
app.advert.init(r.country_code);
if(r.country_code){
$.cookie('RNgeo',self,r.country_code,{expires:7,path:'/',domain:'real.com',secure:false});
}
});
}
}
else{
app.advert.subsInit();
}
if(self.pageEnv.page.match(/music\/radio\/bbc/)){
$.each($('#c_800_music_radio_bbc_listen_again'),
function(k,v){
app.showBBCOnDemandFeed.init();
$('div.cheader li.ajax',v).click(
function(){
var sTabId=$(this).attr('id');
var aSplitTabIdByDash=sTabId.split('-');
var sStation=aSplitTabIdByDash[1];
app.showBBCOnDemandFeed.init(sStation);
}
);
}
);
}
if(!$.browser.mozilla){
$(document).delegate('a','focus',function(){
this.blur();
});
}
if(self.pageEnv.section==='games'){
app.getPlayersByGame={
init:function(){
var aGames=[];
$('.players-game').each(
function(){
aGames.push($(this).attr('players_game').replace('players-',''));
}
);
this.aGames=aGames;
this.getPlayers();
},
getPlayers:function(){
var sGames=this.aGames.join(',');
var html;
app.ws.get('getPlayersByGame',{game_usu_titles:sGames},function(result){
$.each(result,function(key,value){
html=value.players.toString()+' '+$.loc('Players');
var oPlayers=$('[players_game=players-'+value.game_usu_title+']').empty();
$('<nobr>('+html+')</nobr>').appendTo(oPlayers);
});
});
}
};
app.getPlayersByGame.init();
$('#m_widgets-games-play-play_game .play_button_a').click(function(e){
e.preventDefault();
var win=window.open($(e.target).attr('href'),'zylomgames','width=760,height=690,resize=no,toolbar=no,resizable=yes,scrollbars=no');
win.focus();
});
}
$.each($("#content div[id*='m_slideshow'] .slideshow"),function(k,v){
var sSlideShowId=$(v).attr('id');
if(!sSlideShowId){
sSlideShowId=$(v).closest('.slideshows').attr('id');
}
var _void=new app.SlideShow(sSlideShowId);
});
$.each($('div.m_pager'),function(k,v){
$(v).applyPager().find('ul.pages li').hover(
app.hover.over,app.hover.out
);
});
if(self.pageEnv.page.match(/video\/flash/)){
app.bookmarkshare.init();
}
app.search.init();
var surveyExpireDate=new Date();
var surveyEndDate=surveyExpireDate.getTime()+(7*24*60*60*1000);
app.survey={
RNEGSurvey300112:{
edition:'eu',
geo:'EG',
sections:['music','video'],
beginDate:new Date('january 29, 2012 23:59:59').toGMTString(),
endDate:new Date(surveyEndDate).toGMTString(),
displayInterval:1000*60*60*24
}
}
if(self.pageEnv.env=='development'||self.pageEnv.env=='staging'){
app.survey.RNEGSurvey300112.geo='GB';
app.survey.RNEGSurvey300112.beginDate=new Date('january 18, 2012 23:59:59').toGMTString();
app.survey.RNEGSurvey300112.displayInterval=1000*10;
}
if(app.survey.RNEGSurvey300112.edition==self.pageEnv.edition&&
app.survey.RNEGSurvey300112.geo==$.cookie('RNEUgeo')&&
app.survey.RNEGSurvey300112.sections.join('#').indexOf(self.pageEnv.section)>-1){
var getOverlay=false,lastModified,displayed=0,expired=0,nextDay=false;
var now=new Date().getTime();
var begin=new Date(app.survey.RNEGSurvey300112.beginDate).getTime();
var end=new Date(app.survey.RNEGSurvey300112.endDate).getTime();
if(begin>now<end){
getOverlay=true;
}
if($.cookie('RNEGSurvey300112')){
lastModified=$.cookie('RNEGSurvey300112').match(/lastModified=([^&]*)/)[1];
displayed=$.cookie('RNEGSurvey300112').match(/displayed=([^&]*)/)[1];
expired=$.cookie('RNEGSurvey300112').match(/expired=([^&]*)/)[1];
nextDay=parseInt(lastModified)+app.survey.RNEGSurvey300112.displayInterval;
if((now>=nextDay)&&(expired==0)){
getOverlay=true;
}else{
getOverlay=false;
}
}else{
getOverlay=true;
}
if(getOverlay){
var cookieValues=[
'lastModified='+new Date().getTime(),
'displayed='+displayed,
'expired='+expired
];
$.cookie('RNEGSurvey300112',self,cookieValues.join('&'),{expires:new Date(app.survey.RNEGSurvey300112.endDate),path:'/',domain:'real.com'});
window.setTimeout('app.messages.RNEGSurvey300112()',500);
}
}
initSession();
}
function initSession(){
if(self.pageEnv.session){
app.session.init(function(r){
r=r||{};
$.each(r,function(k,v){
switch(k){
case'panelEl':
if(!self.pageEnv.page_path.match(/(livenews|entertainment|clips|what-is-realmusic|games|find)/)){
v=(typeof v==='string')?v:v[self.pageEnv.section];
var hasPanel=$('#tab-'+v).length;
if(!hasPanel||location.hash.match(/act\.panel.*/)){return;}
var keep=($.inArray(r.badgeEl,['expanded','halfopen'])>=0)?0:1;
app.act.panel.select(v,keep);
}
break;
case'badgeEl':
case'data':
case'panelAuto':
break;
case'status':
if(!app.act.statusModule){return;}
if(v==='expanded'){
app.act.statusModule.show();
}
break;
case'expander':
$.each(v,function(id,act){
app.act.expand[id][act]();
});
break;
default:
if($('#'+k).length&&v){$('#'+v).click();}
break;
}
});
var autoExpanded=app.act.page.getState('panelAuto')||0;
var panelSession=r.panelEl&&r.panelEl[self.pageEnv.section];
if(autoExpanded<2&&self.pageEnv.showBadge&&self.pageEnv.page_path.match(/^(music|video)(\/)?$/)&&
(!panelSession||($('#tab-'+panelSession+':visible').length<=0))&&!self.pageEnv.page_path.match(/(livenews)/)){
var m=Math.ceil(Math.random()*10);
if(self.pageEnv.page_path.match(/^(video)(\/)?$/)){
switch(m){
case 1:
case 2:
var open_video_tab='video';
if(app.detect.player.version!==14&&!app.auth.isSubscriber()){
open_video_tab='rpplus';
}
app.act.panel[open_video_tab]();
break;
default:
app.act.panel.video();
break;
}
}
else{
app.act.panel[self.pageEnv.section]();
}
app.act.page.setState({'panelAuto':++autoExpanded});
}
});
}}
function initNavi(){
$('#navi').flyoutnav({
fHover:{over:app.hover.over,out:app.hover.out},
tabSpacing:23,
navWidthCorrection:-1,
navLeft:50,
callback:function(){
if(app.detect.isRp){
$('.RPonly').show();
if(app.smod){
app.smod.init();
}
}
else{
$('#navi .noRPonly').show();
$('#navi .nav_tab:visible:last').addClass('last');
}
}
});
}
function initBadge(){
badgeEl=$('#badge').badge({
position:'bottom',
minHeight:29,
maxHeight:function(){
var min=30,diffY=0,max,expandTo=false;
max=$(window).height()+diffY;
var toHeight=300;
if(panelEl){
var selected=panelEl.tabbedPanels('selected');
if(selected){
expandTo=panelEl.tabbedPanels('expandTo',selected);
toHeight=(expandTo==='full')?max:parseInt(expandTo,10);
}
}
return(toHeight<=max&&toHeight>=min)?toHeight:(max>min?max:min);
}
});
badgeEl.find('.badgeresize').css({top:1});
if($.browser.msie){
badgeEl.badge('repos',{el:staticBadge,ms:500});
$(window).scroll(function(){
badgeEl.badge('repos',{el:staticBadge,ms:500});
});
}
panelEl=badgeEl.badge('panel');
app.act.badge={
revState:function(){return badgeEl.badge('state')==='expanded'?'collapsed':'expanded';},
getState:function(){return badgeEl.badge('state');},
redraw:function(){badgeEl.badge('redraw');},
show:function(){badgeEl.badge('show');badgeEl.badge('redraw');},
hide:function(){badgeEl.badge('collapse');badgeEl.badge('redraw');},
toggle:function(callback){badgeEl.badge('toggle',callback);},
togglebytab:function(cb){badgeEl.badge('toggleByTab',cb);}
};
var toggler=badgeEl.find('.ui-badge-toggle-outer');
toggler
.click(function(){
if(panelEl.tabbedPanels('selected')){
panelEl.tabbedPanels('select',panelEl.tabbedPanels('selected'),0);
app.act.page.setState({'badgeEl':app.act.badge.revState()});
}
})
.hover(
app.hover.over,app.hover.out
)
.find('.ui-badge-toggle').html($.loc('open'));
var badgeTabs={
'default':[
{id:'tune-in-now',expandTo:130},
{id:'world-radio',expandTo:'full'},
{id:'realmusic',expandTo:'full'},
{id:'music_videos_editable',expandTo:190},
app.detect.isRp?{id:'related-info',expandTo:236,autocollapse:false}:{id:'related-info',expandTo:260,autocollapse:false},
{id:'rm-upsell',expandTo:'260'},
{id:'audiopreroll',expandTo:'315'}
],
'video':[
{id:'superpass',expandTo:165},
{id:'filmtrailers',expandTo:190},
{id:'entertainment_editable',expandTo:190},
{id:'music_videos_editable',expandTo:190},
{id:'realplayer-plus',expandTo:105}
]
};
panelEl.tabbedPanels({
container:badgeEl,
panelHandler:app.badgePanels.updatePanelHTML,
panels:badgeTabs[self.pageEnv.section]||badgeTabs['default'],
element:'#badgepanel .ui-panel-tabs',
toggler:toggler
});
badgeEl.badge('addTabs',panelEl);
$('li',panelEl).hover(app.hover.over,app.hover.out);
app.act.tabs={
select:function(tab,keep){panelEl.tabbedPanels('select',tab,keep);}
};
app.act.panel={
unselect:function(){app.act.panel.select('');},
previous:function(){return panelEl&&panelEl.tabbedPanels('previous');},
selected:function(){
var sel=panelEl&&panelEl.tabbedPanels('selected');
sel=(typeof sel==='string')?sel:'';
return sel;
},
select:function(tab,keep){panelEl.tabbedPanels('select',tab,keep);},
tuneInNow:function(f){app.act.panel.select('tune-in-now');},
worldRadio:function(f){app.act.panel.select('world-radio');},
realMusic:function(f){app.act.panel.select('realmusic');},
musicVideos:function(f){app.act.panel.select('music_videos_editable');},
watchTVNow:function(f){app.act.panel.select('watch-tv');},
filmTrailers:function(f){app.act.panel.select('filmtrailers');},
entertainment:function(f){app.act.panel.select('entertainment_editable');},
viralVideos:function(f){app.act.panel.select('viral-videos');},
music:function(f){app.act.panel.select('tune-in-now');},
video:function(f){app.act.panel.select('filmtrailers');},
superpass:function(f){app.act.panel.select('superpass');},
relatedInfo:function(f){app.act.panel.select('related-info');},
rpplus:function(f){app.act.panel.select('realplayer-plus');},
upsell:function(f){app.act.panel.select('upsell');},
hide:function(tab){panelEl.tabbedPanels('hide',tab);},
show:function(tab){panelEl.tabbedPanels('show',tab);},
freeTrial:function(f){app.act.panel.select('rm-upsell');},
audiopreroll:function(f){app.act.panel.select('audiopreroll');}
};
$(staticBadge).prepend(badgeEl);
if(self.pageEnv.section==='music'&&app.detect.isRp){
app.act.rp.checkAndInit();
}
$('#content div.container').has('ul.tabs').each(function(){
$(this).tabbedCont();
});
if(self.pageEnv.page.match(/\/blog/)){
app.blog.init();
}
if($('#navi').length&&self.pageEnv.page.match(/video\/film-trailers/)){
var tab=$.query.get('tab');
if(tab){
var tab=$('#tab_c_480_video_film-trailers_'+tab);
if(tab.length){
tab.click();
}
}
$('#c_480_video_film-trailers .tabs li').click(function(){
var tabId=$(this).attr('id').replace('tab_c_480_video_film-trailers_','');
$('#nav_tab_video ul.nav_layer.two .navli.active').removeClass('active');
$('#nav_tab_video ul.nav_layer.two .nava[href*='+tabId+']').each(function(){
$(this).parent().addClass('active');
});
});
}
}
var stateHasher=(function(){
function serialize(s){
var r=[];
$.each(s,function(k,v){
r.push(k+':'+v);
});
return r.join('.');
}
function unserialize(r){
var s={};
$.each(r.split('.'),function(k,v){
v=v.split(':');
s[v[0]]=v[1];
});
return s;
}
return function(o){
var h={};
function loadfromhash(){
var m=(''+location.hash).match(/^#state\.(.+)/);
if(m){
changehash(unserialize(m[1]),1);
}
}
function changehash(n,nu){
var c=[],i,k,f;
$.each(n,function(k,v){
if(typeof h[k]==='undefined'||h[k]!==v){
h[k]=v;
c.push(k);
}
});
for(i=0;i<c.length;i++){
k=c[i];
f=o[k];
if(f&&nu){
f(h[k]);
}
}
if(!nu){
nu='#state.'+serialize(h);
if(location.hash!==nu){
location.hash=nu;
}
}
if(c.length){
$(window).trigger('statehasher.change');
}
}
$(location).change(loadfromhash);
loadfromhash();
return{
change:function(fn){
if($.isFunction(fn)){
$(window).bind('statehasher.change',fn);
}else{
changehash.apply(changehash,arguments);
}
}
};
};
}());
return{
init:init,
onload:onload
};
}()));app.errorlogger={
init:function(){
window.onerror=function(msg,file,line){
$.get('/REST/log/jserr/'+line+'/'+encodeURI(file)+'|'+encodeURI(msg),function(data){});
};
}
};
$(document).ready(function(){
app.errorlogger.init();
});
app.messages=(function(){
var init=function(){
if(app.detect.browser.name=="Explorer"&&app.detect.browser.version<7){
self.setTimeout(
function(){
if(!app.detect.player.installed){
location.replace('/realplayer/realplayer/');
}
else{
openMessage({type:'browser_update',overlay:true});
}
},60
);
return false;
}
else if(app.detect.browser.name=="Firefox"&&app.detect.browser.version<3){
openMessage({type:'browser_update_ff',overlay:true});
return false;
}
return true;
};
var valid_sources=[
'browser_update','player_required','player_update','browser_update_ff','geo_restricted','viagogo','RNEGSurvey300112'
];
var openMessage=function(params){
params=$.extend({},{overlay:true},params);
if($.inArray(params.type,valid_sources)<=-1){
return;
}
close();
if(params.overlay){
var messageOverlay=$('<div class="messageBox_overlay" id="messageBox_'+params.type+'"></div>');
$(messageOverlay).css({height:$(document).height()});
$('body').append(messageOverlay);
}
var boxWidth=params.width?params.width:600;
var boxHeight=params.height?params.height:220;
var classes=(params.classes)?params.classes:"";
var messageBox=$('<div class="messageBox_box '+classes+'"></div>').css({
width:boxWidth,
left:Math.floor(($(window).width()-boxWidth)/2),
top:Math.floor(($(window).height()-boxHeight)/2)+$(window).scrollTop()
});
$('body').append(messageBox);
var renderUrl='/render/messages/'+params.type;
if(params.section){
renderUrl+='/?section='+params.section;
}
$(messageBox).load(renderUrl,function(r){
$(messageBox).fadeIn(2000);
$('.message_button',messageBox).hover(app.hover.over,app.hover.out);
var tracker=$('.tracker',messageBox);
if(tracker.length&&app.RTracking){
var trackType=tracker.attr('tracktype');
app.RTracking.trackClick({type:trackType});
}
switch(params.type){
case'browser_update':
break;
default:
break;
}
});
};
var close=function(){
$('.messageBox_overlay, .messageBox_box').remove();
};
return{
init:function(){return init();},
close:function(){close();},
browserUpdate:function(){
openMessage({type:'browser_update'});
},
playerrequired:function(){
openMessage({type:'player_required'});
},
playerupdate:function(){
openMessage({type:'player_update'});
},
contentRestricted:function(){
openMessage({type:'geo_restricted',classes:'contentrestricted',width:'290'});
},
viagogo:function(){
openMessage({type:'viagogo',section:self.pageEnv.section});
},
RNEGSurvey300112:function(){
openMessage({type:'RNEGSurvey300112',width:'799',height:'390'});
}
};
})();
app.initNowplaying=function(){
if(app.detect.isRp&&self.pageEnv.section==='music'){
$.extend(app,(function(){
var np_is_inited=false;
function is_inited(){
return np_is_inited;
}
var html='',relatedUl,coverEl,htmlBBCschedule;
var contEl=$('#panel-related-info');
$.get('/render/m_panel/nowplaying',function(r){
html=$(r);
relatedUl=$('.related ul',html);
coverEl=$('#coverartSWF',html);
htmlBBCschedule=$('.np_bbc_schedule',html).html();
contEl.append(html);
});
var changeCoverArt=swfobject&&swfobject.hasFlashPlayerVersion('8888.0.0')?
function(coverEl,src,dims){
if(src){
var size=dims||"170x170";
if(coverEl.is(':not(:empty)')){
swfobject.removeSWF("coverartSWF");
}
coverEl.show();
swfobject.embedSWF("static/swf/reflection.swf","coverartSWF","175","220","8.0.0",false,{
size:size,
src:src
},{
menu:"false",
bgcolor:"#E6E6E6",
wmode:"transparent"
}
);
}
else{
if(coverEl.is(':not(:empty)')){
swfobject.removeSWF("coverartSWF");
}
coverEl.empty();
}
}:function(coverEl,src,dims){
var size=(dims||"170x170").split('x');
if(src){
coverEl.show().html($('<img width="'+size[0]+'" height="'+size[1]+'" src="'+src+'" />'));
}
else{
coverEl.empty();
}
};
var parseBBCFeedSchedule=function(p){
if(!p.display_start){
return'No schedule';
}
return[p.display_start,'-',p.display_end,p.timezone].join(' ');
};
var fillStationList=function(ul,r){
if(r.error||r.length<1){return;}
var lis=[];
$.each(r,function(k,v){
if(v.id&&v.title){
lis.push('<li class="listitem"><div class="list_icon_audio"></div><a class="listlink" href="#act.rp.playStation.'+v.id+'" >'+v.title+'</a></li>');
}
});
$(ul).empty().html(lis.join(''));
};
app.realplayer.clipmetachange(function(player,clipmeta){
var oldclipmeta=contEl.data('player.clipmeta')||{};
var oar=oldclipmeta.artist||{};
var oat=oldclipmeta.track||{};
var c=clipmeta||{};
var t=c.track||{};
if(!t.artist_id&&c.type.match(/(artist|genre|event)/i)){
app.act.rp.triggerChange();
return;
}
var relatedUl=html.find('.related.stationlist ul');
var artist_bio=html.find('.artist_bio');
var infoFields=[],metaFormat='intern';
var clipTitle=encodeURIComponent(c.title+' Radio')||'';
var shareLink=encodeURIComponent(location.href);
$('.share_EMAIL',html).click(
function(){
window.open('https://mailer.real.com/form.html?lang='+self.pageEnv.language+'&cd=email&clipTitle='+clipTitle+'&clipUrl='+shareLink,'popup','width=394,height=400,location=no,scrollbars=no,status=no,resizable=no');
}
);
var bbcEl=$('.bbc',html);
var worldEl=$('.world',html);
var internEl=$('.intern',html);
var relUl;
app.act.rp.removeTrigger();
switch(c.type){
case'bbc':
case'world,bbc':
case'world':
internEl.hide();
metaFormat='world';
station_thumb='';
clipTitle=c.title;
if(c.image_url){
changeCoverArt(coverEl,c.image_url,'144x81');
html.find('.cover').addClass('extern');
}
else{
coverEl.empty();
html.find('.cover').removeClass('extern');
}
var relatedWorldEl=$('.related.worldstations',html);
if(c.type==='world,bbc'){
worldEl.hide();
bbcEl.show();
metaFormat='bbc';
var bbcSchedEl=$('.bbc_schedule',contEl);
if($.inArray(parseInt(c.station_id,10),[423,409,410,463,605,411,4197,4423,604,100008,100013])>-1){
bbcSchedEl.show();
relatedWorldEl.hide();
app.ws.get('bbcschedule','',{id:c.station_id},function(r){
if(r.error){
app.debug('no schedule',r.error);
return;
}
bbcSchedEl.html(htmlBBCschedule);
var now=r[0];
now.schedule=parseBBCFeedSchedule(now);
var coming=r[1];
coming.schedule=parseBBCFeedSchedule(coming);
var onnow=bbcEl.find('.bbc_schedule_onnow');
var cnext=bbcEl.find('.bbc_schedule_comingnext');
$.each(['title','schedule','synopsis'],function(k,v){
var sel='.bbc_show.'+v;
$(sel,onnow).text(now[v]);
$(sel,cnext).text(coming[v]);
});
});
}
else{
bbcSchedEl.hide();
relUl=relatedWorldEl.show().find('ul');
app.ws.get('getWorldStations','genre',{sort_by:'RANDOM',limit:5,genre:c.genre_id},function(r){
fillStationList(relUl,r);
});
}
app.ws.get('getWorldStations','',{type:'bbc',sort_by:'RANDOM',limit:5,country_code:self.pageEnv.ec},function(r){
if(r&&!r.error){
fillStationList($('.more_bbc ul',html),r);
}
});
}
else{
bbcEl.hide();
worldEl.show();
relUl=relatedWorldEl.show().find('ul');
app.ws.get('getWorldStations','genre',{sort_by:'RANDOM',limit:5,genre:c.genre_id},function(r){
fillStationList(relUl,r);
});
app.ws.get('getWorldStations','',{type:'world',sort_by:'RANDOM',limit:5},function(r){
fillStationList($('.top_5_world ul',html),r);
});
infoFields=['genre_title','country_name'];
}
break;
case'event':
case'artist':
case'genre':
app.act.rp.triggerChange();
internEl.show();
worldEl.hide();
bbcEl.hide();
html.find('.cover').removeClass('extern');
clipTitle=c.title;
if(!c.title.match(/ radio$/i)){
clipTitle+=' Radio';
}
if(t.artist_id){
infoFields=['track_title','artist_name','album_name'];
var relatedLis=[];
if(!clipTitle.match(/Ministry of Sound/)){
relatedUl.showLoader({style:'positioned big margin',overlay:'black'});
app.ws.get('artistsimilars',t.artist_id,{artist_id:t.artist_id},function(artists){
relatedUl.hideLoader();
$.each(artists||[],function(k,artist){
relatedLis.push('<li class="listitem"><div class="list_icon_audio"></div><a class="listlink" href="#act.rp.playStation.'+artist.similar_artist_station_id+'">'+artist.similar_artist_title+'</a></li>');
});
relatedUl.html(relatedLis.join(''));
});
}
artist_bio.showLoader({style:'positioned big margin',overlay:'black'});
app.ws.get('artistbio','',{artist_id:t.artist_id,imagetype_code:'144x81'},function(bio){
artist_bio.hideLoader();
if(!bio){
artist_bio.hide();
return;
}
artist_bio.html(bio).show();
});
}
if(t.albumcover_image_url){
changeCoverArt(coverEl,t.albumcover_image_url,'170x170');
}
else{
coverEl.empty();
}
break;
default:
break;
}
html.find('dd.clip').html(clipTitle);
var addFavBtn=false;
if(addFavBtn){
var favurl=$.urlhelper.replaceGetParamInUrl(location.href,'station',c.station_id);
var favClick='app.favorites.addWeb({path:\'music\', title:(\''+cliptitle+'\'), url:\''+favurl+'\'});';
html.find('dd.clip').append('<a href="javascript:'+favClick+'" class="fav"></a><span class="tooltip"><span class="tt_title">'+$.loc('Add to Favorites')+'</span></span>');
}
contEl.hideLoader();
var metaSource=(metaFormat==='intern')?t:c;
var trackInfos=$.each(infoFields,function(k,v){
html.find('dd.'+v).text(metaSource[v]||' - ');
});
contEl.data('player.clipmeta',clipmeta);
});
function init(){
if(!location.hash.match('freeTrial')){
app.act.rp.onPanelReady();
}
app.realplayer.playstationbegin(function(){
if(location.hash.match('freeTrial')){
app.act.panel.select('rm-upsell',0);
}
if((app.act.badge.getState()==='collapsed'||app.act.panel.selected()!=='related-info')&&!location.hash.match('freeTrial')){
$('#related-info').show();
app.act.panel.select('related-info',0);
}
});
np_is_inited=true;
}
return{
np:{
init:init,
is_inited:is_inited
}
};
}()));
}
};
app.search=(function(){
var init=function(){
$section={'video':'movie','music':'music'}[self.pageEnv.section];
$search_side=$('.global_search_bar');
var search_btn=$('.button_search',$search_side);
$('input.globalsearch').val(decodeURIComponent($('input.globalsearch').val()));
search_btn.click(function(){
var str=$('input',$search_side).val().toLowerCase();
str=str.replace(new RegExp(/(.)\1{4,}/g),'');
str=str.replace(new RegExp(/[\!,$,",%,&,Â§,\/,(,),=,\?,\\,',+,-,#,;,:\,\.,*,~,<,>,|,[,\],{,}]/g),'');
str=$.trim(str);
if(str.length>40){
str=str.substring(0,39);
}
if(str){
var trackParams={
type:'search_pre',
lnk:encodeURIComponent(str)
};
setTimeout(function(){
location.href='/spot/all/'+encodeURIComponent(str);
$(location).trigger('change');
},200);
}
}).end()
.find('input')
.keypress(function(e){
if($(e.target).val()!=''&&$(e.target).val().length>2&&e.keyCode==13){
search_btn.click();
return false;
}
});
if($search_side.attr('search_session')!=''&&$search_side.attr('search_session')!=undefined){
var trackParams={
type:'search',
SN:$search_side.attr('search_session'),
lnk:$search_side.attr('search_key')
};
app.RTracking.trackClick(trackParams);
}
$('.result.station .biotrigger.showbio').live('click',function(){
var $artist=$(this).closest('.searchresulttxt');
$('.searchresultoption.bioshort',$artist).hide();
$('.searchresultoption.bio',$artist).show();
});
$('.result.station .biotrigger.hidebio').live('click',function(){
var $artist=$(this).closest('.searchresulttxt');
$('.searchresultoption.bio',$artist).hide();
$('.searchresultoption.bioshort',$artist).show();
});
var $play_btn=$('a.tracksearch');
var trackSearchClick=
function(){
var trackParams={
id:$(this).attr('media_id'),
type:'search_'+$(this).attr('content_type'),
SN:$search_side.attr('search_session'),
lnk:$search_side.attr('search_key')
};
app.RTracking.trackClick(trackParams);
clickTarget=$(this).attr('href');
setTimeout(function(){
location.href=clickTarget;
$(location).trigger('change');
},80);
return false;
};
$play_btn.click(trackSearchClick);
var $pager_space=$('div.search .m_pager');
$pager_space.click(
function(){
var $pager=$('ul.pages li.pgCurrent',$(this));
var trackParams={
title:$pager.html(),
type:'search_paging',
SN:$search_side.attr('search_session'),
lnk:$search_side.attr('search_key')
};
app.RTracking.trackClick(trackParams);
}
);
app.act.search={
global:function(str){
searchGlobal(str);
}
};
};
return{
init:init
};
}());
});

app.initAccordions=function(){
if(self.pageEnv.page=='music/radio/genre/'){
var acco=$('#genre_radio_stations-accordion');
$(acco).accordion({fillSpace:true,collapsible:true,active:11}).show();
app.genreRadioStations={
init:function(sItemId,sCallMethod,sParams){
var accoA=$('#genre_radio_stations-accordion > h3.selected > a');
this.sItemId=sItemId||accoA.attr('itemid');
this.sCallMethod=sCallMethod||accoA.attr('call');
this.sParams=sParams||accoA.attr('params')||'';
this.oList=$('#list-'+this.sItemId+'-stations');
this.get();
},
listItemHtml:function(iStationId,sTitle,bPaid){
var sClassFree;
if(bPaid==0){
sClassFree='free';
}else{
sClassFree='';
}
return'<li href="#act.rp.playStation.'+iStationId+'" class="list-genre-item">'+
'<dl class="entry">'+
'<dd class="icon"><span class="mediaicon bright audio"></span></dd>'+
'<dd class="title '+sClassFree+'">'+sTitle+'</dd>'+
'</dl>'+
'<div class="layerhover"></div>'+
'</li>';
},
get:function(){
var self=this;
var aParams=self.sParams.split(',');
var oParams={};
for(var p=0;p<aParams.length;p++){
aParamsKeyValue=aParams[p].split(':');
oParams[aParamsKeyValue[0]]=aParamsKeyValue[1];
}
var iArtistGenreId=oParams.artistgenre_id;
if(self.oList.children('li').length==0){
app.ws.get(self.sCallMethod,self.sItemId,oParams,function(result){
if(!(result.error||result.length<1)){
$.each(result,function(key,value){
var iCurrentStationId=value.id;
var sCurrentTitle=value.title;
var iCurrentArtistGenreId=value.artistgenre_id;
var bCurrentPaid=value.paid;
var oCurrentListItem=$(
self.listItemHtml(
iCurrentStationId,
sCurrentTitle,
bCurrentPaid
)
);
oCurrentListItem.appendTo(self.oList);
});
$('#'+self.sItemId+'-content-loader').hide();
self.oList.children('li.list-genre-item').hover(
app.hover.over,app.hover.out
);
self.oList.children('li.list-genre-item').click(
function(){
window.location.href=$(this).attr('href');
$(location).change();
}
);
}
});
}
}
};
app.genreRadioStations.init();
$(acco).find('a').hover(
app.hover.over,app.hover.out
)
.click(
function(){
var sItemId=$(this).attr('itemid');
var sCallMethod=$(this).attr('call');
var sParams=$(this).attr('params');
$('html,body').scrollTop($('h3').eq(0).offset().top);
app.genreRadioStations.init(sItemId,sCallMethod,sParams);
}
);
}
};
app.initFlyers=function(){
$('#content .flyers li.flyeritem').hover(
function(){
$(this).addClass('eventhover');
$(this).find('p').slideDown(100);
},
function(){
$(this).removeClass('eventhover');
$(this).find('p').slideUp(100);
}
).click(
function(){
if($(this).attr('href')){
location.href=$(this).attr('href');
$(location).change();
}
}
);
};
app.initLists=function(){
if($('#c_480_music_radio_artist_all_artist_radio_stations').length>=1){
app.showGenreArtistStations={
init:function(sGenreId,sSortedBy,iPage){
this.iPage=iPage||null;
this.sGenreId=sGenreId||null;
this.sSortedBy=sSortedBy||null;
this.oModule=$('#m_lists-music-radio-artist-all_artist_radio_stations');
this.oMixinParams=this.oModule.attr('mixinparams')?app.helper.getMixinParams(this.oModule.attr('mixinparams')):{};
this.oModuleContent=$(this.oModule.selector+' > .m_content');
this.oPagerData=app.helper.getTagData(this.oModuleContent.children('.pagerdata'));
this.oList=$('#list-artist-stations').hide();
this.oLoader=$('.loader',this.oModule).show();
if(this.iPage){
this.oModuleContent.next('.m_pager').remove();
}
this.getGenreArtistStations();
},
setMixinParams:function(oParams,oMixinParams){
var self=this;
var oNewParams={};
if(oMixinParams){
$.each(oMixinParams,function(key,value){
oNewParams[key]=value;
});
}
if(oParams.sort_by&&oMixinParams.search_string&&oMixinParams.search_type){
delete(oNewParams.search_string);
delete(oNewParams.search_type);
}
if(oMixinParams.sort_by&&oParams.search_string&&oParams.search_type){
delete(oNewParams.sort_by);
}
$.each(oParams,function(key,value){
oNewParams[key]=value;
});
var sString='';
$.each(oNewParams,function(key,value){
sString+='&'+key+'='+value;
});
sString=sString.substr(1);
self.oModule.attr('mixinparams',sString);
return oNewParams;
},
listItemHtml:function(iMediaId,sTitle){
var ttClass='';
var addTT;
if(sTitle.length>=35){
addTT='<li class="tooltip"><span class="tt_title">'+sTitle+'</span></li>';
ttClass=' class="tooltips"';
sTitle=sTitle.substr(0,35)+'...';
}
return'<li'+ttClass+'>'+
'<a class="entry" href="#act.rp.playStation.'+iMediaId+'">'+
'<span class="mediaicon bright audio"></span>'+
'<span class="title">'+sTitle+'</span>'+
'</a>'+
'</li>'+addTT;
},
getGenreArtistStations:function(fresh,page){
var self=this;
self.oList.empty();
if(fresh){
self.oList=$('#list-artist-stations').hide();
self.oLoader=$('.loader',self.oModule);
}
if($('#sorted-character span').length==0){
$('#sorted-character').alphasort();
}
var oParams={};
if(self.sGenreId){
oParams.artistgenre_id=self.sGenreId.replace('artistgenre_id:','');
}
var aSortedBy=self.sSortedBy.split(',');
$.each(aSortedBy,function(key,value){
var aSortedByParams=value.split(':');
oParams[aSortedByParams[0]]=aSortedByParams[1];
});
oParams.limit=20;
var iPage=page||self.iPage||self.oPagerData.page||1;
oParams=self.setMixinParams(oParams,self.oMixinParams);
if(oParams.artistgenre_id==1){
delete(oParams.artistgenre_id);
}
oParams.offset=self.oPagerData.items_per_page*(iPage-1);
oParams.full=true;
app.ws.get('getArtistStations','artiststations-'+self.iGenreId,oParams,function(result){
if(!(result.data.error||result.data.length<1)){
var iAvailableRows=result.meta.available_rows;
if(!fresh){
self.oPager=app.helper.showPager(self.oModuleContent,iAvailableRows,self.oPagerData.items_per_page,iPage);
}
var iLastItem=result.data.length;
if(result.data.length%2==0){
var iNextToLastItem=result.data.length-1;
}
var iCountResult=0;
$.each(result.data,function(key,value){
iCountResult++;
var iMediaId=value.id;
var sTitle=value.title;
var oListItem=$(self.listItemHtml(iMediaId,sTitle));
if(iCountResult==1||iCountResult==2){
oListItem.addClass('firstrow');
}
if(iNextToLastItem&&((iCountResult==iLastItem-1)||(iCountResult==iLastItem))){
oListItem.addClass('lastrow');
}
switch(iCountResult%2){
case 1:
oListItem.addClass('left').appendTo(self.oList);
break;
case 0:
oListItem.addClass('right').appendTo(self.oList);
break;
}
if(!iNextToLastItem&&(iCountResult==iLastItem)){
oListItem.addClass('lastrow');
$('<li class="placeholder"></li>').appendTo(self.oList);
}
if(result.data.length==1){
$(self.oList.selector+' > li').css({
border:'0px'
});
}
});
$(self.oList.selector+' > li.list-artist-station-item').click(
function(){
location.href=$(this).attr('href');
$(location).change();
}
);
self.oLoader.hide();
self.oList.show();
}
else{
self.oLoader.hide();
self.oList.show();
sNoResults=$.loc('Sorry, no results');
$('<li class="nowresult"><p>'+sNoResults+'</p></li>').appendTo(self.oList);
}
if(!fresh){
self.oModule.find('div.m_pager').applyPager(null,{},function(pnr){
app.showGenreArtistStations.getGenreArtistStations(true,pnr);
});
}
var sList=$('#m_lists-music-radio-artist-all_artist_radio_stations');
var oGenreTabItems=$(sList).find('#list-genre-tabs > li.genre-tab');
var oSortItems=$('.m_content > div.sort > div > span[item=sort]');
var sSortedBy,sGenreId;
if(!$(sList).attr('mixinparams')){
sGenreId=$(oGenreTabItems[0]).addClass('active').attr('search');
sSortedBy=$(oSortItems[0]).addClass('active').attr('search');
}
else{
var oMixinParams=app.helper.getMixinParams($(sList).attr('mixinparams'));
if(oMixinParams.artistgenre_id){
sGenreId='artistgenre_id:'+oMixinParams.artistgenre_id;
$(oGenreTabItems.selector+'#genre-tab-'+oMixinParams.artistgenre_id).addClass('active');
}
if(oMixinParams.sort_by){
sSortedBy='sort_by:'+oMixinParams.sort_by;
$(oSortItems.selector+'#sorted-by-'+oMixinParams.sort_by).addClass('active');
}
if(oMixinParams.search_type&&oMixinParams.search_string){
sSortedBy='search_type:'+oMixinParams.search_type+',search_string:'+oMixinParams.search_string;
$(oSortItems.selector+'#sorted-character-item-'+oMixinParams.search_string).addClass('active');
}
}
oSortItems.hover(
app.hover.over,app.hover.out
);
oSortItems.unbind('click');
oSortItems.click(
function(){
oSortItems.removeClass('active');
$(this).addClass('active');
var sGenreId=$(oGenreTabItems.selector+'.active').attr('search');
var sSortedBy=$(this).attr('search');
app.showGenreArtistStations.init(sGenreId,sSortedBy,1);
}
);
oGenreTabItems.unbind('click');
oGenreTabItems.click(
function(){
oGenreTabItems.removeClass('active');
$(this).addClass('active');
var sGenreId=$(this).attr('search');
var sSortedBy=$(oSortItems.selector+'.active').attr('search');
app.showGenreArtistStations.init(sGenreId,sSortedBy,1);
}
);
self.oList.find('li.tooltips').tooltip({fixed:true,directOffset:true,offset:[-10,-50],oneInstance:false});
});
}
};
app.showGenreArtistStations.init('artistgenre_id:1','sort_by:title',1);
}
if(self.pageEnv.page.match(/(music\/video|musicvideos)/)){
if($('#c_800_music_videos').length>=1){
app.showMusicVideos={
init:function(sSortedBy,iPage){
this.iPage=iPage||null;
this.sSortedBy=sSortedBy;
this.oModule=$('#m_lists-music-videos');
this.oMixinParams=this.oModule.attr('mixinparams')?app.helper.getMixinParams(this.oModule.attr('mixinparams')):{};
this.oModuleContent=$(this.oModule.selector+' > .m_content');
this.oPagerData=app.helper.getTagData(this.oModuleContent.children('.pagerdata'));
this.oList=this.oModule.find('.list-music-videos').hide();
this.oLoader=$('.loader',this.oModule).show();
if(this.iPage){
this.oModuleContent.next('.m_pager').remove();
}
this.getMusicVideos();
},
setMixinParams:function(oParams,oMixinParams){
var self=this;
var oNewParams={};
if(oMixinParams){
$.each(oMixinParams,function(key,value){
oNewParams[key]=value;
});
}
if(oParams.sort_by&&oMixinParams.search_string&&oMixinParams.search_type){
delete(oNewParams.search_string);
delete(oNewParams.search_type);
}
if(oMixinParams.sort_by&&oParams.search_string&&oParams.search_type){
delete(oNewParams.sort_by);
}
$.each(oParams,function(key,value){
oNewParams[key]=value;
});
var sString='';
$.each(oNewParams,function(key,value){
sString+='&'+key+'='+value;
});
sString=sString.substr(1);
self.oModule.attr('mixinparams',sString);
return oNewParams;
},
listItemHtml:function(iMediaId,sTitle,classes,format){
classes=classes||'';
var _class='';
var addTT='';
if(sTitle.length>=35){
addTT='<li class="tooltip"><span class="tt_title">'+sTitle+'</span></i>';
classes+=' tooltips';
sTitle=sTitle.substr(0,35)+'...';
}
if(classes){
_class=' class="'+classes+'"';
}
var $format={'flv':'.flv.default','rm':'.rm.musicvideo'}[format]||'.rm.musicvideo';
return'<li'+_class+'>'+
'<a class="entry" href="#act.rp.playVideo.'+iMediaId+$format+'">'+
'<span class="mediaicon bright video"></span>'+
'<span class="title">'+sTitle+'</span>'+
'</a>'+
'</li>'+addTT;
},
getMusicVideos:function(fresh,page){
var self=this;
if(fresh){
self.oList=$('.list-music-videos').hide();
self.oLoader=$('.loader',self.oModule);
}
if($('#sorted-character span').length==0){
$('#sorted-character').alphasort();
}
self.oList.empty();
var oParams={};
oParams.videosection_id=$('#videosection_id').attr('videosectionid');
var aSortedBy=self.sSortedBy.split(',');
$.each(aSortedBy,function(key,value){
var aSortedByParams=value.split(':');
oParams[aSortedByParams[0]]=aSortedByParams[1];
});
oParams.limit=30;
var iPage=page||self.iPage||self.oPagerData.page||1;
oParams=self.setMixinParams(oParams,self.oMixinParams);
oParams.offset=self.oPagerData.items_per_page*(iPage-1);
oParams.full=true;
app.ws.get('getMusicVideos','music-videos-'+self.sSortedBy,oParams,function(result){
if(!(result.data.error||result.data.length<1)){
var iAvailableRows=result.meta.available_rows;
if(!fresh){
self.oPager=app.helper.showPager(self.oModuleContent,iAvailableRows,self.oPagerData.items_per_page,iPage);
}
var iNumRows=result.data.length;
var iLastRowItems;
var nextColOn=Math.ceil(iNumRows/3);
var iCountResult=0;
var currUl=0;
var listHtml=[];
$.each(result.data,function(key,value){
iCountResult++;
var classes=[];
if((iCountResult%nextColOn==0||iCountResult==iNumRows)){
classes.push('lastrow');
}
if(iCountResult%nextColOn==1||iCountResult==1||nextColOn==1){
classes.push('firstrow');
}
var oListItem=self.listItemHtml(value.videoclip_id,value.title,classes.join(' '),value.format);
listHtml.push(oListItem);
if(iCountResult%nextColOn==0||iCountResult==iNumRows){
$(listHtml.join('')).appendTo(self.oList[currUl]);
listHtml=[];
currUl++;
}
});
$(self.oList.selector+' > li.list-music-videos-item').click(
function(){
location.href=$(this).attr('href');
$(location).change();
}
);
self.oLoader.hide();
self.oList.show();
}
else{
self.oLoader.hide();
self.oList.show();
sNoResults=$.loc('Sorry, no results');
$('<li class="nowresult"><p>'+sNoResults+'</p></li>').appendTo(self.oList[0]);
}
if(!fresh){
self.oModule.find('div.m_pager').applyPager(null,{},function(pnr){
app.showMusicVideos.getMusicVideos(true,pnr);
});
}
var oSortItems=$('#m_lists-music-videos > .m_content > div.sort > div > span[item=sort]');
var sSortedBy;
if(self.oModule.attr('mixinparams')){
var oMixinParams=app.helper.getMixinParams(self.oModule.attr('mixinparams'));
if(oMixinParams.sort_by){
sSortedBy='sort_by:'+oMixinParams.sort_by;
$(oSortItems.selector+'#sorted-by-'+oMixinParams.sort_by).addClass('active');
}
if(oMixinParams.search_type&&oMixinParams.search_string){
sSortedBy='search_type:'+oMixinParams.search_type+',search_string:'+oMixinParams.search_string;
$(oSortItems.selector+'#sorted-character-item-'+oMixinParams.search_string).addClass('active');
}
}else{
sSortedBy=$(oSortItems[0]).addClass('active').attr('search');
}
oSortItems.hover(
app.hover.over,app.hover.out
);
oSortItems.unbind('click');
oSortItems.click(
function(){
oSortItems.removeClass('active');
$(this).addClass('active');
var sSortedBy=$(this).attr('search');
app.showMusicVideos.init(sSortedBy,1);
}
);
self.oList.find('li.tooltips').tooltip({fixed:true,directOffset:true,offset:[-10,-50],oneInstance:false});
});
}
};
app.showMusicVideos.init('sort_by:title',1);
}
}
if($('#c_300_video-entertainment-film_directory').length>=1){
app.showFilmTrailers={
init:function(sSortedBy,iPage){
this.iPage=iPage||null;
this.sSortedBy=sSortedBy;
this.oModule=$('#m_lists-video-film_directory');
this.oMixinParams=this.oModule.attr('mixinparams')?app.helper.getMixinParams(this.oModule.attr('mixinparams')):{};
this.oModuleContent=$(this.oModule.selector+' > .m_content');
this.oPagerData=app.helper.getTagData(this.oModuleContent.children('.pagerdata'));
this.oList=$('#list-film-trailers').hide();
this.oLoader=$('.loader',this.oModule).show();
if(this.iPage){
this.oModuleContent&&this.oModuleContent.next('.m_pager').remove();
}
this.getFilmTrailers();
},
setMixinParams:function(oParams,oMixinParams){
var self=this;
var oNewParams={};
if(oMixinParams){
$.each(oMixinParams,function(key,value){
oNewParams[key]=value;
});
}
$.each(oParams,function(key,value){
oNewParams[key]=value;
});
var sString='';
$.each(oNewParams,function(key,value){
sString+='&'+key+'='+value;
});
sString=sString.substr(1);
self.oModule.attr('mixinparams',sString);
return oNewParams;
},
listItemHtml:function(iMediaId,sTitle,sProduct){
return'<li>'+
'<a class="entry" href="/video/'+sProduct+'/?id='+iMediaId+'">'+
'<span class="mediaicon bright video"></span>'+
'<span class="title">'+sTitle+'</span>'+
'</a>'+
'</li>';
},
getFilmTrailers:function(fresh,page){
var self=this;
if(fresh){
self.oList=$('#list-film-trailers').hide();
self.oLoader=$('.loader',self.oList);
}
if($('#sorted-character span').length==0){
$('#sorted-character').alphasort();
}
self.oList.empty();
var oParams={};
oParams.format='detailed';
oParams.sort_by='edition_title';
var aSortedBy=self.sSortedBy.split(',');
$.each(aSortedBy,function(key,value){
var aSortedByParams=value.split(':');
oParams[aSortedByParams[0]]=aSortedByParams[1];
});
oParams.limit=10;
var iPage=page||self.iPage||self.oPagerData.page||1;
oParams=self.setMixinParams(oParams,self.oMixinParams);
oParams.offset=self.oPagerData.items_per_page*(iPage-1);
oParams.full=true;
app.ws.get('getMovieTrailers','film-trailers-'+self.sSortedBy,oParams,function(result){
if(!(result.data.error||result.data.length<1)){
var iAvailableRows=result.meta.available_rows;
if(!fresh){
self.oPager=app.helper.showPager(self.oModuleContent,iAvailableRows,self.oPagerData.items_per_page,iPage);
}
var iCountResult=0;
$.each(result.data,function(key,value){
var sProduct='';
if(value.product=='cinema'){
sProduct='incinemas';
}
else if(value.product=='dvd'){
sProduct='dvd';
}
iCountResult++;
var iMediaId=value.movie_id;
var sTitle=value.edition_title;
var oListItem=$(self.listItemHtml(iMediaId,sTitle,sProduct));
if(iCountResult==result.data.length){
oListItem.addClass('lastrow');
}
oListItem.appendTo(self.oList);
});
$(self.oList.selector+' > li.list-film-trailers-item').click(
function(){
location.href=$(this).attr('href');
$(location).change();
}
);
self.oLoader.hide();
self.oList.show();
}
else{
self.oLoader.hide();
self.oList.show();
sNoResults=$.loc('Sorry, no results');
$('<li class="nowresult"><p>'+sNoResults+'</p></li>').appendTo(self.oList);
}
if(!fresh){
self.oModule.find('div.m_pager').applyPager(null,{},function(pnr){
app.showFilmTrailers.getFilmTrailers(true,pnr);
});
}
var oSortItems=$('#m_lists-video-film_directory > .m_content > div.sort > div > span[item=sort]');
if(self.oModule.attr('mixinparams')){
var sSortedBy;
var oMixinParams=app.helper.getMixinParams(self.oModule.attr('mixinparams'));
if(oMixinParams.sort_by){
sSortedBy='sort_by:'+oMixinParams.sort_by;
$(oSortItems.selector+'#sorted-by-'+oMixinParams.sort_by).addClass('active');
}
if(oMixinParams.search_type&&oMixinParams.search_string){
sSortedBy='search_type:'+oMixinParams.search_type+',search_string:'+oMixinParams.search_string;
$(oSortItems.selector+'#sorted-character-item-'+oMixinParams.search_string).addClass('active');
}
}else{
sSortedBy=$(oSortItems[0]).addClass('active').attr('search');
}
oSortItems.hover(
app.hover.over,app.hover.out
);
oSortItems.unbind('click');
oSortItems.click(
function(){
oSortItems.removeClass('active');
$(this).addClass('active');
var sSortedBy=$(this).attr('search');
var iPage=1;
app.showFilmTrailers.init(sSortedBy,iPage);
}
);
});
}
};
app.showFilmTrailers.init('search_type:firstc,search_string:0',1);
}
if(self.pageEnv.page.match(/music\/radio\/bbc/)){
if($('#c_800_music_radio_bbc_listen_again').length>=1){
app.showBBCOnDemandFeed={
init:function(station){
self.setTimeout(function(){app.showBBCOnDemandFeed.getFeed(station||'radio1');},1000);
},
listItemHtml:function(iEntryKey,sRealStreamingUrl,sTitle,sStartDate,sDaysToListen,sSynopsis,sLinkToShow,station){
return'<li>'+
'<dl>'+
'<dd class="icon">'+
'<div class="mediaicon bright audio"></div>'+
'</dd>'+
'<dd class="title">'+
'<a href="'+sRealStreamingUrl+'">'+sTitle+'</a>'+
'</dd>'+
'<dd class="start">'+sStartDate+'</dd>'+
'<dd class="days-to-listen">'+sDaysToListen+'</dd>'+
'<dd class="synopsis">'+sSynopsis+'</dd>'+
'<dd class="link">'+
'<a href="'+sLinkToShow+'" target="_new">Link to show at BBC</a>'+
'</dd>'+
'</dl>'+
'</li>';
},
getFeed:function(station){
var self=this;
app.ws.get('bbcondemand','bbcondemand-'+station,{station:station},function(result){
var oModuleLists=$('#tabcontent_c_800_music_radio_bbc_listen_again-'+station+' > div.module.lists');
$('#bbc-'+station+'-entries-loader').hide();
var oList=$('#bbc-'+station+'-entries',oModuleLists);
if(oList.children('li').length==0){
if(!(result.error||result.length<1)){
var oListItem,sDaysToListen,sLinkToShow;
$.each(result,function(iEntryKey,oEntryValue){
if(oEntryValue.availability.days_left_to_list==1||oEntryValue.availability.days_left_to_list==0){
sDaysToListen=oEntryValue.availability.days_left_to_list+' day left to listen';
}
else{
sDaysToListen=oEntryValue.availability.days_left_to_list+' days left to listen';
}
sLinkToShow='http://www.bbc.co.uk/iplayer/console/'+oEntryValue.pid[1];
oListItem+=self.listItemHtml(
iEntryKey,
oEntryValue.real_streaming_url,
oEntryValue.title,
oEntryValue.availability.start,
sDaysToListen,
oEntryValue.synopsis,
sLinkToShow,
station
);
});
$(oListItem).appendTo(oList);
}
else{
sServiceNotAvaiable=$.loc('We\'re sorry, but this service is temporarily unavailable');
$('<li class="nowresult"><p>'+sServiceNotAvaiable+'</p></li>').appendTo(oList);
}
$('li:even',oList).addClass('left');
$('li:odd',oList).addClass('right');
}
});
}
};
}
if($('#c_300_music_radio_bbc_local_bbc_radio').length>=1){
app.showLocalBBCRadio={
init:function(region){
this.context=$('#m_lists-music-radio-bbc-local-bbc-radio');
this.sRegionId=(region)?region:'south_east';
this.sMap=$(this.context.find('#uk_map')[0]);
this.sMapSource=$(this.context.find('#region_image-'+this.sRegionId)[0]).attr('src');
this.sRegionName=$(this.context.find('area[regionid='+this.sRegionId+']')[0]).attr('title');
this.oList=$(this.context.find('#list-local-bbc-radio')[0]);
this.iLoopCount=0;
this.iLoopLastIndex=this.regionRadio[this.sRegionId].length;
this.selectedRegionRadio();
},
listItemHtml:function(iLoopCount,iMediaId,sTitle,classes){
var li=classes?'<li class="'+classes+'">':'<li>';
return li+'<a class="entry" href="#act.rp.playStation.'+iMediaId+'">'+
'<span class="mediaicon bright audio"></span>'+
'<span class="title">'+sTitle+'</span>'+
'</a>'+
'</li>';
},
regionRadio:{
london:[
{name:'BBC London Live',id:8}
],
south_east:[
{name:'BBC Radio Berkshire',id:3515},
{name:'BBC Radio Kent',id:3529},
{name:'BBC Radio Oxford',id:3540},
{name:'BBC Radio Solent',id:3543},
{name:'BBC Southern Counties Radio',id:3545},
{name:'BBC Three Counties Radio',id:3549}
],
south_west:[
{name:'BBC Radio Bristol',id:3516},
{name:'BBC Radio Cornwall',id:3519},
{name:'BBC Radio Devon',id:3522},
{name:'BBC Radio Gloucestershire',id:3524},
{name:'BBC Radio Swindon',id:3548},
{name:'BBC Radio Wiltshire',id:3550}
],
east:[
{name:'BBC Radio Cambridge',id:3517},
{name:'BBC Radio Essex',id:3523},
{name:'BBC Radio Norfolk',id:3537},
{name:'BBC Radio Suffolk',id:3547}
],
north_east:[
{name:'BBC Radio Cleveland',id:3518},
{name:'BBC Radio Newcastle',id:3536}
],
north_west:[
{name:'BBC Radio Cumbria',id:3520},
{name:'BBC Radio Lancashire',id:3530},
{name:'BBC Radio Manchester',id:3534},
{name:'BBC Radio Merseyside',id:3535}
],
west_midlands:[
{name:'BBC Radio Derby',id:3521},
{name:'BBC Radio Hereford & Worcester',id:3526},
{name:'BBC Radio Shropshire',id:3542},
{name:'BBC Radio Stoke',id:3546},
{name:'BBC Radio WM',id:3551}
],
northern_ireland:[
{name:'BBC Radio Foyle',id:420},
{name:'BBC Radio Ulster',id:421}
],
channel_islands:[
{name:'BBC Radio Guernsey',id:3525},
{name:'BBC Radio Jersey',id:3528}
],
yorkshire:[
{name:'BBC Radio Humberside',id:3527},
{name:'BBC Radio Leeds',id:3531},
{name:'BBC Radio Sheffield',id:3541},
{name:'BBC Radio York',id:3552}
],
east_midlands:[
{name:'BBC Radio Leicester',id:3532},
{name:'BBC Radio Lincolnshire',id:3533},
{name:'BBC Radio Northamptonshire',id:3538},
{name:'BBC Radio Nottingham',id:3539}
],
scotland:[
{name:'BBC Radio Scotland',id:448}
],
wales:[
{name:'BBC Radio Wales',id:18}
]
},
selectedRegionRadio:function(){
var self=this;
this.sMap.attr('src',this.sMapSource);
var oRegionName=$(this.context).find('#region_name')[0];
$(oRegionName).html(this.sRegionName);
var listHtml=[];
self.oList.empty().hide();
$.each(self.regionRadio[self.sRegionId],
function(key,value){
var _class='';
self.iLoopCount++;
if(self.iLoopCount==1){
_class='firstrow';
}
if(self.iLoopCount==self.iLoopLastIndex){
_class='lastrow';
}
listHtml.push(self.listItemHtml(
self.iLoopCount,
self.regionRadio[self.sRegionId][self.iLoopCount-1].id,
self.regionRadio[self.sRegionId][self.iLoopCount-1].name,_class));
}
);
$(listHtml.join('')).appendTo(self.oList);
self.oList.fadeIn(2000);
}
};
app.showLocalBBCRadio.init();
$(app.showLocalBBCRadio.context).find('div.uk_map > map > area').each(
function(k,v){
var sRegionId=$(v).attr('regionid');
$(v).bind('mouseenter',
function(){
$(app.showLocalBBCRadio.context).find('#region_image-'+sRegionId).show();
}
);
$(v).bind('mouseleave',
function(){
$(app.showLocalBBCRadio.context).find('img.region_images').hide();
}
);
$(v).click(
function(){
app.showLocalBBCRadio.init(sRegionId);
}
);
}
);
}
}
switch(pageEnv.page.replace(/\/$/,'')){
case'music/radio/artist':
case"music/videos":
case'music/musicvideos':
case'music/radio/uk':
case'music/radio/de':
case'music/blog':
case'video/blog':
case'video/itn':
case'video/default':
$('#content .module li.tooltips').tooltip({fixed:true,directOffset:true,offset:[-10,-50],oneInstance:false});
break;
}
$('#content .module.lists li.listitem a').click(app.preventPanelExpand);
};app.SlideShow=function(sSlideShowId){
this.sSlideShowId=sSlideShowId;
this.oSlideContent=$('#'+sSlideShowId+' dl.slidecontent');
this.oSlideButtons=$('#'+sSlideShowId+' dl.slidebuttons');
this.oRunning=false;
this.iNumberOfItems=this.getNumberOfItems();
this.iItemId=1;
this.oAlignedButtonTitles=this.alignButtonTitles();
this.oEvents=this.events();
this.oSelectedItem=this.selectItem();
};
app.SlideShow.prototype.alignButtonTitles=function(){
var self=this;
$.each(self.oSlideButtons.children('.slidebutton').children('p'),function(){
var iParentHeight=$(this).parent().height();
var iThisHeight=$(this).height();
var iVerticalPadding;
if(iThisHeight<iParentHeight){
iVerticalPadding=Math.floor((iParentHeight-iThisHeight)/2);
}
else{
iVerticalPadding=0;
}
$(this).css({
paddingTop:iVerticalPadding,
visibility:'visible'
});
});
};
app.SlideShow.prototype.getItemId=function(oElement){
var sElementItemId=oElement.attr('itemid');
var oElementItemIdArray=sElementItemId.split('-');
var iItemId=oElementItemIdArray[oElementItemIdArray.length-1];
return parseInt(iItemId);
};
app.SlideShow.prototype.getNumberOfItems=function(){
var self=this;
iNumberOfItems=self.oSlideContent.children('dt.slideimage').length;
return iNumberOfItems;
};
app.SlideShow.prototype.selectItem=function(){
var self=this;
self.oSlideButtons.children('.slidebutton').removeClass('selected');
var oSelectedItem={};
oSelectedItem.image=self.oSlideContent.children('dt[itemid="slideimage-item-'+self.iItemId+'"]');
oSelectedItem.description=self.oSlideContent.children('dd[itemid="slidedescription-item-'+self.iItemId+'"]');
oSelectedItem.button=self.oSlideButtons.children('dd[itemid="slidebutton-item-'+self.iItemId+'"]');
oSelectedItem.image.addClass('selected');
oSelectedItem.description.addClass('selected');
oSelectedItem.button.addClass('selected');
return oSelectedItem;
};
app.SlideShow.prototype.switchItems=function(){
var self=this;
self.oSelectedItem=self.selectItem();
self.iItemId=self.getItemId(self.oSelectedItem.image);
self.iItemId=(self.iNumberOfItems<self.iItemId+1)?1:self.iItemId+1;
var oNextItem=self.selectItem();
self.oSelectedItem.image.removeClass('selected last-selected');
self.oSelectedItem.description.removeClass('selected last-selected');
};
app.SlideShow.prototype.events=function(){
var self=this;
if(!$('#'+self.sSlideShowId).find('.slidecontent').children().length){
return;
}
if($('#'+self.sSlideShowId).css('display')=='none'){
clearInterval(self.oRunning);
}else{
$('#'+self.sSlideShowId).css({
display:'block'
});
self.oRunning=self.start();
}
$('#'+self.sSlideShowId).hover(
function(){
clearInterval(self.oRunning);
},
function(){
self.oRunning=self.start();
}
);
self.oSlideButtons.children().click(function(){
self.oSelectedItem=self.selectItem();
if(self.iItemId!=self.getItemId($(this))){
self.iItemId=self.getItemId($(this));
var oNextItem=self.selectItem();
self.oSelectedItem.image.removeClass('selected last-selected');
self.oSelectedItem.description.removeClass('selected last-selected');
}
})
.hover(
app.hover.over,app.hover.out
);
self.oSlideContent.hover(
function(){
$(this).children('dd[itemid="slidedescription-item-'+self.iItemId+'"]').children('h3').addClass('eventhover');
$(this).children('dd[itemid="slidedescription-item-'+self.iItemId+'"]').children('p').slideDown(200);
},
function(){
$(this).children('dd[itemid="slidedescription-item-'+self.iItemId+'"]').children('h3').removeClass('eventhover');
$(this).children('dd[itemid="slidedescription-item-'+self.iItemId+'"]').children('p').slideUp(200);
}
).click(
function(){
location.href=$(this).children('dt[itemid="slideimage-item-'+self.iItemId+'"]').attr('href');
$(location).change();
}
);
};
app.SlideShow.prototype.start=function(){
var self=this;
return setInterval(function(){
self.switchItems();
},5000);
};
app.initThumbnails=function(){
$('#content .thumbnails.type3 li, #content .thumbnails.type2 li').hover(
app.hover.over,app.hover.out
);
if(self.pageEnv.page.match(/(games|video\/clips|video\/entertainment)/)){
$('#m_thumbnails-games-featured_games span.category_button, #c_480_video_entertainment span.category_button').hover(
app.hover.over,app.hover.out
);
}
switch(pageEnv.page.replace(/\/$/,'')){
case"video/entertainment":
case"video/clips":
case'video/film-trailers':
case'video/incinemas':
case'video/flash/incinemas':
case'video/coming_soon':
case'video/dvd':
case"music/videos":
case"music/musicvideos":
case"music/german-radio":
$('#content .module.thumbnails li.tooltips').tooltip({fixed:true,directOffset:true,offset:[-10,-50],oneInstance:false});
break;
}
$('#content .module.thumbnails li.thumbnailitem a').click(app.preventPanelExpand);
};app.initWidgets=function(){
if(self.pageEnv.section=='games'){
$('#m_widgets-games-play-play_game span.play_button').hover(
app.hover.over,app.hover.out
);
}
if(self.pageEnv.page.match('(video\/livenews|upsell\/superpass)')){
$('#m_boxes-video-what_is_superpass span.signup_button, #m_widgets-video-superpass_upsell_info span.signup_button').hover(
app.hover.over,app.hover.out
);
}
if(self.pageEnv.page.match('video\/(incinemas|dvd|coming_soon|itn)')){
$('#m_widgets-video-movietrailer-film_details #filmdetails .buttonContainer')
.click(
function(event){
$('#m_widgets-video-movietrailer-film_details').find('.clip_button, .clip_button_a').removeClass('highlight');
$('.clip_button, .clip_button_a',this).addClass('highlight');
}
)
.hover(
function(){$('.clip_button, .clip_button_a',this).addClass('eventhover');},
function(){$('.clip_button, .clip_button_a',this).removeClass('eventhover');}
);
}
if(self.pageEnv.page.match('(video\/player\/rm|upsell\/superpass)')){
$('#m_widgets-video-contextpane-now_playing span.back_button, #superpass_channel_selector span.back_button').hover(
app.hover.over,app.hover.out
);
$('#m_widgets-video-contextpane-now_playing > .m_content > .share_it_bar_area .share_EMAIL')
.click(
function(){
var clipTitle=$('#m_widgets-video-contextpane-now_playing > .m_content > .now_playing_content > h2.title').text();
var clipUrlData=app.helper.getTagData($(this));
var clipUrl='http://'+window.location.hostname+'/play/video/'+clipUrlData.contextpane+'/'+clipUrlData.videoclip_id+'.smil';
window.open('https://mailer.real.com/form.html?lang='+self.pageEnv.language+'&cd=email&clipTitle='+clipTitle+'&clipUrl='+clipUrl,'popup','width=394,height=400,location=no,scrollbars=no,status=no,resizable=no');
}
);
$isContextpane=$('div.videocontextpane');
if($isContextpane.length>0){
$("body").css("background-color","#000000");
}
}
if(self.pageEnv.page.match('upsell\/superpass')){
$isSuperpassUpsell=$('#m_widgets-video-superpass_upsell_info');
if($isSuperpassUpsell.length>0){
app.RTracking.init({autoload:false});
app.RTracking.trackClick({
id:$isSuperpassUpsell.attr('videoclip_id'),
partner:$isSuperpassUpsell.attr('partner'),
type:'SPupsell',
media:'superpass'
});
}
}
};

