<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>PopUp</title>

<style type='text/css'>
        #pop {
                border:                 1px solid #999999;
                width:                  auto;
                height:                 auto;
                padding:                5px;
                background-color:       #EEEEEE;
                position:               absolute;
                display:                none;
        }
</style>

<script type="text/javascript">
//<![CDATA[

var pop = null;

// ポップアップ処理
function popup()
{
        pop = document.getElementById('pop');
        pop.mx                  = 0;
        pop.my                  = 0;
        pop.offset_x            = 0;
        pop.offset_y            = 0;
        pop.style.left          = '10px';
        pop.style.top           = '10px';
        pop.style.display       = 'block';
        pop.style.zIndex        = 100;
        pop.onmousedown         = popMouseDown;
        
        //-------------------------------------
        // IE select の zIndex 問題に対処。
        // IE の場合のみ作成を推奨だけど、今回は全部。
        //-------------------------------------
        // IE 対策チェックボックがチェックされてるか
        if( document.fm.chk.checked )
        {
                // iframe が作成されていればそのまま。
                // 作成されていなければ作成する。
                var iframe = pop.iframe;
                if( !pop.iframe )
                {
                        iframe = document.createElement( "<iframe scrolling='no' frameborder='0'></iframe>" );
                        // 追加
                        window.document.body.appendChild( iframe );
                        
                        pop.iframe = iframe;
                }
                
                // 初期化
                iframe.style.left       = pop.style.left;
                iframe.style.top        = pop.style.top;
                iframe.style.width      = pop.offsetWidth;
                iframe.style.height     = pop.offsetHeight;
                iframe.style.display    = "block";
                iframe.style.position   = "absolute";
                iframe.style.zIndex     = 10;
        }
}

// ポップアップ無効
function popdown()
{
        if( pop )
        {
                pop.style.display = 'none';
                if( pop.iframe )
                {
                        pop.iframe.style.display = 'none';
                }
        }
}

// ポップアップ マウスの位置を設定する
function MousePos( ev )
{
        if( document.all )
        {
                pop.mx = event.x;
                pop.my = event.y;
        }
        else
        {
                pop.mx = ev.pageX;
                pop.my = ev.pageY;
        }
}

// ポップアップ マウスダウン
function popMouseDown( ev )
{
        MousePos( ev );
        
        pop.offset_x = pop.mx - parseInt( pop.style.left );
        pop.offset_y = pop.my - parseInt( pop.style.top );
                
        window.document.onmousemove = popMouseMove;
        window.document.onmouseup = popMouseUp;
}

// ポップアップ マウスアップ時の動作
function popMouseUp()
{
        window.document.onmousemove = null;
        window.document.onmouseup = null;
        return false;
}

// ポップアップ マウス移動時の動作
function popMouseMove( ev )
{
        if( pop )
        {               
                MousePos( ev );
                
                pop.style.left  = ( pop.mx - pop.offset_x ) + "px";
                pop.style.top   = ( pop.my - pop.offset_y ) + "px";
        
                //------------------------------
                // IE 限定
                //------------------------------
                if( pop.iframe )
                {
                        var iframe = pop.iframe;
                        iframe.style.left       = pop.style.left;
                        iframe.style.top        = pop.style.top;
                        iframe.style.width      = pop.offsetWidth;
                        iframe.style.height     = pop.offsetHeight;
                }               
        }
        return false;
}

//]]>
</script>

 </head>
 <body>
 <div id='pop' >
        ポップアップ<br />
        ドラッグ&ドロップ
 </div>

 <select>
        <option>1番目</option>
        <option>2番目</option>
 </select>
 <br />
 <form name='fm' style='display:inline;'>
IE対策 <input type='checkbox' name='chk' value='iframe' style='display:inline;' />
 </form>
 <br />
 <input type='button' value='PUSH' onclick='popup();' />
 <input type='button' value='CLEAR' onclick='popdown();' />

 </body>
</html>