// Modal Image Box
// copyright 21st May 2006 by Stephen Chapman
// http://javascript.about.com/
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
function pageWidth() {
    return window.innerWidth != null ? window.innerWidth : document.documentElement &&
           document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

function pageHeight() {
    return window.innerHeight != null ? window.innerHeight : document.documentElement &&
           document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null;
}

function posLeft() {
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement &&
           document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

function posTop() {
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement &&
           document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

function $( x ) {
    return document.getElementById( x );
}

function scrollFix() {
    var obol = $( 'ol' );
    obol.style.top = posTop() + 'px';
    obol.style.left = posLeft() + 'px'
}

function sizeFix() {
    var obol = $( 'ol' );
    obol.style.width = pageWidth() + 'px';
    obol.style.height = pageHeight() + 'px';
}

function kp( e ) {
    ky = e ? e.which : event.keyCode;
    if ( ky == 88 || ky == 120 ) {
        hm();
    }
    return false;
}

function inf( h ) {
    tag = document.getElementsByTagName('select');
    for ( i = tag.length - 1; i >= 0; i-- ) {
        tag[ i ].style.visibility = h;
    }
    tag = document.getElementsByTagName('iframe');
    for ( i = tag.length - 1; i >= 0; i-- ) {
        tag[ i ].style.visibility = h;
    }
    tag = document.getElementsByTagName('object');
    for ( i = tag.length - 1; i >= 0 ; i-- ) {
        tag[ i ].style.visibility = h;
    }
}

function sm( obl ) {
    var h = 'hidden';
    var b = 'block';
    var p = 'px';
    var obol = $( 'ol' );
    obol.style.height = pageHeight() + p;
    obol.style.width = pageWidth() + p;
    obol.style.top = posTop() + p;
    obol.style.left = posLeft() + p;
    obol.style.display = b;
    im = new Image();
    im.onload = function() {
        $( 'mbi' ).src = obl.href;
        var tp = posTop() + ( ( pageHeight() - im.height ) / 2 ) - 12;
        var lt = posLeft() + ( ( pageWidth() - im.width ) / 2 ) - 12;
        var obbx = $( 'mbox' );
        obbx.style.top = ( tp < 0 ? 0 : tp ) + p;
        obbx.style.left = ( lt < 0 ? 0 : lt ) + p;
        $( 'mbd' ).style.width = im.width + p;
        inf( h );
        obbx.style.display = b;
        document.onkeypress = kp;
        return false;
    };
    im.src = obl.href
}

function hm() {
    var v = 'visible';
    var n = 'none';
    $( 'ol' ).style.display = n;
    $( 'mbox' ).style.display = n;
    inf( v );
    document.onkeypress = ''
}

function initmb() {
    var ab = 'absolute';
    var n = 'none';
    if ( !document.getElementsByTagName ) {
        return;
    }
    var anchors = document.getElementsByTagName( 'a' );
    for ( var i = 0; i < anchors.length; i++ ) {
        var an = anchors[i];
        if ( an.getAttribute( 'href' ) && /gif|jpe?g|png$/.test( an.getAttribute( 'href' ) ) ) {
            an.onclick = function() {
                sm(this);
                return false;
            }
        }
    }
    var obody = document.getElementsByTagName( 'body' )[ 0 ];
    var frag = document.createDocumentFragment();
    var obol = document.createElement( 'div' );
    obol.setAttribute( 'id', 'ol' );
    obol.style.display = n;
    obol.style.position = ab;
    obol.style.top = 0;
    obol.style.left = 0;
    obol.style.zIndex = 998;
    obol.style.width = '100%';
    frag.appendChild( obol );
    var obbx = document.createElement( 'div' );
    obbx.setAttribute( 'id', 'mbox' );
    obbx.onclick = function() {
        hm();
        return false;
    };
    obbx.style.display = n;
    obbx.style.position = ab;
    obbx.style.zIndex = 999;
    var obl = document.createElement( 'span' );
    obbx.appendChild( obl );
    var obbxd = document.createElement( 'div' );
    obbxd.setAttribute( 'id', 'mbd' );
    obl.appendChild( obbxd );
    var obmbm = document.createElement( 'div' );
    obmbm.setAttribute( 'id', 'mbm' );
    //obmbm.innerHTML = 'X';
    obbxd.appendChild( obmbm );
    var obim = document.createElement( 'img' );
    obim.setAttribute( 'id', 'mbi' );
    obl.appendChild( obim );
    frag.insertBefore( obbx, obol.nextSibling );
    obody.insertBefore( frag, obody.firstChild );
    window.onscroll = scrollFix;
    window.onresize = sizeFix;
}

window.onload = initmb;
