MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus SchnuppTrupp
Wechseln zu: Navigation, Suche
K
K
Zeile 1: Zeile 1:
 
/* Das folgende JavaScript wird für alle Benutzer geladen. */
 
/* Das folgende JavaScript wird für alle Benutzer geladen. */
 
function setup() {
 
  if (document.getElementById('countdown')) {
 
    if (end = new Date(document.getElementById('countdown').innerHTML)) {
 
      setTimeout("countdown()", 500);
 
    }
 
  }
 
}
 
function toSt2(n) {
 
  s = "";
 
  if (n < 10) s += "0";
 
  return (s + n).toString();
 
}
 
function toSt3(n) {
 
  s = "";
 
  if (n < 10) s += "00";
 
  else if (n < 100) s += "0";
 
  return (s + n).toString();
 
}
 
function countdown() {
 
  var tname = ' Tage ';
 
  var hname = ' Stunden ';
 
  var mname = ' Minuten ';
 
  var sname = ' Sekunden ';
 
  var d = new Date();
 
  var count = Math.floor(end.getTime() - d.getTime());
 
  if(count > 0) {
 
    var miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
 
    var seconds = toSt2(count%60); count = Math.floor(count/60);
 
    if (seconds==1) {
 
      sname = ' Sekunde ';
 
    }
 
    var minutes = toSt2(count%60); count = Math.floor(count/60);
 
    if (minutes==1) {
 
      mname = ' Minute ';
 
    }
 
    var hours = toSt2(count%24); count = Math.floor(count/24);
 
    if (hours==1) {
 
      hname = ' Stunde ';
 
    }
 
    var days = count;
 
    if (days==1) {
 
      tname = ' Tag ';
 
    }
 
    document.getElementById('countdown').innerHTML = days + tname + hours + hname + minutes + mname + seconds + sname +'';
 
    setTimeout("countdown()", 1000);
 
  }
 
}
 
  
 
var map_is_open;
 
var map_is_open;
Zeile 73: Zeile 25:
 
     }
 
     }
 
}
 
}
 
//================================================================================
 
//*** Dynamic Navigation Bars
 
 
// set up the words in your language
 
var NavigationBarHide = 'Einklappen';
 
var NavigationBarShow = 'Ausklappen';
 
 
// set up max count of Navigation Bars on page,
 
// if there are more, all will be hidden
 
NavigationBarShowDefault = 0; // all bars will be hidden
 
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 
if (typeof NavigationBarShowDefault == 'undefined' ) {
 
    var NavigationBarShowDefault = 1;
 
}
 
 
// adds show/hide-button to navigation bars
 
addOnloadHook(function() {
 
// shows and hides content and picture (if available) of navigation bars
 
// Parameters:
 
//    indexNavigationBar: the index of navigation bar to be toggled
 
function toggleNavigationBar(NavToggle, NavFrame)
 
{
 
  if (!NavFrame || !NavToggle) {
 
  return false;
 
  }
 
 
  // if shown now
 
  if (NavToggle.firstChild.data == NavigationBarHide) {
 
  for (
 
  var NavChild = NavFrame.firstChild;
 
  NavChild != null;
 
  NavChild = NavChild.nextSibling
 
  ) {
 
  if (NavChild.className == 'NavPic') {
 
  NavChild.style.display = 'none';
 
  }
 
  if (NavChild.className == 'NavContent') {
 
  NavChild.style.display = 'none';
 
  }
 
  if (NavChild.className == 'NavToggle') {
 
  NavChild.firstChild.data = NavigationBarShow;
 
  }
 
  }
 
 
  // if hidden now
 
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
 
  for (
 
  var NavChild = NavFrame.firstChild;
 
  NavChild != null;
 
  NavChild = NavChild.nextSibling
 
  ) {
 
  if (NavChild.className == 'NavPic') {
 
  NavChild.style.display = 'block';
 
  }
 
  if (NavChild.className == 'NavContent') {
 
  NavChild.style.display = 'block';
 
  }
 
  if (NavChild.className == 'NavToggle') {
 
  NavChild.firstChild.data = NavigationBarHide;
 
  }
 
  }
 
  }
 
}
 
 
function toggleNavigationBarFunction(NavToggle, NavFrame) {
 
return function() {
 
toggleNavigationBar(NavToggle, NavFrame);
 
return false;
 
};
 
}
 
// iterate over all NavFrames
 
var content = document.getElementById("content") || document.getElementById("mw_content");
 
var NavFrames = getElementsByClassName(content, "div", "NavFrame");
 
// if more Navigation Bars found and not template namespace than Default: hide all
 
var initiallyToggle = NavigationBarShowDefault < NavFrames.length && wgNamespaceNumber != 10;
 
for (var i=0;  i<NavFrames.length; i++) {
 
var NavFrame = NavFrames[i];
 
var NavToggle = document.createElement("a");
 
NavToggle.className = 'NavToggle';
 
NavToggle.setAttribute('href', '#');
 
 
var NavToggleText = document.createTextNode(NavigationBarHide);
 
NavToggle.appendChild(NavToggleText);
 
 
// add NavToggle-Button as first div-element
 
// in < div class="NavFrame" >
 
NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
 
 
NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
 
if (initiallyToggle) {
 
toggleNavigationBar(NavToggle, NavFrame);
 
}
 
}
 
        setup();
 
});
 
 
/** Collapsible tables *********************************************************
 
*
 
*  Description: Allows tables to be collapsed, showing only the header. See
 
*                        http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
 
*  Maintainers: [[en:User:R. Koot]]
 
*/
 
 
var autoCollapse = 2;
 
var collapseCaption = 'verbergen';
 
var expandCaption = 'anzeigen';
 
 
function collapseTable( tableIndex ) {
 
        var Button = document.getElementById( 'collapseButton' + tableIndex );
 
        var Table = document.getElementById( 'collapsibleTable' + tableIndex );
 
 
        if ( !Table || !Button ) {
 
                return false;
 
        }
 
 
        var Rows = Table.rows;
 
 
        if ( Button.firstChild.data == collapseCaption ) {
 
                for ( var i = 1; i < Rows.length; i++ ) {
 
                        Rows[i].style.display = 'none';
 
                }
 
                Button.firstChild.data = expandCaption;
 
        } else {
 
                for ( var i = 1; i < Rows.length; i++ ) {
 
                        Rows[i].style.display = Rows[0].style.display;
 
                }
 
                Button.firstChild.data = collapseCaption;
 
        }
 
}
 
 
function createCollapseButtons() {
 
        var tableIndex = 0;
 
        var NavigationBoxes = new Object();
 
        var Tables = document.getElementsByTagName( 'table' );
 
 
        for ( var i = 0; i < Tables.length; i++ ) {
 
                if ( hasClass( Tables[i], 'collapsible' ) ) {
 
 
                        /* only add button and increment count if there is a header row to work with */
 
                        var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
 
                        if ( !HeaderRow ) {
 
                                continue;
 
                        }
 
                        var Header = HeaderRow.getElementsByTagName( 'th' )[0];
 
                        if ( !Header ) {
 
                                continue;
 
                        }
 
 
                        NavigationBoxes[tableIndex] = Tables[i];
 
                        Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
 
 
                        var Button = document.createElement( 'span' );
 
                        var ButtonLink = document.createElement( 'a' );
 
                        var ButtonText = document.createTextNode( collapseCaption );
 
 
                        Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
 
 
                        ButtonLink.style.color = Header.style.color;
 
                        ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
 
                        ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
 
                        ButtonLink.appendChild( ButtonText );
 
 
                        Button.appendChild( document.createTextNode( '[' ) );
 
                        Button.appendChild( ButtonLink );
 
                        Button.appendChild( document.createTextNode( ']' ) );
 
 
                        Header.insertBefore( Button, Header.childNodes[0] );
 
                        tableIndex++;
 
                }
 
        }
 
 
        for ( var i = 0;  i < tableIndex; i++ ) {
 
                if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {
 
                        collapseTable( i );
 
                } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {
 
                        var element = NavigationBoxes[i];
 
                        while ( element = element.parentNode ) {
 
                                if ( hasClass( element, 'outercollapse' ) ) {
 
                                        collapseTable( i );
 
                                        break;
 
                                }
 
                        }
 
                }
 
        }
 
}
 
 
addOnloadHook( createCollapseButtons );
 
 
/** Test if an element has a certain class **************************************
 
*
 
* Description: Uses regular expressions and caching for better performance.
 
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 
*/
 
 
var hasClass = ( function() {
 
        var reCache = {};
 
        return function( element, className ) {
 
                return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className );
 
        };
 
})();
 

Version vom 8. März 2015, 16:03 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */

var map_is_open;
function rskpopup (url,t_name,x,y) {
//    var newwd = window.open(url, "Popupfenster", "width=" + x + ",height=" + y + ",scrollbars=no,location=no");
//    newwd.focus();
    var lat = url.match(/c1=[0-9]+[NS]+[0-9]+/);
    var lng = url.match(/c2=[0-9]+[OW]+[0-9]+/);
    var map = url.match(/map=[RU]+/);
    var gomap=0;
    if (map[0]=="map=U") {
        gomap = 1;
    }
    if (!map_is_open || map_is_open.closed) {
        map_is_open = open ('http://www.schnupptrupp.org/Weltkarte/google/Weltkarte.html?'+lat[0]+'&'+lng[0]+'&'+map[0]);
    } else {
        lat=lat[0].match(/[0-9]+[NS]+[0-9]+/);
        lng=lng[0].match(/[0-9]+[OW]+[0-9]+/);
        var rspoint = map_is_open.RunescapeLatLngtoEuclidianLatLng(lat[0],lng[0]);
        map_is_open.wikimarker.setPosition(rspoint);
        map_is_open.switchLayer(gomap)
        map_is_open.EuclideanMap.setZoom(6);
        map_is_open.EuclideanMap.panTo(rspoint);
        map_is_open.focus();
    }
}