function switchimage(src, href) { var img = document.getElementById('image'); img.onclick = function() {window.open(href);}; img.src = src; img.style.display = 'inline'; loadmeta(src); }; function _clear_meta(img) { if (img.nextSibling.nodeType == 1 && img.nextSibling.nodeName.toLowerCase() == 'div') { img.parentNode.removeChild(img.nextSibling); }; }; function _set_meta(img, data) { _clear_meta(img); var div = document.createElement('div'); div.className = 'meta'; var lines = data.split('\n'); for (var i=0; i < lines.length; i++) { if (!string.strip(lines[i])) { continue; }; var linedata = lines[i].split(':'); var linediv = document.createElement('div'); var titlespan = document.createElement('span'); titlespan.className = 'metatitle'; titlespan.appendChild( document.createTextNode( string.strip(linedata[0]) + ': ' ) ); var valuespan = document.createElement('span'); valuespan.className = 'metavalue'; valuespan.appendChild( document.createTextNode( string.strip(linedata[1]) ) ); linediv.appendChild(titlespan); linediv.appendChild(valuespan); div.appendChild(linediv); }; img.parentNode.insertBefore(div, img.nextSibling); }; function loadmeta(imgsrc) { var img = document.getElementById('image'); var handler = function(status, data) { _set_meta(img, data); }; var errhandler = function(status) { // we ignore errors, but do clear the old metadata _clear_meta(img); }; var chunks = imgsrc.split('.'); chunks.pop(); var path = chunks.join('.') + '.meta'; server.load_async(path, handler, errhandler); }; function loadfirst() { var a = document.getElementById('imagebar' ).getElementsByTagName('a')[0]; switchimage(a.href, a.getAttribute('hugehref')); };