  //*********************************************************************
  // 共通（グローバル）
  //*********************************************************************
  // 件数
  var hit_cnt       =    0 ;        // ヒット件数

  // 点滅処理用
  var bln_visible       = true  ;   // 点滅フラグ
  var blinking_proc_id          ;   // 点滅処理ID
  var bln_blinking      = false ;   // 点滅中フラグ

  // インクリメンタルサーチ関連
  var inc_first_flag  = true  ;       // 初回インクリメンタルサーチフラグ
  var inc_wait_flag   = false ;      // インクリメンタル待ちフラグ
  var inc_enable_flag = true  ;      // インクリメンタルサーチの可否フラグ

  //*********************************************************************
  // 環境設定
  //*********************************************************************
  // ファイル名
  var file_inx  = "index.html" ; 
  var file_src  = "search.html" ;
  var file_cnt  = "./cgi-bin/search_cnt.cgi" ;
  var file_xml  = "./cgi-bin/search_xml.cgi" ;
  var file_top  = "./cgi-bin/top_ranking.cgi" ;
  var file_log  = "./cgi-bin/kantan_log.cgi" ;
  var file_js   = "search.js" ;
  var file_lib  = "jslb_ajax.js" ;

  // ページ制御設定
  var perp          =   10 ;     // 1pageあたりの表示件数
  var limit_csv     = 3000 ;     // CSV出力制限
  var limit_apprank = 5000 ;     // 出願人ランキング表示制限
  var limit_appyear = 5000 ;     // 出願件数推移表示制限
  var limit_ipcrank = 5000 ;     // IPCランキング表示制限
  var limit_firank  = 5000 ;     // FIランキング表示制限
 
  // 出願人検索用
//  var google_icon_path = "http://www.google.co.jp/favicon.ico";   // Google検索リンク用アイコンのパス
  var google_icon_path = "images/icon_google.jpg";   // Google検索リンク用アイコンのパス
  var yahoo_icon_path  = "http://www.yahoo.co.jp/favicon.ico";    // Yahoo検索リンク用アイコンのパス
  var src_engine       = "both";                                  // どの検索エンジンを使うか("google","yahoo","both")
  var sec_info_url     = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" ;

  // ツールチップメッセージ
  var tooltip_title    = "この特許の公報を表示";
  var tooltip_app      = "この出願人の特許を検索";
  var tooltip_google   = "この出願人でGoogle検索";
  var tooltip_yahoo    = "この出願人でYahoo!検索";
  var tooltip_share    = "";
  var tooltip_ipc      = "このIPC分類の特許を検索";
  var tooltip_fi       = "このFIの特許を検索";
  var tooltip_no_keika = "経過情報がまだ収録されていません";
  var tooltip_appsec   = "この銘柄情報（yahoo!ファイナンス）を表示";
  var tooltip_showsec  = "非上場企業の表示・非表示を切替";

  // 属性検索用デリミッタ
  var attr_char = "#";

  //*********************************************************************
  // ヒット件数（インクリメンタル件数サーチ）
  //*********************************************************************
  function inc_search( input_form ){

    var word      = "";
    var prev_word = "";
    var lmt       = "";
    var kinji     = "";
    var kc        = "";
    
    word          = input_form.w.value ;
    prev_word     = input_form.prev_phrase.value ;
    lmt           = getRadioValue( input_form, "lmt" );
    kinji         = parseInt(input_form.kinji.value) ;
    kc            = input_form.kc.value ;

    // インクリメンタルサーチの可否フラグがfalseの場合は検索しない
    if(!inc_enable_flag) {
      // showMessage("ただいま検索中");
      return true ;
    }
    

    // 待機待ちフラグがオンの場合は検索しない
    if(inc_wait_flag) {
      showMessage("ただいま検索中");
      return true ;
    }

    // 入力されたワードが短い場合は検索しない
    // 初回のインクリメンタルサーチが走るまでは２文字以下はインクリメンタル無効
    if( inc_first_flag ) {
      //（初回は2文字以下の場合にインクリメンタル無効）
      if(word.length < 3){
        showMessage("");
        return true ;
      }
    }else{
      //（1文字以下の場合はインクリメンタル無効）
      if(word.length < 2){
        showMessage("");
        return true ;
      }
    }

    // 入力されたワードが前回と同じ場合は検索しない
    if(trim(word) == trim(prev_word) ){
      return true ;
    }

//    // #出願人または#発明者または#類似特許と入力された場合は件数表示しない
//    if( ( word.indexOf(attr_char + "出願人" ,0) >= 0  )
//     || ( word.indexOf(attr_char + "発明者" ,0) >= 0  )
//     || ( word.indexOf(attr_char + "類似特許" ,0) >= 0  ) ) {
//        showMessage( "----" );
//        return true ;
//    }

    // 前回のwordの保存
    input_form.prev_phrase.value = word;

    // 待機待ちフラグオン
    inc_wait_flag = true ;

    // 検索ワードを受け取り
    request = createHttpRequest();
    request.open("POST", file_cnt ) ;
    request.send( "w=" + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc ) ;

    // 着信時の処理
    request.onreadystatechange = callbackFunction ;
  
    function callbackFunction() {
      if(request.readyState==4){
        inc_search_callback() ;
      }
    }

    // 件数表示
    function inc_search_callback(){
      var cnt = request.responseText ;
      if(cnt==""){
      }else{
        // 初回フラグ初期化
        inc_first_flag = false ;
        // 待機フラグクリア
        inc_wait_flag = false ;
        // メッセージ表示
        showMessage( insertComma(cnt) + "件ヒットしました"  );
        // 回答件数セット
        hit_cnt = parseInt(cnt) ;
      }
    }
  }

  //*********************************************************************
  // 検索結果一覧
  //*********************************************************************
  // コールバック関数
  function search_on_loadXML( oj ){

    // 取得パラメータ宣言 =========================================
    var cnt      =  0 ;    // ヒット件数
    var curp     =  1 ;    // カレントページ
    var maxp     =  1 ;    // 検索結果の最大ページ番号

    // レスポンスを取得 ===========================================
    var resX = oj.responseXML;
    
    // カレントページの取得
    curp = parseInt(document.input.next_page.value) ;
    
    // メタ情報の取得 =============================================
    var res_hit  = resX.getElementsByTagName("hit");       // ヒット件数配列
    var res_doc  = resX.getElementsByTagName("document");  // 案件ノード配列

    var key_num  = res_hit.length ;

    // 検索ワードとその単体でのヒット数を表示 =====================
    for ( i = 0; i < key_num; i++ ) {
      if( i == 0 ) {
        // key属性がないHITノード（先頭）は全体の回答結果
        cnt =  parseInt( res_hit[i].getAttribute("number") ) ;
        // 最大ページ番号の取得
        maxp    = parseInt( parseInt(res_hit[i].getAttribute("number")) / perp ) ;
        if( parseInt(res_hit[i].getAttribute("number")) % perp != 0 ){
          maxp = maxp + 1 ;
        }
      }else{
      }
    }

    // ヒット件数の表示 ===========================================
    showMessage( insertComma(cnt+"") + "件ヒットしました"  );
    stopBlinkingProc();            // 点滅処理終了
    hit_cnt = parseInt(cnt) ;      // 回答件数セット

    // 案件（ドキュメント）ノード内部解析用変数宣言 ===============
    var di = res_doc.length ;  // documentノードの数
    var ai = 0 ;               // （現在処理を行っている）documentノード内のattributeノードの数
//    var ei = 0 ;               // （現在処理を行っている）document/vectorノード内のelementノードの数
    var nm = "" ;  // 現在解析しているノードAttributeの属性name
    var vl = "" ;  // 現在解析しているノードAttributeの属性value

    var arr_link      = new Array ( di ) ; // リンク先（配列）
    var arr_title     = new Array ( di ) ; // 発明の名称（配列）
    var arr_score     = new Array ( di ) ; // スコア（配列）
    var arr_applicant = new Array ( di ) ; // 出願人（配列）
    var arr_appli     ;                    
    var arr_appno     = new Array ( di ) ; // 出願番号（配列）
    var arr_appday    = new Array ( di ) ; // 出願日（配列）
    var arr_pubno     = new Array ( di ) ; // 公開番号（配列）
    var arr_pubday    = new Array ( di ) ; // 公開日（配列）

//    var arr_snippet   = new Array ( di ) ; // ヒット文字列（配列）
    var arr_abstract  = new Array ( di ) ; // 要約

    var arr_ipc       = new Array ( di ) ; // IPC
    var arr_ic        ;                    

    var arr_fi        = new Array ( di ) ; // FI
    var arr_f         ;                    

    var arr_req_exa       = new Array ( di ) ; // 審査請求
    var arr_exa_disp_code = new Array ( di ) ; // 最終処分
    var arr_upd_day       = new Array ( di ) ; // 経過情報データ更新日

    var snip_text     = "" ;         // 抜粋データ
    var snip_cnt      = 0  ;

    var appli_text        = "" ; // 出願人のリンクテキスト
    var appli_text_delim  = "" ; // 出願人のリンクテキスト用デリミッタ

    var ipc_text          = "" ; // IPCのリンクテキスト
    var ipc_part          = "" ; // IPC(一部)のリンクテキスト
    var ipc_part_cnt      = 6  ; // IPC(一部)の表示数
    var ipc_part_lmt      = false ; // IPCの数がIPC(一部)の表示上限を超えているかどうか
    var ipc_all           = "" ; // IPC(全部)のリンクテキスト
    var ipc_text_delim    = "" ; // IPCのリンクテキスト用デリミッタ
    
    var fi_text           = "" ; // FIのリンクテキスト
    var fi_part           = "" ; // FI(一部)のリンクテキスト
    var fi_part_cnt       = 6  ; // FI(一部)の表示数
    var fi_part_lmt       = false ; // FIの数がFI(一部)の表示上限を超えているかどうか
    var fi_all            = "" ; // FI(全部)のリンクテキスト
    var fi_text_delim     = "" ; // FIのリンクテキスト用デリミッタ

    var anken_text    = "" ;         // 表示用データ格納String

    var ak_title_text    = "";  // 表示用テキスト（1行目：id,発明の名称＋スコア）
    var ak_app_text      = "";  // 表示用テキスト（2行目：spacer,出願人）
    var ak_snip_text     = "";  // 表示用テキスト（3行目：要約）
    var ak_advanced_text = "";  // 表示用テキスト（4行目(内テーブル1行目)：番号＋日付 , 拡張機能）（5行目(内テーブル2行目)：IPC）

    var skipno        = ( ( curp - 1 ) * perp )  ; // スキップされた数（前のページまでに表示していた件数の合計）

    var share_text    = "";                    // 共同出願人検索テキスト
    var share_name    = "共同出願人検索";      // 共同出願人検索テキストを表示する際のラベル

    var dummy_text    = "" ; // for debug
    var dummy_temp    = "" ; // for debug

    var bln_error     = false ; // 案件エラーフラグ
    
    // 案件ノードデータの取得 ======================================
    for ( j = 0 ; j < di ; j++ ) {
      // Errorフラグクリア
      bln_error     = false ;
      
      // 当該documentノード内のattributeノードの数を取得
      ai           = res_doc[j].getElementsByTagName("attribute").length ;

      // リンク（相対パスに変更する）
// ***      arr_link[j]  = res_doc[j].getAttribute("uri").replace(/http:\/\/kantan\.nexp\.jp\//i,"")  ;
      arr_link[j]  = res_doc[j].getAttribute("uri").replace(/http:\/\/kantan\.nexp\.jp\/pat_pdf\//i,"").replace(".pdf","")  ;
      
      // 公報閲覧オプション
      arr_link[j]  = "kouhou.html?kh=" + arr_link[j] + "&kp=pdf";

      // 属性データの取得 ------------------------------------------
      for ( k = 0 ; k < ai ; k++ ) {

        // 現在処理中のattributeからnameとvalueの属性値を取得
        nm = res_doc[ j ].getElementsByTagName("attribute")[ k ].getAttribute("name") ;
        vl = res_doc[ j ].getElementsByTagName("attribute")[ k ].getAttribute("value") ;

        // 各attributeからname属性に従って検索結果として表示するデータを取得
        if( nm == "@title"        ) { arr_title[j]         = vl ; }
        if( nm == "#nodescore"    ) { arr_score[j]         = vl ; }
        if( nm == "appno"         ) { arr_appno[j]         = vl ; }
        if( nm == "appday"        ) { arr_appday[j]        = vl ; }
        if( nm == "pubno"         ) { arr_pubno[j]         = vl ; }
        if( nm == "pubday"        ) { arr_pubday[j]        = vl ; }
        if( nm == "applicant"     ) { arr_applicant[j]     = vl ; }
        if( nm == "abstract"      ) { arr_abstract[j]      = vl ; }
        if( nm == "ipc"           ) { arr_ipc[j]           = vl ; }
        if( nm == "fi"            ) { arr_fi[j]            = vl ; }
        if( nm == "req_exa"       ) { arr_req_exa[j]       = vl ; }
        if( nm == "exa_disp_code" ) { arr_exa_disp_code[j] = vl ; }
        if( nm == "upd_day"       ) { arr_upd_day[j]       = vl ; }

      }

      // 共同出願人検索 -------------------------------------------
      // 共同出願人検索リンクテキストの作成
      share_text   = getSearchLink( share_name, "",arr_applicant[j].replace(/,/g," "), "", "ak_advanced", "applicant_pm", tooltip_share )  ;
      
      // 出願人表示のリンク作成 ------------------------------------
      // 出願人のリンクテキストの初期化
      appli_text       = "出願人：&nbsp;" ;
      appli_text_delim = "";
      // 出願人がなかった場合のエラー回避
      if( arr_applicant[j]== undefined ) {
        // エラーフラグ：オン
        bln_error  = true ;
        
      }else{
        // 出願人を,で区切って配列の形にする
        arr_appli = arr_applicant[j].split(",");
        // 出願人を単体に分け、リンクテキストを生成
        for ( n = 0; n < arr_appli.length ; n++ ){
          appli_text       = appli_text + appli_text_delim
                           + getSearchLink( arr_appli[n], "",arr_appli[n], "", "ak_app","applicant_pm", tooltip_app )
                           + getSrcEngineLink( arr_appli[n], "_blank", "se_icon" ) ;
          appli_text_delim = "，&nbsp;" ;

        }
      }
      // IPC表示のリンク作成 ------------------------------------
      // IPCのリンクテキストの初期化
      ipc_text       = "" ;
      ipc_text_delim = "" ;
      ipc_part       = "" ;
      ipc_all        = "" ;

      // IPCがなかった場合のエラー回避
      if( arr_ipc[j]== undefined ) {
        // エラーフラグ：オン
        bln_error  = true ;
        
      }else{
        // IPCを,で区切って配列の形にする
        arr_ic = arr_ipc[j].split(",");
        // IPC上限越えフラグを初期化
        ipc_part_lmt      = false ;

        // IPCを単体に分け、リンクテキストを生成
        for ( n = 0; n < arr_ic.length ; n++ ){
          // 現在処理中のIPCが一部表示の上限を超えているか判定
          if ( n >= ipc_part_cnt ) {
            // 一部処理の上限を超えている＝全部にのみIPCを追加し、上限越えフラグをTrueにする
            ipc_all        = ipc_all  + ipc_text_delim + getSearchLink(arr_ic[n], "", arr_ic[n], "", "ipc", "ipc_all", tooltip_ipc )  ;
            ipc_part_lmt   = true ;
          }else{
            // 一部処理の上限を超えていない＝全部と一部にIPCを追加
            ipc_part       = ipc_part + ipc_text_delim + getSearchLink(arr_ic[n], "", arr_ic[n], "", "ipc", "ipc_all", tooltip_ipc )  ;
            ipc_all        = ipc_all  + ipc_text_delim + getSearchLink(arr_ic[n], "", arr_ic[n], "", "ipc", "ipc_all", tooltip_ipc )  ;
          }
          ipc_text_delim = "&nbsp; " ;
        }  

        // 上限越えフラグがTrueならば表示切り替えリンクを追加する
        if ( ipc_part_lmt ){
          ipc_part = ipc_part + "&nbsp;...&nbsp;&nbsp;<a class=\"change_ipc\" href=\"#\" onclick=\"changeDisplayClass(true,  '" + ( j + 1 ) + "');return false\">全部表示</a>";
          ipc_all  = ipc_all  + "&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<a class=\"change_ipc\" href=\"#\" onclick=\"changeDisplayClass(false, '" + ( j + 1 ) + "');return false\">一部表示</a>";
        }

        // IPC用テキスト欄（一部,全部）
        ipc_text = "<span id=\"ipc_part" + ( j + 1 ) + "\">国際特許分類(IPC)：&nbsp;" + ipc_part + "</span>"
                 + "<span id=\"ipc_all"  + ( j + 1 ) + "\" style=\"display:none\">国際特許分類(IPC)：&nbsp;" + ipc_all  + "</span>" ;

      }

      // FI表示のリンク作成 ------------------------------------
      // FIのリンクテキストの初期化
      fi_text       = "" ;
      fi_text_delim = "" ;
      fi_part       = "" ;
      fi_all        = "" ;
      // FIがなかった場合のエラー回避
      if( arr_fi[j]== undefined ) {
        // エラーフラグ：オン
        bln_error  = true ;
        
      }else{
        // FIを,で区切って配列の形にする
        arr_f = arr_fi[j].split(",");
        // FI上限越えフラグを初期化
        fi_part_lmt      = false ;

        // FIを単体に分け、リンクテキストを生成
        for ( n = 0; n < arr_f.length ; n++ ){
          // 現在処理中のFIが一部表示の上限を超えているか判定
          if ( n >= fi_part_cnt ) {
            // 一部処理の上限を超えている＝全部にのみFIを追加し、上限越えフラグをTrueにする
            fi_all        = fi_all  + fi_text_delim + getSearchLink(arr_f[n], "", arr_f[n], "", "fi", "fi_all", tooltip_fi )  ;
            fi_part_lmt   = true ;
          }else{
            // 一部処理の上限を超えていない＝全部と一部にFIを追加
            fi_part       = fi_part + fi_text_delim + getSearchLink(arr_f[n], "", arr_f[n], "", "fi", "fi_all", tooltip_fi )  ;
            fi_all        = fi_all  + fi_text_delim + getSearchLink(arr_f[n], "", arr_f[n], "", "fi", "fi_all", tooltip_fi )  ;
          }
          fi_text_delim = "&nbsp; " ;
        }  
      
        // 上限越えフラグがTrueならば表示切り替えリンクを追加する
        if ( fi_part_lmt ){
          fi_part = fi_part + "&nbsp;...&nbsp;&nbsp;<a class=\"change_fi\" href=\"#\" onclick=\"changeDisplayClass(true,  '" + ( j + 1 ) + "');return false\">全部表示</a>";
          fi_all  = fi_all  + "&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<a class=\"change_fi\" href=\"#\" onclick=\"changeDisplayClass(false, '" + ( j + 1 ) + "');return false\">一部表示</a>";
        }

        // FI用テキスト欄（一部,全部）
        fi_text = "<span id=\"fi_part" + ( j + 1 ) + "\">ＦＩ：&nbsp;" + fi_part + "</span>"
                 + "<span id=\"fi_all"  + ( j + 1 ) + "\" style=\"display:none\">ＦＩ：&nbsp;" + fi_all  + "</span>" ;

      }

      // エラーフラグ判定 -----------------------------------------
      if( bln_error ){
        // エラー情報表示
        anken_text = anken_text 
                   + "<table class=\"anken_error\" width=\"100%\"><tr><td class=\"anken_error\">"
                   + "■ " + ( skipno + j + 1 ) + "&nbsp;&nbsp;&nbsp;&nbsp;登録された文書が見つかりません。<br><br>" 
                   + "</td></tr></table><br>" ;
         
      }else{
        // 整形(開始) -------------------------------------------------
        // 表示用テキスト（1行目：id,発明の名称＋スコア）
//        ak_title_text    = "<tr><td class=\"ak_body1\"><span class=\"ak_seq\">" + ( skipno + j + 1 ) + ".</span></td>"
//                         +     "<td class=\"ak_body0\">"
//                         +        "<table bgcolor=\"#DDFFAA\"><tr><td width=\"455\">"
//                         +                            "<a href=\"" + arr_link[j] + "\" target=\"_blank\" title=\"" + tooltip_title + "\">" + arr_title[j] + "</a>"
//                         +                            "<td width=\"78\"><span class=\"ak_score\">(スコア：" + arr_score[j] + ")</span></td>" 
//                         +                            "<td width=\"78\">" + getReqExaValue(arr_req_exa[j]) + "</td>" 
//                         +                            "<td width=\"43\">" + getExaDispCodeValue(arr_exa_disp_code[j]) + "</td></tr></table></td>"
//                         +     "<td class=\"ak_body3\">&nbsp;</td></tr>" ;

        ak_title_text    = "<tr><td class=\"ak_body1\"><span class=\"ak_seq\">" + ( skipno + j + 1 ) + ".</span></td>"
                         +     "<td class=\"ak_body0\">"
                         +        "<table bgcolor=\"#DDFFAA\"><tr><td width=\"455\">"
                         +                            "<a href=\"" + arr_link[j] + "\" target=\"_blank\" title=\"" + tooltip_title + "\">" + arr_title[j] + "</a>"
                         +                            "<td width=\"78\"><span class=\"ak_score\">(スコア：" + arr_score[j] + ")</span></td>" 
                         +                            getKeikaInfo( arr_req_exa[j], arr_exa_disp_code[j], arr_upd_day[j] ) + "</tr></table>"
                         +     "</td>"
                         +     "<td class=\"ak_body3\">&nbsp;</td></tr>" ;

       // 表示用テキスト（2行目：spacer,出願人）
        ak_app_text      = "<tr><td class=\"ak_body1\" rowspan=\"3\"><img src=\"images/spacer.gif\" width=\"20\"></td>"
                         +     "<td class=\"ak_body2\" height=\"20\"><span class=\"ak_app\">" + appli_text + "</span></td>"  
                         +     "<td class=\"ak_body1\" rowspan=\"3\"><img src=\"images/spacer.gif\" width=\"8\"></tr>" ;


        // 表示用テキスト（3行目：要約）
        ak_snip_text     = "<tr><td class=\"ak_body2\"><span class=\"ak_snip\">" + arr_abstract[j] + "</span></td></tr>"; // **
        
        // 表示用テキスト（4行目(内テーブル1行目)：番号＋日付 , 拡張機能）
        // 表示用テキスト（5行目(内テーブル2行目)：IPC）
        // 表示用テキスト（6行目(内テーブル3行目)：FI）
        ak_advanced_text = "<tr><td>"
                         +       "<table width=\"100%\">"
                         +       "<tr><td class=\"ak_body2\"><span class=\"ak_no\">出願&nbsp;" + arr_appno[j] + "&nbsp;(" + arr_appday[j] + ")</span>&nbsp;&nbsp;"
                         +                                  "<span class=\"ak_no\">公開&nbsp;" + arr_pubno[j] + "&nbsp;(" + arr_pubday[j] + ")</span>&nbsp;&nbsp;</td>"
                         +           "<td class=\"ak_body3\"><span class=\"ak_advanced\">" + share_text + "</span>&nbsp;&nbsp;</td></tr>"
                         +       "<tr><td class=\"ak_body2\" colspan=\"2\"><span class=\"ak_ipc\">" + ipc_text + "</span>&nbsp;&nbsp;</td></tr>" 
                         +       "<tr><td class=\"ak_body2\" colspan=\"2\"><span class=\"ak_fi\">" + fi_text + "</span>&nbsp;&nbsp;</td></tr>" 
                         +       "</table>"
                         + "</td></tr>" ;
        
        // 各行を合成し、1テーブルにする
        anken_text = anken_text
                   + "<table class=\"ak\" border=\"0\">"
                   + ak_title_text    
                   + ak_app_text      
                   + ak_snip_text     
                   + ak_advanced_text 
                   + "<tr><td colspan=\"3\">&nbsp;</td></tr>" 
                   + "</table>" ;
        
        // **整形(終了) ----------------------------------------------------

      }
    }
    
    // ページ制御ブロック表示 =====================================
//    document.getElementById("page1").innerHTML = "<div class=\"page1_bottom\">" + page_control( curp, maxp, cnt ) + "</div>" ;
    document.getElementById("page1").innerHTML = page_control( curp, maxp, cnt ) ;
    document.getElementById("page2").innerHTML = page_control( curp, maxp, cnt ) ;
    
    // 検索フォーム表示処理 =======================================
    // 出願人ランキング・CSVダウンロードのアンカーリンクを表示
    displayUnchor( true ) ;

    // 表示フィルタ及び集計階層を非表示にする
    displayFilter( false ) ;
    displayHierarchy( "none" );
    displayUnit( "none" );

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = anken_text ;

    // 検索結果一覧コールバック関数処理終了
    stopBlinkingProc();  // 点滅処理終了

    // チェックタイマー発動
    checkInputWord();
    
  }

  // 送信用関数 ********************************************
  function search_load ( url, input_form ){
    var word        = "";
    var lmt         = "";
    var kinji       = "";
    var next_page   = "";
    var output_form = "";
    var kc          = "";

    word        = input_form.w.value ;
    lmt         = getRadioValue( input_form, "lmt" );
    kinji       = input_form.kinji.value ;
    kc          = input_form.kc.value ;
    next_page   = input_form.next_page.value ;
    output_form = input_form.output_form.value ;

    sendRequest( search_on_loadXML, 
                '&w=' + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc + '&next_page=' + next_page + '&per_page=' + ( perp + "" ) + '&output_form=' + output_form , 
                'POST', 
                 url , 
                 true, 
                 true ) ;

    // 処理中
    showMessage( "ただいま検索中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }


  // ページ制御 ********************************************
  function page_control( curp, maxp, cnt ){

    var page_text = "" ;  // 返りテキスト
    var lastno    =  0 ;  // このページ内での最終番号

    var front_page = "";
    var prev_page  = "";
    var page_set   = "";
    var next_page  = "";
    var tail_page  = "";

    // このページ内での最終番号を取得
    if( curp * perp <= cnt ) {
      lastno = curp * perp ;
    }else{
      lastno = cnt ;
    }

    
    if(maxp <= 0 ){
      // 最大ページ数が0以下の場合はページ制御無し

    }else if(maxp >= 1){
      // 最大ページ数が1以上の場合
      // 前へ
      prev_page = prev_page_link( curp, maxp ) ;
      // ページ番号
      // 次へ
      next_page = next_page_link( curp, maxp ) ;
      
    }
    if( cnt > 0 ){
      page_text = insertComma( cnt + "" ) + "件中&nbsp;" 
                + insertComma( ( ( curp - 1 ) * perp + 1 )  + "" ) + " - " +  insertComma( lastno + "" ) + "件目" 
                + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
                + front_page + "&nbsp;"
                + prev_page  + "&nbsp;"
                + page_set   + "&nbsp;"
                + next_page  + "&nbsp;"
                + tail_page   ;
    }else{
    }
    return page_text;
  }
  
  // 前のページ ********************************************
  function prev_page_link ( curp, maxp ){
    var link_text = "";
    // 最大ページが1より大きく、かつカレントページが１よりも大きければリンクを表示
    if( maxp > 1 && curp > 1 ) {
      link_text = "<a href=\"javascript:page_jump(" + ( curp - 1 ) + ",document.input )\" accesskey=\"P\">前へ</a>";
    }else{
      link_text = "<span class=\"dislink\">前へ</span>";
    }
    
    return link_text ;
    
  }

  // 次のページ ********************************************
  function next_page_link ( curp, maxp ){
    var link_text = "";
    // 最大ページが1より大きく、かつカレントページが最大ページよりも小さければリンクを表示
    if( maxp > 1 && curp < maxp ) {
      link_text = "<a href=\"javascript:page_jump(" + ( curp + 1 ) + ",document.input )\" accesskey=\"N\">次へ</a>";
    }else{
      link_text = "<span class=\"dislink\">次へ</span>";
    }
    
    return link_text ;
    
  }
  
  // 指定されたページにジャンプする ************************
  function page_jump( targetp ,input_form ){

    // 次のページ番号を保持する隠しテキストに指定されたページ番号をセットする。
    input_form.next_page.value = targetp ;
    // 検索
    search( input_form ,false ) ;
    
  }

  //*********************************************************************
  // 出願人ランキング表示
  //*********************************************************************
  // コールバック関数
  function app_ranking_on_load ( oj ){

    // レスポンスを取得 ===========================================
    var resT     = oj.responseText;
    
    // 解析用変数宣言 ===============
    var tbl_text = "";                 // 表示用テキスト
    var tbl_line = resT.split("\n") ;  // 表示行配列

    var word     = document.input.w.value ;
    

    var arr_app  = new Array ( 3 ) ; // 出願人データ（配列）
    var app_cnt  = "";
    var app_name = "";
    var app_sec  = "";
    
    var rank_order    = 0 ; // 順位
    var current_cnt   = 0 ; // 現在の行の出願数
    var prev_rank     = 0 ; // 前の順位
    var prev_rank_cnt = 0 ; // 前の順位の出願数
    var tie_rank_cnt  = 0 ; // タイ順位カウンタ

    var elm_filter     = document.input.filter_rank ;
    var str_filterflag = ""; // ランキングフィルタフラグ
    var max_cnt        = 0 ; // 表示制限出願数(bottom)
    var max_rank       = 0 ; // 表示制限順位(top)

    // ランキングフィルタ表示 =====================================
    // セレクトボックスの選択値を取得
    str_filterflag  = elm_filter.options[elm_filter.selectedIndex].value ;
    // 表示制限出願数の取得
    max_cnt  = filterLimit(str_filterflag)[0] ;
    // 表示制限順位の取得
    max_rank = filterLimit(str_filterflag)[1] ;

    // ページ制御ブロック表示 =====================================
    document.getElementById("page1").innerHTML = "" ;
    document.getElementById("page2").innerHTML = "" ;

    // 検索フォーム表示処理 =======================================
    // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
    displayUnchor( false ) ;

    // 表示フィルタを表示のままにする
    displayFilter( true ) ;
    // 集計階層を非表示にする
    displayHierarchy( "none" );
    displayUnit( "none" );
   
    // テーブルヘッダ設定 ===============
    tbl_text = tbl_text 
             + "<div align=\"center\">"
             + "<table class=\"appranking\" border=\"0\">"
             + "<caption>＜ 出願人ランキング ＞</caption>"
             + "<tr>"
             + "<th class=\"appranking_haed1\">順位</th>"
             + "<th class=\"appranking_haed2\">出願数</th>"
             + "<th class=\"appranking_haed3\" colspan=\"2\">出願人名称</th>"
             + "</tr>" ;
    
    // メインブロック設定 ===============
    // 送られてくるデータの最終行はカラなのでそこを読み飛ばす
    for ( n = 0 ; n < tbl_line.length - 1 ; n++ ) {
      arr_apps    = tbl_line[n].split("\t") ;
      app_cnt     = arr_apps[0];
      app_name    = arr_apps[1];
      app_seccode =(arr_apps[2])? arr_apps[2].replace(/^\s+|\s+$/g, "") : "" ;
      app_secname =(arr_apps[3])? arr_apps[3].replace(/^\s+|\s+$/g, "") : "" ;
      
//      app_cnt    = tbl_line[n].substring(                         0, tbl_line[n].indexOf("\t") ) ;
//      app_name   = tbl_line[n].substring( tbl_line[n].indexOf("\t") + 1, tbl_line[n].length        ) ;

      // 出願数をint型に変換
      current_cnt = parseInt(app_cnt) ;

      // 出願数が規定値以下かどうか判定 ===============
      // 表示制限出願数が０ではない状態で、出願数が表示制限出願数を下回ればループ終了
      if( max_cnt != 0 && current_cnt < max_cnt ){ break ; }
      
      // 出願人ランキングの順位を取得 ===============
      if( current_cnt == prev_rank_cnt ) {
        // タイ順位
        // 順位の設定（タイ順位のため、一つ前の順位と同じ）
        rank_order   = prev_rank ;
        // タイ順位カウンタを加算
        tie_rank_cnt ++ ;
      }else{
        // 次の順位
        // タイ順位の人数を加味して順位を加算
        rank_order    = prev_rank + tie_rank_cnt + 1 ;
        // 前の順位に現在の順位をセット
        prev_rank     = rank_order ;
        // 前の順位の出願数をセット
        prev_rank_cnt = current_cnt ;
        // タイ順位カウンタを初期化
        tie_rank_cnt  = 0 ;
      }
      
      // 順位が規定値以上かどうか判定 ===============
      // 表示制限順位が０ではない状態で、順位が表示制限順位を上回ればループ終了
      if( max_rank != 0 &&  rank_order > max_rank ){ break ; }

      // メインブロックの設定（繰返し） ===============
      tbl_text = tbl_text 
               + "<tr>"
               + "<td class=\"appranking_body1\">" + (rank_order + "")  + "</td>"
               + "<td class=\"appranking_body2\">" + getSearchLink( app_cnt, word, app_name, "", "applicant", "applicant", tooltip_app )  + "</td>"
               + "<td class=\"appranking_body3\">" + app_name + getSecCodeLink( app_seccode, app_name, app_secname ) + "</td>"
               + "<td class=\"appranking_body4\">" + getSrcEngineLink( app_name, "_blank", "se_icon" )  + "</td>"
               + "</tr>" ;
    }
//                           + getSrcEngineLink( arr_appli[n], "_blank", "se_icon" ) ;

    // テーブルフッタ設定 ===============
    tbl_text = tbl_text
             + "</table>"
             + "</div>"  ;

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = tbl_text ;

    // 出願人ランキング表示コールバック関数処理終了
    // 件数表示を初期化
    showMessage( "集計が完了しました" );
    stopBlinkingProc();  // 点滅処理終了

//    // チェックタイマー発動 ===============
//    checkInputWord();
    
  }

  // 送信用関数 ********************************************
  function app_ranking_load ( url ){
    var word        = "" ;
    var lmt         = "";
    var kinji       = "";
    var kc          = "";
    var output_form = "" ;
    word        = document.input.w.value ;
    lmt         = getRadioValue( document.input, "lmt" );
    kinji       = document.input.kinji.value ;
    kc          = document.input.kc.value ;

    // lmtがnullの場合はQueryStringから値を取得
    var qs        = "" ;
    var arr_qs         ; // 連想配列
    qs     = location.search;
    arr_qs = getParameter(qs);
    if(qs != "" && lmt == null){
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
    }

    sendRequest( app_ranking_on_load, 
                '&w=' + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc + '&output_form=apprank' , 
                'POST', 
                 url , 
                 true, 
                 true ) ;

    // 処理中
    showMessage( "ただいま集計中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }


  //*********************************************************************
  // 出願件数推移表示
  //*********************************************************************
  // コールバック関数
  function appyear_cnt_on_load ( oj ){

    // レスポンスを取得 ===========================================
    var resT     = oj.responseText;

    // 解析用変数宣言 ===============
    var tbl_text = "";                 // 表示用テキスト
    var tbl_line = resT.split("\n") ;  // 表示行配列

    var word     = document.input.w.value ;

    var app_year = ""; // 出願年
    var app_cnt  = ""; // 出願件数
    var app_rate = ""; // 率
    var app_bar  = ""; // 棒グラフ
    var ttl_cnt  = 0 ; // 合計件数
    var shw_cnt  = 0 ; // 表示合計
    var shw_rate = ""; // 表示率

    // ページ制御ブロック表示 =====================================
    document.getElementById("page1").innerHTML = "" ;
    document.getElementById("page2").innerHTML = "" ;

    // 検索フォーム表示処理 =======================================
    // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
    displayUnchor( false ) ;

    // 表示フィルタ及び集計階層を非表示にする
    displayFilter( false ) ;
    displayHierarchy( "none" );
    displayUnit( "none" );

    // テーブルヘッダ設定 ===============
    tbl_text = tbl_text 
             + "<div align=\"center\">"
             + "<table class=\"appyear\" width=\"660\"  cellspacing=\"1\" cellpadding=\"1\">"
             + "<caption>＜ 出願件数推移 ＞</caption>"
             + "<tr>"
             + "<td class=\"appyear_haed1\" width=\"125\"><image src=\"./images/appcnt_head_period.gif\" width=\"125\" height=\"20\"></td>"
             + "<td class=\"appyear_haed1\" width=\"60\" ><image src=\"./images/appcnt_head_amount.gif\" width=\"60\"  height=\"20\"></td>"
             + "<td class=\"appyear_haed2\" width=\"70\" ><image src=\"./images/appcnt_head_rate.gif\"   width=\"70\"  height=\"20\"></td>"
             + "<td class=\"appyear_haed2\" width=\"400\"><image src=\"./images/appcnt_head_graph.gif\"  width=\"400\" height=\"20\"></td>"
             + "</tr>" ;

    // メインブロック設定 ===============
    // 送られてくるデータの最終行はカラなのでそこを読み飛ばす
    for ( n = 0 ; n < tbl_line.length - 1 ; n++ ) {
      app_year    = tbl_line[n].substring(                             0, tbl_line[n].indexOf("\t") ) ;
      app_cnt     = tbl_line[n].substring( tbl_line[n].indexOf("\t") + 1, tbl_line[n].length        ) ;

      // 最初のループで総合計件数を取得、2回目以降のループで各出願年の件数を取得しテーブルにセットする
      // app_year="ttl_cnt"ならば、app_cntは総合計件数
      if( app_year == "ttl_cnt" ) {
        // 総合計件数を取得
        ttl_cnt = parseInt(app_cnt) ;

      }else{
        // 率の取得
        if (ttl_cnt == 0){
          // 合計件数が0の場合
          app_rate   = "---" ;
          app_bar    = ""    ;
        }else{
          // 合計件数が1以上の場合
          app_rate   = Math.round( app_cnt / ttl_cnt * 100 ) + "%" ;
          // 当該出願年の件数が1以上ならば棒グラフをセット
          if ( parseInt(app_cnt) > 0 ) {
            // 棒グラフの長さを width で指定する(100%=400)
            app_bar    = "<image src=\"./images/bar_blue.gif\" width=\"" + ( Math.round( app_cnt / ttl_cnt * 100 ) * 4 ) + "\" height=\"15\">" ;
          }else{
            app_bar    = "&nbsp;" ;
          }
        }
        // メインブロックの設定（繰返し） ===============
        // 出願時期が""ならば表示しない
        if( app_year == "" ) {
          
        }else{ 
          tbl_text = tbl_text 
                   + "<tr>"
                   + "<td class=\"appyear_body1\">" + app_year + "</td>"
                   + "<td class=\"appyear_body1\">" + app_cnt  + "</td>"
                   + "<td class=\"appyear_body1\">" + app_rate + "</td>"
                   + "<td class=\"appyear_body2\">" + app_bar +  "</td>"
                   + "</tr>" ;
      
          // 表示件数のカウントアップ
          shw_cnt = shw_cnt + parseInt(app_cnt) ;
        
        }
      }
    }

    

    // 合計表示ブロックの設定 ===============
    //  表示合計の取得
    if (ttl_cnt == 0){
      // 合計件数が0の場合
      shw_rate   = "---" ;
    }else{
      // 合計件数が1以上の場合
      shw_rate   = Math.round( shw_cnt / ttl_cnt * 100 ) + "%" ;
    }
    
    // 合計表示ブロックの設定
    tbl_text = tbl_text 
             + "<tr>"
             + "<td class=\"appyear_haed1\">表示合計</td>"
             + "<td class=\"appyear_haed1\">" + shw_cnt  + "</td>"
             + "<td class=\"appyear_haed2\">" + shw_rate + "</td>"
             + "<td class=\"appyear_haed2\">&nbsp;</td>"
             + "</tr>" 
             + "<tr>"
             + "<td class=\"appyear_body1\">総合計</td>"
             + "<td class=\"appyear_body1\">" + ttl_cnt  + "</td>"
             + "<td class=\"appyear_body1\">100%</td>"
             + "<td class=\"appyear_body1\">&nbsp;</td>"
             + "</tr>" ;
    
    // テーブルフッタ設定 ===============
    tbl_text = tbl_text
             + "</table>"
             + "</div>"  ;

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = tbl_text ;

    // 出願件数推移表示コールバック関数処理終了
    // 件数表示を初期化
    showMessage( "集計が完了しました" );
    stopBlinkingProc();  // 点滅処理終了

//    // チェックタイマー発動 ===============
//    checkInputWord();

  }
  // 送信用関数 ********************************************
  function appyear_cnt_load ( url ){
    var word        = "" ;
    var lmt         = "";
    var kinji       = "";
    var output_form = "" ;
    var kc        = "";

    word        = document.input.w.value ;
    lmt         = getRadioValue( document.input, "lmt" );
    kinji       = document.input.kinji.value ;
    kc          = document.input.kc.value ;

    // lmtがnullの場合はQueryStringから値を取得
    var qs        = "" ;
    var arr_qs         ; // 連想配列
    qs     = location.search;
    arr_qs = getParameter(qs);
    if(qs != "" && lmt == null){
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
    }

    sendRequest( appyear_cnt_on_load, 
                '&w=' + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc + '&output_form=appquarter' , 
                'POST', 
                 url , 
                 true, 
                 true ) ;

    // 処理中
    showMessage( "ただいま集計中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }


  //*********************************************************************
  // IPCランキング表示
  //*********************************************************************
  // コールバック関数
  function ipc_ranking_on_load ( oj ){

    // レスポンスを取得 ===========================================
    var resT     = oj.responseText;
    
    // 解析用変数宣言 ===============
    var tbl_text = "";                 // 表示用テキスト
    var tbl_line = resT.split("\n") ;  // 表示行配列
    var tbl_capt = "";                 // キャプション（テーブルのタイトル）

    var word     = document.input.w.value ;
    
//    var arr_ipc_col = ["","","",""];
    var arr_ipc_col = new Array(4);
    var ipc_cnt  = ""; // 出願数
    var ipc_name = ""; // 記号
    var ipc_dot  = ""; // ドット
    var ipc_exp  = ""; // 説明文
    
    var rank_order    = 0 ; // 順位
    var current_cnt   = 0 ; // 現在の行の出現数
    var prev_rank     = 0 ; // 前の順位
    var prev_rank_cnt = 0 ; // 前の順位の出現数
    var tie_rank_cnt  = 0 ; // タイ順位カウンタ

    var elm_filter     = document.input.filter_rank ;
    var str_filterflag = ""; // ランキングフィルタフラグ
    var max_cnt        = 0 ; // 表示制限出現数(bottom)
    var max_rank       = 0 ; // 表示制限順位(top)

    var elm_unit       = document.input.count_unit_ipc ;
    var str_count_unit = "";

    // ランキングフィルタ表示 =====================================
    // セレクトボックスの選択値を取得
    str_filterflag  = elm_filter.options[elm_filter.selectedIndex].value ;
    // 表示制限出現数の取得
    max_cnt  = filterLimit(str_filterflag)[0] ;
    // 表示制限順位の取得
    max_rank = filterLimit(str_filterflag)[1] ;
    
    // 集計単位表示設定 =====================================
    // セレクトボックスの選択値を取得
    str_count_unit = elm_unit.options[elm_unit.selectedIndex].value ;
    // セレクトボックスの値によりキャプションを変化させる
    if( str_count_unit == "ipc_all" ){
      tbl_capt = "＜ IPCランキング ＞";
    } else if( str_count_unit == "ipc_top" ){
      tbl_capt = "＜ 筆頭IPCランキング ＞";
    } else {
      tbl_capt = "";
    }
    
    // ページ制御ブロック表示 =====================================
    document.getElementById("page1").innerHTML = "" ;
    document.getElementById("page2").innerHTML = "" ;
    
    // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
    displayUnchor( false ) ;
   
    // 表示フィルタ及び集計階層を表示のままにする
    displayFilter( true ) ;
    displayHierarchy( "ipc" );
    displayUnit( "ipc" );
   
    // テーブルヘッダ設定 ===============
    tbl_text = tbl_text 
             + "<div align=\"center\">"
             + "<table class=\"ipcranking\" border=\"0\">"
             + "<caption>" + tbl_capt +"</caption>"
             + "<tr>"
             + "<th class=\"ipcranking_haed1\">順位</th>"
             + "<th class=\"ipcranking_haed2\">出現数</th>"
             + "<th class=\"ipcranking_haed3\">IPC</th>"
             + "<th class=\"ipcranking_haed4\">&nbsp;</th>"
             + "<th class=\"ipcranking_haed5\">説明文</th>"
             + "</tr>" ;
    
    // メインブロック設定 ===============
    // 送られてくるデータの最終行はカラなのでそこを読み飛ばす
    for ( n = 0 ; n < tbl_line.length - 1 ; n++ ) {
      // 初期化
      ipc_cnt    = "" ;
      ipc_name   = "" ;
      ipc_dot    = "" ;
      ipc_exp    = "" ;
      // 非同期通信で取得したデータの解析
      arr_ipc_cols = tbl_line[n].split("\t");
      // データセット
      ipc_cnt    = arr_ipc_cols[0];
      ipc_name   = arr_ipc_cols[1];
      ipc_dot    = arr_ipc_cols[2];
      ipc_exp    = arr_ipc_cols[3];
      // 何もない場合はテーブル表示対策で半角スペースを入れる
      if( ipc_dot == "" || ipc_dot == undefined ){ ipc_dot = "&nbsp;"; }
      if( ipc_exp == "" || ipc_exp == undefined ){ ipc_exp = "&nbsp;"; }

      // 出現数をint型に変換
      current_cnt = parseInt(ipc_cnt) ;
      // 出現数が規定値以下かどうか判定 ===============
      // 表示制限出現数が０ではない状態で、出現数が表示制限出現数を下回ればループ終了
      if( max_cnt != 0 && current_cnt < max_cnt ){ break ; }

      // IPCランキングの順位を取得 ===============
      if( current_cnt == prev_rank_cnt ) {
        // タイ順位
        // 順位の設定（タイ順位のため、一つ前の順位と同じ）
        rank_order   = prev_rank ;
        // タイ順位カウンタを加算
        tie_rank_cnt ++ ;
      }else{
        // 次の順位
        // タイ順位の数を加味して順位を加算
        rank_order    = prev_rank + tie_rank_cnt + 1 ;
        // 前の順位に現在の順位をセット
        prev_rank     = rank_order ;
        // 前の順位の出現数をセット
        prev_rank_cnt = current_cnt ;
        // タイ順位カウンタを初期化
        tie_rank_cnt  = 0 ;
      }

      // 順位が規定値以上かどうか判定 ===============
      // 表示制限順位が０ではない状態で、順位が表示制限順位を上回ればループ終了
      if( max_rank != 0 &&  rank_order > max_rank ){ break ; }

      // メインブロックの設定（繰返し） ===============
      tbl_text = tbl_text 
               + "<tr>"
               + "<td class=\"ipcranking_body1\">" + (rank_order + "")  + "</td>"
               + "<td class=\"ipcranking_body2\">" + getSearchLink( ipc_cnt, word, ipc_name, "", "", str_count_unit, tooltip_ipc )  + "</td>"
               + "<td class=\"ipcranking_body3\">" + ipc_name + "</td>"
               + "<td class=\"ipcranking_body4\">" + ipc_dot  + "</td>"
               + "<td class=\"ipcranking_body5\">" + ipc_exp  + "</td>"
               + "</tr>" ;
    }

    // テーブルフッタ設定 ===============
    tbl_text = tbl_text
             + "</table>"
             + "</div>"  ;

    // 断り書き
    tbl_text = tbl_text
             + "<div style=\"font-size:80%;text-align:right;width:640;\">※IPCの説明文は第８版を使用しています。</div>" ;

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = tbl_text ;

    // IPCランキング表示コールバック関数処理終了
    // 件数表示を初期化
    showMessage( "集計が完了しました" );
    stopBlinkingProc();  // 点滅処理終了

//    // チェックタイマー発動 ===============
//    checkInputWord();
    
  }

  // 送信用関数 ********************************************
  function ipc_ranking_load ( url ){
    var word             = "" ;
    var lmt              = "";
    var kinji            = "" ;
    var kc               = "";
    var output_form      = "" ;
    var count_hierarchy  = "" ;
    var count_unit       = "" ;

    word            = document.input.w.value ;
    lmt             = getRadioValue( document.input, "lmt" );
    kinji           = document.input.kinji.value ;
    kc              = document.input.kc.value ;
    count_hierarchy = document.input.count_hierarchy_ipc.value ;
    count_unit      = document.input.count_unit_ipc.value ;

    // lmtがnullの場合はQueryStringから値を取得
    var qs        = "" ;
    var arr_qs         ; // 連想配列
    qs     = location.search;
    arr_qs = getParameter(qs);
    if(qs != "" && lmt == null){
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
    }

    sendRequest( ipc_ranking_on_load, 
                '&w=' + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc + '&output_form=ipcrank&count_hierarchy=' + count_hierarchy + '&count_unit=' + count_unit, 
                'POST', 
                 url , 
                 true, 
                 true ) ;
    // 処理中
    showMessage( "ただいま集計中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }

  //*********************************************************************
  // FIランキング表示
  //*********************************************************************
  // コールバック関数
  function fi_ranking_on_load ( oj ){

    // レスポンスを取得 ===========================================
    var resT     = oj.responseText;
    
    // 解析用変数宣言 ===============
    var tbl_text = "";                 // 表示用テキスト
    var tbl_line = resT.split("\n") ;  // 表示行配列
    var tbl_capt = "";                 // キャプション（テーブルのタイトル）

    var word     = document.input.w.value ;
    
    var arr_fi_col = new Array(4);
    var fi_cnt  = ""; // 出願数
    var fi_name = ""; // 記号
    var fi_dot  = ""; // ドット
    var fi_exp  = ""; // 説明文
    
    var rank_order    = 0 ; // 順位
    var current_cnt   = 0 ; // 現在の行の出現数
    var prev_rank     = 0 ; // 前の順位
    var prev_rank_cnt = 0 ; // 前の順位の出現数
    var tie_rank_cnt  = 0 ; // タイ順位カウンタ

    var elm_filter     = document.input.filter_rank ;
    var str_filterflag = ""; // ランキングフィルタフラグ
    var max_cnt        = 0 ; // 表示制限出現数(bottom)
    var max_rank       = 0 ; // 表示制限順位(top)

    var elm_unit       = document.input.count_unit_fi ;
    var str_count_unit = "";

    // ランキングフィルタ表示 =====================================
    // セレクトボックスの選択値を取得
    str_filterflag  = elm_filter.options[elm_filter.selectedIndex].value ;
    // 表示制限出現数の取得
    max_cnt  = filterLimit(str_filterflag)[0] ;
    // 表示制限順位の取得
    max_rank = filterLimit(str_filterflag)[1] ;
    
    // 集計単位表示設定 =====================================
    // セレクトボックスの選択値を取得
    str_count_unit = elm_unit.options[elm_unit.selectedIndex].value ;
    // セレクトボックスの値によりキャプションを変化させる
    if( str_count_unit == "fi_all" ){
      tbl_capt = "＜ FIランキング ＞";
    } else if( str_count_unit == "fi_top" ){
      tbl_capt = "＜ 筆頭FIランキング ＞";
    } else {
      tbl_capt = "";
    }
    
    // ページ制御ブロック表示 =====================================
    document.getElementById("page1").innerHTML = "" ;
    document.getElementById("page2").innerHTML = "" ;
    
    // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
    displayUnchor( false ) ;
   
    // 表示フィルタ及び集計階層を表示のままにする
    displayFilter( true ) ;
    displayHierarchy( "fi" );
    displayUnit( "fi" );
   
    // テーブルヘッダ設定 ===============
    tbl_text = tbl_text 
             + "<div align=\"center\">"
             + "<table class=\"ipcranking\" border=\"0\">"
             + "<caption>" + tbl_capt +"</caption>"
             + "<tr>"
             + "<th class=\"ipcranking_haed1\">順位</th>"
             + "<th class=\"ipcranking_haed2\">出現数</th>"
             + "<th class=\"ipcranking_haed3\">FI</th>"
             + "<th class=\"ipcranking_haed4\">&nbsp;</th>"
             + "<th class=\"ipcranking_haed5\">説明文</th>"
             + "</tr>" ;
    
    // メインブロック設定 ===============
    // 送られてくるデータの最終行はカラなのでそこを読み飛ばす
    for ( n = 0 ; n < tbl_line.length - 1 ; n++ ) {
      // 初期化
      fi_cnt    = "" ;
      fi_name   = "" ;
      fi_dot    = "" ;
      fi_exp    = "" ;
      // 非同期通信で取得したデータの解析
      arr_fi_cols = tbl_line[n].split("\t");
      // データセット
      fi_cnt    = arr_fi_cols[0];
      fi_name   = arr_fi_cols[1];
      fi_dot    = arr_fi_cols[2];
      fi_exp    = arr_fi_cols[3].replace(/＃＃/g,"<br>");  // 置換
      // 何もない場合はテーブル表示対策で半角スペースを入れる
      if( fi_dot == "" || fi_dot == undefined ){ fi_dot = "&nbsp;"; }
      if( fi_exp == "" || fi_exp == undefined ){ fi_exp = "&nbsp;"; }

      // 出現数をint型に変換
      current_cnt = parseInt(fi_cnt) ;
      // 出現数が規定値以下かどうか判定 ===============
      // 表示制限出現数が０ではない状態で、出現数が表示制限出現数を下回ればループ終了
      if( max_cnt != 0 && current_cnt < max_cnt ){ break ; }

      // 出願人ランキングの順位を取得 ===============
      if( current_cnt == prev_rank_cnt ) {
        // タイ順位
        // 順位の設定（タイ順位のため、一つ前の順位と同じ）
        rank_order   = prev_rank ;
        // タイ順位カウンタを加算
        tie_rank_cnt ++ ;
      }else{
        // 次の順位
        // タイ順位の人数を加味して順位を加算
        rank_order    = prev_rank + tie_rank_cnt + 1 ;
        // 前の順位に現在の順位をセット
        prev_rank     = rank_order ;
        // 前の順位の出現数をセット
        prev_rank_cnt = current_cnt ;
        // タイ順位カウンタを初期化
        tie_rank_cnt  = 0 ;
      }

      // 順位が規定値以上かどうか判定 ===============
      // 表示制限順位が０ではない状態で、順位が表示制限順位を上回ればループ終了
      if( max_rank != 0 &&  rank_order > max_rank ){ break ; }

      // メインブロックの設定（繰返し） ===============
      tbl_text = tbl_text 
               + "<tr>"
               + "<td class=\"ipcranking_body1\">" + (rank_order + "")  + "</td>"
               + "<td class=\"ipcranking_body2\">" + fi_cnt  + "</td>"
               + "<td class=\"ipcranking_body3\">" + fi_name + "</td>"
               + "<td class=\"ipcranking_body4\">" + fi_dot  + "</td>"
               + "<td class=\"ipcranking_body5\">" + fi_exp  + "</td>"
               + "</tr>" ;
      
    }

    // テーブルフッタ設定 ===============
    tbl_text = tbl_text
             + "</table>"
             + "</div>"  ;

    // 断り書き
    tbl_text = tbl_text
             + "<div style=\"font-size:80%;text-align:right;width:640;\">※集計階層をクラス及びサブクラスに指定した場合の説明文はIPC第８版の説明文を使用しています。</div>" ;

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = tbl_text ;

    // FIランキング表示コールバック関数処理終了
    // 件数表示を初期化
    showMessage( "集計が完了しました" );
    stopBlinkingProc();  // 点滅処理終了

//    // チェックタイマー発動 ===============
//    checkInputWord();
    
  }

  // 送信用関数 ********************************************
  function fi_ranking_load ( url ){
    var word             = "" ;
    var lmt              = "" ;
    var kinji            = "" ;
    var kc               = "" ;
    var output_form      = "" ;
    var count_hierarchy  = "" ;
    var count_unit       = "" ;

    word            = document.input.w.value ;
    lmt             = getRadioValue( document.input, "lmt" );
    kinji           = document.input.kinji.value ;
    kc              = document.input.kc.value ;
    count_hierarchy = document.input.count_hierarchy_fi.value ;
    count_unit      = document.input.count_unit_fi.value ;

    // lmtがnullの場合はQueryStringから値を取得
    var qs        = "" ;
    var arr_qs         ; // 連想配列
    qs     = location.search;
    arr_qs = getParameter(qs);
    if(qs != "" && lmt == null){
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
    }

    sendRequest( fi_ranking_on_load, 
                '&w=' + word + '&lmt=' + lmt + '&k=' + kinji + '&kc=' + kc + '&output_form=firank&count_hierarchy=' + count_hierarchy + '&count_unit=' + count_unit, 
                'POST', 
                 url , 
                 true, 
                 true ) ;

    // 処理中
    showMessage( "ただいま集計中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }

  //*********************************************************************
  // TOPランキング表示
  //*********************************************************************
  // コールバック関数
  function top_ranking_on_load ( oj ){

    // レスポンスを取得 ===========================================
    var resT     = oj.responseText;
    
    // 解析用変数宣言 ===============
    var tbl_text = "";                 // 表示用テキスト
    var tbl_line = resT.split("\n") ;  // 表示行配列

    var app_app  = new Array ( 3 ) ; // 出願人データ（配列）
    var app_cnt  = "";
    var app_name = "";
    var app_sec  = "";
    
    var rank_order    = 0 ; // 順位
    var current_cnt   = 0 ; // 現在の行の出願数
    var prev_rank     = 0 ; // 前の順位
    var prev_rank_cnt = 0 ; // 前の順位の出願数
    var tie_rank_cnt  = 0 ; // タイ順位カウンタ

    var elm_filter     = document.input.filter_rank ;
    var str_filterflag = ""; // ランキングフィルタフラグ
    var max_cnt        = 0 ; // 表示制限出願数(bottom)
    var max_rank       = 0 ; // 表示制限順位(top)

    var sec_filter     = true ; // 非上場企業表示フラグ
    
    // ランキングフィルタ表示 =====================================
    // セレクトボックスの選択値を取得
    str_filterflag  = elm_filter.options[elm_filter.selectedIndex].value ;
    // 表示制限出願数の取得
    max_cnt  = filterLimit(str_filterflag)[0] ;
    // 表示制限順位の取得
    max_rank = filterLimit(str_filterflag)[1] ;

    // 非上場企業表示フラグの取得
    if(document.input.show_sec){
      sec_filter = (document.input.show_sec.checked)? false : true ;
    }

//    // ページ制御ブロック表示 =====================================
//    document.getElementById("page1").innerHTML = "" ;
//    document.getElementById("page2").innerHTML = "" ;

//    // 検索フォーム表示処理 =======================================
//    // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
//    displayUnchor( false ) ;

//    // 表示フィルタを表示のままにする
//    displayFilter( true ) ;
//    // 集計階層を非表示にする
//    displayHierarchy( "none" );
//    displayUnit( "none" );
   
    // テーブルヘッダ設定 ===============
    tbl_text = tbl_text 
             + "<div align=\"center\">"
             + "<table class=\"appranking\" border=\"0\">"
             + "<caption>＜ 出願数ランキング ＞</caption>"
             + "<tr>"
             + "<th class=\"appranking_haed1\">順位</th>"
             + "<th class=\"appranking_haed2\">出願数</th>"
             + "<th class=\"appranking_haed3\" colspan=\"2\">出願人名称</th>"
             + "</tr>" ;
    
    // メインブロック設定 ===============
    // 送られてくるデータの最終行はカラなのでそこを読み飛ばす
    for ( n = 0 ; n < tbl_line.length - 1 ; n++ ) {
      arr_apps    = tbl_line[n].split("\t") ;
      app_cnt     = arr_apps[0];
      app_name    = arr_apps[1];
      app_seccode =(arr_apps[2])? arr_apps[2].replace(/^\s+|\s+$/g, "") : "" ;
      app_secname =(arr_apps[3])? arr_apps[3].replace(/^\s+|\s+$/g, "") : "" ;
      
//      app_cnt    = tbl_line[n].substring(                         0, tbl_line[n].indexOf("\t") ) ;
//      app_name   = tbl_line[n].substring( tbl_line[n].indexOf("\t") + 1, tbl_line[n].length        ) ;

      // 出願数をint型に変換
      current_cnt = parseInt(app_cnt) ;

      // 出願数が規定値以下かどうか判定 ===============
      // 表示制限出願数が０ではない状態で、出願数が表示制限出願数を下回ればループ終了
      if( max_cnt != 0 && current_cnt < max_cnt ){ break ; }
      
      // 出願人ランキングの順位を取得 ===============
      if( current_cnt == prev_rank_cnt ) {
        // タイ順位
        // 順位の設定（タイ順位のため、一つ前の順位と同じ）
        rank_order   = prev_rank ;
        // タイ順位カウンタを加算
        tie_rank_cnt ++ ;
      }else{
        // 次の順位
        // タイ順位の人数を加味して順位を加算
        rank_order    = prev_rank + tie_rank_cnt + 1 ;
        // 前の順位に現在の順位をセット
        prev_rank     = rank_order ;
        // 前の順位の出願数をセット
        prev_rank_cnt = current_cnt ;
        // タイ順位カウンタを初期化
        tie_rank_cnt  = 0 ;
      }
      
      // 順位が規定値以上かどうか判定 ===============
      // 表示制限順位が０ではない状態で、順位が表示制限順位を上回ればループ終了
      if( max_rank != 0 &&  rank_order > max_rank ){ break ; }

      // メインブロックの設定（繰返し） ===============
      // 非上場企業表示フラグがオフで、かつapp_seccodeが空欄の場合は読み飛ばす
      if( !sec_filter && app_seccode == "" ){
      }else{
        tbl_text = tbl_text 
                 + "<tr>"
                 + "<td class=\"appranking_body1\">" + (rank_order + "")  + "</td>"
//                 + "<td class=\"appranking_body2\">" + getSearchLink( app_cnt, "", app_name, "", "applicant", "applicant", tooltip_app )  + "</td>"
                 + "<td class=\"appranking_body2\">" + app_cnt  + "</td>"
                 + "<td class=\"appranking_body3\">" + app_name + getSecCodeLink( app_seccode, app_name, app_secname ) + "</td>"
                 + "<td class=\"appranking_body4\">" + getSrcEngineLink( app_name, "_blank", "se_icon" )  + "</td>"
                 + "</tr>" ;
      }
    }

    // テーブルフッタ設定 ===============
    tbl_text = tbl_text
             + "</table>"
             + "</div>"  ;

    // 検索結果出力 ===============================================
    document.getElementById("search_loaded").innerHTML = tbl_text ;

    // 出願人ランキング表示コールバック関数処理終了
    // 件数表示を初期化
    showMessage( "集計が完了しました" );
    stopBlinkingProc();  // 点滅処理終了

//    // チェックタイマー発動 ===============
//    checkInputWord();
    
  }

  // 送信用関数 ********************************************
  function top_ranking_load ( url ){

    var output_form = "" ;

    var term        = document.input.term.value ;
    var filter_rank = document.input.filter_rank.value ;

//    // lmtがnullの場合はQueryStringから値を取得
//    var qs        = "" ;
//    var arr_qs         ; // 連想配列
//    qs     = location.search;
//    arr_qs = getParameter(qs);
//    if(qs != "" && lmt == null){
//      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
//    }
    
//    alert("sendRequest");
    
    sendRequest( top_ranking_on_load, 
                '&term=' + term + '&filter_rank=' + filter_rank , 
                'POST', 
                 url , 
                 true, 
                 true ) ;

    // 処理中
    showMessage( "ただいま集計中" );

    // 点滅させる
    startBlinkingProc() ;
    
  }


  //*********************************************************************
  // ログを記録する
  //*********************************************************************
  // コールバック関数
  function recordLog_on_load( oj ){
    
  }

  // 送信用関数 ********************************************
  function recordLog_load( url, input_form ){
    var word        = "";
    var lmt         = "";

    word        = input_form.w.value ;
    lmt         = getRadioValue( input_form, "lmt" );

    sendRequest( recordLog_on_load, 
                '&w=' + word + '&lmt=' + lmt , 
                'POST', 
                 url , 
                 true, 
                 true ) ;
    
  }

  //*********************************************************************
  // トップ画面専用
  //*********************************************************************
  // 検索ボタンが押下されたら入力欄が空欄であるかどうかチェックし、
  // 空欄でなければ検索語をURIエンコードして検索画面にget送信する
  // @input mode : "src"     通常検索
  //               "apprank" 出願人ランキング
  //               "appyear" 出願件数推移
  //               "ipcrank" IPCランキング
  function sendParam( mode, input_form ){
    // 必須チェック
    if(input_form.w.value==""){
      // 入力されていない場合
      // =>入力ボックスにフォーカスを当てる
      input_form.w.focus();
    }else{
      // 入力のある場合
      // =>検索語をURIエンコードして検索画面にget送信する
      input_form.action = file_src + "?w=" + utf.URLencode(input_form.w.value) + "&lmt=" + getRadioValue(input_form,"lmt") + "&k=" + input_form.kinji.value + "&kc=" + input_form.kc.value + "&m=" + mode ;
      input_form.submit();
    }
    
  }

  //*********************************************************************
  // 「お知らせ」対策
  //  IEでなければスペーサー行の高さを大きくする
  function adjustUnderInfo(){
    var blnIE  = /*@cc_on!@*/false; 
    var br_num = 6 ; // IE以外のブラウザの時の改行の数

    if (blnIE) { 
      // IEならば何もしない
    } else {
      // その他のブラウザならば
      for ( i = 0; i < br_num; i++ ) {
        document.getElementById("info_under").innerHTML += "<br>";
      }
    }
  }

  //*********************************************************************
  // 検索画面専用
  //*********************************************************************
  // 検索結果表示を行うリクエストを送信する
  function search( input_form, bln_rec_log ){
    input_form.output_form.value = "src" ;
    search_load( file_xml , input_form ) ;
    if(bln_rec_log){
      recordLog_load( file_log , input_form ) ; // ***
    }
  }

  //*********************************************************************
  // 出願人ランキング表示を行うリクエストを送信する
  function app_ranking( input_form ){
    app_ranking_load( file_xml, input_form ) ;
  }

  //*********************************************************************
  // 出願件数推移を行うリクエストを送信する
  function appyear_cnt( input_form ){
    appyear_cnt_load( file_xml, input_form ) ;
  }

  //*********************************************************************
  // IPCランキング表示を行うリクエストを送信する
  function ipc_ranking( input_form ){
    ipc_ranking_load( file_xml, input_form ) ;
  }

  //*********************************************************************
  // FIランキング表示を行うリクエストを送信する
  function fi_ranking( input_form ){
    fi_ranking_load( file_xml, input_form ) ;
  }

  //*********************************************************************
  // カレントページ番号を初期化する
  function init_page( input_form ){
    input_form.next_page.value = "1";
  }

  //*********************************************************************
  // ランキング表示を行うリクエストを送信する
  function top_ranking( input_form ){
    if(input_form.term){ input_form.term.value = replaceFull2Half( uniteDateDelimiter( input_form.term.value ) ) ; }
    top_ranking_load( file_top, input_form ) ;
  }

  //*********************************************************************
  // トップ画面から呼ばれた場合の処理２
  // ?w=で渡されたパラメータを検索ワードテキストボックスにセットし、詳細検索を行う
  function init_search( input_form ){
    var qs    = "" ;
    var words = "" ;
    var lmt   = "" ;
    var kinji = "" ;
    var kc    = "" ;
    var mode  = "" ;
    var arr_qs  ; // 連想配列
    
    var enc   = "" ;

    qs     = location.search;
    arr_qs = getParameter(qs);
    
    if(qs != ""){
      mode  = arr_qs["m"] ;
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : ""  ;
      kinji = (arr_qs["k"])   ? arr_qs["k"]   : "0" ;
      kc    = (arr_qs["kc"])  ? arr_qs["kc"]  : ""  ;
      enc   = arr_qs["e"] ;

      // エンコード処理
      if( enc == "Shift_JIS" || enc == "SJIS" ){
        words = UnescapeSJIS( arr_qs["w"] ) ;

      }else if(enc=="EUC-JP" || enc == "EUC" ){
        words = UnescapeEUCJP( arr_qs["w"] ) ;

      }else{
        words = utf.URLdecode( arr_qs["w"] ) ;

      }

      // 検索語をセット
      input_form.w.value = words;

      // 絞込検索の値をセット
      setLimitValue( input_form, lmt );

      // いったん表示フィルタ及び集計階層を非表示にする
      displayFilter( false ) ;
      displayHierarchy( "none" );
      displayUnit( "none" );
      
      // モードを"result_mode"にセットする
      input_form.result_mode.value = mode;

      // モードによって処理を判断する =====================
      if( mode == "src" ) {
        // 検索 ==============================
        // 検索を実行
        search( input_form, true );
        // インクリメンタルサーチフラグをオンに変更
        inc_enable_flag = true ;

      }else if( mode == "apprank" ){
        // 出願人ランキング ==================
        // 出願人ランキングの表示
        app_ranking( input_form );
        // インクリメンタルサーチフラグをオフに変更
        inc_enable_flag = false ;
        // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
        displayUnchor( false ) ;

        // 検索語入力エリアの制御 ======
        changeReadOnly( input_form );

      }else if( mode == "appyear" ){
        // 出願人件数推移 ====================
        // 出願件数推移の表示
        appyear_cnt( input_form );
        // インクリメンタルサーチフラグをオフに変更
        inc_enable_flag = false ;
        // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
        displayUnchor( false ) ;
        // 検索語入力エリアの制御 ======
        changeReadOnly( input_form );

      }else if( mode == "ipcrank" ){
        // IPCランキング =====================
        // IPCランキングの表示  
        ipc_ranking( input_form );
        // インクリメンタルサーチフラグをオフに変更
        inc_enable_flag = false ;
        // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
        displayUnchor( false ) ;
        // 検索語入力エリアの制御 ======
        changeReadOnly( input_form );

      }else if( mode == "firank" ){
        // FIランキング =====================
        // FIランキングの表示  
        fi_ranking( input_form );
        // インクリメンタルサーチフラグをオフに変更
        inc_enable_flag = false ;
        // 出願人ランキング・CSVダウンロードのアンカーリンクを隠蔽
        displayUnchor( false ) ;
        // 検索語入力エリアの制御 ======
        changeReadOnly( input_form );

      }else{
        // 
      }
    }
  }

  //*********************************************************************
  // ランキング画面：
  // トップ画面から呼ばれた場合の処理
  function init_topranking( input_form ){

    if(input_form.term){
      if(input_form.term.value==""){ 
        // 初期値として、2007年度＆上位20件をセットする
        input_form.term.value="2007/04/01-2008/03/31";
        for(i = 0; i < input_form.select_term.length ; i++){
          if( input_form.select_term[i].value == "fy2007" ){ input_form.select_term.selectedIndex = i ; }
        }
        for(j = 0; j < input_form.filter_rank.length ; j++){
          if( input_form.filter_rank[j].value == "20" ){ input_form.filter_rank.selectedIndex = j ; }
        }
      }
    }
    top_ranking( input_form );
  }

  //*********************************************************************
  // 出願人ランキング／推移表／IPCランキングを表示する際のテキスト欄の制御
  function changeReadOnly( input_form ) {
    // テキストフィールドをReadOnly属性に変更
    input_form.w.readOnly = "readonly";
    input_form.w.size     = "50";
    // フォントの変更、
    input_form.w.style.fontSize        = "100%";
    // テキスト欄の変更
    input_form.w.style.margin          = "1px auto";
    input_form.w.style.backgroundColor = "#E6E6FA";
    input_form.w.style.border          = "1px solid #B0C4DE";
//    input_form.w.style.border          = "double";
  }

  //*********************************************************************
  // 表示フィルタを変更した場合の処理 
  // selectの値に準じて再度集計を行う
  function change_filter( input_form ){
    // モードを取得
    var mode = input_form.result_mode.value ;
    
    // モードによって処理を判断する
    if( mode == "apprank" ){
      // 出願人ランキング
      app_ranking( input_form );
    }else if( mode == "ipcrank" ){
      // IPCランキング
      ipc_ranking( input_form );
    }else if( mode == "firank" ){
      // FIランキング
      fi_ranking( input_form );
    }else if( mode == "toprank" ){
      // ランキング
      top_ranking( input_form );
    }else{
      // 
    }
    
  }

  //*********************************************************************
  // 検索ワードをエスケープし、search.xmlにgetでパラメータをセットした<a href=..>形式のテキストを返す
  // @input text       : リンクさせるテキスト
  // @input words1     : 検索ワード（全文）
  // @input words2     : 検索ワード（属性）
  // @input a_target   : 別ウインドウ表示するときのターゲットウインドウ名 ※""ならウインドウ遷移
  // @input css_classs : Aタグのcssクラス名
  // @input attr_kind  : 属性検索の属性名
  // @input a_title    : ツールチップに表示させる文言
  function getSearchLink( text, words1, words2, a_target, css_classs, attr_kind, a_title ){

    var text_link = "" ;
    var words     = "" ;
    var lmt       = "" ;
    var kinji     = "" ;
    var kc        = "" ;

    var qs        = "" ;
    var arr_qs         ; // 連想配列

    // 近似の件数を取得
    kinji = document.input.kinji.value;
    kc    = document.input.kc.value;
    // QueryStringから値を取得
    qs     = location.search;
    arr_qs = getParameter(qs);
    if(qs != ""){
      lmt   = (arr_qs["lmt"]) ? arr_qs["lmt"] : "" ;
    }

    if(attr_kind==""){
    }else if( attr_kind == "similar" )     { words = words1 + " #類似特許 " + words2 ;
    }else if( attr_kind == "inventor" )    { words = words1 + " #発明者 "   + words2 ;
    }else if( attr_kind == "applicant" )   { words = words1 + " #出願人$ "  + words2 ;
    }else if( attr_kind == "applicant_pm" ){ words = words1 + " #出願人 "   + words2 ;
    }else if( attr_kind == "ipc_all" )     { words = words1 + " #IPC "      + words2 ;
    }else if( attr_kind == "ipc_top" )     { words = words1 + " #IPC_TOP "  + words2 ;
    }else if( attr_kind == "fi_all" ){
      // word2に単語区切りではない" "（半角スペース）が入っていた場合、":"に置換する
      // => CGI側で再度 に戻す
      words = words1 + " #FI " + words2.replace(/([^/]*\/[^ ]*) /g,'$1:') ;
    }else if( attr_kind == "fi_top" ){
      // word2に単語区切りではない" "（半角スペース）が入っていた場合、":"に置換する
      // => CGI側で再度 に戻す
      words = words1 + " #FI_TOP " + words2.replace(/([^/]*\/[^ ]*) /g,'$1:') ;
    }else{
      words = words1 + " " + words2 ; 
    }

    text_link = "<a href=\""+ file_src + "?w="  + utf.URLencode( words ) + "&lmt=" + lmt + "&k=" + kinji + '&kc=' + kc + "&m=src\"" ;

    if(a_target=="")  { }else{ text_link += " target=\"" + a_target   + "\"" ;  }
    if(css_classs==""){ }else{ text_link += " class=\""  + css_classs + "\"" ;  }
    if(a_title=="")   { }else{ text_link += " title=\""  + a_title    + "\"" ;  }

    text_link += ">" + text + "</a>" ;

    return text_link ;
  }

  //*********************************************************************
  // グローバル変数のフラグを判断して検索エンジンへのリンクを返す
  function getSrcEngineLink( words, a_target, css_classs){
    if( src_engine == "google" ){
      return getGoogleLink( words, a_target, css_classs)  ;
    }else if( src_engine == "yahoo" ){
      return getYahooLink( words, a_target, css_classs)  ;
    }else if( src_engine == "both" ){
      return getGoogleLink( words, a_target, css_classs) + getYahooLink( words, a_target, css_classs)  ;
    }else{
      return "";
    }
  }

  //*********************************************************************
  // google検索へのリンクの作成 
  function getGoogleLink( words, a_target, css_classs){
    var g_link = "";
    var g_text = "";
    g_link = "http://www.google.co.jp/search?q=" + utf.URLencode( words ) ;  // hrefの値
    g_text = "<a href=\"" + g_link + "\"" ;

    if(a_target=="")  { }else{ g_text += " target=\"" + a_target   + "\"" ; }
    if(css_classs==""){ }else{ g_text += " class=\""  + css_classs + "\"" ; }

    g_text += " title=\"" + tooltip_google + "\"" ;
    g_text += " alt=\"" + tooltip_google + "\"" ;
    g_text += "><img src=\"" + google_icon_path + "\" alt=\"google_icon\" border=\"0\"></a>" ;
    return g_text ;
  }

  //*********************************************************************
  // yahoo検索へのリンクの作成 
  function getYahooLink( words, a_target, css_classs){
    var y_link = "";
    var y_text = "";
    y_link = "http://search.yahoo.co.jp/search?p=" + utf.URLencode( words ) + "&ei=utf-8" ;  // hrefの値
    y_text = "<a href=\"" + y_link + "\"" ;
    if(a_target=="")  { }else{ y_text += " target=\"" + a_target   + "\"" ; }
    if(css_classs==""){ }else{ y_text += " class=\""  + css_classs + "\"" ; }
    y_text += " title=\"" + tooltip_yahoo + "\"" ;
    y_text += " alt=\"" + tooltip_yahoo + "\"" ;
    y_text += "><img src=\"" + yahoo_icon_path + "\" alt=\"yahoo_icon\" border=\"0\" width=\"16\" height=\"16\"></a>" ;
    return y_text ;
  }


  //*********************************************************************
  // 銘柄情報へのリンクの作成 
  function getSecCodeLink( sec_c, app_n ,sec_n ){
    var wk = "";
    if(sec_c==""){
      
    }else{
      if ( app_n == sec_n){
        wk = "&nbsp;(&nbsp;<a href=\"" + sec_info_url + sec_c + "\" target=\"_blank\" alt=\"" + tooltip_appsec + "\">" + sec_c +"</a>&nbsp;)";
      }else{
        wk = "&nbsp;(&nbsp;<a href=\"" + sec_info_url + sec_c + "\" target=\"_blank\" alt=\"" + tooltip_appsec + "\">" + sec_c +"</a>&nbsp;,&nbsp;<span class=\"app_sec_name\">" + sec_n + "</span>&nbsp;)";
      }
    } 
    
    return wk ;
  }

  //*********************************************************************
  // 公報表示へのリンクの作成 
  function getKouhouLink(){
    var qs      = "" ;
    var arr_qs       ; // 連想配列
    var kh      = "" ; // 
    var kp      = "" ; // 
    var khurl   = "" ; // 公報URL
    var ifrm    = "" ;
  
    qs          = location.search;
    arr_qs      = getParameter(qs);

    if(qs != ""){
      kh   = (arr_qs["kh"]) ? arr_qs["kh"] : ""  ;
      kp   = (arr_qs["kp"]) ? arr_qs["kp"] : ""  ;
      
      if(kp=="pdf"){ 
        khurl   = "pat_pdf/" + kh + ".pdf" ;
      }else{
      }
      document.getElementById('iframe_kh').src = khurl ;
    }
  }

  //*********************************************************************
  // 経過情報関連の表示制御
  function getKeikaInfo( val_req_exa, val_exa_disp_code, val_upd_day ){
    wk = "";
    if( val_upd_day=="" ){
      // 経過情報無し
// ***      wk = "<td width=\"122\" colspan=\"2\" align=\"right\"><a title=\"" + tooltip_no_keika + "\"><span class=\"ak_score\">経過情報：無</span></a></td>" ;
      wk = "<td width=\"122\" colspan=\"2\" align=\"right\">&nbsp;</td>" ;
    }else{
      // 経過情報有り
      wk = "<td width=\"78\">" + getReqExaValue(val_req_exa) + "</td>" 
         + "<td width=\"43\">" + getExaDispCodeValue(val_exa_disp_code)  + "</td>";
    }
    
    return wk;
  }
  

  //*********************************************************************
  // 審査請求の有無
  function getReqExaValue( val ){
    wk = "";
    if(val == "0" || val == "" || val==undefined ){
      wk = "&nbsp";
    }else{
      wk = "<a title=\"審査請求：有\"><img src=\"images/req_exa.png\" width=\"75\" height=\"20\" alt=\"審査請求：有\"></a>" ;
//      wk = "<img src=\"images/req_exa.png\" width=\"75\" height=\"20\" alt=\"審査請求：有\" title=\"審査請求：有\">" ;
    }
    return wk;
  }

  //*********************************************************************
  // 最終処分を返す
  function getExaDispCodeValue( val ){
    var str_wk = "";
    var arr_wk = {};
    arr_wk["A00"] = ["欠号"           , "欠号"                                   , "exa_disp_code_00.png"]
    arr_wk["A01"] = ["登録"           , "特許登録"                               , "exa_disp_code_01.png"]
    arr_wk["A02"] = ["拒絶"           , "拒絶"                                   , "exa_disp_code_02.png"]
    arr_wk["A04"] = ["取下"           , "取下"                                   , "exa_disp_code_04.png"]
    arr_wk["A05"] = ["放棄"           , "放棄"                                   , "exa_disp_code_05.png"]
    arr_wk["A06"] = ["変更"           , "変更"                                   , "exa_disp_code_06.png"]
    arr_wk["A07"] = ["翻訳未提出取下" , "翻訳文未提出による取下(PCT)"            , "exa_disp_code_04.png"]
    arr_wk["A08"] = ["補正却下"       , "補正却下"                               , "exa_disp_code_21.png"]
    arr_wk["A09"] = ["未審査取下"     , "未審査請求によるみなし取下"             , "exa_disp_code_04.png"]
    arr_wk["A11"] = ["国優取下"       , "国内優先権に基づくみなし取下"           , "exa_disp_code_04.png"]
    arr_wk["A12"] = ["特実変換"       , "特許・実用新案 変換(PCT)"               , "exa_disp_code_06.png"]
    arr_wk["A13"] = ["翻訳未提出取下" , "翻訳文未提出によるみなし取下(原語出願)" , "exa_disp_code_04.png"]
    arr_wk["A21"] = ["却下"           , "却下"                                   , "exa_disp_code_21.png"]
    arr_wk["A31"] = ["出願無効"       , "出願無効(方式)"                         , "exa_disp_code_31.png"]
    arr_wk["A32"] = ["出願無効"       , "出願無効(登録)"                         , "exa_disp_code_31.png"]
    arr_wk["A33"] = ["出願無効"       , "出願無効(審査請求)"                     , "exa_disp_code_31.png"]
    arr_wk["A41"] = ["出願却下"       , "出願却下処分(方式補完)"                 , "exa_disp_code_21.png"]
    arr_wk["A42"] = ["出願却下"       , "出願却下処分(方式却理)"                 , "exa_disp_code_21.png"]
    arr_wk["A43"] = ["出願却下"       , "出願却下処分(方式指令)"                 , "exa_disp_code_21.png"]
    arr_wk["A44"] = ["出願却下"       , "出願却下処分(本人確認)"                 , "exa_disp_code_21.png"]
    arr_wk["A45"] = ["出願却下"       , "出願却下処分(登録)"                     , "exa_disp_code_21.png"]
    arr_wk["A46"] = ["出願却下"       , "出願却下処分(審査請求)"                 , "exa_disp_code_21.png"]
    arr_wk[""]    = ["","",""]
    
    if(val=="" || val==undefined ){
    }else{
      str_wk = "<a title=\"審査最終処分：" + arr_wk[val][1] + "\"><img src=\"images/" + arr_wk[val][2] + "\" width=\"40\" height=\"20\" alt=\"審査最終処分：" + arr_wk[val][1] + "\"></a>" ;
//      str_wk = "<img src=\"images/" + arr_wk[val][2] + "\" width=\"40\" height=\"20\" alt=\"審査最終処分：" + arr_wk[val][1] + "\" title=\"審査最終処分：" + arr_wk[val][1] + "\">" ;
    }
    return str_wk ;
    
    //return arr_wk[val][2] ;
  }

  //*********************************************************************
  // CSV出力
  function showCSV( input_form ){
    if( hit_cnt > limit_csv ) {
      alert( "検索結果を" + limit_csv + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_csv && hit_cnt > 0 ) {
      input_form.action            = file_xml ;
      input_form.output_form.value = "csv" ;
      input_form.submit();
      return false ;
    }
  }

  //*********************************************************************
  //** CSV出力(for MAP1)
  function showCSV_Map1( input_form ){
    if( hit_cnt > limit_csv ) {
      alert( "検索結果を" + limit_csv + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_csv && hit_cnt > 0 ) {
      input_form.action            = file_xml ;
      input_form.output_form.value = "csv_map1" ;
      input_form.submit();
      return false ;
    }
  }

  //*********************************************************************
  // 出願人ランキング集計
  function showAppRank( input_form ){
    if( hit_cnt > limit_apprank ) {
      alert( "検索結果を" + limit_apprank + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_apprank && hit_cnt > 0 ){
      input_form.action            = file_src ;
      input_form.target            = "_blank" ;
      input_form.output_form.value = "apprank" ;
      sendParam( 'apprank', input_form );
      input_form.action            = file_xml ;
      input_form.target            = "_self" ;
      input_form.output_form.value = "src" ;
    }
  }
  //*********************************************************************
  // 出願件数推移集計
  function showAppYear( input_form ){
    if( hit_cnt > limit_appyear ) {
      alert( "検索結果を" + limit_appyear + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_appyear && hit_cnt > 0 ){
      input_form.action            = file_src ;
      input_form.target            = "_blank" ;
      input_form.output_form.value = "appyear" ;
      sendParam( 'appyear', input_form );
      input_form.action            = file_xml ;
      input_form.target            = "_self" ;
      input_form.output_form.value = "src" ;
    }
  }

  //*********************************************************************
  // IPCランキング集計
  function showIpcRank( input_form ){
    if( hit_cnt > limit_ipcrank ) {
      alert( "検索結果を" + limit_ipcrank + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_ipcrank && hit_cnt > 0 ){
      input_form.action            = file_src ;
      input_form.target            = "_blank" ;
      input_form.output_form.value = "ipcrank" ;
      sendParam( 'ipcrank', input_form );
      input_form.action            = file_xml ;
      input_form.target            = "_self" ;
      input_form.output_form.value = "src" ;
    }
  }

  //*********************************************************************
  // FIランキング集計
  function showFiRank( input_form ){
    if( hit_cnt > limit_firank ) {
      alert( "検索結果を" + limit_firank + "件以下に絞ってください" );
    }else if( hit_cnt <= limit_firank && hit_cnt > 0 ){
      input_form.action            = file_src ;
      input_form.target            = "_blank" ;
      input_form.output_form.value = "firank" ;
      sendParam( 'firank', input_form );
      input_form.action            = file_xml ;
      input_form.target            = "_self" ;
      input_form.output_form.value = "src" ;
    }
  }

  // 2008.01.24 CSVバグ対応版
  function displayUnchor( blnflag ){
    var objrow1 = document.getElementById("row_label1") ;
    var objrow2 = document.getElementById("row_label2") ;
    
    if( blnflag ){
      // 通常検索結果（そのまま表示）
    }else{
      // ラベルを隠す（innerHTMLでいったん消去した後にdisplay）
      objrow1.innerHTML     = ""     ;
      objrow1.style.display = "none" ;   
      objrow2.innerHTML     = ""     ;
      objrow2.style.display = "none" ;   
    }
  }


  //*********************************************************************
  // 出願人ランキング、IPCランキング集計時の「表示件数フィルタ」表示処理
  // @input blnflag : true (表示) or false(非表示)
  function displayFilter( blnflag ){
    var objfilter = document.getElementById('show_filter') ;
    
    if( blnflag ){
      // 出願人ランキング及びIPCランキング（そのまま表示）
      objfilter.style.display = "inline" ;    
    }else{
      // 通常検索結果、推移表（表示しない）
      objfilter.style.display = "none" ;
    }
  }

  //*********************************************************************
  // IPC/FIランキング集計時の「集計階層」表示処理
  // @input blnflag : true (表示) or false(非表示)
  function displayHierarchy( strflag ){
    var objfilter_ipc = document.getElementById('show_hierarchy_ipc') ;
    var objfilter_fi  = document.getElementById('show_hierarchy_fi') ;
    
    if( strflag == "ipc" ){
      // IPCランキング（IPC用を表示、FI用を非表示）
      objfilter_ipc.style.display = "inline" ;    
      objfilter_fi.style.display  = "none" ;    

    }else if( strflag == "fi" ){
      // FIランキング（IPC用を非表示、FI用を表示）
      objfilter_ipc.style.display = "none" ;    
      objfilter_fi.style.display  = "inline" ;    

    }else{
      // 通常検索結果、推移表、出願人ランキング（表示しない）
      objfilter_ipc.style.display = "none" ;    
      objfilter_fi.style.display  = "none" ;    
    }
  }

  //*********************************************************************
  // IPC/FIランキング集計時の「集計単位」表示処理
  // @input strflag : "ipc" (IPC表示) or "fi"(FI表示) or "none" (非表示)
  function displayUnit( strflag ){

    var objfilter_ipc = document.getElementById('show_unit_ipc') ;
    var objfilter_fi  = document.getElementById('show_unit_fi') ;
    
    if( strflag == "ipc" ){
      // IPCランキング（IPC用を表示、FI用を非表示）
      objfilter_ipc.style.display = "inline" ;    
      objfilter_fi.style.display  = "none" ;    

    }else if( strflag == "fi" ){
      // FIランキング（IPC用を非表示、FI用を表示）
      objfilter_ipc.style.display = "none" ;    
      objfilter_fi.style.display  = "inline" ;    

    }else{
      // 通常検索結果、推移表、出願人ランキング（表示しない）
      objfilter_ipc.style.display = "none" ;    
      objfilter_fi.style.display  = "none" ;    
    }
  }

  //*********************************************************************
  // 検索ボタンの表示・非表示切替
  function displaySearchBtn( blnflag ){
  
  
  }

  //*********************************************************************
  // IPC及びFIの一部／全部表示ボタン
  // @input flag : true (part to all) or false (all to part)
  // @input text : target No
  function changeDisplayClass( blnflag, targetno ){
    var objname_part  = "ipc_part" ;
    var objname_all   = "ipc_all"  ;
    var objname_part2 = "fi_part" ;
    var objname_all2  = "fi_all"  ;

    if( blnflag ){
      document.getElementById( objname_part  + targetno ).style.display='none'; 
      document.getElementById( objname_all   + targetno ).style.display='inline'; 
      document.getElementById( objname_part2 + targetno ).style.display='none'; 
      document.getElementById( objname_all2  + targetno ).style.display='inline'; 
    }else{
      document.getElementById( objname_part  + targetno ).style.display='inline'; 
      document.getElementById( objname_all   + targetno ).style.display='none'; 
      document.getElementById( objname_part2 + targetno ).style.display='inline'; 
      document.getElementById( objname_all2  + targetno ).style.display='none'; 
    }
  }


  //*********************************************************************
  // ランキングフィルタフラグを判別し、表示制限出願数[0]と表示制限順位[1]を返す
  // 返却配列
  // [0]=max_cnt  表示制限出願数(bottom)
  // [1]=max_rank 表示制限順位(top)
  function filterLimit( flag ){
    var max_cnt   = 0 ;
    var max_rank  = 0 ;
    var flag_method  = "" ; 
    var flag_volume  = "" ;
    var limit_volume = 0 ; 
        
    // フラグの判定
    if( flag.length > 1) {
      // フラグ正常
      // 1キャラ目から制限方法の取得
      flag_method = flag.charAt(0) ;
      // フラグを判定
      if( flag_method == "N" || flag_method == "R" ){
        // フラグの2キャラ目以降を取得
        flag_volume = flag.slice(1);
        // 取得した文字列が数値として評価できるか判別
        if( isNaN( flag_volume ) ) {
          // true（数値以外）のときは0
          limit_volume = 0;
        }else{
          // false（数値）はintにキャストする
          limit_volume = parseInt( flag_volume );
        }
        
        // 制限方法判定
        if( flag_method == "N"){
          // N=出願数制限
          max_cnt   = limit_volume ;
          max_rank  = 0 ;
        }else if( flag_method == "R"){
          // R=順位制限
          max_cnt   = 0 ;
          max_rank  = limit_volume ;
        }else{
        }

      }else{
        // 全件
        max_cnt   = 0 ;
        max_rank  = 0 ;
        
      }
      
    }else{
      // フラグ異常
      // 判定終了（デフォルト）
      max_cnt   = 3 ;
      max_rank  = 0 ;
    }
    
    return new Array( max_cnt, max_rank ); 
  }

  //***
  


  //*********************************************************************
  // 共通関数（かんたん特許検索用）
  //*********************************************************************
  // インクリメンタルサーチ結果等のメッセージを検索ボタンの右に表示する
  function showMessage( val ){
    document.getElementById("kantan_inc_hits").innerHTML = val ;
  }


  //*********************************************************************
  // 点滅処理開始トリガ
  function startBlinkingProc(){
    // 既に点滅中なら処理を行わない
    if( bln_blinking ) {
      // true  :点滅中
    }else{
      // false :点滅中ではない
      // 点滅処理を開始したため、点滅中フラグをオンにする
      bln_blinking = true ;
      // 点滅フラグを初期化
      bln_visible = true ;
      // 0.5秒間隔で点滅処理を行い、そのプロセスをIDに格納する
      blinking_proc_id = setInterval( 'blinking()',500 ) ;
    }
  }
  
  //*********************************************************************
  // 点滅処理
  function blinking() { 
    if ( bln_visible ) { 
      // 点滅フラグがtrueならば不可視属性に変更し、フラグをfalseに変更
      document.getElementById("kantan_inc_hits").style.visibility='hidden';
      bln_visible = false ;
    } else { 
      // 点滅フラグがfalseならば可視属性に変更し、フラグをtrueに変更
      document.getElementById("kantan_inc_hits").style.visibility='visible'; 
      bln_visible = true ;
    }
  } 

  //*********************************************************************
  // 処理中の点滅処理終了トリガ
  function stopBlinkingProc(){
    // 格納されたIDのプロセス（点滅処理）を終了する
    clearInterval(blinking_proc_id);
    // 点滅中フラグをクリア（falseに変更）
    bln_blinking = false ; 
    
    // 消えている状態（不可視属性）で処理終了した場合に備えて可視属性に設定
    document.getElementById("kantan_inc_hits").style.visibility='visible'; 

  }

  //*********************************************************************
  // 共通関数（汎用）
  //*********************************************************************
  // トリム
  function trim(argValue){
    
    return String(argValue).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");
  
  }

  //*********************************************************************
  // Query String 型のデータを配列に変換する
  // ※あらかじめURLデコードはしておくこと！
  function getParameter(str){
    var par = new Array, itm;
    if(typeof(str) == 'undefined') return par;
    if(str.indexOf('?', 0) > -1) str = str.split('?')[1];
    str = str.split('&');
    for(var i = 0; str.length > i; i++){
      itm = str[i].split("=");
      if(itm[0] != ''){
        par[itm[0]] = typeof(itm[1]) == 'undefined' ? true : itm[1];
      }
    }
    return par;
  }
  //*********************************************************************
  // 配列 から Query String型の文字列を返す
  function setParameter(par){
    var enc = utf.URLencode ;
    var str = '', amp = '';
    if(!par) return '';
    for(var i in par){
      str = str + amp + i + "=" + enc(par[i]);
      amp = '&'
    }
    return str;
  }


  // ***********************************************
  // ラジオボタンが選択された値を取得する
  // @input
  // @frm  (form)   チェック対象のフォームオブジェクト
  // @bnm  (string) チェック対象のラジオボタンの名称
  // @output
  // return string チェックされた値を返す。
  //               対象の要素がない場合はnullを返す。
  function getRadioValue( frm, bnm ){
    
    if(frm==undefined) { alert("error : form"); return null; }
    
    if(frm.elements.length){
      for(var i=0; i < frm.elements.length ; i++){
        if(frm.elements[i].type == "radio" ){
          if(frm.elements[i].name == bnm ) {
            if( frm.elements[i].checked ) {
              return frm.elements[i].value ;
            }
          }
        }
      }
      
    }else{
      // 要素がない場合
      alert("error : no-elements"); 
      return null ;
    }
    
//    alert("error : unchecked"); 
    return null ;
  
  }
  
  //*********************************************************************
  //カンマ挿入関数
  function insertComma(str){
    if(str==""||str==null||escape(str)=="%20")return "";
    var temp1  = deleteComma(str);
    if(isNaN(temp1)){ alert("数字を入力してください");return str; }
    temp1 = parseInt(temp1.split(".")[0],10);
    temp1 = "" + Math.abs(temp1);
    temp1 = temp1.match(/./g).reverse().join("");
    temp1 = temp1.replace(/(\d{3})/g,"$1,");
    temp1 = temp1.match(/./g).reverse().join("").replace(/^,/,"");

    if(str.charAt(0)=='-') temp1 = "-" + temp1;
    if(!!str.split(".")[1])temp1 = temp1 +"."+ str.split(".")[1];

    return temp1;
  }

  //*********************************************************************
  //カンマ削除関数
  function deleteComma(str) {
    return str.split(",").join("")
  }

  //*********************************************************************
  //全角数字・記号→半角
  function replaceFull2Half(str) {
    var full_char = "０１２３４５６７８９．ー－／";
    var half_char = "0123456789.--/";
    var wk = "";
    var ch = "";
    var pos = 0;
    for (i=0; i<str.length; i++) {
      ch = str.charAt(i);
      pos = full_char.indexOf(ch,0);
      if (pos >= 0) { ch = half_char.charAt(pos); }
      wk += ch;
    }
    return wk;
  }

  //*********************************************************************
  // .を/に変換する
  function uniteDateDelimiter( strTarget ){
    
    return strTarget.replace(/\./g,"/");
    
  }