document.observe("dom:loaded", function() { $$("#secondary_navigation a").each( function(e) { Event.observe(e, "click", loadUrl ); } ); $$(".touch-row").each(function(e) { Event.observe(e, "click", touchRowClick); addArrow(e); }); $$("a.prev:not(.disabled), a.next:not(.disabled)").invoke("on", "click", loadUrl); $$(".post").each(function(e) { Event.observe(e, "click", postClick); }); $$('.sd_content').invoke('on', 'click', '.sd_content', toggleDeletedContent); Event.observe($('options-button'), "click", openNavigation); if($('filter-option')) {Event.observe($('filter-option'), "click", openFilter);} $('options-button').setStyle({'display': 'block'}); if( $('nav_markread') ){ $('nav_markread').down('a').observe('click', markAsRead); }; $$('a[rel~="external"]').each( function(e) { Event.observe(e, "click", openNewWindow ); } ); parseQuoteBoxes(); if ( $('full_version') ) { $('full_version').on( 'click', function( e, elem ) { Event.stop(e); var url = ipb.vars['base_url'] + 'app=core&module=ajax§ion=skin&do=change&skinId=fullVersion&secure_key=' + ipb.vars['secure_hash']; Debug.write( url ); new Ajax.Request( url, { method: 'get', onSuccess: function(t) { /* * Get an error? */ if( t.responseJSON['status'] == 'ok' ) { window.location = window.location; window.location.reload(true); } else { ipb.global.errorDialogue( ipb.lang['ajax_failure'] ); } } } ); } ); } if( $('show_langs') ){ $('show_langs').on('click', function(e){ $('show_langs').hide(); $('show_langs_box').show(); Event.stop(e); return false; }); } /* Set this here to 'toggle' works later */ $('shade').setStyle({'display': 'none'}); if ( $('filter-letters') ){ $('filter-letters').toggleClassName('hidden'); } // Set up user nav box var items = $("user_navigation").down("ul").select("li").size(); var diff = 3 - (items % 3); /* Ensure loading box isn't visible */ if ( $('loadingBox') ) { $('loadingBox').remove(); } /* Remove loading box once window unloads so if they hit back and page loads from cache it won't show */ window.onpageshow = function(event) { if ( event.persisted ) { if ( $('loadingBox') ) { $('loadingBox').remove(); } } }; resizeEmbeds(); for(i=0; i 440 ) { pct += 10; embed.width = embed.width - ( ( embed.width / 100 ) * pct ); } if ( pct > 0 ) { embed.height = embed.height - ( ( embed.height / 100 ) * pct ); } } } ); } function toggleDeletedContent(e, element) { Event.stop(e); var id = element.id.replace('seeContent_', ''); $('postsDelete-' + id).hide(); $('post-' + id).show(); } function markAsRead(e) { if( !confirm( ipb.lang['clear_markboard'] ) ){ Event.stop(e); } } function mobileFilter( e, element ) { Event.stop(e); // Does the pane exist? if( !$( element.id + '_pane' ) ){ return; } $('shade').toggle(); $( element.id + '_pane' ).show(); } function closePane( e, element ) { Event.stop(e); $(element).up(".ipsFilterPane").hide(); $('shade').hide(); } /** * Add the touch arrow */ function addArrow(e) { d = e.getDimensions(); t = ( d.height / 2 ) - 18; if ( ! e.inspect().match( '/g, ">") .replace(/"/g, """) .replace(/'/g, "'"); }; //Extend String with HTMLspecial chars String.prototype.unEscapeHtml = function() { var _t = this.replace( /&/g, "&" ); return _t .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, '"') .replace(/'/g, "'") .replace(/'/g, "'"); }; function parseQuoteBoxes() { $$('blockquote.ipsBlockquote').each( function( el ) { if ( ! $(el).hasClassName('built') ) { var author = ''; var cid = ''; var time = 0; var date = ''; var collapsed = 0; var _extra = ''; var _a = new Element('span'); try { author = $(el).getAttribute( 'data-author' ) ? $(el).getAttribute( 'data-author' ).escapeHtml() : ''; cid = $(el).getAttribute( 'data-cid' ) ? $(el).getAttribute( 'data-cid' ).escapeHtml() : ''; time = $(el).getAttribute( 'data-time' ) ? $(el).getAttribute( 'data-time' ).escapeHtml() : 0; date = $(el).getAttribute( 'data-date' ) ? $(el).getAttribute( 'data-date' ).escapeHtml() : ''; collapsed = $(el).getAttribute( 'data-collapsed' ) ? $(el).getAttribute( 'data-collapsed' ).escapeHtml() : 0; } catch( aCold ) { } if ( time ) { if ( time == parseInt( time ) && time.length == 10 ) { /* First, determine if we are in DST now */ var _tz = new Date().getTimezoneOffset() * 60; /* Find out if timestamp was in DST */ var _date = new Date().getDateAndTime( parseInt( time ) ); /* If there isn't a match, figure out the DST offset and then add it back in */ if( _date['dst'] * 60 != _tz ) { _tz = _tz - _date['dst'] * 60; _date = new Date().getDateAndTime( parseInt( time ) - parseInt( _tz ) ); } var _ampm = ''; if( ipb.vars['hour_format'] == "12" ) { if( _date['hour'] > 12 ) { _date['hour'] -= 12; _ampm = ' ' + ipb.lang['date_pm']; } else if( _date['hour'] == 12 ) { _ampm = ' ' + ipb.lang['date_pm']; } else if( _date['hour'] == 0 ) { _date['hour'] = 12; _ampm = ' ' + ipb.lang['date_am']; } else { _ampm = ' ' + ipb.lang['date_am']; } } date = _date['date'] + ' ' + _date['monthName'] + ' ' + _date['year'] + ' - ' + _date['hour'] + ':' + _date['min'] + _ampm; } } if ( author && date ) { _extra = ipb.lang['quote__date_author'].replace( /#name#/, author ).replace( /#date#/, date ); } else if ( author ) { _extra = ipb.lang['quote__author'].replace( /#name#/, author ); } /* finally.. */ if ( _extra.length == 0 ) { _extra = ipb.lang['quote_title']; } if ( cid && parseInt( cid ) == cid ) { _a = new Element( 'a', { 'class': 'snapback right', rel: 'citation', href: ipb.vars['board_url'] + '/index.php?app=forums&module=forums§ion=findpost&pid=' + cid } ); _a.update( new Element( 'img', { src: ipb.vars['img_url'] + '/snapback.png' } ) ); } el.insert( { before: new Element( 'p', { 'class': 'citation' } ).update( _extra ).insert( _a ) } ); try { el.down('cite').hide(); } catch(err){} el.addClassName( 'built' ); if ( collapsed ) { el.down('p').hide(); el.down('div').hide(); el.insert( new Element( 'p', { 'class': '___x clickable' } ).update( ipb.lang['quote_expand'] ) ); el.down('p.___x').on( 'click', function( e, elem ) { elem.up('blockquote').down('p').show(); elem.up('blockquote').down('div').show(); elem.hide(); } ); } } } ); } function warningPopup( elem, id ) { window.location = ipb.vars['base_url'] + '&app=members&module=profile§ion=warnings&do=acknowledge&id=' + id } function openNewWindow(e) { window.open(e.target.href); Event.stop(e); return false; } // Extend date object to return date and time as object Date.prototype.getDateAndTime = function( unix ) { var a = new Date( parseInt( unix ) * 1000 ); var months = ipb.lang['gbl_months'].split(','); var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); return { year : year, monthName: month, month : ( '0' + a.getMonth() + 1 ).slice( -2 ), date : ( '0' + date ).slice( -2 ), hour : ( '0' + hour ).slice( -2 ), min : ( '0' + min ).slice( -2 ), sec : ( '0' + sec ).slice( -2 ), dst : a.getTimezoneOffset() }; };