﻿document.domain = document.domain.split('.').slice(-2).join('.');
function isFunc (f) {return typeof f == 'function';}
function tryExec (f){if (isFunc(f)) {f(arguments);}}
var templateFiles = {simplifycounter: "../inc/templates/simplifycounter--r16781.js"};
detector = {
	isRealPlayer: function(){
		return /\(R1/.test( navigator.userAgent );
	},
	isObject: function (type){
		return ( "undefined" != typeof(type) );
	},
	addPlayrObj:function () {
		document.write('<OBJECT ID="IERPCtl" WIDTH=0 HEIGHT=0 CLASSID="CLSID:FDC7A535-4070-4B92-A0EA-D9994BCC0DC5"></OBJECT>');
	},
	getPlayerVersion: function(plyrObj){ // returns player version in form of 12.0.0.13
		var raw = plyrObj.RealPlayerVersion;
		return "" + ((raw >> 28) & 0xF) + "." +
			((raw & 0xFF00000) >> 20) + '.' +
			((raw & 0xFF000) >> 12) + '.' +
			( raw & 0xFFF);
	},
	winIE5upPlyrDetect: function (){
		var playerAxObj,iectlAxObj;
		try{
			iectlAxObj = new ActiveXObject("Shell.Explorer");
		}
		catch (e) {}
		try{
			playerAxObj = new ActiveXObject("rmocx.RealPlayer G2 Control.1");
			
			this.result.realPlayerVersion = (playerAxObj.GetVersionInfo() || browserDetect.getPlayerVersion(playerAxObj));
			this.result.realPlayerBW = document.getElementById("IERPCtl").PlayerProperty("Bandwidth");
		}
		catch (e) {}
		if(!this.isObject(iectlAxObj) && !this.isObject(playerAxObj)){
			return 0; //ActiveX disabled
		}
		return  1 ;
	},
	// v1 > v2 ? return  2, v1 = v2 ? return  1, v1 < v2 ? return  0
	compVersions: function (v1,v2){
		if (String(v1) == String(v2)) {return 1;}
		v1 = v1.split('.'); v2 = v2.split('.');
		if (v1[0] == v2[0]) {
			return this.compVersions( v1.slice(1,v1.length).join('.'), v2.slice(1,v2.length).join('.') );
		}
		return (parseInt(v1[0]?v1[0]:0) > parseInt(v2[0]?v2[0]:0)) ? 2 : 0;
	},
	checkPlugin:function (name){
		plugin = navigator.plugins[name];
		if(this.isObject(plugin)){
			this.result.realPlayerVersion = plugin.description;
			return true;
		}
		return false;
	},
	pluginDetect: function (){
		return (
			(this.checkPlugin("RealPlayer Version Plugin")) ||
			(this.checkPlugin("RealOne Player Version Plugin")) ||
			(this.checkPlugin("Helix DNA Plugin: RealPlayer G2 Plug-In Compatible"))
		);
	},
	mimeTypeDetect: function (){
		return (
			this.isObject(navigator.mimeTypes) &&
			this.isObject(navigator.mimeTypes["audio/x-pn-realaudio-plugin"])
		);
	},
	isWinIE5plus: function (){
		var result = false;
		var uaLower = navigator.userAgent.toLowerCase();
		if(uaLower.indexOf("windows") >=0 && uaLower.indexOf("msie")>=0){
			var versRX = /msie\s+[5-9]/;
			result = versRX.test(uaLower);
		}
		return result;
	},
	oldPlayerDetect: function () {
		var agt=navigator.userAgent.toLowerCase();
		var yourPlayer = 'undetermined';
		// now the tricky part : people we're not sure about yet
		numPlugins = navigator.plugins.length;
		oldRealPlayer = 'false';
		oldRealPlayerIE = 'false';
		for (i = 0; i < numPlugins; i++) {
			plugin = navigator.plugins[i];
			if (plugin.name.substring(0,10)=="RealPlayer") {
				oldRealPlayer = 'true';
			}
		}
		if (navigator.userAgent.indexOf("95") != -1) {
			oldRealPlayer = 'false';
			document.writeln('<script language="VBscript">');
			document.writeln('on error resume next');
			document.writeln('RealPlayerG2 = not IsNull(CreateObject("rmocx.RealPlayer G2 Control"))');
			document.writeln('if (RealPlayerG2) then');
			document.writeln('oldRealPlayerIE=\"true\"');
			document.writeln('else');
			document.writeln('oldRealPlayerIE=\"false\"');
			document.writeln('end if');
			document.writeln('</scr' + 'ipt>');
			numPlugins = navigator.plugins.length;
			for (i = 0; i < numPlugins; i++) {
				plugin = navigator.plugins[i];
				if (plugin.name.substring(0,10)=="RealPlayer") {
					oldRealPlayer = 'true';
				}
			}
		}
		if ( oldRealPlayer == 'true' || oldRealPlayerIE == 'true') {
			this.result.realPlayer = 'g2player';
		}
	},
	newPlayerDetect: function (){
		if( this.isWinIE5plus() && this.winIE5upPlyrDetect()) {
			this.result.detection_method = 'activex';
		}
		else if(this.pluginDetect()) {
			this.result.detection_method = 'plugin';
		}
		else if(this.mimeTypeDetect()) {
			this.result.detection_method = 'mime';
		}
		if (this.result.realPlayerVersion != 'unknown') {
			$H({boxter:'6.0.12',beamer:'6.0.11',viper:'6.0.10',rp8:'6.0.8',g2player:'6.0.6'}).each(function(e){
				if (detector.result.realPlayer=='unknown' &&detector.compVersions(detector.result.realPlayerVersion,e.value) >= 1){
					detector.result.realPlayer = e.key;
				}
			});

			if (this.result.realPlayer == 'unknown' && this.result.realPlayerVersion.search( '/RealPlayer G2 Plug-In/i') ) {
				this.result.realPlayer = 'g2player';
			}
		}
		if (this.result.realPlayer == 'unknown') {
			this.oldPlayerDetect();
		}
	},
	result: {
		os:     			'unknown',
		browser_name:       'unknown',
		realPlayer:  		'unknown',// [unknown, boxter, beamer, viper, rp8, g2player]
		realPlayerVersion:  'unknown',// [unknown, n.nn.nn...]
		realplayer_realmusic_compatible: false,
		detection_method:   'none',// [none, activex, plugin, mime]
		bandwidth:          'unknown',// [unknown, number]
		realplayer_object:  'none'
	},
	start:function () {
		  this.addPlayrObj();
		  this.newPlayerDetect();
		  this.getOS();
		  this.getUseragent();
		  this.result.realplayer_realmusic_compatible = 
		  	( this.result.realPlayerVersion == 'unknown' ? false : (
			(this.result.os='mac' && (this.compVersions(this.result.realPlayerVersion,'10.0.0') >= 1) ) || // mac version
			(this.compVersions(this.result.realPlayerVersion,'6.0.10') >= 1))); // windows version
		this.result.realplayer_object = $("IERPCtl");
	},
	getOS: function (){
		var variants = {
			  'Win95':'win95','indows 95':'win95',
			  'Win98':'win98','indows 98':'win98',
			  'WinMe':'winme','indows Me':'winme',
			  'WinXP':'winXP','indows NT 5':'winXP','5.0 (Windows':'winXP',
			  'inux':'Linux','nix':'Linux','X11':'Linux',
			  'Mac':'Mac'
		};
		
		for (i in variants){
			  if  (navigator.appVersion.indexOf(i) > -1) {this.result.os = variants[i]; break;}
		}
	},
	getUseragent:function() {
		  var agents = {
			  'R1':'realplayer','RealPlayer':'realplayer',
			  'Chrome':'chrome',
			  'Firefox':'firefox',
			  'Safari':'safari',
			  'MSIE 5.5':'ie55','MSIE 5':'ie5','MSIE 6':'ie6','MSIE 7':'ie7'
		  };
		  
		  for (i in agents){
			  if  (navigator.userAgent.indexOf(i) > -1) {this.result.browser_name = agents[i]; break;}
		  }
	}
};

detector.start();

function RPOnLogin(){ 
	setTimeout(function(){self.loginModule.handleRPlogin();},3500); 
}

loginModuleClass = Class.create();
loginModuleClass.prototype = {
	initialize: function(options) {
		var oThis = this;
		['staging','mode','adds','player_url','darfrefresh', 'debug'].each(function(v,k){
			oThis[v] = self.urlhelper.getGetParamFromUrl(top.location.href,v) || '';
		});
		this.ec = self.pageEnv.edition_code;
		this.lc = self.pageEnv.language;
		
		this.prot = (document.location.protocol.indexOf('https') > -1) ? 'https':'http';
		
		this.darfUrl = (this.staging)?'http://staging-gapi.euro.real.com/darf/':'http://gapi.euro.real.com/darf/';
		this.darfUrlssl = (this.staging)?'http://staging-gapi.euro.real.com/darf/':'https://gapi.euro.real.com/darf/';
		
		this.isLoggedIn = self.darf.getServiceStatusCookie(1);
		this.theOs = detector.result.os;
		this.userEmail = '';
		this.checkedSmallHead = false;
		this.simplify = false;
		this.basicUrls = {
		  'myaccountUrl': 'https://account.real.com/acct/login.html?language='+this.lc.toUpperCase()
		};
		if (this.adds == 'no') {Element.addClassName(document.body,'smallhead');	}
		tryExec(this.initTempl||0);
	},
	oninit: function (){
		if (!this.inited){
			if (this.adds == 'no') {Element.addClassName(document.body,'smallhead');	}
			if (this.adds == 'yes') {Element.removeClassName(document.body,'smallhead');	}
			self.setTimeout(function () {self.loginModule.initializeDarfHandler();},100);
		}
		this.inited = true;
	},
	checkRPLoggedIn: function () {
		return self.darf.getServiceStatusCookie(1) || self.cookies.get('RNUser');
	},
	getHtmlCode: function (targetDivName) {
		if (!this.checkRPLoggedIn()) {
			return '<div id="'+ targetDivName+'" class="collapsed"></div>';
		}
		var params = [
			'oninit='+ encodeURIComponent('parent.loginModule.oninit();'),
			'time='+encodeURIComponent((new Date()).getTime())
			//,'debug=true'
		];
		if (this.darfrefresh) {params.push('darfrefresh=true');}
		if (this.prot == 'https') {params.push('secure=true');}
		var index = (this.prot=='https') ? 'secure_index' : 'index';
		return '<div id="'+ targetDivName+'" class="collapsed"></div><iframe name="darfcall" id="darfcall" width="0" height="0" src="'+this.darfUrl+ index +'.html?rev=12&' +params.join('&') +'" frameborder="0"></iframe>';
	},
	showLoader: function (frame){
		self.loginForm.clearErrors();
		if (frame == 'login' && $('loader')) {
			$('loader').show();
		}
	},
	hideLoader: function () {
		$('loader').hide();
	},
	getUserId: function (){
		return self.frames.darfcall.darfHandler.userId;
	},
	cookiesActivated:function () {
		if (!document.cookie) {
			document.cookie= 'smplCookieTest=void; path=/; domain=.real.com; expires='+self.cookies.getExpiryFromDays(1)+';';
		}
		if (!document.cookie) {
			return false;
		}
		else {
			document.cookie= 'smplCookieTest=void; path=/; domain=.real.com; expires='+self.cookies.getExpiryFromDays(-1)+';';
			return true;
		}
	},
	setRefreshCookie: function () {
		self.cookies.set({name:'darfReAuth',value:'true',expiresInDays:1});
	},
	refresh: function (delay) {
		if (!delay)	{delay = 1;}
		self.refreshTimer = self.setTimeout(function() {self.location.reload();	},delay);
	},
	initBox: function () {
		this.currentView = 'SMOD_init';
		$('SMOD_statusbox').innerHTML ='<div id="statusbox"><div id="SMOD_init" class="box"><div id="loader"></div></div></div>';
		if (!this.checkedSmallHead && Element.hasClassName(document.body,'smallhead')) {
			this.addExpandFunctions();
		}
	},
	injectHTML: function (h){
		if ($(this.currentView)) {
(function(){Element.remove(self.loginModule.currentView);})();
		}
		new Insertion.Bottom($('statusbox'),h);
		/*if (Element.hasClassName(document.body,'smallhead')){
			var footer =		'<a href="javascript://" onclick="self.loginModule.toggleBox();" id="status_box_toggle" class="up"></a>';
			new Insertion.Bottom($('SMOD_statusbox'),footer);
		}*/
		new Insertion.Before($('SMOD_statusbox'),'<div id="SMOD_statusbox_left"></div>');
	},
	
	addExpandFunctions: function (){
		$('statusbox').onmouseover = function(){self.loginModule.expandBox();};
		$('statusbox').onmouseout =  function(){self.loginModule.collapseBox(1000);};
		this.checkedSmallHead = true;
	},
	updateBox: function(newview){
		if (this.mode) {newview = this.mode;}
		if (!newview) {
			newview = this.currentView || 'statuslist';
			if (!this.checkedSmallHead && Element.hasClassName(document.body,'smallhead')) {
				this.addExpandFunctions();
			}
		}
		var html ='';
		var u = '';
		switch (newview){
			case 'OSWarning':
			  	html += '<div id="OSWarning" class="box"><div class="'+ this.theOs.toLowerCase() +'"><span>';
				html += (this.theOs.indexOf('win') > -1) ? 'status/e_98_no_support'.tr():html += 'status/e_Mac_no_support'.tr({os:'Linux'});
				html += '</span></div></div>';
			  	break;
			case 'nocookies':
			  	html += '<div id="nocookies" class="box"><span style="display:block;margin:5px 6px 0 10px;text-align:center;">' + 'status/e_no_cookies'.tr() + '</span></div>';
			  	break;
			case 'simplify':
			  	self.simplifyCounter_callback = function() {
					html = self.loginModule.getHTMLsnippet();
					self.loginModule.injectHTML(html);
					self.loginModule.startSimplifyTimer();
				};
				if (templateFiles.simplifycounter){
					var srcPath = (self.pageEnv.previewmode) ? '/realgen_input/targettype_freedom/' : self.pageEnv.FD_IMGPATH;
					document.addScriptSrc(srcPath+templateFiles.simplifycounter.replace('../',''));
				}
			  	break;
/*  ->->->->->->->->  statuslist  */
			case 'statuslist':
			  	var displayEmail = (this.userEmail.length > 22) ? this.userEmail.substring(0,21) + '...' : this.userEmail;
				html += '<div id="statuslist" class="box">'+
					 '<div  id="SMOD_userEmail"><span class="inner">'+ displayEmail + '</span></div>';
				html +='<div class="loginLinks">';
				
				if (self.darf.getServiceStatusCookie(1)) {
					if ( detector.isRealPlayer() ) {
						html +='<a href="http://guide.real.com/signin.rnx?signout=true">' + 'status/sign_out'.tr();
					}
					else {
						html +='<a id="SMOD_signout" href="javascript://" onclick="self.loginModule.signOut(true);">' + 'status/sign_out'.tr();
					}
				}
				else {
					if ( detector.isRealPlayer() ) {
						html +='<a href="http://guide.real.com/signin.rnx?signin=true">' + 'status/sign_in'.tr();
					}
					else {
						html +='<a href="javascript:self.loginModule.updateBox(\'replace\');">' + 'status/sign_in'.tr();
					}
				}
				html +='</a></div><dl>';
				$H(this.products).each(function(e){
					  html += '<dt class="clear"><div class="product' + e.value.classname + '"></div><div>' + e.value.longname;
					  if (e.value.trial) {html += ' <small>'+e.value.trial+ '</small>';}
					  
					  if (e.value.classname == 'nopass' && e.value.linkname){
						  if (e.value.size) {
							  html += '&nbsp;<a onclick="var remoteWindow = window.open(\'' + e.value[e.value.useUrl]+ '\',\'' + e.key + '\', \'status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,width=' + e.value.size[0] + ',height=' + e.value.size[1] + ',left=50,top=50,resizable=yes,resize=no\');" class="trial" href="javascript://" id="SMOD_'+e.key+'Upgrade">' + e.value.linkname + '</a>';
						  }
						  else {
							  html += '&nbsp;<a href="' + e.value[e.value.useUrl]+'" class="trial" id="SMOD_'+i+'Upgrade">' + e.value.linkname + '</a>';
						  }
					  }
					  html +='</div></dt>';
				});
			  	html +=		'</dl>';
				if (self.darf.getServiceStatusCookie(1)) {
					  html +=		'<div class="actions"><a href="'+this.basicUrls.myaccountUrl+'&email='+ this.userEmail +'" target="_blank" id="SMOD_edit">' + 'status/edit'.tr() + '</a><span class="lnksep">|</span><a id="SMOD_signout" href="javascript:self.actions.toggleMyFavorites();" >' + 'status/my_favs'.tr() + '</a></div>';
				}
				else {
					html +=	 '<div class="actions inactive"><span>' + 'status/edit'.tr() + '</span><span class="lnksep">|</span><span>' + 'status/my_favs'.tr() + '</span></div>';
				}
				html +=		'</div></div>';
			  	break;
			case 'popup':
				u = this.darfUrlssl+'login/login.html?rev=11';
				var loginWindow = window.open( u ,'login', 'status=yes,toolbar=no,menubar=yes,location=yes,scrollbars=yes,width=800,height=600,left=50,top=50,resizable=yes,resize=yes');
				break;
			case 'replace':
				u = this.darfUrlssl+'login/login.html?rev=11&ec='+this.ec;
				var backUrl = encodeURIComponent(document.location.href);
				u = u + '&back=' + backUrl;
				document.location.href=u;
				break;
		}
		if ($(this.currentView)) {
			(function(){Element.remove(self.loginModule.currentView);})();
		}
		this.currentView = newview;
		this.injectHTML(html);
	},
	expandBox: function (timer){
		if (this.boxCloser) {self.clearTimeout(this.boxCloser);}
		Element.removeClassName('SMOD_statusbox','collapsed');
		Element.removeClassName('status_box_toggle','up');
		Element.addClassName('SMOD_statusbox','expanded');
		Element.addClassName('status_box_toggle','down');
	},
	collapseBox: function (timer){
		this.boxCloser = self.setTimeout(function () {
		Element.addClassName('SMOD_statusbox','collapsed');
		Element.removeClassName('status_box_toggle','down');
		Element.removeClassName('SMOD_statusbox','expanded');
		Element.addClassName('status_box_toggle','up');
		},timer||5);
	},
	toggleBox: function (){
		if (Element.hasClassName('SMOD_statusbox','collapsed')){
			this.expandBox();
		}
		else {
			this.collapseBox(1000);
		}
	},
	initializeDarfHandler: function (){
		if (this.theOs in set('win98','winme','Linux')){
			this.updateBox('OSWarning');return;
		}
		if (!this.cookiesActivated()) {
			this.updateBox('nocookies');return;
		}
		
		var entitlements = {};
		var myBox = 'statuslist';
		if (self.darf.getServiceStatusCookie(1)){
			if (this.ec == 'de') {
				self.setTimeout( function () { 
					if ( self.trackLoginIVW ) {self.trackLoginIVW.check();}
				}, 500);
			}
			
			if (!this.simplify) {this.simplify = self.frames.darfcall.darfHandler.getSimplifyInfo();}
			entitlements = self.frames.darfcall.darfHandler.userEntitlements || self.frames.darfcall.darfHandler.getUserEntitlements()||false;
			this.setStatusInfos(entitlements);
			
			if (entitlements){
				this.setUserInfo(); // sets userinfo cookie email adress & simplify
				if (this.simplify && this.simplify.status == 'active' && !this.simplify.rmSubscr && !self.frames.darfcall.darfHandler.isTrialExpired()){
					myBox = 'simplify';
				}
			}
		}
		else {
			this.setStatusInfos(false);
		}
		this.updateBox(myBox);
	},
	hasProduct: function (p) {
		return (this.products[p] && this.products[p].subscriber);
	},
	getFullServiceName:function (snVal) {
		return self.frames.darfcall.darfHandler.getFullServiceName(snVal);
	},
	setUserInfo: function (){
		this.userInfo = self.frames.darfcall.darfHandler.getUserInfo() || '';
		this.userEmail = self.frames.darfcall.darfHandler.userEmail || this.userInfo.email || '';
	},
	toggleHomeRMUpsellLinks: function (sStat){
		//$('page_home_signup','page_home_trynow').invoke('hide');
		if(!sStat) {
				$('page_home_trybasic').show(); $('page_home_rmlogo123x18').setStyle({margin: '0 6px 0 0'}); } else { $('page_home_rmlogo123x18').setStyle({margin: '10px 6px 0 0'}) }
		/*
		switch (true) {
			case (!sStat):
				$('page_home_signup','page_home_trynow').invoke('show');
				break;
			case (sStat == 'S' || sStat == 'I'):
				$('page_home_signup').show();
				break;
		 }
		 */
	},
	signOut: function  (updateSOC){
		self.frames.darfcall.darfHandler.signOut(updateSOC);
		this.isLoggedIn = false;
		this.userEmail = '';
		this.setStatusInfos(false);
		
		this.updateBox('statuslist'); 
		if(self.trialCounter){ 
			tryExec(self.trialCounter.stopTimer||0); 
		}
	},
	handleSimplifyExpires: function  (){
		self.frames.darfcall.darfHandler.setUserInfoCookie({email:self.loginModule.userEmail, SFstatus:'expired'}); 
		this.simplify.status = 'expired';
		if (!this.simplify.rmSubscr){ 
			this.products.RealMusic.classname = 'nopass';
		}
		this.products.RealMusic.trialurl = false;
		this.products.RealMusic.trial = false;
		this.updateBox('statuslist');
	},
	setStatusInfos: function (entitlements) {
		if (!entitlements) {
			entitlements = {};
			//entitlements = this.getSubsStatOffline()||{};
		}
		
		var srcCode = 'fd_'+ this.ec +'_myacc';
		var orderCode = (this.ec in set('uk','eu')) ? this.lc + '_' + this.ec : this.ec;
		
		var products = {
			basicPlayer:{
				name:'RealPlayer', longname:'RealPlayer', classname:'nopass',
				linkname:'status/download'.tr(),
				signupUrl:'/download/player/',
				useUrl:'signupUrl',
				size:false
			},
			PlayerPlus:{
				name:'RealPlayer Plus',longname:'RealPlayer Plus',classname:'nopass',
				signupUrl:	((this.ec == 'uk') ? 'https://globalstore.real.com/rn/1019/t1/en/gb/?src=' + srcCode + '&rsrc=' + srcCode :
							(this.ec == 'eu') ? 'https://globalstore.real.com/rn/1019/t1/en/eu/?src=' + srcCode + '&rsrc=' + srcCode
							: '/order/player/' + orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode),
				linkname:'status/signup'.tr(),
				useUrl:'signupUrl',
				size:[800,680]
			},
			SuperPass:{name:'SuperPass', longname:'SuperPass',classname:'nopass',
				useUrl:'trialUrl',
				signupUrl:'/order/superpass/' + orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode,
				linkname:'status/freetrial'.tr(),
				trialUrl: '/order/superpass/' + orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode,
				size: false
			},
			GamePass:{name:'GamePass', longname:'GamePass',classname:'nopass',
				useUrl:'trialUrl',
				signupUrl:'http://www.realarcade.com/gamepass?tps=guide-'+ this.ec +'_&src=' + srcCode + '&rsrc=' + srcCode,
				linkname:'status/freetrial'.tr(),
				trialUrl:'http://www.realarcade.com/gamepass?tps=guide-'+ this.ec +'_&src=' + srcCode + '&rsrc=' + srcCode,
				size:[780,680]
			},
			RealMusic:{
				useUrl:'trialUrl',
				name:'RealMusic', longname:'RealMusic',classname:'nopass',
				signupUrl: (this.ec in set('uk','eu'))?'/order/realmusic/danceedition/v11/' + orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode:'/order/realmusic/' + orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode,
				linkname:'status/freetrial'.tr(),
				//trialUrl: (this.ec in set ('uk','eu', 'de')) ? this.darfUrlssl+'login/upsell/simplify_b4n/activate.html?rev=11&ec=' + this.ec: this.darfUrlssl+'login/upsell/danceedition/simplify/index.html?rev=11&ec=' + this.ec, 
				//trialUrl: (this.ec in set ('uk','eu', 'de','fr')) ? this.darfUrlssl+'login/upsell/danceedition/simplify/index.html?rev=11&ec=' + this.ec: this.darfUrlssl+'login/upsell/simplify/activate.html?rev=11&ec=' + this.ec, 
				trialUrl: '/fd/upsells/realmusic/?ec=' + this.ec,
				size:[764,560]
			}
		};
		//Object.extend(products,entitlements);
		if (this.theOs=='Mac') {
			products.basicPlayer.signupUrl += 'mac/';
			products.GamePass = {longname:'GamePass <small>(Windows only)</small>',name:'GamePass <small>(Windows only)</small>',inactive:1,classname:'nopass'};
			products.PlayerPlus = {longname:'RealPlayer Plus <small>(Windows only)</small>',name:'RealPlayer Plus <small>(Windows)</small>',inactive:1,classname:'nopass'};
		}
		products.basicPlayer.signupUrl += orderCode + '/?src=' + srcCode + '&rsrc=' + srcCode;
		
		basicPlayerStatus = detector.result.detection_method != 'none' ? "A" : 'I';
		entitlements.basicPlayer = {name:'basicPlayer', status:basicPlayerStatus, longname:'RealPlayer'};
		if (basicPlayerStatus=='A') {
			Object.extend(entitlements.basicPlayer,{url:false,classname:'haspass'});
		}
		if (top.$('page_home_trybasic')) {
			this.toggleHomeRMUpsellLinks((entitlements && entitlements.RealMusic)?entitlements.RealMusic.status:false);
		}
		/*
		if (top.$('page_home_signup')) {
			this.toggleHomeRMUpsellLinks((entitlements && entitlements.RealMusic)?entitlements.RealMusic.status:false);
		}
		*/
		
		if (self.darf.getServiceStatusCookie(1)) {
			if (self.frames.darfcall.darfHandler.getSmplExpired() && !entitlements.RealMusic) {
				entitlements.RealMusic={status:'I'};
			}
			$H(entitlements).each(function(e){
				if (e.key.match(/^(SuperPass|superpass)/)){
					if (e.value.name&&e.value.name.match(/^(speu|spuk)$/)) {
						entitlements.PlayerPlus = {status:'A'};
					}
					if (e.key.match(/^superpass/)){
						delete entitlements[e.key];
						e.key = 'SuperPass';
					}
				}
				if (e.value.name == 'realplayer' && e.value.status == 'A') {
					entitlements.PlayerPlus = {status:'A'};
				}
				entitlements[e.key] =  e.value;
				entitlements[e.key].longname =  self.loginModule.getFullServiceName(e.value.name);
			});
		}
		$H(entitlements).each(function(e){
			var k = e.key; var v=e.value;
			if (products[k]){
			switch (v.status){
				case 'A':
					products[k].classname = 'haspass';
					products[k].subscriber = true;
					if (v.longname) {products[k].longname = v.longname;}
					products[k].linkname = '';
					break;
				case 'T':
				case 'S':
					products[k].classname = v.classname || 'haspass';
					products[k].linkname = 'status/signup'.tr();
					if (k != 'SuperPass' && this.isLoggedIn) {products[k].trial = ' ' + 'status/trial'.tr();}
					products[k].useUrl = 'signupUrl';
					products[k].trial = 'status/trial'.tr();
					break;
				case 'I':
					k != 'basicPlayer' ? products[k].linkname = 'status/signup'.tr(): null;
					products[k].useUrl ='signupUrl';
					break;
				default:
					if (products[k].trialurl) {
						products[k].useUrl = 'trialUrl';
						products[k].linkname = 'status/freetrial'.tr() ;
					}
					break;
			}
			}
		});
		this.products = products;
	},
	getSubsStatOffline:function (){
		  var signedOutCookie = self.cookies.get('darfsignedout');
		  if ( !signedOutCookie) {return false;}
		  var entitlements = {};
		  signedOutCookie.split('_')[0].split(',').each(function(key) {
			  switch (key){
			  	case 'rmDeSubscr':
					entitlements.RealMusic = {longname:'RealMusic Dance Edition',status:'A',linkname:false,classname:'nopass'};
					entitlements.PlayerPlus = {status:'A',classname:'nopass'};
					break;
			  case 'rmSubscr':
					entitlements.RealMusic = {status:'A',classname:'nopass'};
					entitlements.PlayerPlus = {status:'A',classname:'nopass'};
					break;
				case 'rmExp':
					entitlements.RealMusic = {status:'I'};
					break;
			    case 'rmSOn':
			    	entitlements.RealMusic = {status:'S',trial:'',classname:'nopass'};	
					break;
				case 'gamepass':
			    	entitlements.GamePass = {status:'A',classname:'nopass'};	
					break;
				case 'superpass':
			    	entitlements.SuperPass = {status:'A',classname:'nopass'};	
					entitlements.PlayerPlus = {status:'A',classname:'nopass'};
					break;
		  }
		  }
		  );
		  return entitlements;
	},
	handleRPlogin: function (){
		var daCook = self.cookies.get("RNPlayer");
		if(!daCook && self.darf.getServiceStatusCookie(1)) {
			this.signOut(true);
		}
		else {
			this.refresh();
		}
	}
};

self.statuslocals_callback = function() {
	self.loginModule = new loginModuleClass();
	tryExec(initLoginModule||0);
	if (!self.loginModule.checkRPLoggedIn()){
		self.loginModule.oninit();
	}
};

var ec = self.pageEnv.edition_code || 'uk';

var locFiles={};// for auto revisioning
['uk','eu','de','es','fr','it','nl'].each( function (v) { locFiles[v]='../../js/locals/login_module_'+v+'.js'; });

var locFile = 'http://i01.rnhh.de/' + ec + '/fd/' + locFiles[ec].replace('../../','');
if  (self.pageEnv.previewmode ||	document.location.host.indexOf('stage-') > -1) {
	locFile = 'http://' + self.location.host + self.pageEnv.FD_PATH+'js/locals/login_module_' + ec + '.js';
}
document.addScriptSrc(locFile);

function trackClick (name) {
	if (self.RTracking) {
		self.RTracking.trackClick({ PG: self.RTracking.getPage(), LNK: name });
	}
}

