//JAVASCRIPT 高速化処理
var _si_Interval            = 10;
var _si_ProcessCounter      = 0;
var _si_Counter             = 0;
var _SI_MESSAGE_ERROR       = '第一引数が不正です。';
var _SI_TYPE_STRING         = 'string';
var _SI_TYPE_FUNCTION       = 'function';
var _si_NativeSetInterval   = window.setInterval;
var _si_ProcessArray        = [];
var _si_TimingArray         = [];
var curx = 0;
var cury = 0;

window.setInterval = function(process, delay) {
    if(typeof process == _SI_TYPE_STRING) {
        process = new Function(process);
    }
    else if(typeof process != _SI_TYPE_FUNCTION) {
        throw Error(_SI_MESSAGE_ERROR);
    }
    var id;
    for(id = 0; ; id ++) {
        if(!_si_ProcessArray[id]) {
            break;
        }
    }
    _si_TimingArray[id]  = Math.floor(delay / _si_Interval) || 1;
    _si_ProcessArray[id] = process;
    if(_si_ProcessCounter == id) {
        _si_ProcessCounter ++;
    }
    return ++id;
};

window.clearInterval = function(id) {
    id--; _si_ProcessArray[id] = undefined;
    if(!((-- _si_ProcessCounter) == id)) {
        _si_ProcessCounter ++;
    }
};

_si_NativeSetInterval(
    function() {
        _si_Counter ++;
        for(var i = 0; i < _si_ProcessCounter; i ++){
            var process = _si_ProcessArray[i];
            if(!(_si_Counter % _si_TimingArray[i]) && process) {
                process();
            }
        }
    },
    _si_Interval
);

  document.onmousedown = mdwn
  function mdwn(e){
    curx = getMouseX(e);
	cury = getMouseY(e);
  }


  //******************************************************************************
  //*   エラー処理の登録                                                         *
  //*   errobj     : null ( 省略時処理 )   not null ( エラー処理・オブジェクト ) *
  //******************************************************************************         
  function ajxerr( url, errobj ) { 
    if ( errobj == "" ) {                                //省略時処理
	  reqError = function()                     //ajax エラー処理
	             {
				   alert( url + ' Not Found');  //Not Found Message
	             }
	}
	else {
	  reqError = errobj;
	}
  }
  
  
  //**************************************************************************************
  //*   読み込み完了時処理の登録                                                         *
  //*   rcvobj     : 読み込み HTML 編集先                                                *
  //*   compedit   : null ( 省略時処理 )   1 ( 商品備考全表示 )                          *
  //**************************************************************************************         
  function ajxcmp( rcvobj, compedit ) { 
    if ( compedit == "" ) {                               //省略時処理
	  htmlEdit = function( getText ) 
	             {
				   var rst = getText.extractScripts();
				   var rct = rst.length;
				   if ( rct > 0 ) {
                     for ( var i=0; i < rct; i++ ) {
				       var scrtxt = rst[i].stripTags();
				       if ( scrtxt != "" ) {
				         eval( scrtxt );
				       }
					 }
				   }
				   $( rcvobj ).innerHTML = getText.stripScripts();
	             }
	}
	else {
	  htmlEdit = function ( getText ) 
	             {
				   compedit( getText, rcvobj );
				   var rst = getText.extractScripts();
				   var rct = rst.length;
				   if ( rct > 0 ) {
                     for ( var i=0; i < rct; i++ ) {
				       var scrtxt = rst[i].stripTags();
				       if ( scrtxt != "" ) {
				         eval( scrtxt );
				       }
					 }
				   }
				 } 
	}
  }

 //*************************************************************************************
  //*   html_file : 読込ファイル名称( パス付 )                                          *
  //*   objname   : 更新先オブジェクト ID                                               *
  //*   post_data : post データー ( p1=xxxx&p2=xxxx )                                  *
  //*   async     : true ( 同期 )  or  false ( 非同期 )                                 *
  //*   sts       : 0 ( ステータスバー非表示 ) 1 (ステータスバ非表示)                   *
  //*   comp      : null ( 省略時エラー処理 ) function名 ( エラー処理名 )               *
  //*   err       : null ( 省略時読み込み完了処理 ) function名 ( 読み込み完了処理名 )   *
  //*************************************************************************************  
  function docget( html_file, objname, post_parm, async, sts, comp, err ) { 
    var xmlhttp = false;
    var ie = 1;

    ajxerr( html_file, err );                     //エラー処理オブジェクト生成
    ajxcmp( objname, comp );                      //読み込み完了時処理オブジェクト生成
													  
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");        //HTTP リクエスト・オブジェクト生成
      } catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");   //HTTP リクエスト・オブジェクト生成
        } catch (e) {
          xmlhttp = false;
        }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();                      //HTTP リクエスト・オブジェクト生成
	    ie = 0;
      }


    if ( xmlhttp ) {                                        //HTTP リクエスト・オブジェクトあり
	  xmlhttp.open( 'POST', html_file, async );             //HTTP オープン
	  if ( ie == 1 ) {                                      //IE
	    xmlhttp.onreadystatechange = function() {
          if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
		    htmlEdit( xmlhttp.responseText );               //読み込みデーター編集
          }
		  else {
		    if ( xmlhttp.readyState == 4 && xmlhttp.status == 404 ) {
		      reqError();
			}
		  }
        }
	  } 
	  else {                                                //IE 以外
	     xmlhttp.onload = function() {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		    htmlEdit( xmlhttp.responseText );               //読み込みデーター編集
          }
		  else {
		    if ( xmlhttp.readyState == 4 && xmlhttp.status == 404 ) {
		      reqError();
			}
		  }
        }
	  }

      xmlhttp.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded; charset=SJIS' );
      xmlhttp.send( post_parm );                            //HTTP 送信
    }
  }