////////////////////////// // main ////////////////////////// var mf; // handle to the medium iframe (initialised onload()) /////////////////////////// function SetupIndex() { /////////////////////////// // setup medium iframe var m_iframe = ''; document.getElementById('mediumiframe_span').innerHTML = m_iframe; // show thumbnails SetupIFrames( smallPos ); // set handle to the medium iframe mf = this.frames['mediumiframe']; // set keyboard handler document.onkeydown = ImageBrowsingKeydownHandlerIndex; // set document title document.title = title.replace(/(<([^>]+)>)/ig,""); // write status message window.status = 'This is a Porta photo album. Use the left and right arrow keys to navigate.'; // go to light box if specified //var url = window.location.href; //var show_lightbox = (url.indexOf("?lightbox")!=-1); //if (show_lightbox) { // DisplayLightbox(); //} } ////////////////////////// function ImageBrowsingKeydownHandlerIndex( e ) { ////////////////////////// ImageBrowsingKeydownHandler( e, mf ); } /////////////////////////// function EnlargeImageInLightbox( i ) { /////////////////////////// // delete selection to avoid display artefacts if (self.getSelection) { self.getSelection().removeAllRanges(); } else if (document.selection) { document.selection.clear(); } mf.ShowImage( i, 0 ); document.getElementById('mainlayer').style.visibility = 'visible'; document.getElementById('lightboxlayer').style.visibility = 'hidden'; } /////////////////////////// function DisplayLightbox() { /////////////////////////// // hide the main layer and show the lightbox document.getElementById('mainlayer').style.visibility = 'hidden'; document.getElementById('lightboxlayer').style.visibility = 'visible'; // unload small images elements in the mainlayer SetupIFrames( 'none' ); // register and render light box links mf.clinks_href = new Array(); mf.clinks_txt = new Array(); mf.clinks_href.push('javascript:parent.DisplayLightbox()'); mf.clinks_txt.push( ls_lightbox ); mf.clinks_href.push('javascript:parent.HideLightbox()'); mf.clinks_txt.push( ls_albumview ); mf.RenderCtrlLinks(); // write title and link document.getElementById('title_lb').innerHTML = title; document.getElementById('ctrllinks_lb').innerHTML = ''+ls_albumview+''; // write thumbnails var border = 14; var html = ''; for (i=0;i]*>/g; mac = mac.replace(re,""); // strip html html += ''; html += ''+mac+''; html += ' '; } document.getElementById('images_lb').innerHTML = html; // write footer document.getElementById('footer_lb').innerHTML = PortaMagicFooter(footer); } /////////////////////////// function HideLightbox() { /////////////////////////// // unload lightbox images to conserve memory document.getElementById('images_lb').innerHTML = ''; // turn on small images in the main layer SetupIFrames( smallPos ); // unregister links mf.clinks_href = new Array(); mf.clinks_txt = new Array(); mf.RenderCtrlLinks(); // hide lightbox and show the main layer document.getElementById('mainlayer').style.visibility = 'visible'; document.getElementById('lightboxlayer').style.visibility = 'hidden'; } ////////////////////////// function SetupIFrames( smallPosSetting ) { ////////////////////////// // access medium iframe style var stym = document.getElementById('mediumiframe').style; // stuff required for the nasty ie workaround.... // (which to make matters worse requires to use the xml prolog stunt // to switch ie into quirks mode in order to use the faulty box model) var isIE = (navigator.userAgent.toLowerCase().indexOf("msie") != -1); var isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); isIE = isOpera ? true : isIE; // treat Opera as IE if (smallPosSetting=='none') { // empty iframe document.getElementById('smalliframe_span').innerHTML = ''; // set the main content to fill the browser stym.left = '0px'; stym.top = '0px'; stym.padding = '0px 0px 0px 0px'; if (isIE) { stym.height = '100%'; stym.width = '100%'; } else { stym.bottom = '0px'; stym.right = '0px'; } stym.visibility = 'visible'; return; } // write the small iframe var s_iframe = ''; document.getElementById('smalliframe_span').innerHTML = s_iframe; // size and position iframes var sty = document.getElementById('smalliframe').style; var scrollbarsize = 16; // ugly pragmatic stuff var marginsize = 2*1+2*3+10; // ugly pragmatic stuff var space = isIE ? 15 : 10; // ugly pragmatic stuff var w = parseInt(maxSmallW+scrollbarsize+marginsize+space)+'px'; var h = parseInt(maxSmallH+scrollbarsize+marginsize)+'px'; stym.top = '0px'; stym.left = '0px'; if (isIE) { stym.height = '100%'; stym.width = '100%'; } else { stym.bottom = '0px'; stym.right = '0px'; } switch (smallPosSetting) { case 'top': sty.left = '0px'; sty.top = '0px'; sty.width = '100%'; sty.height = h; if (isIE) { stym.paddingTop = h; } else { stym.top = h; } break; case 'bottom': sty.left = '0px'; sty.bottom = '0px'; sty.width = '100%'; sty.height = h; if (isIE) { stym.paddingBottom = h; } else { stym.bottom = h; } break; case 'right': sty.right = '0px'; sty.top = '0px'; sty.width = w; sty.height = '100%'; if (isIE) { stym.paddingRight = w; } else { stym.right = w; } break; case 'left': default: sty.left = '0px'; sty.top = '0px'; sty.width = w; sty.height = '100%'; if (isIE) { stym.paddingLeft = w; } else { stym.left = w; } break; } sty.visibility = 'visible'; stym.visibility = 'visible'; }