
/*
//GFDL.  original here:
//http://commons.wikimedia.org/skins-1.5/common/wikibits.js

function hookEvent(hookName, hookFunct) {
	if (window.addEventListener) {
		window.addEventListener(hookName, hookFunct, false);
	} else if (window.attachEvent) {
		window.attachEvent("on" + hookName, hookFunct);
	}
}
*/

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	Author says "The credit comment is all it takes, no license. Go crazy with it!:-)"
	From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
*/
function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames[arrRegExpClassNames.length] =
				new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)");
		}
	}
	else{
		arrRegExpClassNames[arrRegExpClassNames.length] =
			new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)");
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements[arrReturnElements.length] = oElement;
		}
	}
	return (arrReturnElements)
}






//GFDL.  original here:
//http://commons.wikimedia.org/wiki/MediaWiki:ResizeGalleries.js

//addOnloadHook ( resize_galleries ) ;
//hookEvent("load", resize_galleries);
 
function resize_galleries () {
	var bc = document.getElementById ( "bodyContent" ) ;
	var width = bc.offsetWidth ; // Visible width
	var padding = 0 ; // padding per TD
	var tables = getElementsByClassName ( document , "table" , "gallery" ) ;
 
	if ( tables.length == 0 ) return ;
	window.onresize = resize_galleries;
 
	for ( var tablecount = 0 ; tablecount < tables.length ; tablecount++ ) {
		var t = tables[tablecount] ;
 
		// Get DIVs and their parent nodes (TDs)
		var divs = getElementsByClassName ( t , "div" , "gallerybox" ) ;
		var tds = new Array () ;
		for ( var i = 0 ; i < divs.length ; i++ ) tds.push ( divs[i].parentNode ) ;
 
		// Remove Table Rows
		for ( var i = 0 ; i < t.rows.length ; i++ ) t.rows[i].parentNode.removeChild ( t.rows[i] ) ;
 
		// Remove Table guts ( old tbodies, anything with type 1 should go )
		for ( var i = 0 ; i < t.childNodes.length ; i++ ) 
		 if( t.childNodes[i].nodeType == 1 && t.childNodes[i].tagName == "TR" ) t.removeChild ( t.childNodes[i] ) ;
 
		// Reorder
		var tb = document.createElement("tbody");
		var tr = null ;
		var curpos = 0 ;
		for ( var i = 0 ; i < tds.length ; i++ ) {
			var nextwidth = parseInt ( divs[i].style.width ) + padding ;
			if ( curpos + nextwidth > width || tr == null ) {
				tr = document.createElement ( "tr" ) ;
				tb.appendChild ( tr ) ;
				curpos = 0 ;
			}
			curpos += nextwidth ;
			tr.appendChild ( tds[i] ) ;
		}
		t.appendChild(tb);
	}
}
 


