2017-06-04 07:43:41 +02:00
// @source https://github.com/NyaaPantsu/nyaa/tree/dev/public/js
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2017-05-26 13:13:06 +02:00
2017-05-27 19:08:47 +02:00
// Switches between themes when a new one is selected
function switchThemes ( ) {
2017-07-16 17:35:18 +02:00
themeName = document . getElementById ( "theme-selector" ) . value
var head = document . getElementsByTagName ( "head" ) [ 0 ] ;
// Remove the theme in place, it fails if one isn't set
try {
head . removeChild ( document . getElementById ( "theme" ) ) ;
} catch ( err ) { }
// Don't add a node if we don't want extra styling
if ( themeName === "" ) {
return ;
}
// Create the new one and put it back
var newTheme = document . createElement ( "link" ) ;
newTheme . setAttribute ( "rel" , "stylesheet" ) ;
newTheme . setAttribute ( "href" , "/css/" + themeName + ".css" ) ;
newTheme . setAttribute ( "id" , "theme" ) ;
head . appendChild ( newTheme ) ;
2017-05-27 19:08:47 +02:00
}
2017-05-05 12:59:56 +02:00
// Used by spoiler tags
function toggleLayer ( elem ) {
2017-07-16 17:35:18 +02:00
if ( elem . classList . contains ( "hide" ) )
elem . classList . remove ( "hide" ) ;
else
elem . classList . add ( "hide" ) ;
2017-05-05 12:59:56 +02:00
}
2017-05-30 00:28:21 +02:00
function parseAllDates ( ) {
2017-07-16 17:35:18 +02:00
// Date formatting
var lang = document . getElementsByTagName ( "html" ) [ 0 ] . getAttribute ( "lang" ) ;
var ymdOpt = { year : "numeric" , month : "short" , day : "numeric" } ;
var hmOpt = { hour : "numeric" , minute : "numeric" } ;
2017-05-05 15:55:25 +02:00
2017-07-16 17:35:18 +02:00
var list = document . getElementsByClassName ( "date-short" ) ;
for ( var i in list ) {
var e = list [ i ] ;
e . title = e . innerText ;
e . innerText = new Date ( e . innerText ) . toLocaleString ( lang , ymdOpt ) ;
}
2017-05-05 15:55:25 +02:00
2017-07-16 17:35:18 +02:00
var list = document . getElementsByClassName ( "date-full" ) ;
for ( var i in list ) {
var e = list [ i ] ;
e . title = e . innerText ;
e . innerText = new Date ( e . innerText ) . toLocaleString ( lang ) ;
}
2017-05-05 15:55:25 +02:00
}
2017-05-31 04:21:35 +02:00
2017-05-30 00:28:21 +02:00
parseAllDates ( ) ;
2017-05-31 04:21:35 +02:00
2017-05-13 00:37:37 +02:00
/*Fixed-Navbar offset fix*/
2017-05-29 13:12:05 +02:00
document . addEventListener ( "DOMContentLoaded" , function ( event ) {
2017-07-16 17:35:18 +02:00
var shiftWindow = function ( ) { scrollBy ( 0 , - 70 ) } ;
if ( location . hash ) shiftWindow ( ) ;
window . addEventListener ( "hashchange" , shiftWindow ) ;
document . getElementsByClassName ( "search-box" ) [ 0 ] . addEventListener ( "focus" , function ( e ) {
var w = document . getElementsByClassName ( "h-user" ) [ 0 ] . offsetWidth ;
document . getElementsByClassName ( "h-user" ) [ 0 ] . style . display = "none" ;
document . getElementsByClassName ( "search-box" ) [ 0 ] . style . width = document . getElementsByClassName ( "search-box" ) [ 0 ] . offsetWidth + w + "px" ;
} ) ;
document . getElementsByClassName ( "search-box" ) [ 0 ] . addEventListener ( "blur" , function ( e ) {
document . getElementsByClassName ( "search-box" ) [ 0 ] . style . width = "" ;
document . getElementsByClassName ( "h-user" ) [ 0 ] . style . display = "inline-block" ;
} ) ;
2017-07-10 15:24:52 +02:00
2017-05-29 13:12:05 +02:00
} ) ;
2017-05-26 13:13:06 +02:00
function playVoice ( ) {
2017-07-16 17:35:18 +02:00
var mascotAudio = document . getElementById ( "explosion" ) || document . getElementById ( "nyanpassu" ) || document . getElementById ( "nyanpassu2" ) || document . getElementById ( "kawaii" ) ;
if ( mascotAudio !== undefined ) {
mascotAudio . volume = 0.2 ;
mascotAudio . play ( ) ;
} else {
console . log ( "Your mascot doesn't support yet audio files!" )
}
2017-05-29 13:12:05 +02:00
}
2017-07-10 05:57:59 +02:00
2017-07-10 15:24:52 +02:00
document . getElementsByClassName ( "form-input refine" ) [ 0 ] . addEventListener ( "click" , function ( e ) {
2017-07-16 17:35:18 +02:00
document . getElementsByClassName ( "box refine" ) [ 0 ] . style . display = document . getElementsByClassName ( "box refine" ) [ 0 ] . style . display == "none" ? "block" : "none" ;
if ( document . getElementsByClassName ( "form-input refine-searchbox" ) [ 0 ] . value != document . getElementsByClassName ( "form-input search-box" ) [ 0 ] . value )
document . getElementsByClassName ( "form-input refine-searchbox" ) [ 0 ] . value = document . getElementsByClassName ( "form-input search-box" ) [ 0 ] . value ;
if ( document . getElementsByClassName ( "form-input refine-category" ) [ 0 ] . selectedIndex != document . getElementsByClassName ( "form-input form-category" ) [ 0 ] . selectedIndex )
document . getElementsByClassName ( "form-input refine-category" ) [ 0 ] . selectedIndex = document . getElementsByClassName ( "form-input form-category" ) [ 0 ] . selectedIndex ;
e . preventDefault ( ) ;
if ( document . getElementsByClassName ( "box refine" ) [ 0 ] . style . display == "block" )
scrollTo ( 0 , 0 ) ;
2017-07-10 09:54:53 +02:00
} ) ;
2017-06-04 07:43:41 +02:00
// @license-end