1var progress_interval = null; 2var cron_count = 0; 3 4 5 6function openPlayer(url) { 7 8 // Player V3: kein Popup mehr â normal navigieren, der persistente 9 // Player (MOM.audio) spielt über Seitenwechsel hinweg weiter. 10 if (window.MOM && window.MOM.audio) 11 return true; 12 13 var height; 14 15 if (club != 0 || free_account != 0) { 16 height = 540; 17 } else { 18 height = 640; 19 } 20 21 if (typeof url == 'object') 22 url = url.attr('href'); 23 24 return !openPopUp(url, 750, height, true); 25} 26 27 28function openMessenger(url) { 29 30 var fromClick = (typeof url == 'object'); // a user clicked a conversation link 31 if (fromClick) 32 url = url.attr('href'); 33 34 // Mobile: no popup window. A user tap opens the full messenger page directly; 35 // the auto-notifier is suppressed (the slide-out / badge surfaces new messages). 36 if (window.matchMedia && window.matchMedia('(max-width: 1023px)').matches) { 37 if (fromClick) window.location.href = url; 38 return false; 39 } 40 41 return !openPopUp(url, 550, 330, true); 42} 43 44// Mobile quick-messenger: slide the #messi_box up from the bottom as a usable sheet 45function momToggleMessenger() { 46 var box = document.getElementById('messi_box'); 47 if (!box) { window.location.href = '/account/messenger/'; return false; } 48 var open = !box.classList.contains('mobile-open'); 49 box.classList.toggle('mobile-open', open); 50 document.body.classList.toggle('messi-open', open); 51 if (open) { 52 var layer = document.getElementById('mom_im_layer'); 53 if (layer) layer.style.display = 'block'; 54 var oc = document.getElementById('oc'); if (oc) oc.textContent = '-'; 55 } 56 return false; 57} 58 59 60function openInlinebox(url, width, height, type) { 61 var autosize = true; 62 63 64 if (typeof url == 'object') 65 url = url.attr('href'); 66 67 if (!type) 68 type = 'ajax'; 69 70 if (!width) 71 width = 'auto'; 72 73 if (!height) 74 height = 'auto'; 75 76 if (width != 'auto' && height != 'auto') 77 autosize = false; 78 79 $.fancybox.open({ 80 type: type, 81 src: url, 82 opts: { 83 autoSize: autosize, 84 modal: false, 85 'minHeight': 50, 86 'href': url, 87 'padding': 0, 88 'width': width, 89 'height': height, 90 'openEffect': 'none', 91 'closeEffect': 'none', 92 'afterShow': function () { 93 $('#inline_popup form input[type=submit]').focus(); 94 $('#inline_popup form').ajaxForm({ 95 target: '.fancybox-inner', 96 success: showResponse 97 }); 98 } 99 }, 100 helpers: { 101 overlay: { 102 speedIn: 0, 103 speedOut: 0, 104 opacity: 0, 105 css: { 106 cursor: 'pointer' 107 }, 108 closeClick: true 109 } 110 } 111 }); 112 113 return false; 114} 115 116 117 118function showResponse(responseText, statusText, xhr, $form) { 119 $('#inline_popup').ready(function () { 120 121 var test = $('#inline_popup .success_message a.load_content'); 122 var redirect_to; 123 124 if (test.attr('href')) 125 redirect_to = test.attr('href'); 126 else if (test.html()) 127 redirect_to = document.location.href; 128 129 130 if (redirect_to) { 131 $.fancybox.close(); 132 load_content(redirect_to); 133 } else if ($('#inline_popup form').length) { 134 // Formular neu gerendert (z. B. Validierungsfehler) â erneut binden 135 $('#inline_popup form').ajaxForm({ 136 target: '.fancybox-inner', 137 success: showResponse 138 }); 139 } else { 140 // Terminale Meldung ohne Formular (print_success/info/error_page) 141 // â kurz zeigen, dann automatisch schlieÃen 142 setTimeout(function () { $.fancybox.close(); }, 1600); 143 } 144 }); 145} 146 147 148function openPopUp(url, width, height, backvalue) { 149 150 if (typeof url == 'object') 151 url = url.attr('href'); 152 var winname; 153 var startx = Math.round((screen.width - width) / 2) - 10;
154 var starty = Math.round((screen.height - height) / 2) - 20; 155 156 d = new Date; 157 158 winname = window.open(url, "Window" + d.getTime(), "width=" + width + ",height=" + height + ",status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no,screenX=" + startx + ",left=" + startx + ",screenY=" + starty + ",top=" + starty + " "); 159 160 if (!winname) { 161 openInlinebox(url, width, height, 'iframe'); 162 } 163 164 if (backvalue) 165 return true; 166 167} 168 169 170function calc_file_size(size) { 171 if (size <= 1024) 172 return size + ' b'; 173 if (size <= 1048576) 174 return (size / 1024).toFixed(1) + ' kB'; 175 else 176 return (size / 1048576).toFixed(2) + ' MB'; 177} 178 179 180function progressbar(uuid) { 181 $.ajax({ 182 url: '/progress', 183 type: "GET", 184 data: ({"X-Progress-ID": uuid}), 185 dataType: "json", 186 success: function (response) { 187 if (response) { 188 $('#progressbar_message').html('Upload gestartet... ' + calc_file_size(response.received) + ' / ' + calc_file_size(response.size)); 189 190 if (response.state == 'done' || response.state == 'uploading') { 191 w = Math.ceil(298 * response.received / response.size); 192 $('#progressbar').animate({width: w}, 500); 193 $('#progressbar_percent').html(Math.ceil(100 * response.received / response.size) + '%'); 194 } 195 196 if (response.state == 'error') { 197 //window.clearTimeout(interval); 198// $('#progressbar_message').html('Fehler aufgetreten!'); 199 } else if (response.state == 'done' || response.received == response.size) { 200 window.clearTimeout(interval); 201 $('#progressbar_message').html('Umrechnung...'); 202 } 203 } 204 }, 205 error: function (html_result) { 206 $('#progressbar_div').hide(); 207 } 208 }); 209} 210 211 212function SwapBoxHeader(name) { 213 var status = $('#' + name).css('display'); 214 215 if (status == 'none') 216 $('#' + name).slideDown(200); 217 else 218 $('#' + name).slideUp(200); 219 220 set_cookie(name + '_off', (status == 'none' ? 0 : 1)); 221} 222 223 224function set_cookie(name, value) { 225 var c = name + "=" + escape(value); 226 var days = 60; 227 228 var today = new Date(); 229 var expiry = new Date(today.getTime() + days * 1000 * 60 * 60 * 24); 230 c += ";expires=" + expiry.toGMTString(); 231 232 document.cookie = c + ";path=/"; 233} 234 235 236function load_content(url, content_div) { 237 var scrollto; 238 239 if (!content_div) 240 content_div = 'content'; 241 242 if (typeof url == 'object') 243 url = url.attr('href'); 244 245 if (url.indexOf("#")) { 246 247 var splitted_url = url.split("#"); 248 url = splitted_url[0]; 249 scrollto = splitted_url[1]; 250 251 } 252 253 $.get(url, {ajax_load: 1}, function (data) { 254 255 $('#' + content_div).html(data); 256 257 if (scrollto) 258 $.scrollTo('#' + scrollto, 800); 259 260 261 if (window.reload_js) 262 reload_js(); 263 264 }); 265 266 return false; 267} 268 269 270// Zähler-Pill an Navigationseinträgen (Rail + Drawer) nachführen â legt an, 271// aktualisiert, entfernt bei 0. Ersetzt auch serverseitig gerenderte 272// .right-Pills durch die generische .mom-nav-count (eine Quelle der Wahrheit). 273function updateNavCount(hrefPrefix, n) { 274 $('#artist_nav_box a[href^="' + hrefPrefix + '"], .mom-drawer a[href^="' + hrefPrefix + '"]').each(function () { 275 var $a = $(this); 276 $a.find('.mom-nav-count, .right').remove(); 277 if (n > 0) $a.append($('<span>', { 'class': 'mom-nav-count', text: n })); 278 }); 279} 280 281function browserCron_ajax(session_id) { 282 283 $.ajax({ 284 url: '/account/refresh', 285 type: "GET", 286 data: ({ident: cron_count}), 287 dataType: "json", 288 success: function (response) { 289 290 if (response) { 291 if (response.notifier) 292 for (var i = 0; i < response.notifier.length; i++) { 293 294 if (response.notifier[i].type == 'mail') 295 openPopUp("/account/mailbox/infowindow?mail_id=" + response.notifier[i].id, 420, 90); 296 297 if (response.notifier[i].type == 'friend') 298 openPopUp("/account/community/friends/infowindow?friend_id=" + response.notifier[i].id, 350, 90); 299 300 if (response.notifier[i].type == 'im') 301 openMessenger('/account/messenger/?toid=' + response.notifier[i].id); 302 } 303 304 305 306 if (typeof response.mail_unread !== 'undefined') 307 updateNavCount('/account/mailbox', parseInt(response.mail_unread, 10) || 0); 308 if (typeof response.friend_requests !== 'undefined') 309 updateNavCount('/account/community', parseInt(response.friend_requests, 10) || 0); 310 311 if (response.friend_im_sent) { 312 if (response.friend_im) { 313 var new_content = ''; 314 for (var i = 0; i < response.friend_im.length; i++) 315 new_content += '<a href="/account/messenger/?toid=' + response.friend_im[i].id + '" onclick="return openMessenger($(this))" class="nowrap"><img class="messi_pic" src="https://user.myownmusic.de/artist_pics_40x30/' + response.friend_im[i].id + '_40x30.' + response.friend_im[i].ext + '" alt="" /> <div class="messi_name">' + decodeURIComponent(response.friend_im[i].nick) + '</div></a>'; 316 $('#mom_im').html(new_content); 317 } else 318 $('#mom_im').html('<p>Keine Freunde online.</p><a href="/online/"><img src="/_.gif" class="icons_friend friend_add_icon" alt="Neue Freunde finden" /> Neue Freunde finden</a>'); 319 if (response.friend_im_genre) { 320 var new_content_genre = '<br/><p>Aus deinem Genre</p>'; 321 for (var i = 0; i < response.friend_im_genre.length; i++) 322 new_content_genre += '<a href="/account/messenger/?toid=' + response.friend_im_genre[i].id + '" onclick="return openMessenger($(this))" class="nowrap"><img src="' + response.friend_im_genre[i].position_addon + '" class="icons_position ' + response.friend_im_genre[i].position_class + '" alt="" /> ' + decodeURIComponent(response.friend_im_genre[i].nick) + '</a>'; 323 $('#mom_im').append(new_content_genre); 324 } 325 } 326 } 327 } 328 329 }); 330 331 cron_count++; 332 333} 334 335 336function closeThisWindow() { 337 setTimeout("window.close();", 1000); 338} 339 340 341$('HTML').addClass('JS'); 342 343 344// Mobile: Bottom-Leisten (.mom-tabbar, Mini-Player) ausblenden, solange eine 345// Texteingabe fokussiert ist â position:fixed hängt auf iOS am Layout-Viewport 346// und schwebt bei offener Tastatur sonst mitten überm Formular (CSS: mom-kbd-open). 347var kbd_close_timer = null;
348var kbd_field_selector = 'textarea, [contenteditable], input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=image])'; 349 350$(document).on('focusin', kbd_field_selector, function (e) { 351 352 if ($(e.target).closest('#messi_box').length) // Messenger-Sheet dockt auf der Tabbar â sichtbar lassen 353 return; 354 355 clearTimeout(kbd_close_timer); 356 $('body').addClass('mom-kbd-open'); 357}); 358 359$(document).on('focusout', kbd_field_selector, function () { 360 361 clearTimeout(kbd_close_timer); 362 kbd_close_timer = setTimeout(function () { // kurzer Puffer: Feldwechsel soll nicht flackern 363 $('body').removeClass('mom-kbd-open'); 364 }, 150); 365}); 366 367//Google Analytics Opt-Out 368var gaProperty = 'UA-5468548-1'; 369var disableStr = 'ga-disable-' + gaProperty; 370if (document.cookie.indexOf(disableStr + '=true') > -1) { 371 window[disableStr] = true; 372} 373function gaOptout() { 374 document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; 375 window[disableStr] = true; 376 377 alert('Google Analytics wurde erfolgreich deaktiviert.'); 378}
vendor: 422 bytes, lines 378-391
378 379 380(function (i, s, o, g, r, a, m) { 381 i['GoogleAnalyticsObject'] = r; 382 i[r] = i[r] || function () { 383 (i[r].q = i[r].q || []).push(arguments) 384 }, i[r].l = 1 * new Date(); 385 a = s.createElement(o), 386 m = s.getElementsByTagName(o)[0]; 387 a.async = 1; 388 a.src = g; 389 m.parentNode.insertBefore(a, m) 390})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); 391ga('create', '
391UA-5468548-1
vendor: 12 bytes, line 391
391', 'auto');
392ga('set', 'anonymizeIp', true); 393ga('send', 'pageview'); 394
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.