//\  overLIB Hide Form Plugin 
//\  This file requires overLIB 4.00 or later. 
//\ 
//\  Uses an iframe shim to mask system controls for IE v5.5 or higher as suggested in 
//\  http://dotnetjunkies.com/weblog/jking/posts/488.aspx 
//\ 
//\  overLIB 4.05 - You may not remove or change this notice. 
//\  Copyright Erik Bosrup 1998-2004. All rights reserved. 
//\  Contributors are listed on the homepage. 
//\  See http://www.bosrup.com/web/overlib/ for details. 
//   $Revision: 1.12.2.1 $                $Date: 2004/03/23 16:29:38 $ 
//\///// 

if (typeof olInfo == 'undefined' || olInfo.simpleversion < 400) alert('overLIB 4.00 or later is required for the HideForm Plugin.'); 

// Function which generates the popup with an IFRAME shim 
function generatePopUp(content) { 
    if(!olIe4||olOp||!olIe55||(typeof o3_shadow != 'undefined' && o3_shadow)||(typeof o3_bubble != 'undefined' && o3_bubble)) return; 

    var wd, ht, txt,  zIdx =  0; 

    wd =  parseInt(o3_width); 
    ht =  over.offsetHeight; 
    txt =  bckDropSrc(wd, ht, zIdx++); 
    txt += '<div style="position: absolute; top: 0; left: 0; width: '+ wd+'px; z-index: ' + zIdx + ';">' + content + '</div>'; 
    layerWrite(txt); 
} 

// Code for the IFRAME which is used in other places 
function bckDropSrc(width,  height,  Z) { 
    return '<iframe frameborder="0" scrolling="no" src="" width="' + width + '" height="' + height + '" style="z-index: ' + Z + '; filter: Beta(Style=0, Opacity=0);"></iframe>'; 
} 

// Hides SELECT boxes that will be under the popup 
// Checking Gecko version number to try to include other browsers based on the Gecko engine 
function hideSelectBox() { 
    if(olNs4 || olOp || olIe55) return; 
    var px,  py,  pw,  ph,  sx,  sw,  sy,  sh,  selEl,  v; 

    if(olIe4) v = 0; 
    else { 
        v = navigator.userAgent.match(/Gecko\/(\d{8})/i); 
        if(!v) return;   // return if no string match 
        v = parseInt(v[1]); 
    } 

    if (v < 20030624) {  // versions less than June 24,  2003 were earlier Netscape browsers 
        px = parseInt(over.style.left); 
        py = parseInt(over.style.top); 
        pw = o3_width; 
        ph = (o3_aboveheight ? parseInt(o3_aboveheight) : over.offsetHeight); 
        selEl = (olIe4) ? o3_frame.document.all.tags("SELECT") : o3_frame.document.getElementsByTagName("SELECT"); 
        for (var i=0; i<selEl.length; i++) { 
            if(!olIe4 && selEl[i].size < 2) continue;  // Not IE and SELECT size is 1 or not specified 
            sx = pageLocation(selEl[i], 'Left'); 
            sy = pageLocation(selEl[i], 'Top'); 
            sw = selEl[i].offsetWidth; 
            sh = selEl[i].offsetHeight; 
            if((px+pw) < sx || px > (sx+sw) || (py+ph) < sy || py > (sy+sh)) continue; 
            selEl[i].isHidden = 1; 
            selEl[i].style.visibility = 'hidden'; 
        } 
    } 
} 

// Shows previously hidden SELECT Boxes 
function showSelectBox() { 
    if(olNs4 || olOp || olIe55) return; 
    var selEl,  v; 

    if(olIe4) v = 0; 
    else { 
        v = navigator.userAgent.match(/Gecko\/(\d{8})/i); 
        if(!v) return;  
        v = parseInt(v[1]); 
    } 

    if(v < 20030624) { 
        selEl = (olIe4) ? o3_frame.document.all.tags("SELECT") : o3_frame.document.getElementsByTagName("SELECT"); 
        for (var i=0; i<selEl.length; i++) { 
            if(typeof selEl[i].isHidden !=  'undefined' && selEl[i].isHidden) { 
                selEl[i].isHidden = 0; 
                selEl[i].style.visibility = 'visible'; 
            } 
        } 
    } 
} 

// function gets the total offset properties of an element 
// this same function occurs in overlib_mark.js. 
function pageLocation(o, t){ 
    var x = 0 

    while(o.offsetParent){ 
        x += o['offset'+t] 
        o = o.offsetParent 
    } 

    x += o['offset'+t] 

    return x 
} 

// reset mouse move routine for NS7 but not NS7.1, Opera,  or IE5.5+ 
// It also bypasses Netscape 6 since the modifications mess up the display of popups 
// and don't work anyways. 
// Modify mouse move routine while loading so that hideSelectBox() 
// can be called from the correct location 
if (!(olNs4 || olOp || olIe55 || navigator.userAgent.indexOf('Netscape6') != -1)) { 
    var MMStr = olMouseMove.toString(); 
    var strRe = /(if\s*\(o3_allowmove\s*==\s*1.*\)\s*)/; 
    var f = MMStr.match(strRe); 

    if (f) { 
        var ls = MMStr.search(strRe); 
        ls += f[1].length; 
        var le = MMStr.substring(ls).search(/[;|}]\n/); 
        MMStr = MMStr.substring(0, ls) + ' { runHook("placeLayer", FREPLACE); if(olHideForm) hideSelectBox(); ' + MMStr.substring(ls + (le != -1 ? le+3 : 0)); 
        document.writeln('<script type="text/javascript">\n<!--\n' + MMStr + '\n//-->\n</' + 'script>'); 
    } 

    f = capExtent.onmousemove.toString().match(/function[ ]+(\w*)\(/); 
    if (f&&f[1] != 'annoymous') capExtent.onmousemove = olMouseMove; 
} 


//////// 
// PLUGIN REGISTRATIONS 
//////// 
registerHook("createPopup", generatePopUp, FAFTER); 
registerHook("hideObject", showSelectBox, FAFTER); 
olHideForm=1; 

