function createExhibit() {//overload Exhibit's autoCreate-functionality
/*
* This javascript bases on the Wibbit startup procedure and was modified for the use in Semantic MediaWiki
* Data: We're using the HTML table importer to get the data for the exhibit.
*/
window.database = Exhibit.Database.create();
window.exhibit = Exhibit.create(window.database);
if(!remote){
for (var id in ex_sources) {
var source = ex_sources[id];
var dataTable = document.getElementById(source.id);
//if (source.hideTable == 1) { dataTable.setAttribute("style", "display:none"); };
dataTable.setAttribute("ex:type", source.type);
dataTable.setAttribute("ex:label", source.label);
dataTable.setAttribute("ex:pluralLabel", source.pluralLabel);
var th, ths = dataTable.getElementsByTagName("th");
var columns = source.columns;
if (columns[0] !== "") {
for(var c = 0; c < ths.length; c++) {
var split = columns[c].indexOf(':');
if (split > 0) {
var name = columns[c].substring(0, split);
var valueType = columns[c].substring((split + 1), columns[c].length);
ths[c].setAttribute('ex:valueType', valueType);
} else { var name = columns[c]; }
ths[c].setAttribute('ex:name', name);
}
} else {
ths[0].setAttribute('ex:name', 'label');
for (var c = 1; c < ths.length; c++) {
//Safari uses innerText instead of textContent, so:
var thetext = ths[c].textContent || ths[c].innerText;
var label = thetext.toLowerCase();
label = label.replace(/\s/g,'');
ths[c].setAttribute('ex:name', label);
}
}
Exhibit.HtmlTableImporter.loadTable(dataTable, window.database);
}}
window.database.loadDataLinks(); //load JSON files in addition
var exhibitDiv = document.getElementById('exhibitLocation');
exhibitDiv.innerHTML = "
";//";
/*
* Configuration: We're creating HTML strings that specify the configurations,
* formatted in the same form as specifications in the HTML of a regular exhibit.
*/
if (ex_facets) {//facets
for (var index in ex_facets) {
var facet = ex_facets[index];
var position = facet.position;
var innerHTML = "";
if (position == "top") {
var facetDiv = document.getElementById('top-facets')
facetDiv.innerHTML = facetDiv.innerHTML + innerHTML;
}
if (position == "bottom") {
var facetDiv = document.getElementById('bottom-facets');
facetDiv.innerHTML = facetDiv.innerHTML + innerHTML;
}
if (position == "left") {
var facetTd = document.getElementById('left-facets');
facetTd.innerHTML = facetTd.innerHTML + innerHTML;
facetTd.setAttribute('width', '24%');
}
if (position == "right") {
var facetTd = document.getElementById('right-facets');
facetTd.innerHTML = facetTd.innerHTML + innerHTML;
facetTd.setAttribute('width', '24%');
}
}
}
if (ex_views && (ex_views[0] !== "")) {//views
var viewHTML = ''+ex_lens+'
';
for (var i = 0; i < ex_views.length; i++) {
viewHTML = viewHTML + '
';
}
viewHTML = viewHTML + '
';
document.getElementById("view").innerHTML = viewHTML;
} else {
document.getElementById("view").innerHTML = '';
}
for(var i = 0; i < ex_lenscounter; i++){ //lenses
var test = document.getElementById("lenscontent"+i);
if(test.innerHTML.indexOf('|')>=0){
var commands = test.innerHTML.split('|');
test.setAttribute('ex:formats','date { template:\'' + commands[1] +'\' }');
test.innerHTML = commands[0];
}
test.setAttribute('ex:content','.' + test.innerHTML.replace(' ','_').toLowerCase());
test.setAttribute('class',"inlines");
test.innerHTML = '';
}
for(var i = 0; i < ex_linkcounter; i++){ //lenses
var test = document.getElementById("linkcontent"+i);
var newlink = document.createElement('a');
newlink.setAttribute('ex:href-subcontent',wgServer + wgScript + '?title={{urlenc(.' + test.innerHTML + ')}}');
newlink.setAttribute('ex:content','.' + test.innerHTML);
test.innerHTML = '';
test.appendChild(newlink);
}
for(var i = 0; i < ex_imagecounter; i++){ //lenses
var test = document.getElementById("imagecontent"+i);
var newimage = document.createElement('img');
newimage.setAttribute('ex:src-content','.' + test.innerHTML);
newimage.setAttribute('height','100');
test.innerHTML = '';
test.appendChild(newimage);
}
window.exhibit.configureFromDOM();
}
addOnloadHook(createExhibit);